-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Summary
Extend the Simulation/Report architecture to support household-level impact analysis, allowing users to run household simulations and compare baseline vs reform scenarios.
Dependencies
- Requires Add stored household CRUD support #74 (Stored household CRUD support)
Scope
Model Changes
Simulation model:
- Add
SimulationTypeenum (HOUSEHOLD, ECONOMY) - Add
simulation_typefield with default 'economy' - Make
dataset_idnullable (was required) - Add
household_idFK to households - Add
household_resultJSONB column for storing calculation output
Report model:
- Add
report_typefield (household_single, household_comparison, economy_single, economy_comparison)
New Endpoints
POST /analysis/household-impact- Run household impact analysis- If
policy_idis None: single run under current law - If
policy_idis set: comparison (baseline vs reform)
- If
GET /analysis/household-impact/{report_id}- Get household impact results
Impact Computation
Support all entity types for both countries:
- UK: person, benunit, household
- US: person, tax_unit, spm_unit, family, marital_unit, household
Database
- Migration:
20260203000002_simulation_household_support.sql
Key Features
- Deterministic UUIDs for deduplication/caching
- Reuses existing
_calculate_household_uk()and_calculate_household_us()functions - Stores results in
household_resultJSONB on Simulation (not Dataset)
Acceptance Criteria
- SimulationType enum and simulation_type field added
- household_id and household_result fields added to Simulation
- report_type field added to Report
- POST endpoint creates correct records (single and comparison)
- GET endpoint returns results with computed impact
- Deduplication working (same params = same IDs)
- Tests passing
- Migration applied successfully
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels