Tax-Calculator icon indicating copy to clipboard operation
Tax-Calculator copied to clipboard

Model Extension: Defining Non-Parametric Reforms

Open jdebacker opened this issue 3 years ago • 1 comments

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 #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

jdebacker avatar Jun 17 '21 20:06 jdebacker

Would be neat to see how recipe 6 might look after these changes.

MattHJensen avatar Aug 19 '21 22:08 MattHJensen