Skip to content

Enhanced CPS build fails Stage-1: tips too low ($30.9B<$40B), JCT tax-expenditure >50% rel err, liquid assets too high ($72.5T>$70T) — NOT clone weight #1160

@MaxGhenis

Description

@MaxGhenis

Summary

The Enhanced CPS publication build fails Stage-1 validation at validation/stage_1/test_enhanced_cps.py::test_ecps_puf_clone_diagnostics_reasonable — the PUF-clone household weight share on the built artifact is below the 5% floor. This blocks producing any clean post-clone-fix eCPS.

Observed (not inferred)

The calibration MATH is NOT the cause (ruled out by local reproduction)

A faithful local repro of reweight() + initialize_weight_priors from enhanced_cps.py (real utils deps: get_target_loss_weights, get_target_error_normalisation, etc.), on synthetic problems matching build_loss_matrix's clone-count target construction:

  • clones enter at the 0.05 prior and the optimizer drives them to 22–50% (well above the 5% floor) across baseline / many-target / clone-heavy cases.
  • Teeth check: monkeypatching out the clone-count up-weight collapses clones to 0.65% — confirming the existing HOUSEHOLD_COUNT_LOSS_WEIGHT = 100_000 clone-count target is exactly what holds clones up, and it IS applied.
  • Note: reweight()'s l0_lambda defaults to 0.0 and EnhancedCPS.generate does not set it, so the L0 HardConcrete penalty is off — "L0 gates prune clones" is not the mechanism.

So the optimizer, the prior, the floor guard, and the clone-count target weighting are all correct on f7458313.

Most likely real cause (data plumbing — needs maintainer confirmation)

The realized clone share is ~0% on the actual build despite correct math ⇒ the clone-count target is probably a no-op at build time because household_is_puf_clone is missing/empty on the built ExtendedCPS_2024_Half artifact → _load_household_is_puf_clone(dataset, period) returns None (precondition at utils/loss.py:1255) → _add_household_count_target skips the CPS/clone split → nothing rewards clone weight → clones collapse → the Stage-1 test fails.

Suggested check (cheapest first)

  1. On the failed build's inputs, inspect whether ExtendedCPS_2024_Half actually carries a non-null household_is_puf_clone keyed by period 2024. If absent/empty, the clone-count target is silently skipped — that's the bug.
  2. If present, pull the full Stage-1 traceback (the realized clone-share value) from the Modal container logs to confirm whether it's ~0% (skipped target) vs a smaller miss.

Evidence files (upstream/main)

  • policyengine_us_data/datasets/cps/enhanced_cps.py (reweight ~673-790, initialize_weight_priors ~59, generate clone path ~805-879, floor ~55/166-172)
  • policyengine_us_data/utils/loss.py (_load_household_is_puf_clone ~1208-1229, _add_household_count_target ~1255-1275, HOUSEHOLD_COUNT_LOSS_WEIGHT ~89-90, weights ~1306-1314)
  • validation/stage_1/test_enhanced_cps.py::test_ecps_puf_clone_diagnostics_reasonable (~72)

Context: surfaced while trying to obtain a clean post-clone-fix eCPS baseline to benchmark microplex-us against. A speculative calibration fix was deliberately NOT shipped because the local repro refuted that hypothesis — flagging the data-plumbing lead instead so no one re-chases the optimizer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions