Skip to content

Calibrate the undocumented population count as a Ledger fact (weights lane follow-up to #266) #267

Description

@MaxGhenis

#266 (fixing #225) assigns ssn_card_type / immigration_status_str labels from ASEC citizenship via the residual method, with only the undocumented worker/student EAD split forced to published controls. The total undocumented population is deliberately emergent (13.3M on the 2024 ASEC) and is only release-gated against a coarse plausibility band around Pew's 11.0M (2022) anchor — per the charter, representation belongs to calibration, not to label churn in a source stage.

The proper reconciliation is a calibration target in the facts lane:

  • Target: weighted person count with ssn_card_type == NONE (and optionally the non-citizen total, != CITIZEN), national grain to start.
  • Value + SE: a published unauthorized-population estimate with its uncertainty — Pew (11.0M in 2022, with later vintages as they publish), DHS OHSS, and/or CBO's 2023–24 estimates. Ledger should own the source package so the value carries a citation and standard error like every other fact, and vintage updates flow through normally.
  • Why weights and not labels: CPS undercoverage of unauthorized immigrants is household-level undercoverage; upweighting households that contain undocumented members (mixed-status households included) is the honest mechanism, unlike the incumbent's family-correlation step that relabeled Medicaid/Social Security recipients as undocumented to hit a total.
  • Protected-family candidate: once active, the SSN composition belongs in the protected-families list so a contribution can't degrade it silently — and the OBBBA CTC SSN reform-validation line (how Dataset imputes 100% of the population as citizens with valid SSNs (breaks SSN/citizenship-conditioned policies, e.g. OBBBA CTC) #225 was caught) becomes its out-of-sample check.

Depends on #266 landing (the label surface must exist before a target can bind on it).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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