/openfisca-doc

User guide of OpenFisca

Primary LanguageShellGNU Affero General Public License v3.0AGPL-3.0

OpenFisca logo

Download a PDF offline version of this documentation.

Introduction

OpenFisca is a versatile microsimulation software. OpenFisca allows users to :

  • Calculate many variables of the tax and benefit system of a country given input variables.

    OpenFisca can calculate social benefits and taxes on test cases (a person or a household).

  • Simulate the budgetary consequences of a reform and its distributional impact when plugged on a survey.

    OpenFisca can calculate social benefits and taxes on population data (real data or survey data)

To achieve both, computations are vectorial and use NumPy package. It is coded in the C language under the hood, more performant than Python. Its engine is independent of the country, it is therefore possible to simulate any country. For now the main supported country is France.

OpenFisca is a free software published under the GNU Affero General Public Licence version 3 or later. It is written in the Python programming language (compatible with version 2.7).

Project Components

OpenFisca is a modular project. Depending on your goals, you will install and interact with one or several of the OpenFisca Components.

OpenFisca schema

Web API

The Web API lets you access the legislation Parameters and Variables.

Example: Mes Aides uses the OpenFisca Web API to calculate OpenFisca-France benefits.

Extensions Packages

Extensions add on the capacities of a country-package.

Example: See Paris extension and Rennes extension on top of OpenFisca France.

Country package

Country Packages are the basic modules of OpenFisca. They define the Parameters, Entities and Variables of a country.

  • To install an existing Country Package, head to that package's documentation.

Example: Openfisca-france's repository

OpenFisca Core

OpenFisca-Core is the main engine: it is the common interface to every Country Package. It binds the Country Package(s), Extension(s) and the engine together. OpenFisca-Core is also where the API is packaged.

What's the purpose?

OpenFisca is more a platform than an application: its first target is not the end user but economists, software developers, researchers, teachers, administrations, interested citizens, etc.

Final products can be built on the top of OpenFisca. They trigger tax and benefit variables computations via the web API. For example: Mes aides.

Then, the web API of OpenFisca is used by the team itself to develop tools like the legislation explorer.

These tools are designed to help developers understand the legislation when they write it down into source code, and allow citizens to browse the tax and benefit legislation.

The current version implements a large set of taxes, social benefits and housing provision for France for the last 10 years. But this is only due to a shortage in manpower to enter and update the Tunisian legislation.

The project is 100% free software, it is published on GitHub. It uses the GitHub infrastructure (issues, pull requests, etc.) to communicate internally or with external participants. The team discusses publically on those issues and pull requests and tries to be as transparent as possible.

The project is multi-actors: many people and organizations are involved in the project, reading the legislation and transforming it into source code, developing the Core or web tools, developing external products, etc.

Among them: Etalab, the IPP, the "startups d'état" of the SGMAP, the IDEP and France Stratégie.

OpenFisca provides a basic infrastructure, in particular a public instance of its web API, hosted on cheap servers. As it is free software, anyone can reproduce the OpenFisca infrastructure on its server.