OpenFisca logo

Download a PDF offline version of this documentation.

Introduction

OpenFisca transforms legislation into code.

OpenFisca allows you 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).

Its engine is independent of the country, it is therefore possible to simulate any country. It behaves as microsimulation software with improved ties to legislation.

For a deep dive into the context and difficulties that are encountered when modelling legislation as code that OpenFisca aims at solving, read the Better Rules for Government report.

OpenFisca is 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 3.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.

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, mainly to compute tax and benefit variables through the web API. For example: Mes aides allows French citizens to assess their entitlement to social benefits across agencies.

Another use can be to improve the discoverability and readability of law, using reflexivity possibilities demonstrated by the legislation explorer.

Independent researchers can use OpenFisca to publish articles exploring the impact of reforms, focusing on testing hypotheses rather than on modelling. For example, the impact of changing how children are taken into account for social benefits or of creating a universal basic income in France. NGOs can also use that same power to back their own suggestions.

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 publicly on those issues and pull requests as transparently as possible.

The project has many contributors: 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 Incubateur des services numériques, the IPP, the IDEP, the MSA, and France Stratégie.