PolicyEngine / PolicyEngine/policyengine-us

Make Medicaid cost allocation compatible with Populace reweighting

Open
#8,669 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
162
Forks
212
Avg merge
3d 3h
Merged PRs (30d)
97

Description

## Type

Mixed rules and data.

## Context

Populace currently treats Medicaid spending as validation-only because PolicyEngine-US allocates Medicaid spending from state totals through denominators that depend on `person_weight`, `medicaid_slcsp_cost_index_filled`, and `medicaid_enrolled`. When Populace reweights the dataset, the per-person Medicaid costs are recomputed, so Medicaid spending is not a linear calibration row.

Relevant current model path:

- `medicaid_cost` is defined for `medicaid_enrolled` and adds `medicaid_cost_if_enrolled`.
- `medicaid_slcsp_state_denominator` sums `person_weight * medicaid_slcsp_cost_index_filled * medicaid_enrolled` over each state when running over a dataset.

This is reasonable for a normal simulation, but it makes budget calibration harder because changing weights changes both support and per-person cost values.

## Why this matters

For budget analyses, Populace should eventually be able to calibrate Medicaid enrollment and spending together. Right now enrollment can be a count target, but Medicaid spending cannot be a hard fiscal target without non-linear feedback from the PE-US denominator.

## Suggested direction

Add a calibration-compatible Medicaid cost path, for example:

- expose a frozen state denominator or person-level cost scale that can be stored on the dataset;
- compute a linear `medicaid_cost_if_enrolled` support value for Populace calibration;
- preserve the current baseline-denominator behavior for policy reforms where that is the desired counterfactual semantics;
- document which Medicaid cost variable should be used for budget calibration versus reform analysis.

## Acceptance criteria

- A reweighting/calibration workflow can treat Medicaid spending support as fixed per record for a given baseline year.
- Existing Medicaid reform behavior is preserved or intentionally migrated with tests.
- Tests cover that changing weights does not silently recompute calibration support values.
- Populace can promote Medicaid spending from validation-only once the model-side contract exists.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.