Skip to content

Model Extension: Defining Non-Parametric Reforms #2598

@jdebacker

Description

@jdebacker

Spurred by a nice discussion with @nikhilwoodruff about the OpenFisca platform, I wanted to write down some notes for future reference about how Tax-Calculator might be enhanced so as to allow users flexibility to define non-parametric reforms more easily.

One path:

  1. Finish off PR [WIP] Vectorize all tax calculation functions #2585 to vectorize functions and remove jit decorators.
  2. Pass just Policy and Records objects to all functions in calcfuctions.py, rather than tuples of variable and parameter names.
  3. Define a class that has each function in calcfunctions.py as a method (or as each function defined as a class). Call this super class CF for now.

One can then define a non-parametric reform by creating an instance of the CF class and then updating an existing method or adding a new one. This would be similar to what is done to create a reform in OpenFisca, where a variable class is updated/created.

cc @hdoupe

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions