PolicyEngine / PolicyEngine/policyengine.py

Add a stable behavior-input boundary for population data

Open
#510 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
7
Forks
9
Avg merge
15h 51m
Merged PRs (30d)
9

Description

PolicyEngine needs a typed, data-only boundary for measured or latent population inputs used by future behavioral adapters. The first slice should expose frozen JSON-serializable entity/column bindings and resolve values by stable entity ID without affecting Simulation.run() or country calculations.\n\nOwnership boundary: Microcosm populates measured or latent microdata flags; PolicyEngine consumes them and owns non-legal take-up and labor-response mechanics; Axiom receives only documentary legal concepts, events, and statuses.\n\nNon-goals for this issue: no take-up formula, labor-supply formula, Belgium-specific behavior, second Axiom pass, adapter registry, cache/run-record change, or synthetic Axiom concept.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating PolicyEngine's existing population-input and entity-resolution entry points, then inspect how they relate to Simulation.run() and country calculations. Define the smallest typed, frozen, JSON-serializable entity/column binding boundary and verify stable entity-ID lookup without changing those flows. Confirm that measured or latent inputs stop at PolicyEngine and that the listed non-goals remain untouched.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, data
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.