diff --git a/changelog.d/engine-lock-pe-us-2.60.changed.md b/changelog.d/engine-lock-pe-us-2.60.changed.md new file mode 100644 index 000000000..c5cbffd9b --- /dev/null +++ b/changelog.d/engine-lock-pe-us-2.60.changed.md @@ -0,0 +1 @@ +Move the US engine lock to policyengine-us 2.60.4 on policyengine-core 3.33.3 (the core policyengine.py's bundle pins) with spm-calculator 1.0.0, so the next certified US build calibrates and scores natively on the current engine. The tax-unit `first_home_mortgage_interest` and `second_home_mortgage_interest` inputs that 2.60 removed are no longer produced; the person-level `home_mortgage_interest` already carried the whole amount, and the eCPS parity reference grades it in their place. `tax_unit_role_input`, `parent_1_id` and `parent_2_id`, which 2.60 reads as inputs, leave the stored non-variable register. The new `takes_up_medicare_part_d_if_eligible` flag joins the take-up contract at its engine default, which keeps the Part D income-related premium on every Medicare enrollee above the thresholds. The frame adapter's static consumer index now reads the formula patterns 2.60 introduces (starred lists, one-argument `dict.get` with an `is None` skip, run-time keys into fixed name tables, and helper return values). It also stops missing reads it used to skip without raising: package helpers outside `variables/` such as `tax_unit_non_dep_add` are answered from digest-pinned reviews, `calculate`/`get_holder`/`get_array` reads by name are recorded, functions defined inside a formula and lambda bodies are interpreted, and a comparison on an engine value no longer decides a branch. Every fail-closed engine pin is re-derived through its generator. diff --git a/docs/agent-guide.md b/docs/agent-guide.md index 10bc99fdd..47650dd1b 100644 --- a/docs/agent-guide.md +++ b/docs/agent-guide.md @@ -30,15 +30,28 @@ uv run ruff check . # lint ``` Each country keeps its own policyengine-core pin (#1086). The extras that -install policyengine-us pin the core the certified US default was built with, -and the extras that install policyengine-uk follow policyengine-uk's own core -floor. So no environment can hold both engines: uv refuses any sync that asks +install policyengine-us pin the engine and core the next certified US build is +built with (policyengine-us 2.60.4 on core 3.33.3, the core policyengine.py's +bundle pins), and the extras that install policyengine-uk follow +policyengine-uk's own core floor. So no environment can hold both engines: uv refuses any sync that asks for an extra that installs policyengine-us (`microcosm-build[us]`, `microcosm-data[us]` or `microcosm-frame[policyengine]`) together with one that installs policyengine-uk, such as `uv sync --all-packages --extra us --extra uk` or `uv sync --all-packages --all-extras`. To keep both countries set up, point `UV_PROJECT_ENVIRONMENT` at a separate directory outside the checkout for each. +Moving the US engine lock starts with the frame adapter's static consumer +index, which reads the installed policyengine-us source without importing it +and gates every generator. It interprets `variables/` only. A formula that +calls a package helper defined elsewhere (`tools/general.py`, +`tools/section_911.py`, the HUD loaders under `parameters/`) is answered from +that helper's review in +`packages/microcosm-frame/src/microcosm/frame/adapters/_policyengine_us_helper_reviews.py`. +A new engine that calls an unreviewed helper, or changes a reviewed one, stops +the index and prints the helper's digest. Read the helper and the package +functions it uses, record what it reads at that digest, then rerun the +generators. + PR CI (`.github/workflows/test.yml`) has `lint`, `engine-free`, `engine-us`, `engine-uk`, `integration-uk`, and `wheels` jobs, plus the `select-countries` orchestration job. @@ -257,15 +270,17 @@ the 2026 Medicare Trustees Report's calendar-year rows in Tables V.E3 and V.E4 and/or Part B). Part B is `gross_medicare_part_b_premium_if_enrolled - base_part_b_premium`, because the base premium is defined for every eligible person. Part D is -`income_adjusted_part_d_premium_surcharge`, which policyengine-us charges every -Medicare enrollee above the thresholds until PolicyEngine/policyengine-us#10115 -gates it on Part D enrollment. IRMAA rests on income from two years before -the period. The locked policyengine-us 2.2.1 reads that year's inputs, and a -single-year release H5 has none, so a 2024 release on that engine reports -`status: no_payers` (the batched scorer gives exactly that on the certified -`populace-us-2024-spm-20260915` file) until the engine includes -PolicyEngine/policyengine-us#10106. A Part with no weighted payer never reports -a Trustees comparison. It is held out the same way: no calibration row, no +`income_adjusted_part_d_premium_surcharge`. policyengine-us 2.60 gates it on +Part D enrollment (PolicyEngine/policyengine-us#10115), and Microcosm leaves +`takes_up_medicare_part_d_if_eligible` at its engine default (true), so the +surcharge still reaches every Medicare enrollee above the thresholds. IRMAA +rests on income from two years before the period. policyengine-us 2.2.1 read +that year's inputs, and a single-year release H5 has none, so a 2024 release +on it reports `status: no_payers` (the batched scorer gives exactly that on the +certified `populace-us-2024-spm-20260915` file). The locked 2.60.4 includes +PolicyEngine/policyengine-us#10106: it falls back to the earliest input year's +income, deflated by per-capita CBO AGI. A Part with no weighted payer never +reports a Trustees comparison. It is held out the same way: no calibration row, no release refusal. Before a release rerun, run the small-H5 guard sweep described in [the release build rule](us-release-build-rule.md#post-export-scoring). diff --git a/docs/concept-coverage/policyengine-us.md b/docs/concept-coverage/policyengine-us.md index 025a06e0d..61ecac4eb 100644 --- a/docs/concept-coverage/policyengine-us.md +++ b/docs/concept-coverage/policyengine-us.md @@ -1,11 +1,11 @@ # Concept coverage: policyengine-us -Engine version `2.2.1`; concept schema `5a55669d0447`. Generated by `tools/refresh_concept_coverage.py`; do not edit by hand. +Engine version `2.60.4`; concept schema `5a55669d0447`. Generated by `tools/refresh_concept_coverage.py`; do not edit by hand. -- Engine inputs: 926 +- Engine inputs: 1074 - Fed by a concept: 55 - Structural: 12 -- Uncovered: 859 +- Uncovered: 1007 - Mapped but missing from the engine: 0 ## Inputs each concept feeds @@ -50,18 +50,26 @@ Engine version `2.2.1`; concept schema `5a55669d0447`. Generated by `tools/refre ## Inputs no concept covers -### household (56) +### family (2) -`ak_ssp_excluded_institutional_setting`, `auto_loan_balance`, `auto_loan_interest`, `average_home_energy_use_in_state`, `bedrooms`, `block_geoid`, `cbo_corporate_income_tax`, `cbo_excise_tax`, `cbsa_code`, `congressional_district_geoid`, `county_fips`, `ct_tfa_region`, `current_home_energy_use`, `de_ssp_living_arrangement`, `household_business_assets_debt`, `household_business_assets_equity`, `household_business_assets_value`, `household_count`, `household_income_ami_ratio`, `household_other_real_estate_debt`, `household_other_real_estate_equity`, `household_other_real_estate_value`, `household_rental_property_debt`, `household_rental_property_equity`, `household_rental_property_value`, `household_vehicles_debt`, `household_vehicles_equity`, `household_vehicles_owned`, `household_vehicles_value`, `in_denver`, `in_wilmington`, `in_yonkers`, `is_homeless`, `is_non_english_speaking_home`, `is_on_tribal_land`, `is_rural`, `is_shared_living`, `is_sro`, `living_arrangements_allow_for_food_preparation`, `ma_state_living_arrangement`, `net_worth`, `ny_drive_clean_purchased_qualifying_vehicle`, `ny_drive_clean_vehicle_cost`, `ny_drive_clean_vehicle_electric_range`, `parent_has_less_than_high_school_education`, `place_fips`, `puma`, `qualified_passenger_vehicle_loan_interest`, `sldl`, `sldu`, `state_fips`, `tenant_pays_utilities`, `tract_geoid`, `vtd`, `zcta`, `zip_code` +`wi_cts_large_group_net_income_limit`, `wi_cts_nonfinancially_ineligible` -### person (562) +### household (57) -`able_contributions_person`, `adopted_this_year`, `after_school_expenses`, `ak_ccap_care_schedule`, `ak_ccap_charged_rate`, `ak_ccap_provider_type`, `ak_resides_in_assisted_living_home`, `al_ccsp_provider_type`, `al_ccsp_quality_tier`, `al_level_b_care`, `al_meets_snf_criteria`, `al_receives_elderly_disabled_medicaid_waiver`, `al_ssp_care_setting`, `al_ssp_grandfathered`, `al_ssp_living_arrangement`, `al_ui_base_period_wages`, `al_ui_high_quarter_wages`, `al_ui_quarters_with_wages`, `al_ui_second_high_quarter_wages`, `al_ui_weekly_earnings`, `alimony_expense`, `alimony_income`, `ambulance_expense`, `american_opportunity_credit_claimed_prior_years`, `amt_foreign_tax_credit`, `ar_sra_care_type`, `attends_eligible_educational_institution_for_american_opportunity_credit`, `attends_eligible_educational_institution_for_lifetime_learning_credit`, `az_530a_distribution`, `az_ccap_provider_type`, `az_ccap_quality_enhanced_provider`, `bank_account_assets`, `bond_assets`, `business_is_qualified`, `business_is_sstb`, `ca_calworks_child_care_factor_category`, `ca_calworks_child_care_provider_category`, `ca_calworks_child_care_time_category`, `ca_calworks_child_care_welfare_to_work`, `ca_cvrp_vehicle_rebate_amount`, `ca_in_home_supportive_services`, `ca_in_medical_care_facility`, `ca_state_disability_insurance`, `care_and_support_costs`, `care_and_support_payments_from_tax_filer`, `casualty_loss`, `charitable_cash_donations`, `charitable_non_cash_donations`, `charitable_non_cash_donations_non_50_pct_orgs`, `child_support_expense`, `child_support_received`, `childcare_attending_days_per_month`, `childcare_days_per_week`, `childcare_hours_per_day`, `childcare_provider_type_group`, `claimed_as_dependent_on_another_return`, `claimed_ma_covid_19_essential_employee_premium_pay_program_2020`, `co_care_worker_credit_eligible_care_worker`, `co_denver_employee_occupational_privilege_tax_months`, `co_glendale_employee_occupational_privilege_tax_months`, `co_greenwood_village_employee_occupational_privilege_tax_months`, `co_quality_rating_of_child_care_facility`, `co_sheridan_employee_occupational_privilege_tax_months`, `cost_of_attending_college`, `count_529_contribution_beneficiaries`, `cps_race`, `csrs_retirement_pay`, `ct_c4k_provider_accredited`, `ct_c4k_provider_type`, `ct_ssp_has_therapeutic_diet`, `ct_ssp_lives_with_others`, `ct_ssp_resides_in_boarding_home`, `current_pregnancy_month`, `dc_ccsp_childcare_provider_category`, `dc_ccsp_schedule_type`, `dc_ossp_facility_size`, `dc_ossp_in_adult_foster_care`, `de_additions`, `de_poc_provider_type`, `de_wilmington_nonresident_earnings`, `debt_relief`, `dependent_care_employer_benefits`, `detailed_industry_recode`, `detailed_occupation_recode`, `disability_benefits`, `divorce_year`, `e00700`, `e01100`, `e01200`, `e02000`, `e03220`, `e03230`, `e03240`, `e03270`, `e03290`, `e03300`, `e03400`, `e03500`, `e07240`, `e07260`, `e07300`, `e09700`, `e09800`, `e09900`, `e11200`, `e18500`, `e19200`, `e19800`, `e20100`, `e20400`, `e24515`, `e24518`, `e26270`, `e27200`, `e32800`, `e58990`, `e62900`, `e87521`, `e87530`, `early_withdrawal_penalty`, `educational_assistance`, `educator_expense`, `employer_contribution_to_health_insurance_premiums_category`, `employer_headcount`, `employer_ny_mctmt_zone_1_quarterly_payroll_expense`, `employer_ny_mctmt_zone_2_quarterly_payroll_expense`, `employer_quarterly_payroll_expense_override`, `employer_sponsored_insurance_premiums`, `employer_state_unemployment_tax_rate_override`, `employer_total_co_denver_occupational_privilege_tax_employee_months`, `employer_total_co_denver_occupational_privilege_tax_owner_months`, `employer_total_co_glendale_occupational_privilege_tax_employee_months`, `employer_total_co_glendale_occupational_privilege_tax_owner_months`, `employer_total_co_greenwood_village_occupational_privilege_tax_employee_months`, `employer_total_co_greenwood_village_occupational_privilege_tax_owner_months`, `employer_total_co_sheridan_occupational_privilege_tax_employee_months`, `employer_total_mo_st_louis_payroll_expense`, `employer_total_or_lane_transit_district_taxable_wages`, `employer_total_or_trimet_taxable_wages`, `employer_total_payroll_tax_gross_wages`, `employer_total_taxable_earnings_for_federal_unemployment_tax`, `employer_total_taxable_earnings_for_social_security`, `employer_total_taxable_earnings_for_state_unemployment_tax`, `employer_total_wa_seattle_payroll_expense_current_year_total`, `employer_total_wa_seattle_payroll_expense_lower_band_taxable_payroll`, `employer_total_wa_seattle_payroll_expense_prior_year_total`, `employer_total_wa_seattle_payroll_expense_upper_band_taxable_payroll`, `employer_total_wa_seattle_social_housing_excess_compensation`, `er_visit_expense`, `estate_income`, `estate_income_would_be_qualified`, `excess_withheld_payroll_tax`, `farm_income`, `farm_operations_income_would_be_qualified`, `farm_rent_income`, `farm_rent_income_would_be_qualified`, `financial_assistance`, `fl_oss_community_care_type`, `fl_oss_program_track`, `fl_sr_provider_type`, `four_year_college_student`, `fsla_overtime_premium`, `ga_caps_care_type`, `ga_caps_provider_type`, `ga_caps_quality_rating`, `ga_ssp_in_nursing_home_or_institutionalized_hospice`, `gambling_losses`, `gambling_winnings`, `general_assistance`, `general_business_credit`, `gi_cash_assistance`, `has_american_opportunity_credit_1098_t_or_exception`, `has_american_opportunity_credit_institution_ein`, `has_applied_for_unemployment_compensation`, `has_bcc_qualifying_coverage`, `has_champva_health_coverage_at_interview`, `has_chip_health_coverage_at_interview`, `has_developmental_delay`, `has_emergency_medical_condition`, `has_esi`, `has_felony_drug_conviction`, `has_health_coverage_other_than_chip`, `has_indian_health_service_coverage_at_interview`, `has_individualized_education_program`, `has_lifetime_learning_credit_1098_t_or_exception`, `has_long_distance_medical_travel_for_medicaid_ce`, `has_marketplace_health_coverage_at_interview`, `has_medicaid_health_coverage_at_interview`, `has_never_worked`, `has_no_prior_formal_early_learning`, `has_non_marketplace_direct_purchase_health_coverage_at_interview`, `has_other_means_tested_health_coverage_at_interview`, `has_tricare_health_coverage_at_interview`, `has_va_health_coverage_at_interview`, `health_insurance_premiums`, `health_insurance_premiums_without_medicare_part_b`, `health_savings_account_payroll_contributions`, `heating_expense_person`, `hi_ccap_provider_category`, `hi_oss_care_facility_type`, `home_equity`, `home_is_on_agricultural_land`, `hourly_wage`, `hours_worked_last_week`, `ia_cca_provider_type`, `ia_cca_quality_rating`, `id_aabd_living_arrangement`, `id_iccp_provider_type`, `il_aabd_is_bedfast`, `il_ccap_base_day_type`, `illicit_income`, `imaging_expense`, `immigration_status_str`, `in_ccdf_provider_type`, `in_ccdf_ptq_level`, `in_out_of_home_care_facility`, `in_resides_in_licensed_residential_facility`, `in_resides_in_unlicensed_residential_facility`, `inpatient_expense`, `investment_expenses`, `investment_in_529_plan_indv`, `investment_income_elected_form_4952`, `investment_interest_expense`, `is_american_indian_or_alaska_native_for_medicaid_ce`, `is_blind`, `is_born_outside_us`, `is_breastfeeding`, `is_complying_with_tanf_work_requirements`, `is_computer_scientist`, `is_deaf`, `is_deceased`, `is_english_proficient`, `is_enrolled_at_least_half_time_for_american_opportunity_credit`, `is_enrolled_in_ccdf`, `is_enrolled_in_head_start`, `is_executive_administrative_professional`, `is_farmer_fisher`, `is_federal_work_study_participant`, `is_fully_disabled_service_connected_veteran`, `is_grandparent_of_filer_or_spouse`, `is_hispanic`, `is_hospitalized_for_medicaid_ce`, `is_in_adult_residential_care`, `is_in_foster_care`, `is_in_foster_care_group_home`, `is_in_k12_nonpublic_school`, `is_in_medicaid_community_engagement_treatment_program`, `is_in_medicaid_facility`, `is_in_residential_care_facility`, `is_in_substance_use_treatment_program`, `is_in_work_program`, `is_incapable_of_self_care`, `is_incarcerated`, `is_medicaid_1115_mec_adult`, `is_medicaid_community_engagement_seasonal_worker`, `is_medically_frail_or_has_special_medical_needs_for_medicaid_ce`, `is_migratory_child`, `is_military`, `is_paid_hourly`, `is_parent_of_filer_or_spouse`, `is_permanently_and_totally_disabled`, `is_permanently_disabled_veteran`, `is_pregnant`, `is_pursuing_credential_for_american_opportunity_credit`, `is_related_to_head_or_spouse`, `is_runaway_child`, `is_self_employed`, `is_severely_disabled`, `is_snap_abawd_discretionary_exempt`, `is_snap_abawd_indian_exempt`, `is_snap_employment_training_student`, `is_snap_work_incentive_student`, `is_snap_work_program_participant`, `is_snap_work_registration_noncompliant`, `is_snap_workfare_participant`, `is_spm_independent_minor_role`, `is_surviving_child_of_disabled_veteran`, `is_surviving_spouse_of_disabled_veteran`, `is_tafdc_related_to_head_or_spouse`, `is_union_member_or_covered`, `is_wccc_enrolled`, `is_wic_at_nutritional_risk`, `is_wic_fully_breastfeeding`, `keogh_distributions`, `ks_ccap_provider_type`, `ky_additions`, `ky_ccap_provider_type`, `ky_service_credit_months_post_1997`, `ky_service_credit_months_pre_1998`, `ky_ssp_care_receivers`, `ky_ssp_category`, `la_ccap_provider_type`, `la_quality_rating_of_child_care_facility`, `la_receives_blind_exemption`, `lab_expense`, `life_insurance_benefits`, `long_term_capital_gains_basis`, `long_term_capital_gains_on_assets_eligible_for_vt_exclusion`, `long_term_capital_gains_on_collectibles`, `long_term_capital_gains_on_small_business_stock`, `long_term_capital_gains_years_held`, `long_term_health_insurance_premiums`, `ma_ccfa_care_provider_type`, `ma_ccfa_is_in_relatives_home_care`, `ma_ccfa_schedule_type`, `major_industry_recode`, `md_ccs_provider_type`, `md_paa_living_arrangement`, `md_paa_pending_federal_benefit`, `me_ccap_provider_type`, `me_ssp_living_arrangement`, `medicaid_claiming_tax_unit_id`, `medicaid_community_engagement_community_service_hours`, `medicaid_community_engagement_less_than_half_time_education_hours`, `medicaid_community_engagement_six_month_average_income`, `medicaid_community_engagement_work_program_hours`, `medicaid_tax_dependent_exception_non_custodial_parent`, `medicare_part_b_premiums_reported`, `medicare_quarters_of_coverage`, `meets_ssi_disability_criteria`, `mi_ccap_exempt_level`, `mi_ccap_provider_type`, `mi_ccap_star_rating`, `mi_ssp_living_arrangement`, `military_basic_pay`, `military_retirement_pay`, `military_retirement_pay_survivors`, `military_service_income`, `miscellaneous_income`, `mn_ccap_provider_type`, `mn_ccap_quality_rating`, `mn_msa_has_guardian`, `mn_msa_housing_assistance_eligible`, `mn_msa_living_arrangement`, `mn_msa_uses_representative_payee`, `mo_ccs_provider_type`, `mo_kansas_city_earnings_tax_taxable_earnings`, `mo_snc_facility_base_charge`, `mo_ssp_living_arrangement`, `mo_st_louis_earnings_tax_credit`, `mo_st_louis_earnings_tax_taxable_earnings`, `months_receiving_social_security_disability`, `ms_ccpp_provider_type`, `mt_ccap_care_time`, `mt_ccap_provider_type`, `nd_ccap_provider_qris_step`, `nd_ccap_provider_type`, `ne_aabd_alternate_living_arrangement`, `ne_child_care_subsidy_provider_type`, `ne_child_care_subsidy_quality_tier`, `ne_school_readiness_credit_child_care_worker_rating`, `ne_school_readiness_credit_eligible_worker`, `never_eligible_for_social_security_benefits`, `nh_ccap_provider_type`, `nj_ccap_grow_nj_kids_rating`, `nj_ccap_provider_type`, `nj_unemployment_insurance_base_period_wages`, `nj_unemployment_insurance_base_period_weeks`, `nj_unemployment_insurance_qualifying_dependents`, `nj_unemployment_insurance_spouse_employed_when_claim_established`, `nj_unemployment_insurance_weekly_gross_wages`, `nj_unemployment_insurance_weeks_claimed`, `nj_unemployment_insurance_working_less_than_full_time`, `nm_ccap_focus_level`, `nm_ccap_non_traditional_hours`, `nm_ccap_provider_type`, `non_public_school_tuition`, `non_sch_d_capital_gains`, `nv_ccdp_provider_star_rating`, `nv_ccdp_provider_type`, `ny_ui_base_period_wages`, `ny_ui_gross_weekly_earnings`, `ny_ui_high_quarter_wages`, `ny_ui_quarters_with_wages`, `ny_ui_second_high_quarter_wages`, `ny_ui_weekly_hours_worked`, `ny_yonkers_nonresident_earnings`, `offered_aca_disqualifying_esi`, `oh_bonus_depreciation_add_back`, `oh_ccap_has_special_accommodations`, `oh_ccap_is_accredited`, `oh_ccap_non_traditional_hours`, `oh_ccap_owf_transitional`, `oh_ccap_provider_type`, `oh_ccap_quality_tier`, `oh_educator_expense_deduction_person`, `oh_federal_conformity_deductions`, `oh_has_taken_oh_lump_sum_credits`, `oh_homestead_exemption_qualifying_surviving_spouse`, `oh_other_add_backs`, `oh_section_179_expense_add_back`, `oh_uniformed_services_retirement_income_deduction`, `ok_ccs_provider_setting`, `ok_ccs_star_level`, `ok_ui_base_period_taxable_wages`, `ok_ui_base_period_total_wages`, `ok_ui_gross_weekly_earnings`, `ok_ui_high_quarter_taxable_wages`, `ok_ui_high_quarter_total_wages`, `or_erdc_provider_area`, `or_erdc_provider_type`, `other_credits`, `other_health_insurance_premiums`, `other_medical_expenses`, `outpatient_expense`, `over_the_counter_health_expenses`, `p08000`, `pa_ccw_provider_type`, `pa_philadelphia_wage_tax_reduced_rate_eligible`, `pa_philadelphia_wage_tax_resident`, `pa_philadelphia_wage_tax_taxable_wages`, `pa_uc_base_year_wages`, `pa_uc_credit_weeks`, `pa_uc_gross_weekly_earnings`, `pa_uc_highest_quarter_wages`, `partnership_income`, `partnership_s_corp_income_would_be_qualified`, `partnership_self_employment_net_earnings`, `passive_partnership_s_corp_income`, `pell_grant_countable_assets`, `pell_grant_dependent_available_income`, `pell_grant_dependent_other_allowances`, `pell_grant_head_allowances`, `pell_grant_months_in_school`, `pension_survivors`, `person_count`, `personal_property`, `pfml_benefits`, `physician_services_expense`, `pre_subsidy_care_expenses`, `pre_subsidy_transportation_expense`, `pre_tax_health_insurance_premiums`, `prescription_expense`, `previous_year_income_available`, `primary_residence_value`, `prior_year_minimum_tax_credit`, `qualified_adoption_assistance_expense`, `qualified_bdc_income`, `qualified_reit_and_ptp_income`, `qualified_tuition_expenses`, `railroad_benefits`, `receives_medicaid`, `receives_or_needs_protective_services`, `receives_ssi`, `receives_wic`, `rental_income_would_be_qualified`, `retired_from_federal_government`, `retired_from_ky_government`, `retired_on_total_disability`, `retirement_benefits_from_ss_exempt_employment`, `ri_ccap_provider_type`, `ri_ccap_star_rating`, `ri_ccap_step_rating`, `roth_401k_contributions_desired`, `roth_403b_contributions_desired`, `roth_ira_contributions_desired`, `s_corp_income`, `salt_refund_income`, `sc_ccap_provider_type`, `sc_ccap_quality_level`, `sc_ccap_registered_quality_level`, `sc_ccap_second_child_discount_rate`, `sc_tuition_credit`, `sc_tuition_credit_eligible`, `schedule_d_capital_gain_distributions`, `sd_cca_provider_type`, `self_employed_pension_contributions_desired`, `self_employment_income_last_year`, `self_employment_income_would_be_qualified`, `social_security_dependents`, `social_security_disability`, `social_security_survivors`, `ss_aime_input`, `ssi_lives_in_another_persons_household`, `ssi_lives_in_medical_treatment_facility`, `ssi_medicaid_pays_majority_of_care`, `ssi_others_pay_all_meals`, `ssi_qualifying_quarters_earnings`, `ssi_receives_food_from_others`, `ssi_receives_outside_shelter_support`, `ssi_receives_shelter_from_others_in_household`, `ssi_reported`, `ssi_shelter_support_value`, `ssn_card_type`, `sstb_self_employment_income_would_be_qualified`, `sstb_unadjusted_basis_qualified_property`, `sstb_w2_wages_from_qualified_business`, `state_or_federal_salary`, `stock_assets`, `strike_benefits`, `student_loan_interest`, `survivor_benefits`, `tax_exempt_401k_distributions`, `tax_exempt_403b_distributions`, `tax_exempt_ira_distributions`, `tax_exempt_public_pension_income`, `tax_exempt_sep_distributions`, `tax_preparation_fees`, `taxable_401k_distributions`, `taxable_403b_distributions`, `taxable_estate_value`, `taxable_federal_pension_income`, `taxable_ira_distributions`, `taxable_public_pension_income`, `taxable_roth_conversions`, `taxable_sep_distributions`, `technical_institution_student`, `tip_income`, `tn_ccap_provider_type`, `tn_ccap_qris_tier`, `total_disability_payments`, `traditional_401k_contributions_desired`, `traditional_403b_contributions_desired`, `traditional_ira_contributions_desired`, `treasury_tipped_occupation_code`, `tx_ccs_care_schedule`, `tx_ccs_provider_rating`, `tx_ccs_provider_type`, `unadjusted_basis_qualified_property`, `under_12_months_postpartum`, `under_60_days_postpartum`, `unemployment_compensation`, `unreimbursed_business_employee_expenses`, `urgent_care_expense`, `us_bonds_for_higher_ed`, `us_govt_interest_person`, `use_reported_ssi`, `ut_ccap_provider_type`, `ut_ui_base_period_wages`, `ut_ui_gross_weekly_earnings`, `ut_ui_high_quarter_wages`, `ut_ui_quarters_with_wages`, `ut_ui_weekly_hours_worked`, `ut_ui_weeks_unemployed`, `va_ccsp_is_full_day`, `va_ccsp_provider_type`, `va_educator_expenses`, `veterans_benefits`, `vt_ccfap_provider_type`, `w2_wages_from_qualified_business`, `wa_eceap_slot_type`, `wa_pfml_average_weekly_wage_override`, `wa_pfml_leave_type`, `wa_pfml_qualifying_period_hours_worked`, `wa_wccc_day_type`, `wa_wccc_provider_type`, `was_in_foster_care`, `was_recently_incarcerated_for_medicaid_ce`, `weekly_snap_work_program_hours`, `weeks_unemployed`, `wi_shares_provider_type`, `wic_breastfeeding_infant_count`, `wic_infant_feeding_category`, `workers_compensation`, `wv_ccap_non_traditional_hours`, `wv_ccap_provider_type`, `wv_ccap_quality_tier`, `wy_ccap_provider_type`, `year_deceased`, `year_of_retirement`, `years_in_military`, `years_since_us_entry` +`ak_ssp_excluded_institutional_setting`, `auto_loan_balance`, `auto_loan_interest`, `average_home_energy_use_in_state`, `bedrooms`, `block_geoid`, `cbo_corporate_income_tax`, `cbo_excise_tax`, `cbsa_code`, `congressional_district_geoid`, `county_fips`, `ct_tfa_region`, `current_home_energy_use`, `de_ssp_living_arrangement`, `household_business_assets_debt`, `household_business_assets_equity`, `household_business_assets_value`, `household_count`, `household_income_ami_ratio`, `household_other_real_estate_debt`, `household_other_real_estate_equity`, `household_other_real_estate_value`, `household_rental_property_debt`, `household_rental_property_equity`, `household_rental_property_value`, `household_vehicles_debt`, `household_vehicles_equity`, `household_vehicles_owned`, `household_vehicles_value`, `in_denver`, `in_wilmington`, `in_yonkers`, `is_homeless`, `is_non_english_speaking_home`, `is_on_tribal_land`, `is_rural`, `is_shared_living`, `is_sro`, `living_arrangements_allow_for_food_preparation`, `ma_state_living_arrangement`, `net_worth`, `ny_drive_clean_purchased_qualifying_vehicle`, `ny_drive_clean_vehicle_cost`, `ny_drive_clean_vehicle_electric_range`, `parent_has_less_than_high_school_education`, `place_fips`, `puma`, `qualified_passenger_vehicle_loan_interest`, `sldl`, `sldu`, `state_fips`, `tenant_pays_utilities`, `tract_geoid`, `vtd`, `wi_cts_tribal_area_i`, `zcta`, `zip_code` -### spm_unit (102) +### marital_unit (1) -`al_ccsp_enrolled`, `ar_months_since_tea_exit`, `ar_was_tea_recipient`, `az_ccap_enrolled`, `bottled_gas_expense`, `broadband_cost`, `ca_riv_share_eligible_for_emergency_payment`, `ca_scc_general_assistance_living_arrangement`, `ca_sf_caap_clothing_provided_in_kind`, `ca_sf_caap_food_provided_in_kind`, `ca_sf_caap_housing_provided_in_kind`, `ca_sf_caap_is_recipient`, `ca_sf_caap_utilities_provided_in_kind`, `ca_smc_general_assistance_living_arrangement`, `co_ccap_is_in_entry_process`, `co_ccap_is_in_re_determination_process`, `coal_expense`, `cooking_fuel_expense`, `dc_ccsp_enrolled`, `dc_liheap_housing_type`, `de_poc_enrolled`, `enrolled_in_ebb`, `experienced_covid_income_loss`, `fdpir`, `fl_sr_enrolled`, `fuel_oil_expense`, `ga_caps_enrolled`, `gas_expense`, `has_cooling_expense`, `head_start_applies_housing_cost_adjustment`, `head_start_uses_discretionary_income_limit`, `heat_expense_included_in_rent`, `heating_cooling_expense`, `heating_expense_last_year`, `heating_type`, `homeowners_association_fees`, `homeowners_insurance`, `housing_designated_welfare`, `ia_cca_enrolled`, `id_iccp_enrolled`, `il_aabd_institutional_status`, `il_aabd_vehicle_is_essential`, `il_ccap_enrolled`, `il_ccap_non_parent_relative_child_only_tanf`, `il_ccap_protective_care_override`, `il_liheap_eligible_for_crisis_assistance`, `is_in_ccdf_enrolled`, `is_nd_ccap_enrolled`, `is_sd_cca_enrolled`, `is_wi_shares_enrolled`, `la_general_relief_disability_eligible`, `la_general_relief_housing_subsidy_program_eligible`, `la_general_relief_recipient`, `ma_ccfa_enrolled`, `ma_eaedc_living_arrangement`, `md_ccs_enrolled`, `meets_ccdf_activity_test`, `metered_gas_expense`, `mi_ccap_enrolled`, `mn_ccap_enrolled`, `mn_ccap_registration_fee`, `mo_ccs_enrolled`, `months_since_calworks_exit`, `mt_ccap_enrolled`, `ne_child_care_subsidy_at_redetermination`, `ne_child_care_subsidy_enrolled`, `nj_ccap_enrolled`, `nm_ccap_enrolled`, `nv_ccdp_enrolled`, `oh_ccap_enrolled`, `oh_ccap_owf_basic_assistance`, `other_heating_fuel_expense`, `pa_ccw_enrolled`, `pa_ccw_has_stepparent`, `phone_cost`, `pre_subsidy_electricity_expense`, `receives_housing_assistance`, `receives_snap`, `receives_tanf`, `ri_ccap_enrolled`, `sd_tanf_is_shared_living`, `sewage_expense`, `snap_self_employment_income_expense`, `spm_unit_assets`, `spm_unit_count`, `spm_unit_energy_subsidy`, `spm_unit_net_income_reported`, `spm_unit_pre_subsidy_childcare_expenses`, `spm_unit_school_lunch_subsidy`, `spm_unit_snap`, `spm_unit_total_income_reported`, `tn_ccap_enrolled`, `tn_ccap_protective_services_waiver`, `trash_expense`, `tx_ottanf_crisis_criteria`, `va_ccsp_enrolled`, `wa_show_all_cash_assistance_programs`, `was_calworks_recipient`, `water_expense`, `wood_expense`, `wy_ccap_enrolled`, `wy_power_shelter_qualified` +`mortgage_and_real_estate_taxes_paid_from_joint_account` -### tax_unit (139) +### person (657) -`advanced_main_air_circulating_fan_expenditures`, `air_sealing_ventilation_expenditures`, `al_non_refundable_credits`, `al_refundable_credits`, `amt_form_completed`, `amt_non_agi_income`, `az_additions`, `az_charitable_contributions_to_qualifying_charitable_organizations`, `az_charitable_contributions_to_qualifying_foster_care_organizations`, `biomass_stove_boiler_expenditures`, `co_non_refundable_credits`, `co_property_tax_exemption`, `cohabitating_spouses`, `ct_amt`, `ct_section_179_expense_add_back`, `domestic_production_ald`, `electric_heat_pump_clothes_dryer_expenditures`, `electric_load_service_center_upgrade_expenditures`, `electric_stove_cooktop_range_or_oven_expenditures`, `electric_wiring_expenditures`, `energy_efficient_central_air_conditioner_expenditures`, `energy_efficient_door_expenditures`, `energy_efficient_insulation_expenditures`, `energy_efficient_roof_expenditures`, `energy_efficient_window_expenditures`, `excess_payroll_tax_withheld`, `first_home_mortgage_balance`, `first_home_mortgage_interest`, `first_home_mortgage_origination_year`, `foreign_earned_income_exclusion`, `foreign_tax_credit_potential`, `form_4972_lumpsum_distributions`, `fuel_cell_property_capacity`, `fuel_cell_property_expenditures`, `ga_investment_in_529_plan_deduction`, `ga_itemized_deductions_adjustment`, `geothermal_heat_pump_property_expenditures`, `health_savings_account_ald`, `heat_pump_expenditures`, `heat_pump_water_heater_expenditures`, `home_energy_audit_expenditures`, `id_additions`, `il_pass_through_entity_tax_credit`, `il_pass_through_withholding`, `il_schedule_m_additions`, `il_schedule_m_subtractions`, `in_bonus_depreciation_add_back`, `in_healthcare_sharing_deduction`, `in_nol`, `in_nol_add_back`, `in_oos_municipal_obligation_interest_add_back`, `in_other_add_backs`, `in_other_deductions`, `in_section_179_expense_add_back`, `in_tax_add_back`, `in_use_tax`, `investment_income_form_4952`, `is_barred_from_american_opportunity_credit_due_to_improper_claims`, `is_nonresident_alien_for_american_opportunity_credit`, `is_nonresident_alien_for_lifetime_learning_credit`, `k12_tuition_and_fees`, `ks_additions`, `ky_refundable_credits`, `md_total_additions`, `me_additions`, `me_affordability_payment_subtraction_reported`, `me_property_tax_fairness_credit_utilities_in_rent_amount`, `me_step_4_share_of_child_care_expenses`, `mi_non_refundable_credits`, `mn_renters_credit_property_tax_exempt`, `mn_renters_credit_qualifying_crp`, `ms_charitable_contributions_to_qualifying_foster_care_organizations`, `ms_refundable_credits`, `nc_additions`, `nd_refundable_credits`, `nd_renters_refund_property_tax_exempt`, `ne_additions`, `new_clean_vehicle_battery_capacity`, `new_clean_vehicle_battery_components_made_in_north_america`, `new_clean_vehicle_battery_critical_minerals_extracted_in_trading_partner_country`, `new_clean_vehicle_classification`, `new_clean_vehicle_msrp`, `nh_refundable_credits`, `nj_non_refundable_credits`, `nj_senior_freeze`, `nm_additions`, `nm_non_refundable_credits`, `ny_additions`, `ny_qualified_geothermal_energy_system_expenditures`, `ny_qualified_solar_energy_systems_equipment_expenditures`, `nyc_unincorporated_business_credit`, `oh_refundable_credits`, `ok_additions`, `ok_adjustments`, `or_additions`, `or_federal_pension_subtraction`, `or_tax_before_credits_in_prior_year`, `other_net_gain`, `pell_grant_primary_income`, `prior_energy_efficient_home_improvement_credits`, `prior_energy_efficient_window_credits`, `property_sales_net_capital_gain`, `puerto_rico_income`, `purchased_qualifying_new_clean_vehicle`, `purchased_qualifying_used_clean_vehicle`, `qualified_battery_storage_technology_expenditures`, `qualified_furnace_or_hot_water_boiler_expenditures`, `qualified_retirement_penalty`, `recapture_of_investment_credit`, `refundable_payroll_tax_credit`, `rent_is_shared_with_another_tax_unit`, `residential_efficiency_electrification_retrofit_energy_savings`, `residential_efficiency_electrification_retrofit_expenditures`, `ri_section_179_expense_add_back`, `salt_refund_last_year`, `second_home_mortgage_balance`, `second_home_mortgage_interest`, `second_home_mortgage_origination_year`, `selected_marketplace_plan_benchmark_ratio`, `selected_marketplace_plan_category`, `separate_filer_itemizes`, `small_wind_energy_property_expenditures`, `solar_electric_property_expenditures`, `solar_water_heating_property_expenditures`, `specified_possession_income`, `tax_unit_count`, `tax_unit_income_ami_ratio`, `tax_unit_stillborn_children`, `taxsim_pprofinc`, `taxsim_sprofinc`, `tuition_and_fees`, `unrecaptured_section_1250_gain`, `unreported_payroll_tax`, `used_clean_vehicle_sale_price`, `ut_additions`, `utilities_included_in_rent`, `va_additions`, `wa_pte_cotenant_disposable_income`, `wv_additions` +`able_contributions_person`, `adopted_this_year`, `after_school_expenses`, `ak_ccap_care_schedule`, `ak_ccap_charged_rate`, `ak_ccap_provider_type`, `ak_resides_in_assisted_living_home`, `al_ccsp_provider_type`, `al_ccsp_quality_tier`, `al_level_b_care`, `al_meets_snf_criteria`, `al_receives_elderly_disabled_medicaid_waiver`, `al_ssp_care_setting`, `al_ssp_grandfathered`, `al_ssp_living_arrangement`, `al_ui_base_period_wages`, `al_ui_high_quarter_wages`, `al_ui_quarters_with_wages`, `al_ui_second_high_quarter_wages`, `al_ui_weekly_earnings`, `alimony_expense`, `alimony_income`, `ambulance_expense`, `american_opportunity_credit_claimed_prior_years`, `amt_foreign_tax_credit`, `ar_sra_care_type`, `attends_eligible_educational_institution_for_american_opportunity_credit`, `attends_eligible_educational_institution_for_lifetime_learning_credit`, `az_530a_distribution`, `az_ccap_provider_type`, `az_ccap_quality_enhanced_provider`, `bank_account_assets`, `bond_assets`, `business_is_qualified`, `business_is_sstb`, `ca_calworks_child_care_factor_category`, `ca_calworks_child_care_provider_category`, `ca_calworks_child_care_time_category`, `ca_calworks_child_care_welfare_to_work`, `ca_cvrp_vehicle_rebate_amount`, `ca_in_home_supportive_services`, `ca_in_medical_care_facility`, `ca_state_disability_insurance`, `care_and_support_costs`, `care_and_support_payments_from_tax_filer`, `casualty_loss`, `charitable_capital_gain_donations_50_pct_orgs`, `charitable_capital_gain_donations_non_50_pct_orgs`, `charitable_cash_donations`, `charitable_cash_donations_50_pct_orgs`, `charitable_cash_donations_non_50_pct_orgs`, `charitable_non_cash_donations`, `charitable_non_cash_donations_50_pct_orgs`, `charitable_non_cash_donations_non_50_pct_orgs`, `child_support_expense`, `child_support_received`, `childcare_attending_days_per_month`, `childcare_days_per_week`, `childcare_hours_per_day`, `childcare_provider_type_group`, `claim_of_right_repayment`, `claimed_as_dependent_on_another_return`, `claimed_ma_covid_19_essential_employee_premium_pay_program_2020`, `co_care_worker_credit_eligible_care_worker`, `co_denver_employee_occupational_privilege_tax_months`, `co_glendale_employee_occupational_privilege_tax_months`, `co_greenwood_village_employee_occupational_privilege_tax_months`, `co_quality_rating_of_child_care_facility`, `co_sheridan_employee_occupational_privilege_tax_months`, `collectibles_gain_or_loss`, `cost_of_attending_college`, `count_529_contribution_beneficiaries`, `cps_race`, `csrs_retirement_pay`, `ct_c4k_provider_accredited`, `ct_c4k_provider_type`, `ct_ssp_has_therapeutic_diet`, `ct_ssp_lives_with_others`, `ct_ssp_resides_in_boarding_home`, `current_pregnancy_month`, `dc_ccsp_childcare_provider_category`, `dc_ccsp_schedule_type`, `dc_ossp_facility_size`, `dc_ossp_in_adult_foster_care`, `dc_other_additions`, `dc_other_subtractions`, `de_other_additions`, `de_other_subtractions`, `de_poc_provider_type`, `de_wilmington_nonresident_earnings`, `debt_relief`, `deceased_spousal_unused_exclusion_amount`, `dependent_care_employer_benefits`, `dependent_claimant_filing_exception`, `detailed_industry_recode`, `detailed_occupation_recode`, `disability_benefits`, `disability_benefits_before_minimum_retirement_age`, `divorce_year`, `e00700`, `e01100`, `e01200`, `e02000`, `e03220`, `e03230`, `e03240`, `e03270`, `e03290`, `e03300`, `e03400`, `e03500`, `e07240`, `e07260`, `e07300`, `e09700`, `e09800`, `e09900`, `e11200`, `e18500`, `e19200`, `e19800`, `e20100`, `e20400`, `e24515`, `e24518`, `e26270`, `e27200`, `e32800`, `e58990`, `e62900`, `e87521`, `e87530`, `early_withdrawal_penalty`, `educational_assistance`, `educator_expense`, `eitc_passive_income_also_in_earned_income`, `employer_contribution_to_health_insurance_premiums_category`, `employer_headcount`, `employer_ny_mctmt_zone_1_quarterly_payroll_expense`, `employer_ny_mctmt_zone_2_quarterly_payroll_expense`, `employer_quarterly_payroll_expense_override`, `employer_sponsored_insurance_premiums`, `employer_state_unemployment_tax_rate_override`, `employer_total_co_denver_occupational_privilege_tax_employee_months`, `employer_total_co_denver_occupational_privilege_tax_owner_months`, `employer_total_co_glendale_occupational_privilege_tax_employee_months`, `employer_total_co_glendale_occupational_privilege_tax_owner_months`, `employer_total_co_greenwood_village_occupational_privilege_tax_employee_months`, `employer_total_co_greenwood_village_occupational_privilege_tax_owner_months`, `employer_total_co_sheridan_occupational_privilege_tax_employee_months`, `employer_total_mo_st_louis_payroll_expense`, `employer_total_or_lane_transit_district_taxable_wages`, `employer_total_or_trimet_taxable_wages`, `employer_total_payroll_tax_gross_wages`, `employer_total_taxable_earnings_for_federal_unemployment_tax`, `employer_total_taxable_earnings_for_social_security`, `employer_total_taxable_earnings_for_state_unemployment_tax`, `employer_total_wa_seattle_payroll_expense_current_year_total`, `employer_total_wa_seattle_payroll_expense_lower_band_taxable_payroll`, `employer_total_wa_seattle_payroll_expense_prior_year_total`, `employer_total_wa_seattle_payroll_expense_upper_band_taxable_payroll`, `employer_total_wa_seattle_social_housing_excess_compensation`, `er_visit_expense`, `estate_income`, `estate_income_net_investment_income_adjustment`, `estate_income_would_be_qualified`, `excess_withheld_payroll_tax`, `farm_income`, `farm_operations_income_would_be_qualified`, `farm_rent_income`, `farm_rent_income_would_be_qualified`, `financial_assistance`, `fl_oss_community_care_type`, `fl_oss_program_track`, `fl_sr_provider_type`, `four_year_college_student`, `fsla_overtime_premium`, `ga_caps_care_type`, `ga_caps_provider_type`, `ga_caps_quality_rating`, `ga_ssp_in_nursing_home_or_institutionalized_hospice`, `gambling_losses`, `gambling_winnings`, `general_assistance`, `general_business_credit`, `gi_cash_assistance`, `has_american_opportunity_credit_1098_t_or_exception`, `has_american_opportunity_credit_institution_ein`, `has_applied_for_unemployment_compensation`, `has_bcc_qualifying_coverage`, `has_champva_health_coverage_at_interview`, `has_chip_health_coverage_at_interview`, `has_developmental_delay`, `has_emergency_medical_condition`, `has_esi`, `has_felony_drug_conviction`, `has_health_coverage_other_than_chip`, `has_indian_health_service_coverage_at_interview`, `has_individualized_education_program`, `has_lifetime_learning_credit_1098_t_or_exception`, `has_long_distance_medical_travel_for_medicaid_ce`, `has_marketplace_health_coverage_at_interview`, `has_medicaid_health_coverage_at_interview`, `has_never_worked`, `has_no_prior_formal_early_learning`, `has_non_marketplace_direct_purchase_health_coverage_at_interview`, `has_other_means_tested_health_coverage_at_interview`, `has_tricare_health_coverage_at_interview`, `has_va_health_coverage_at_interview`, `health_insurance_premiums`, `health_insurance_premiums_without_medicare_part_b`, `health_savings_account_ald_person`, `health_savings_account_payroll_contributions`, `heating_expense_person`, `hi_ccap_provider_category`, `hi_oss_care_facility_type`, `home_equity`, `home_is_on_agricultural_land`, `home_mortgage_points`, `hourly_wage`, `hours_worked_last_week`, `ia_cca_provider_type`, `ia_cca_quality_rating`, `id_aabd_living_arrangement`, `id_iccp_provider_type`, `il_aabd_is_bedfast`, `il_ccap_base_day_type`, `illicit_income`, `imaging_expense`, `immigration_status_str`, `in_ccdf_provider_type`, `in_ccdf_ptq_level`, `in_out_of_home_care_facility`, `in_resides_in_licensed_residential_facility`, `in_resides_in_unlicensed_residential_facility`, `inpatient_expense`, `investment_expenses`, `investment_in_529_plan_indv`, `investment_income_elected_form_4952`, `investment_interest_expense`, `is_american_indian_or_alaska_native_for_medicaid_ce`, `is_blind`, `is_born_outside_us`, `is_breastfeeding`, `is_complying_with_tanf_work_requirements`, `is_computer_scientist`, `is_deaf`, `is_deceased`, `is_english_proficient`, `is_enrolled_at_least_half_time_for_american_opportunity_credit`, `is_enrolled_in_ccdf`, `is_enrolled_in_head_start`, `is_executive_administrative_professional`, `is_farmer_fisher`, `is_federal_work_study_participant`, `is_fully_disabled_service_connected_veteran`, `is_grandparent_of_filer_or_spouse`, `is_hispanic`, `is_hospitalized_for_medicaid_ce`, `is_in_adult_residential_care`, `is_in_foster_care`, `is_in_foster_care_group_home`, `is_in_k12_nonpublic_school`, `is_in_medicaid_community_engagement_treatment_program`, `is_in_medicaid_facility`, `is_in_residential_care_facility`, `is_in_substance_use_treatment_program`, `is_in_work_program`, `is_incapable_of_self_care`, `is_incarcerated`, `is_medicaid_1115_mec_adult`, `is_medicaid_community_engagement_seasonal_worker`, `is_medically_frail_or_has_special_medical_needs_for_medicaid_ce`, `is_migratory_child`, `is_military`, `is_paid_hourly`, `is_parent_of_filer_or_spouse`, `is_permanently_and_totally_disabled`, `is_permanently_disabled_veteran`, `is_pregnant`, `is_pursuing_credential_for_american_opportunity_credit`, `is_related_to_head_or_spouse`, `is_runaway_child`, `is_self_employed`, `is_severely_disabled`, `is_snap_abawd_discretionary_exempt`, `is_snap_abawd_indian_exempt`, `is_snap_employment_training_student`, `is_snap_lpr_in_waiting_period_exempt_category`, `is_snap_work_incentive_student`, `is_snap_work_program_participant`, `is_snap_work_registration_noncompliant`, `is_snap_workfare_participant`, `is_spm_independent_minor_role`, `is_surviving_child_of_disabled_veteran`, `is_surviving_spouse_of_disabled_veteran`, `is_tafdc_related_to_head_or_spouse`, `is_under_court_supervision`, `is_union_member_or_covered`, `is_wccc_enrolled`, `is_wic_at_nutritional_risk`, `is_wic_fully_breastfeeding`, `keogh_distributions`, `ks_ccap_provider_type`, `ky_ccap_provider_type`, `ky_other_additions`, `ky_other_subtractions`, `ky_service_credit_months_post_1997`, `ky_service_credit_months_pre_1998`, `ky_ssp_care_receivers`, `ky_ssp_category`, `la_ccap_provider_type`, `la_quality_rating_of_child_care_facility`, `la_receives_blind_exemption`, `lab_expense`, `life_insurance_benefits`, `long_term_capital_gains_basis`, `long_term_capital_gains_on_assets_eligible_for_vt_exclusion`, `long_term_capital_gains_on_collectibles`, `long_term_capital_gains_on_small_business_stock`, `long_term_capital_gains_years_held`, `long_term_capital_loss_carryover`, `long_term_health_insurance_premiums`, `ma_ccfa_care_provider_type`, `ma_ccfa_is_in_relatives_home_care`, `ma_ccfa_schedule_type`, `major_industry_recode`, `md_ccs_provider_type`, `md_paa_living_arrangement`, `md_paa_pending_federal_benefit`, `me_ccap_provider_type`, `me_ssp_living_arrangement`, `medicaid_claiming_tax_unit_id`, `medicaid_community_engagement_community_service_hours`, `medicaid_community_engagement_less_than_half_time_education_hours`, `medicaid_community_engagement_six_month_average_income`, `medicaid_community_engagement_work_program_hours`, `medicaid_tax_dependent_exception_non_custodial_parent`, `medicare_part_b_premiums_reported`, `medicare_quarters_of_coverage`, `meets_ssi_disability_criteria`, `mi_ccap_exempt_level`, `mi_ccap_provider_type`, `mi_ccap_star_rating`, `mi_ssp_living_arrangement`, `military_basic_pay`, `military_retirement_pay`, `military_retirement_pay_survivors`, `military_service_income`, `miscellaneous_income`, `mn_ccap_provider_type`, `mn_ccap_quality_rating`, `mn_msa_has_guardian`, `mn_msa_housing_assistance_eligible`, `mn_msa_living_arrangement`, `mn_msa_uses_representative_payee`, `mo_ccs_provider_type`, `mo_kansas_city_earnings_tax_taxable_earnings`, `mo_other_additions`, `mo_other_subtractions`, `mo_sab_reported_earnings_taxes`, `mo_snc_facility_base_charge`, `mo_ssp_living_arrangement`, `mo_st_louis_earnings_tax_credit`, `mo_st_louis_earnings_tax_taxable_earnings`, `mo_tanf_is_non_parent_caretaker`, `mo_tanf_non_parent_caretaker_opts_out`, `months_receiving_social_security_disability`, `mortgage_insurance_premiums`, `ms_ccpp_provider_type`, `mt_ccap_care_time`, `mt_ccap_provider_type`, `mt_elderly_homeowner_or_renter_credit_property_tax_rebate_received`, `mt_elderly_homeowner_or_renter_credit_received`, `mt_other_additions`, `mt_other_subtractions`, `mt_ssp_payment_category`, `nc_claim_of_right_repayment_excluded_from_income`, `nc_lieap_bank_account_exclusions`, `nc_lieap_is_daas_disabled`, `nc_lieap_nonbank_resources`, `nc_military_retirement_survivor_eligible`, `nc_sa_care_setting`, `nc_sa_facility_rate`, `nd_ccap_provider_qris_step`, `nd_ccap_provider_type`, `ne_aabd_alternate_living_arrangement`, `ne_child_care_subsidy_provider_type`, `ne_child_care_subsidy_quality_tier`, `ne_school_readiness_credit_child_care_worker_rating`, `ne_school_readiness_credit_eligible_worker`, `never_eligible_for_social_security_benefits`, `nh_ccap_provider_type`, `nh_ssp_essential_person_countable_income`, `nh_ssp_essential_person_resources`, `nh_ssp_grant_reduction_applies`, `nh_ssp_has_essential_person`, `nj_ccap_grow_nj_kids_rating`, `nj_ccap_provider_type`, `nj_other_additions`, `nj_other_subtractions`, `nj_ssp_care_setting`, `nj_unemployment_insurance_base_period_wages`, `nj_unemployment_insurance_base_period_weeks`, `nj_unemployment_insurance_qualifying_dependents`, `nj_unemployment_insurance_spouse_employed_when_claim_established`, `nj_unemployment_insurance_weekly_gross_wages`, `nj_unemployment_insurance_weeks_claimed`, `nj_unemployment_insurance_working_less_than_full_time`, `nm_ccap_focus_level`, `nm_ccap_non_traditional_hours`, `nm_ccap_provider_type`, `non_public_school_tuition`, `non_sch_d_capital_gains`, `nv_ccdp_provider_star_rating`, `nv_ccdp_provider_type`, `nv_oss_care_setting`, `ny_ssp_care_setting`, `ny_ui_base_period_wages`, `ny_ui_gross_weekly_earnings`, `ny_ui_high_quarter_wages`, `ny_ui_quarters_with_wages`, `ny_ui_second_high_quarter_wages`, `ny_ui_weekly_hours_worked`, `ny_yonkers_nonresident_earnings`, `offered_aca_disqualifying_esi`, `oh_bonus_depreciation_add_back`, `oh_ccap_has_special_accommodations`, `oh_ccap_is_accredited`, `oh_ccap_non_traditional_hours`, `oh_ccap_owf_transitional`, `oh_ccap_provider_type`, `oh_ccap_quality_tier`, `oh_educator_expense_deduction_person`, `oh_federal_conformity_deductions`, `oh_has_taken_oh_lump_sum_credits`, `oh_homestead_exemption_qualifying_surviving_spouse`, `oh_other_additions`, `oh_other_subtractions`, `oh_qualifying_capital_gain`, `oh_qualifying_capital_gain_deductible_payroll`, `oh_rss_certified`, `oh_section_179_expense_add_back`, `ok_ccs_provider_setting`, `ok_ccs_star_level`, `ok_ssp_is_excluded`, `ok_ui_base_period_taxable_wages`, `ok_ui_base_period_total_wages`, `ok_ui_gross_weekly_earnings`, `ok_ui_high_quarter_taxable_wages`, `ok_ui_high_quarter_total_wages`, `or_erdc_provider_area`, `or_erdc_provider_type`, `or_ssp_approved_initial_room_board`, `or_ssp_care_liability`, `or_ssp_category`, `or_ssp_inaccessible_income`, `or_ssp_spousal_diversion_difference`, `other_credits`, `other_health_insurance_premiums`, `other_medical_expenses`, `outpatient_expense`, `over_the_counter_health_expenses`, `p08000`, `pa_ccw_provider_type`, `pa_philadelphia_wage_tax_reduced_rate_eligible`, `pa_philadelphia_wage_tax_resident`, `pa_philadelphia_wage_tax_taxable_wages`, `pa_ssp_care_home`, `pa_uc_base_year_wages`, `pa_uc_credit_weeks`, `pa_uc_gross_weekly_earnings`, `pa_uc_highest_quarter_wages`, `parent_1_id`, `parent_2_id`, `partnership_income`, `partnership_s_corp_income_would_be_qualified`, `partnership_self_employment_net_earnings`, `passive_estate_income`, `passive_partnership_s_corp_income`, `pell_grant_countable_assets`, `pell_grant_dependent_available_income`, `pell_grant_dependent_other_allowances`, `pell_grant_head_allowances`, `pell_grant_months_in_school`, `pension_survivors`, `person_count`, `personal_property`, `pfml_benefits`, `physician_services_expense`, `pre_subsidy_care_expenses`, `pre_subsidy_transportation_expense`, `pre_tax_health_insurance_premiums`, `prescription_expense`, `previous_year_income_available`, `primary_residence_value`, `prior_year_minimum_tax_credit`, `qualified_adoption_assistance_expense`, `qualified_bdc_income`, `qualified_reit_and_ptp_income`, `qualified_tuition_expenses`, `railroad_benefits`, `receives_medicaid`, `receives_or_needs_protective_services`, `receives_ssi`, `receives_wic`, `rental_income_would_be_qualified`, `retired_from_federal_government`, `retired_from_ky_government`, `retired_on_total_disability`, `retirement_benefits_from_ss_exempt_employment`, `ri_ccap_provider_type`, `ri_ccap_star_rating`, `ri_ccap_step_rating`, `ri_ssp_certified_residential_care`, `roth_401k_contributions_desired`, `roth_403b_contributions_desired`, `roth_ira_contributions_desired`, `s_corp_income`, `salt_refund_income`, `sc_ccap_provider_type`, `sc_ccap_quality_level`, `sc_ccap_registered_quality_level`, `sc_ccap_second_child_discount_rate`, `sc_tuition_credit`, `sc_tuition_credit_eligible`, `schedule_d_capital_gain_distributions`, `sd_cca_provider_type`, `sd_ssp_approved_care_cost`, `sd_ssp_care_certified`, `sd_ssp_care_income_deductions`, `sd_ssp_care_setting`, `second_residence_mortgage_insurance_premiums`, `second_residence_mortgage_interest`, `second_residence_mortgage_points`, `section_1202_gain`, `self_employed_pension_contributions_desired`, `self_employment_income_last_year`, `self_employment_income_would_be_qualified`, `snap_alien_qualifying_quarters`, `social_security_dependents`, `social_security_disability`, `social_security_survivors`, `ss_aime_input`, `ssi_lives_in_another_persons_household`, `ssi_lives_in_medical_treatment_facility`, `ssi_medicaid_pays_majority_of_care`, `ssi_others_pay_all_meals`, `ssi_qualifying_quarters_earnings`, `ssi_receives_food_from_others`, `ssi_receives_outside_shelter_support`, `ssi_receives_shelter_from_others_in_household`, `ssi_reported`, `ssi_resource_deeming_child_is_ineligible`, `ssi_resource_deeming_excluded_military_resources`, `ssi_resource_deeming_waiver`, `ssi_shelter_support_value`, `ssn_card_type`, `sstb_self_employment_income_would_be_qualified`, `sstb_unadjusted_basis_qualified_property`, `sstb_w2_wages_from_qualified_business`, `state_or_federal_salary`, `stock_assets`, `strike_benefits`, `student_loan_interest`, `survivor_benefits`, `takes_up_medicare_part_d_if_eligible`, `tax_exempt_401k_distributions`, `tax_exempt_403b_distributions`, `tax_exempt_disability_benefits`, `tax_exempt_ira_distributions`, `tax_exempt_public_pension_income`, `tax_exempt_sep_distributions`, `tax_preparation_fees`, `tax_unit_role_input`, `taxable_401k_distributions`, `taxable_403b_distributions`, `taxable_estate_value`, `taxable_federal_pension_income`, `taxable_ira_distributions`, `taxable_public_pension_income`, `taxable_roth_conversions`, `taxable_sep_distributions`, `technical_institution_student`, `tip_income`, `tn_ccap_provider_type`, `tn_ccap_qris_tier`, `total_disability_payments`, `traditional_401k_contributions_desired`, `traditional_403b_contributions_desired`, `traditional_ira_contributions_desired`, `treasury_tipped_occupation_code`, `tx_ccs_care_schedule`, `tx_ccs_provider_rating`, `tx_ccs_provider_type`, `unadjusted_basis_qualified_property`, `under_12_months_postpartum`, `under_60_days_postpartum`, `unemployment_compensation`, `unreimbursed_business_employee_expenses`, `urgent_care_expense`, `us_bonds_for_higher_ed`, `us_govt_interest_person`, `use_reported_ssi`, `ut_ccap_provider_type`, `ut_ui_base_period_wages`, `ut_ui_gross_weekly_earnings`, `ut_ui_high_quarter_wages`, `ut_ui_quarters_with_wages`, `ut_ui_weekly_hours_worked`, `ut_ui_weeks_unemployed`, `va_ag_certified`, `va_ag_facility_rate`, `va_ccsp_provider_type`, `va_educator_expenses`, `veterans_benefits`, `vt_aabd_care_setting`, `vt_aabd_ep_additional_countable_income`, `vt_aabd_ep_level`, `vt_aabd_ep_nonspouse_essential_person`, `vt_aabd_ep_passes_state_resource_test`, `vt_ccfap_provider_type`, `w2_wages_from_qualified_business`, `wa_eceap_slot_type`, `wa_pfml_average_weekly_wage_override`, `wa_pfml_leave_type`, `wa_pfml_qualifying_period_hours_worked`, `wa_wccc_day_type`, `wa_wccc_provider_type`, `was_in_foster_care`, `was_recently_incarcerated_for_medicaid_ce`, `weekly_snap_work_program_hours`, `weeks_unemployed`, `weeks_worked`, `wi_cts_additional_flat_disregard`, `wi_cts_additional_fraction_disregard`, `wi_cts_child_excluded`, `wi_cts_graduates_before_19`, `wi_cts_other_countable_resources`, `wi_cts_other_qualifying_immigration_status`, `wi_cts_part_time_student`, `wi_cts_received_recently`, `wi_shares_provider_type`, `wi_ssi_e_certified`, `wi_ssi_e_for_home_care`, `wi_ssp_institutional_continuation`, `wic_breastfeeding_infant_count`, `wic_infant_feeding_category`, `workers_compensation`, `wv_ccap_non_traditional_hours`, `wv_ccap_provider_type`, `wv_ccap_quality_tier`, `wy_ccap_provider_type`, `year_deceased`, `year_of_retirement`, `years_in_military`, `years_since_us_entry` + +### spm_unit (111) + +`al_ccsp_enrolled`, `ar_months_since_tea_exit`, `ar_was_tea_recipient`, `az_ccap_enrolled`, `bottled_gas_expense`, `broadband_cost`, `ca_riv_share_eligible_for_emergency_payment`, `ca_scc_general_assistance_living_arrangement`, `ca_sf_caap_clothing_provided_in_kind`, `ca_sf_caap_food_provided_in_kind`, `ca_sf_caap_housing_provided_in_kind`, `ca_sf_caap_is_recipient`, `ca_sf_caap_utilities_provided_in_kind`, `ca_smc_general_assistance_living_arrangement`, `co_ccap_is_in_entry_process`, `co_ccap_is_in_re_determination_process`, `coal_expense`, `cooking_fuel_expense`, `dc_ccsp_enrolled`, `dc_liheap_housing_type`, `de_poc_enrolled`, `enrolled_in_ebb`, `experienced_covid_income_loss`, `fdpir`, `fl_sr_enrolled`, `fuel_oil_expense`, `ga_caps_enrolled`, `gas_expense`, `has_cooling_expense`, `head_start_applies_housing_cost_adjustment`, `head_start_uses_discretionary_income_limit`, `heat_expense_included_in_rent`, `heating_cooling_expense`, `heating_expense_last_year`, `heating_type`, `homeowners_association_fees`, `homeowners_insurance`, `housing_designated_welfare`, `ia_cca_enrolled`, `id_iccp_enrolled`, `il_aabd_institutional_status`, `il_aabd_vehicle_is_essential`, `il_ccap_enrolled`, `il_ccap_non_parent_relative_child_only_tanf`, `il_ccap_protective_care_override`, `il_liheap_eligible_for_crisis_assistance`, `in_eap_dwelling_type`, `is_in_ccdf_enrolled`, `is_nd_ccap_enrolled`, `is_sd_cca_enrolled`, `is_wi_shares_enrolled`, `ks_liheap_dwelling_type`, `ks_liheap_utility_rate_tier`, `la_general_relief_disability_eligible`, `la_general_relief_housing_subsidy_program_eligible`, `la_general_relief_recipient`, `ma_ccfa_enrolled`, `ma_eaedc_living_arrangement`, `md_ccs_enrolled`, `md_meap_dwelling_type`, `meets_ccdf_activity_test`, `metered_gas_expense`, `mi_ccap_enrolled`, `mn_ccap_enrolled`, `mn_ccap_registration_fee`, `mo_ccs_enrolled`, `months_since_calworks_exit`, `mt_ccap_enrolled`, `nc_lieap_has_paid_excess_heating_costs`, `ne_child_care_subsidy_at_redetermination`, `ne_child_care_subsidy_enrolled`, `ne_liheap_dwelling_type`, `nj_ccap_enrolled`, `nm_ccap_enrolled`, `nv_ccdp_enrolled`, `ny_heap_dwelling_type`, `oh_ccap_enrolled`, `oh_ccap_owf_basic_assistance`, `ok_liheap_dwelling_type`, `or_liheap_dwelling_type`, `other_heating_fuel_expense`, `pa_ccw_enrolled`, `pa_ccw_has_stepparent`, `phone_cost`, `pre_subsidy_electricity_expense`, `receives_housing_assistance`, `receives_snap`, `receives_tanf`, `ri_ccap_enrolled`, `sd_tanf_is_shared_living`, `sewage_expense`, `snap_self_employment_income_expense`, `spm_unit_assets`, `spm_unit_count`, `spm_unit_energy_subsidy`, `spm_unit_net_income_reported`, `spm_unit_pre_subsidy_childcare_expenses`, `spm_unit_school_lunch_subsidy`, `spm_unit_snap`, `spm_unit_total_income_reported`, `tn_ccap_enrolled`, `tn_ccap_protective_services_waiver`, `trash_expense`, `tx_ottanf_crisis_criteria`, `va_ccsp_enrolled`, `wa_show_all_cash_assistance_programs`, `was_calworks_recipient`, `water_expense`, `wood_expense`, `wy_ccap_enrolled`, `wy_power_shelter_qualified` + +### tax_unit (179) + +`advanced_main_air_circulating_fan_expenditures`, `air_sealing_ventilation_expenditures`, `al_non_refundable_credits`, `al_refundable_credits`, `amt_form_completed`, `amt_non_agi_income`, `az_charitable_contributions_to_qualifying_charitable_organizations`, `az_charitable_contributions_to_qualifying_foster_care_organizations`, `az_other_additions`, `az_other_subtractions`, `biomass_stove_boiler_expenditures`, `ca_other_additions`, `ca_other_subtractions`, `co_non_refundable_credits`, `co_other_additions`, `co_other_subtractions`, `co_property_tax_exemption`, `cohabitating_spouses`, `ct_amt`, `ct_other_additions`, `ct_other_subtractions`, `ct_section_179_expense_add_back`, `domestic_production_ald`, `electric_heat_pump_clothes_dryer_expenditures`, `electric_load_service_center_upgrade_expenditures`, `electric_stove_cooktop_range_or_oven_expenditures`, `electric_wiring_expenditures`, `energy_efficient_central_air_conditioner_expenditures`, `energy_efficient_door_expenditures`, `energy_efficient_insulation_expenditures`, `energy_efficient_roof_expenditures`, `energy_efficient_window_expenditures`, `excess_payroll_tax_withheld`, `first_home_mortgage_balance`, `first_home_mortgage_origination_year`, `foreign_earned_income_exclusion_allocable_deductions`, `foreign_earned_income_exclusion_amount`, `foreign_earned_income_exclusion_disallowed_deductions`, `foreign_housing_deduction`, `foreign_housing_exclusion`, `foreign_tax_credit_potential`, `form_4972_lumpsum_distributions`, `fuel_cell_property_capacity`, `fuel_cell_property_expenditures`, `ga_investment_in_529_plan_deduction`, `ga_itemized_deductions_adjustment`, `ga_other_additions`, `ga_other_subtractions`, `geothermal_heat_pump_property_expenditures`, `health_savings_account_ald`, `heat_pump_expenditures`, `heat_pump_water_heater_expenditures`, `hi_other_additions`, `hi_other_subtractions`, `home_energy_audit_expenditures`, `id_other_additions`, `id_other_subtractions`, `il_other_additions`, `il_other_subtractions`, `il_pass_through_entity_tax_credit`, `il_pass_through_withholding`, `in_bonus_depreciation_add_back`, `in_healthcare_sharing_deduction`, `in_nol`, `in_nol_add_back`, `in_oos_municipal_obligation_interest_add_back`, `in_other_add_backs`, `in_other_deductions`, `in_section_179_expense_add_back`, `in_tax_add_back`, `in_use_tax`, `investment_income_form_4952`, `is_barred_from_american_opportunity_credit_due_to_improper_claims`, `is_nonresident_alien_for_american_opportunity_credit`, `is_nonresident_alien_for_lifetime_learning_credit`, `itemized_medical_expenses_long_term_care_premiums`, `k12_tuition_and_fees`, `ks_other_additions`, `ks_other_subtractions`, `ky_refundable_credits`, `md_other_additions`, `md_other_subtractions`, `me_affordability_payment_subtraction_reported`, `me_other_additions`, `me_other_subtractions`, `me_property_tax_fairness_credit_utilities_in_rent_amount`, `me_step_4_share_of_child_care_expenses`, `mi_non_refundable_credits`, `mi_other_additions`, `mi_other_subtractions`, `mn_other_additions`, `mn_other_subtractions`, `mn_renters_credit_property_tax_exempt`, `mn_renters_credit_qualifying_crp`, `ms_charitable_contributions_to_qualifying_foster_care_organizations`, `ms_refundable_credits`, `nc_other_additions`, `nc_other_subtractions`, `nd_other_additions`, `nd_other_subtractions`, `nd_refundable_credits`, `nd_renters_refund_property_tax_exempt`, `ne_other_additions`, `ne_other_subtractions`, `new_clean_vehicle_battery_capacity`, `new_clean_vehicle_battery_components_made_in_north_america`, `new_clean_vehicle_battery_critical_minerals_extracted_in_trading_partner_country`, `new_clean_vehicle_classification`, `new_clean_vehicle_msrp`, `nh_refundable_credits`, `nj_non_refundable_credits`, `nj_senior_freeze`, `nm_non_refundable_credits`, `nm_other_additions`, `nm_other_subtractions`, `ny_other_additions`, `ny_other_subtractions`, `ny_pass_through_entity_tax_credit_claimed`, `ny_qualified_geothermal_energy_system_expenditures`, `ny_qualified_solar_energy_systems_equipment_expenditures`, `nyc_unincorporated_business_credit`, `oh_refundable_credits`, `ok_adjustments`, `ok_other_additions`, `ok_other_subtractions`, `or_federal_pension_subtraction`, `or_other_additions`, `or_other_subtractions`, `other_net_gain`, `pell_grant_primary_income`, `prior_energy_efficient_home_improvement_credits`, `prior_energy_efficient_window_credits`, `property_sales_net_capital_gain`, `puerto_rico_income`, `purchased_qualifying_new_clean_vehicle`, `purchased_qualifying_used_clean_vehicle`, `qualified_battery_storage_technology_expenditures`, `qualified_furnace_or_hot_water_boiler_expenditures`, `qualified_retirement_penalty`, `recapture_of_investment_credit`, `refundable_payroll_tax_credit`, `rent_is_shared_with_another_tax_unit`, `residential_efficiency_electrification_retrofit_energy_savings`, `residential_efficiency_electrification_retrofit_expenditures`, `ri_other_additions`, `ri_other_subtractions`, `ri_section_179_expense_add_back`, `sc_other_additions`, `sc_other_subtractions`, `second_home_mortgage_balance`, `second_home_mortgage_origination_year`, `selected_marketplace_plan_benchmark_ratio`, `selected_marketplace_plan_category`, `separate_filer_itemizes`, `small_wind_energy_property_expenditures`, `solar_electric_property_expenditures`, `solar_water_heating_property_expenditures`, `specified_possession_income`, `tax_unit_count`, `tax_unit_income_ami_ratio`, `tax_unit_stillborn_children`, `taxsim_pprofinc`, `taxsim_sprofinc`, `tuition_and_fees`, `unrecaptured_section_1250_gain`, `unrecaptured_section_1250_gain_before_losses`, `unreported_payroll_tax`, `used_clean_vehicle_sale_price`, `ut_other_additions`, `ut_other_subtractions`, `va_other_additions`, `va_other_subtractions`, `vt_other_additions`, `vt_other_subtractions`, `wa_pte_cotenant_disposable_income`, `wi_other_additions`, `wi_other_subtractions`, `wv_other_additions`, `wv_other_subtractions` diff --git a/docs/evidence/spec-engine/us-f0-coverage.json b/docs/evidence/spec-engine/us-f0-coverage.json index 52fe0adb4..1d1a3be41 100644 --- a/docs/evidence/spec-engine/us-f0-coverage.json +++ b/docs/evidence/spec-engine/us-f0-coverage.json @@ -4,9 +4,9 @@ "version": 1 }, "country": "us", - "documentation_sha256": "0931cbd3aae2abcd8c072b78eba40c1c006b1bf7fa23c6a6681f9a895e47070e", + "documentation_sha256": "aa635575ebfe22a1bf73925b7950ec0b401b624097e3a70bce0818b29fe82bb2", "field_usage": { - "authored_normative_field_count": 32404, + "authored_normative_field_count": 32352, "claim_count": 49, "claims": [ { @@ -108,8 +108,8 @@ ], "mode": "legacy_behavior", "pointer_class": "all", - "pointer_count": 312, - "pointer_sha256": "9bad55b4945af1c4213c510942e7b9d22d104bf75b0d9804e4a183e1656c8393", + "pointer_count": 310, + "pointer_sha256": "1613348de424bfd47f793cece1976dc64339dc485f9fe7fe3cce9c392ae36691", "rationale": null, "relative_sink_prefix": "/calibration_contract", "source_prefix": "/authored/spec~1calibration.yaml", @@ -136,8 +136,8 @@ "legacy_sinks": [], "mode": "compiler_semantic", "pointer_class": "all", - "pointer_count": 1673, - "pointer_sha256": "a983c0d68e980a31bd1ad41e7ef3c0cb3db9a7ee4d73454ae46f81eb6d1bb427", + "pointer_count": 1662, + "pointer_sha256": "10352728d0b1d6091139cc447a5263e199b324e5bf8ef13f96a0abf7bf40c3fc", "rationale": null, "relative_sink_prefix": null, "source_prefix": "/authored/spec~1catalogs.yaml/columns", @@ -274,8 +274,8 @@ ], "mode": "compiler_semantic", "pointer_class": "all", - "pointer_count": 24488, - "pointer_sha256": "6382a3ed07016414c31462b8bedb24590d92b792405a89c927d85fa1bd2a8347", + "pointer_count": 24462, + "pointer_sha256": "25c07cab582ab669822c0a1210fcd9465c859789fd3f4edf06550c8c6856a516", "rationale": null, "relative_sink_prefix": null, "source_prefix": "/authored/spec~1imputation.yaml/producer_graph", @@ -334,8 +334,8 @@ ], "mode": "legacy_behavior", "pointer_class": "family_execution", - "pointer_count": 1769, - "pointer_sha256": "cd395f41c1cc425c734dc344607de043f3506b4ec2e727a29130fc4304f351e3", + "pointer_count": 1751, + "pointer_sha256": "e83d661d80149b7b7c565305f5b51eed7628c7dbd12dd42648c0a6311fef5bec", "rationale": null, "relative_sink_prefix": null, "source_prefix": "/authored/spec~1imputation.yaml/families", @@ -514,8 +514,8 @@ ], "mode": "legacy_behavior", "pointer_class": "all", - "pointer_count": 1716, - "pointer_sha256": "3e808ed9f5a791c0dfb85be0c59adf803366bf6e8c7a9f5a58f92974e044b607", + "pointer_count": 1712, + "pointer_sha256": "6754aafccb56f2e64cd032311e2222367f93993b32f02471762993d536bea57e", "rationale": null, "relative_sink_prefix": "/source_manifest/stages", "source_prefix": "/authored/spec~1sources.yaml/stages", @@ -691,8 +691,8 @@ ], "mode": "legacy_behavior", "pointer_class": "all", - "pointer_count": 328, - "pointer_sha256": "d53096196db4c34da260cce2f35af8e7ba67f978448656c602ee5e17529dc4e0", + "pointer_count": 337, + "pointer_sha256": "80df2502ccf0b69cbaab4e157709c2b1dbf5243ff1dd54f78b8e9442eae09a08", "rationale": null, "relative_sink_prefix": null, "source_prefix": "/authored/spec~1take_up.yaml", @@ -722,8 +722,8 @@ ], "mode": "legacy_behavior", "pointer_class": "all", - "pointer_count": 8614, - "pointer_sha256": "66eec1216f404e43f7605fba0016d1cd666e71ebe3e35278d14a944d8b48b619", + "pointer_count": 10156, + "pointer_sha256": "d26f85da85bd17105f979375750c92c3d80c2e227c60fac63fc5a62bd9228c4d", "rationale": null, "relative_sink_prefix": null, "source_prefix": "/resolved/generated_authorities", @@ -772,21 +772,21 @@ "verifier": "vintages" } ], - "configuration_field_count": 42184, - "consumed_field_count": 42184, + "configuration_field_count": 43674, + "consumed_field_count": 43674, "generation0_effect_counts": { - "legacy_behavior": 38498, - "no_generation0_effect": 3686 + "legacy_behavior": 39999, + "no_generation0_effect": 3675 }, "mode_counts": { - "compiler_semantic": 27717, + "compiler_semantic": 27680, "front_end_validation": 354, "identity_only": 103, - "legacy_behavior": 14010 + "legacy_behavior": 15537 }, "multiple_primary_use_field_count": 0, - "pointer_inventory_sha256": "8f655670b9794adae905ede64bdceba6395eeb8d642b6c5896d5c516f1f6a6a7", - "resolved_binding_field_count": 9780, + "pointer_inventory_sha256": "946f05fe2aa2948749a8a955b7f0d90a6cb610f6078e0b0a2553cb500338c82d", + "resolved_binding_field_count": 11322, "unused_field_count": 0 }, "inventory_coverage": { @@ -803,14 +803,14 @@ "itemization_batches": 5, "itemization_targets": 37, "late_groups": 19, - "late_targets": 70, + "late_targets": 69, "ownership_rows": 18, - "primary_effective_predictor_tuples": 65, + "primary_effective_predictor_tuples": 63, "primary_families": 1, - "primary_targets": 65, + "primary_targets": 63, "producer_authored_outputs": 92, - "producer_compiled_outputs": 227, - "producer_inputs": 2744, + "producer_compiled_outputs": 224, + "producer_inputs": 2741, "producer_nodes": 38, "producer_virtual_resources": 75, "release_rungs": 5, @@ -824,11 +824,11 @@ "stacked_checkpoint_full_components": 13, "stacked_checkpoint_pool_code_components": 19, "stacked_checkpoint_static_components": 10, - "tail_control_fields": 934, - "take_up_pipeline_steps": 28, - "take_up_programs": 17, + "tail_control_fields": 930, + "take_up_pipeline_steps": 29, + "take_up_programs": 18, "typed_artifacts": 84, - "typed_columns": 176, + "typed_columns": 175, "typed_entities": 8, "typed_scopes": 7 }, @@ -917,13 +917,13 @@ "legacy_adapter.stacked_checkpoint_static_components" ], "expected": { - "sha256": "ac92829c88a1a4fb6460d61190918d5d99c6c377fc8dd8f62f02b332d09bf59c", - "terminal_fields": 934 + "sha256": "ad46f09b94d4ef798db09f4b56ef0ad81453a718d556358c9a2d3ce30be2d206", + "terminal_fields": 930 }, "failures": [], "observed": { - "sha256": "ac92829c88a1a4fb6460d61190918d5d99c6c377fc8dd8f62f02b332d09bf59c", - "terminal_fields": 934 + "sha256": "ad46f09b94d4ef798db09f4b56ef0ad81453a718d556358c9a2d3ce30be2d206", + "terminal_fields": 930 }, "status": "covered" }, @@ -1074,11 +1074,11 @@ "legacy_adapter.stacked_checkpoint_static_components" ], "expected": { - "schedule_sha256": "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f" + "schedule_sha256": "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16" }, "failures": [], "observed": { - "schedule_sha256": "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f" + "schedule_sha256": "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16" }, "status": "covered" }, @@ -1096,14 +1096,14 @@ ], "expected": { "groups": 19, - "sha256": "d91f9ff0eb52f43e7b6eed3d5c58c37abe1620c3a11021da15dae9c10e16d382", - "targets": 70 + "sha256": "243a1a2668cc29c64cd5bc19c890ff798ba81bd22ee2d3e16b7ba8db46c362a9", + "targets": 69 }, "failures": [], "observed": { "groups": 19, - "sha256": "d91f9ff0eb52f43e7b6eed3d5c58c37abe1620c3a11021da15dae9c10e16d382", - "targets": 70 + "sha256": "243a1a2668cc29c64cd5bc19c890ff798ba81bd22ee2d3e16b7ba8db46c362a9", + "targets": 69 }, "status": "covered" }, @@ -1224,13 +1224,13 @@ "legacy_adapter.imputation.primary_qrf" ], "expected": { - "sha256": "fdf23da429f8c501e198a2f5b719763d523a41565c2153fdf17b0344f21bcd7c", - "tuples": 65 + "sha256": "9cbb3f38a518298655973537f9cce481e8d75d619f9c717e905651e5efd30464", + "tuples": 63 }, "failures": [], "observed": { - "sha256": "fdf23da429f8c501e198a2f5b719763d523a41565c2153fdf17b0344f21bcd7c", - "tuples": 65 + "sha256": "9cbb3f38a518298655973537f9cce481e8d75d619f9c717e905651e5efd30464", + "tuples": 63 }, "status": "covered" }, @@ -1250,14 +1250,14 @@ "expected": { "edges": 71, "nodes": 38, - "schedule_sha256": "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f", + "schedule_sha256": "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16", "waves": 6 }, "failures": [], "observed": { "edges": 71, "nodes": 38, - "schedule_sha256": "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f", + "schedule_sha256": "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16", "waves": 6 }, "status": "covered" @@ -1275,11 +1275,11 @@ ], "expected": { "relation": "source rows preserved exactly", - "rows": 2744 + "rows": 2741 }, "failures": [], "observed": { - "rows": 2744 + "rows": 2741 }, "status": "covered" }, @@ -1298,13 +1298,13 @@ ], "expected": { "authored_rows": 92, - "compiled_rows": 227, + "compiled_rows": 224, "relation": "typed closure exact" }, "failures": [], "observed": { "authored_rows": 92, - "compiled_rows": 227 + "compiled_rows": 224 }, "status": "covered" }, @@ -1338,12 +1338,12 @@ ], "expected": { "nodes": 38, - "sha256": "40cd51ffdfe2e9d9d08d48c08e8ded9de1e4b134783bab05c4abc6ad5c72ca1e" + "sha256": "b907d7badefcabbd533fa5ba0b2b26e73a69fc074e73ba2f229715fd06b1ca6c" }, "failures": [], "observed": { "nodes": 38, - "sha256": "40cd51ffdfe2e9d9d08d48c08e8ded9de1e4b134783bab05c4abc6ad5c72ca1e" + "sha256": "b907d7badefcabbd533fa5ba0b2b26e73a69fc074e73ba2f229715fd06b1ca6c" }, "status": "covered" }, @@ -1361,12 +1361,12 @@ ], "expected": { "producer_count": 38, - "sha256": "cc34ba11288d01145fc2dc1a669df3f7c4ef2019d73afb02dd8eeee852b16d20" + "sha256": "468f25da9ff8f195e7c640f471f5b7f0e6d96a480cb18f484cbcd45d248c260d" }, "failures": [], "observed": { "producer_count": 38, - "sha256": "cc34ba11288d01145fc2dc1a669df3f7c4ef2019d73afb02dd8eeee852b16d20" + "sha256": "468f25da9ff8f195e7c640f471f5b7f0e6d96a480cb18f484cbcd45d248c260d" }, "status": "covered" }, @@ -1656,13 +1656,13 @@ "compiler_ir.node_slices" ], "expected": { - "map_sha256": "0db599df419dd16779097361dc72afdefb8df2abf8b134078da9c52d31d8e017", - "protocol_sha256": "2b7bdc1d6b0da1bdaf54b4cac29f10f2d3c8bed2e177729c2c89e6b33a099cc5" + "map_sha256": "124830b988e409d1c103585937fd9d8f04c8920fd9166d782472a5164088b1b6", + "protocol_sha256": "12112b4cc185a9c07c032fe652b0b26cac52b5da2a2e44ba729e3d4e2fe62d7d" }, "failures": [], "observed": { - "map_sha256": "0db599df419dd16779097361dc72afdefb8df2abf8b134078da9c52d31d8e017", - "protocol_sha256": "2b7bdc1d6b0da1bdaf54b4cac29f10f2d3c8bed2e177729c2c89e6b33a099cc5" + "map_sha256": "124830b988e409d1c103585937fd9d8f04c8920fd9166d782472a5164088b1b6", + "protocol_sha256": "12112b4cc185a9c07c032fe652b0b26cac52b5da2a2e44ba729e3d4e2fe62d7d" }, "status": "covered" }, @@ -1677,7 +1677,7 @@ "compiler_ir.seed_stream_map" ], "expected": { - "implementation_sha256": "2b7bdc1d6b0da1bdaf54b4cac29f10f2d3c8bed2e177729c2c89e6b33a099cc5", + "implementation_sha256": "12112b4cc185a9c07c032fe652b0b26cac52b5da2a2e44ba729e3d4e2fe62d7d", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1698,7 +1698,7 @@ }, "failures": [], "observed": { - "implementation_sha256": "2b7bdc1d6b0da1bdaf54b4cac29f10f2d3c8bed2e177729c2c89e6b33a099cc5", + "implementation_sha256": "12112b4cc185a9c07c032fe652b0b26cac52b5da2a2e44ba729e3d4e2fe62d7d", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1775,12 +1775,12 @@ "legacy_adapter.imputation.late_producer_resource_semantics" ], "expected": { - "sha256": "f4f8bfeb79268a4043a843b47cec1d1c0e58e9f5dd6bc23417ada95446dd7b8e", + "sha256": "de655e314f05f510a451223debeda93971115f94d3a1dc23492acb8693b5cd52", "stages": 37 }, "failures": [], "observed": { - "sha256": "f4f8bfeb79268a4043a843b47cec1d1c0e58e9f5dd6bc23417ada95446dd7b8e", + "sha256": "de655e314f05f510a451223debeda93971115f94d3a1dc23492acb8693b5cd52", "stages": 38 }, "status": "covered" @@ -1840,11 +1840,11 @@ "legacy_adapter.stacked_checkpoint_static_components" ], "expected": { - "sha256": "9d4a9672a0f03039b1fe874b9fe21ed575be0d29f14afc396d03cdf5c809bdd2" + "sha256": "69cb10a9668fe1a4f3b7b1ab447ee6664e869bc56f6b51dc8fe545c952e8aa14" }, "failures": [], "observed": { - "sha256": "9d4a9672a0f03039b1fe874b9fe21ed575be0d29f14afc396d03cdf5c809bdd2" + "sha256": "69cb10a9668fe1a4f3b7b1ab447ee6664e869bc56f6b51dc8fe545c952e8aa14" }, "status": "covered" }, @@ -1887,7 +1887,7 @@ "alpha", "zeta" ], - "sha256": "3db095ce2d1ef89028d3862f0edc827d704f099c5b3323f9b115642a3c27e007" + "sha256": "216a5ee369aedc84627a0dac14aa6b30d0a3e8c93ee69e99c86e6568023e3401" }, "failures": [], "observed": { @@ -1911,7 +1911,7 @@ "alpha", "zeta" ], - "sha256": "3db095ce2d1ef89028d3862f0edc827d704f099c5b3323f9b115642a3c27e007" + "sha256": "216a5ee369aedc84627a0dac14aa6b30d0a3e8c93ee69e99c86e6568023e3401" }, "status": "covered" }, @@ -1975,7 +1975,7 @@ "take_up_contract", "us_qbi_reconciliation_contract" ], - "sha256": "61a5484eab9fae1d6651b3ae15f1793d4934ea2f6ed2c08d05716b745c221014" + "sha256": "6f58685e2e594cb0be4ce8a62b9e129fee422e1f9419aad01c48d373ed0b459a" }, "status": "covered" }, @@ -2071,11 +2071,11 @@ "legacy_adapter.stacked_checkpoint_static_components" ], "expected": { - "resource_sha256": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35" + "resource_sha256": "24bdfcd795e973e0345ae68020ab7dbceda0d95cb673bc9da95460bd239a1451" }, "failures": [], "observed": { - "resource_sha256": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35" + "resource_sha256": "24bdfcd795e973e0345ae68020ab7dbceda0d95cb673bc9da95460bd239a1451" }, "status": "covered" }, @@ -2094,17 +2094,17 @@ "legacy_adapter.take_up_contract" ], "expected": { - "sha256": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35" + "sha256": "24bdfcd795e973e0345ae68020ab7dbceda0d95cb673bc9da95460bd239a1451" }, "failures": [], "observed": { - "sha256": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35" + "sha256": "24bdfcd795e973e0345ae68020ab7dbceda0d95cb673bc9da95460bd239a1451" }, "status": "covered" }, "take_up_pipeline_steps_exact": { "bundle_home_match_counts": { - "/take_up/programs/*/pipeline": 16, + "/take_up/programs/*/pipeline": 17, "/take_up/programs/*/segments": 1 }, "bundle_homes": [ @@ -2160,6 +2160,9 @@ "medicare": [ "measured_map" ], + "medicare_part_d": [ + "engine_default" + ], "nm_premium_assistance": [ "engine_default" ], @@ -2179,7 +2182,7 @@ "probability_seed" ] }, - "steps": 28 + "steps": 29 }, "failures": [], "observed": { @@ -2228,6 +2231,9 @@ "medicare": [ "measured_map" ], + "medicare_part_d": [ + "engine_default" + ], "nm_premium_assistance": [ "engine_default" ], @@ -2247,7 +2253,7 @@ "probability_seed" ] }, - "steps": 28 + "steps": 29 }, "status": "covered" }, @@ -2356,6 +2362,13 @@ ], "out_of_scope" ], + "medicare_part_d": [ + "engine", + [ + "engine_default" + ], + "rate_unsourced" + ], "nm_premium_assistance": [ "engine", [ @@ -2491,6 +2504,13 @@ ], "out_of_scope" ], + "medicare_part_d": [ + "engine", + [ + "engine_default" + ], + "rate_unsourced" + ], "nm_premium_assistance": [ "engine", [ @@ -2552,6 +2572,7 @@ "chip", "basic_health_program", "medicare", + "medicare_part_d", "ssi", "dc_ptc", "head_start", @@ -2574,6 +2595,7 @@ "chip", "basic_health_program", "medicare", + "medicare_part_d", "ssi", "dc_ptc", "head_start", @@ -2599,7 +2621,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "19460fc168a6f9ed44e580d0e36777cce78bb33cb52b75630ee86203fa795684" + "spec_sha256": "5ff97a0bc4b029e69a0ba8be98ad00cab0b267a4239fa1f7a2d1ebde0f7f9283" } }, "report_schema_version": 3, @@ -2609,7 +2631,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "19460fc168a6f9ed44e580d0e36777cce78bb33cb52b75630ee86203fa795684" + "spec_sha256": "5ff97a0bc4b029e69a0ba8be98ad00cab0b267a4239fa1f7a2d1ebde0f7f9283" }, "status": "pass" } diff --git a/docs/us-multispine-operator-ordering.md b/docs/us-multispine-operator-ordering.md index f3f62e66a..e65d2c9ea 100644 --- a/docs/us-multispine-operator-ordering.md +++ b/docs/us-multispine-operator-ordering.md @@ -942,9 +942,9 @@ Registry schema version 17 and execution-receipt contract version 4 bind the canonical input declarations, outputs, edges, waves, exact kind-specific virtual-resource bindings, content-hashed execution-row schema, and immutable transition authority version 2. The schedule SHA-256 is -`e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f`; +`50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16`; the full payload SHA-256 is -`7be038d34f228d66c12b53558fc5f30c93f1b376f1058c5e4fd7e7563a88d67f`. +`c04c59fa15718de9e72178b5531f9164f8e456fc883d8195ba60aecf1a6fd0bf`. Reversing registry iteration produces those same bytes. The virtual-resource payload ledger is independently versioned: ACS-universe diff --git a/docs/us-release-build-rule.md b/docs/us-release-build-rule.md index e73aea551..e9357672c 100644 --- a/docs/us-release-build-rule.md +++ b/docs/us-release-build-rule.md @@ -32,8 +32,10 @@ release the certified default. A from-scratch attempt ran on main at `51c314382` on 15 and 16 September 2026 and reached no release. The causes below were re-read on main at `d1196af10`. -The engine lock that also blocked it is fixed: main resolves policyengine-us -2.2.1, policyengine-core 3.32.5 and spm-calculator 1.0.0. +The engine lock that also blocked it is fixed. Main resolved policyengine-us +2.2.1, policyengine-core 3.32.5 and spm-calculator 1.0.0 from microcosm#936, +and resolves policyengine-us 2.60.4, policyengine-core 3.33.3 and +spm-calculator 1.0.0 from microcosm#1365. ### 1. No Chronicle feed on the build machine carries dimension labels diff --git a/packages/microcosm-build/pyproject.toml b/packages/microcosm-build/pyproject.toml index 15f8da368..b38e0a494 100644 --- a/packages/microcosm-build/pyproject.toml +++ b/packages/microcosm-build/pyproject.toml @@ -32,12 +32,12 @@ dependencies = [ # content is declared in packaged manifests and interpreted by shared Microcosm # runtimes; country source loaders must not depend on incumbent data packages. # microcosm#1086 (option 2): each country carries its own policyengine-core -# pin. The US side stays on the core the certified US default was built with -# until its next certified build; [tool.uv] conflicts keeps it apart from the -# UK side, which follows policyengine-uk's own core floor. +# pin. The US side pins the engine and core the next certified US build is +# built with; [tool.uv] conflicts keeps it apart from the UK side, which +# follows policyengine-uk's own core floor. us = [ - "policyengine-us>=2.2.1,<3", - "policyengine-core==3.32.5", + "policyengine-us>=2.60.4,<3", + "policyengine-core==3.33.3", "microcosm-data>=0.1,<0.2", "h5py>=3", "microunit>=0.1.0", diff --git a/packages/microcosm-build/src/microcosm/build/spec_engine/engine_abi.py b/packages/microcosm-build/src/microcosm/build/spec_engine/engine_abi.py index 76bafd8b0..873c98b8f 100644 --- a/packages/microcosm-build/src/microcosm/build/spec_engine/engine_abi.py +++ b/packages/microcosm-build/src/microcosm/build/spec_engine/engine_abi.py @@ -29,7 +29,7 @@ ENGINE_ABI_LOCK_FILENAME = "engine_abi.lock.json" ENGINE_ABI_LOCK_SCHEMA_ID = "locks.schema.json#/$defs/engine_abi_lock" POLICYENGINE_US_PACKAGE = "policyengine-us" -US_TAKE_UP_PROGRAM_COUNT = 17 +US_TAKE_UP_PROGRAM_COUNT = 18 _ENGINE_VERSION_REF: Mapping[str, str] = { "kind": "engine_abi_lock", "pointer": "/engine/version", diff --git a/packages/microcosm-build/src/microcosm/build/spec_engine/field_usage.py b/packages/microcosm-build/src/microcosm/build/spec_engine/field_usage.py index 56f39195c..4a7077c21 100644 --- a/packages/microcosm-build/src/microcosm/build/spec_engine/field_usage.py +++ b/packages/microcosm-build/src/microcosm/build/spec_engine/field_usage.py @@ -26,9 +26,9 @@ ) from .schemas import load_schema_registry -EXPECTED_AUTHORED_FIELD_COUNT = 32_404 -EXPECTED_RESOLVED_BINDING_FIELD_COUNT = 9_780 -EXPECTED_CONFIGURATION_FIELD_COUNT = 42_184 +EXPECTED_AUTHORED_FIELD_COUNT = 32_352 +EXPECTED_RESOLVED_BINDING_FIELD_COUNT = 11_322 +EXPECTED_CONFIGURATION_FIELD_COUNT = 43_674 class FieldUsageError(AssertionError): @@ -361,12 +361,12 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]: "36564747627fb0058bb99e8e8c4397e41d8ecc472a20c49d4b6d7df1003a80ec", ), "calibration": ( - 312, - "9bad55b4945af1c4213c510942e7b9d22d104bf75b0d9804e4a183e1656c8393", + 310, + "1613348de424bfd47f793cece1976dc64339dc485f9fe7fe3cce9c392ae36691", ), "catalog_columns": ( - 1_673, - "a983c0d68e980a31bd1ad41e7ef3c0cb3db9a7ee4d73454ae46f81eb6d1bb427", + 1_662, + "10352728d0b1d6091139cc447a5263e199b324e5bf8ef13f96a0abf7bf40c3fc", ), "catalog_metadata_waivers": ( 5, @@ -377,8 +377,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]: "8a186065f5b8ffc59bc3f62fe927975e6f36bc1e913aa61761652c9a8aa67988", ), "generated_authorities": ( - 8_614, - "66eec1216f404e43f7605fba0016d1cd666e71ebe3e35278d14a944d8b48b619", + 10_156, + "d26f85da85bd17105f979375750c92c3d80c2e227c60fac63fc5a62bd9228c4d", ), "geography_assignment": ( 28, @@ -401,8 +401,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]: "bdf40812604e7cd35d68093fe14b7cd1371cb8ab8658fd6002b254610b062781", ), "imputation_family_execution": ( - 1_769, - "cd395f41c1cc425c734dc344607de043f3506b4ec2e727a29130fc4304f351e3", + 1_751, + "e83d661d80149b7b7c565305f5b51eed7628c7dbd12dd42648c0a6311fef5bec", ), "imputation_gap_fill_schedule": ( 5, @@ -421,8 +421,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]: "e1dd7dc5123ab0f39d08ea4939d98dd09a6fdb8e7449a7ca3125fb1ddbd5b4e9", ), "imputation_producer_graph": ( - 24_488, - "6382a3ed07016414c31462b8bedb24590d92b792405a89c927d85fa1bd2a8347", + 24_462, + "25c07cab582ab669822c0a1210fcd9465c859789fd3f4edf06550c8c6856a516", ), "imputation_transfer_execution": ( 97, @@ -485,8 +485,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]: "d6782c5de5bbed1bdc6bf653c4a6d4aadcad4ccc72d35e1092e130fcb04680a3", ), "source_stages": ( - 1_716, - "3e808ed9f5a791c0dfb85be0c59adf803366bf6e8c7a9f5a58f92974e044b607", + 1_712, + "6754aafccb56f2e64cd032311e2222367f93993b32f02471762993d536bea57e", ), "spine_assembly_household_mass_shares": ( 2, @@ -529,8 +529,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]: "d0de9c71fb388104cbd2fad9889b1eb18dd0b844c7344fd8a75ffda9d3cb9814", ), "take_up": ( - 328, - "d53096196db4c34da260cce2f35af8e7ba67f978448656c602ee5e17529dc4e0", + 337, + "80df2502ccf0b69cbaab4e157709c2b1dbf5243ff1dd54f78b8e9442eae09a08", ), "vintage_records": ( 112, diff --git a/packages/microcosm-build/src/microcosm/build/spec_engine/inventory_coverage.py b/packages/microcosm-build/src/microcosm/build/spec_engine/inventory_coverage.py index 4a20e6968..6945e078b 100644 --- a/packages/microcosm-build/src/microcosm/build/spec_engine/inventory_coverage.py +++ b/packages/microcosm-build/src/microcosm/build/spec_engine/inventory_coverage.py @@ -103,6 +103,7 @@ "chip", "basic_health_program", "medicare", + "medicare_part_d", "ssi", "dc_ptc", "head_start", @@ -135,6 +136,7 @@ "rate_unsourced", ), "medicare": ("measured", ("measured_map",), "out_of_scope"), + "medicare_part_d": ("engine", ("engine_default",), "rate_unsourced"), "ssi": ( "modeled", ("probability_seed", "delivery_gate"), @@ -348,17 +350,17 @@ EXPECTED_HASHES = { "acs_group_predictors": "a927bb7ecf3e84f54c93583ab79318654514ac546aefafba67da5285615fbd60", "acs_person_predictors": "878c788a6f037d7aca12b3586ea034eff04f3034ffa11935a736493042551f25", - "authority": "9d4a9672a0f03039b1fe874b9fe21ed575be0d29f14afc396d03cdf5c809bdd2", + "authority": "69cb10a9668fe1a4f3b7b1ab447ee6664e869bc56f6b51dc8fe545c952e8aa14", "early_families": "4aa9f736fd76e83955477ad1667e58f48f264783f05bdc7f0102cd32d61323bd", - "full_checkpoint": "3db095ce2d1ef89028d3862f0edc827d704f099c5b3323f9b115642a3c27e007", + "full_checkpoint": "216a5ee369aedc84627a0dac14aa6b30d0a3e8c93ee69e99c86e6568023e3401", "gap_fill_schedule": "1c31f9868f7884347cc19cf1ff65da43f950b9114941a715bab168246db414a7", - "graph_nodes": "40cd51ffdfe2e9d9d08d48c08e8ded9de1e4b134783bab05c4abc6ad5c72ca1e", + "graph_nodes": "b907d7badefcabbd533fa5ba0b2b26e73a69fc074e73ba2f229715fd06b1ca6c", "geography_assignment": "44e7f5f6cd7ceeef85d532c3d46306d03de4f4ee811376e6d29920742746b65c", - "late_families": "d91f9ff0eb52f43e7b6eed3d5c58c37abe1620c3a11021da15dae9c10e16d382", - "late_resource_semantics": "cc34ba11288d01145fc2dc1a669df3f7c4ef2019d73afb02dd8eeee852b16d20", - "late_schedule": "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f", + "late_families": "243a1a2668cc29c64cd5bc19c890ff798ba81bd22ee2d3e16b7ba8db46c362a9", + "late_resource_semantics": "468f25da9ff8f195e7c640f471f5b7f0e6d96a480cb18f484cbcd45d248c260d", + "late_schedule": "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16", "ownership": "5f64f0aac49e2313177564f71876bffc8c81b3ded4df701e70930e60e9c98356", - "primary_tuples": "fdf23da429f8c501e198a2f5b719763d523a41565c2153fdf17b0344f21bcd7c", + "primary_tuples": "9cbb3f38a518298655973537f9cce481e8d75d619f9c717e905651e5efd30464", # #1178: puf_support's source bytes attest CPS Social Security preservation. # RNG rules and the ordered QRF targets are unchanged. microcosm#104 moves # both again: the protocol attests microcosm.calibrate.solve. microcosm#1124 @@ -367,11 +369,11 @@ # moves both again: calibrate gains budget_search_bracket, whose default # keeps the US bracket, and the budget search, which the US solve does # not run, changes its probes, so again no US solve changes. - "seed_map": "0db599df419dd16779097361dc72afdefb8df2abf8b134078da9c52d31d8e017", - "seed_protocol": "2b7bdc1d6b0da1bdaf54b4cac29f10f2d3c8bed2e177729c2c89e6b33a099cc5", - "source_manifest": "f4f8bfeb79268a4043a843b47cec1d1c0e58e9f5dd6bc23417ada95446dd7b8e", - "take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35", - "tail": "ac92829c88a1a4fb6460d61190918d5d99c6c377fc8dd8f62f02b332d09bf59c", + "seed_map": "124830b988e409d1c103585937fd9d8f04c8920fd9166d782472a5164088b1b6", + "seed_protocol": "12112b4cc185a9c07c032fe652b0b26cac52b5da2a2e44ba729e3d4e2fe62d7d", + "source_manifest": "de655e314f05f510a451223debeda93971115f94d3a1dc23492acb8693b5cd52", + "take_up": "24bdfcd795e973e0345ae68020ab7dbceda0d95cb673bc9da95460bd239a1451", + "tail": "ad46f09b94d4ef798db09f4b56ef0ad81453a718d556358c9a2d3ce30be2d206", } INVENTORY_REPORT_SCHEMA_VERSION = 1 @@ -430,14 +432,14 @@ "itemization_batches": 5, "itemization_targets": 37, "late_groups": 19, - "late_targets": 70, + "late_targets": 69, "ownership_rows": 18, - "primary_effective_predictor_tuples": 65, + "primary_effective_predictor_tuples": 63, "primary_families": 1, - "primary_targets": 65, + "primary_targets": 63, "producer_authored_outputs": 92, - "producer_compiled_outputs": 227, - "producer_inputs": 2_744, + "producer_compiled_outputs": 224, + "producer_inputs": 2_741, "producer_nodes": 38, "producer_virtual_resources": 75, "release_rungs": 5, @@ -451,11 +453,11 @@ "stacked_checkpoint_full_components": 13, "stacked_checkpoint_pool_code_components": 19, "stacked_checkpoint_static_components": 10, - "tail_control_fields": 934, - "take_up_pipeline_steps": 28, - "take_up_programs": 17, + "tail_control_fields": 930, + "take_up_pipeline_steps": 29, + "take_up_programs": 18, "typed_artifacts": 84, - "typed_columns": 176, + "typed_columns": 175, "typed_entities": 8, "typed_scopes": 7, } @@ -836,7 +838,7 @@ def add( "primary_predictor_tuples_exact", clauses={ "primary family is not unique": len(primary) == 1, - "effective tuple count differs": len(primary_tuples) == 65, + "effective tuple count differs": len(primary_tuples) == 63, "effective tuple digest differs": sha256_json(primary_tuples) == EXPECTED_HASHES["primary_tuples"], "legacy target order differs": _mapping( @@ -847,7 +849,7 @@ def add( homes=("/imputation/families", "/imputation/predictor_blocks/puf_tax_detail"), consumers=("compiler_ir.node_slices", "legacy_adapter.imputation.primary_qrf"), observed={"tuples": len(primary_tuples), "sha256": sha256_json(primary_tuples)}, - expected={"tuples": 65, "sha256": EXPECTED_HASHES["primary_tuples"]}, + expected={"tuples": 63, "sha256": EXPECTED_HASHES["primary_tuples"]}, ) qrf_params = _mapping( _mapping( @@ -890,7 +892,7 @@ def add( "late_split_ledger_exact", clauses={ "late group count differs": len(late) == 19, - "late target count differs": late_targets == 70, + "late target count differs": late_targets == 69, "late family digest differs": sha256_json(late) == EXPECTED_HASHES["late_families"], "legacy late schedule differs": _json_equal( @@ -906,7 +908,7 @@ def add( }, expected={ "groups": 19, - "targets": 70, + "targets": 69, "sha256": EXPECTED_HASHES["late_families"], }, ) @@ -1020,7 +1022,7 @@ def add( "producer_inputs_exact", clauses={ "producer input rows differ": inputs_exact, - "input row count differs": input_count == 2744, + "input row count differs": input_count == 2741, }, homes=("/imputation/producer_graph/nodes/*/inputs",), consumers=( @@ -1028,7 +1030,7 @@ def add( "compiler_ir.node_slices", ), observed={"rows": input_count}, - expected={"rows": 2744, "relation": "source rows preserved exactly"}, + expected={"rows": 2741, "relation": "source rows preserved exactly"}, ) outputs_exact = set(expected_outputs) == set(compiled_by_id) and all( _json_equal( @@ -1046,7 +1048,7 @@ def add( "compiled outputs differ from typed closure": outputs_exact, "authored output count differs": authored_output_count == 92, "compiled output count differs": compiled.producer_graph.compiled_output_count - == 227, + == 224, }, homes=( "/imputation/producer_graph/nodes/*/outputs", @@ -1062,7 +1064,7 @@ def add( }, expected={ "authored_rows": 92, - "compiled_rows": 227, + "compiled_rows": 224, "relation": "typed closure exact", }, ) @@ -1263,7 +1265,8 @@ def add( "take_up_program_order_exact", clauses={ "program order differs": program_ids == EXPECTED_PROGRAM_IDS, - "legacy program count differs": len(legacy_programs) == 17, + "legacy program count differs": len(legacy_programs) + == len(EXPECTED_PROGRAM_IDS), "legacy variable order differs": [ _mapping(value, "legacy program")["variable"] for value in legacy_programs @@ -1286,7 +1289,7 @@ def add( "pipeline step count differs": sum( len(value) for value in step_map.values() ) - == 28, + == 29, "legacy contract differs from typed projection": _json_equal( actual_take_up, expected_take_up ), @@ -1298,7 +1301,7 @@ def add( "by_program": {key: list(value) for key, value in step_map.items()}, }, expected={ - "steps": 28, + "steps": 29, "by_program": { key: list(value[1]) for key, value in EXPECTED_TAKE_UP_MECHANISMS.items() @@ -1419,7 +1422,7 @@ def add( add( "capital_gains_tail_contract_exact", clauses={ - "tail terminal field count differs": tail_count == 934, + "tail terminal field count differs": tail_count == 930, "resolved calibration tails differ": _json_equal( legacy.get("calibration_tail_contracts"), expected_legacy["calibration_tail_contracts"], @@ -1447,7 +1450,7 @@ def add( "legacy_adapter.stacked_checkpoint_static_components", ), observed={"terminal_fields": tail_count, "sha256": sha256_json(tail_bundle)}, - expected={"terminal_fields": 934, "sha256": EXPECTED_HASHES["tail"]}, + expected={"terminal_fields": 930, "sha256": EXPECTED_HASHES["tail"]}, ) add( diff --git a/packages/microcosm-build/src/microcosm/build/us/ecps_parity_known_gaps.json b/packages/microcosm-build/src/microcosm/build/us/ecps_parity_known_gaps.json index 97c3bda95..ddd11c722 100644 --- a/packages/microcosm-build/src/microcosm/build/us/ecps_parity_known_gaps.json +++ b/packages/microcosm-build/src/microcosm/build/us/ecps_parity_known_gaps.json @@ -81,7 +81,7 @@ "FFINVAL": {"entity": "family", "label": "Financial assistance amount - Family"} }, "policyengine_variable": { - "version": "2.2.1", + "version": "2.60.4", "entity": "person", "definition_period": "year", "documentation": "Cash financial assistance from friends or relatives outside the household." @@ -247,7 +247,7 @@ "scope": "all participant categories" }, "policyengine_variable": { - "version": "2.2.1", + "version": "2.60.4", "entity": "person", "definition_period": "month", "value_type": "bool", @@ -321,7 +321,7 @@ "household": ["HSURVAL", "HSUR_YN"] }, "policyengine_variable": { - "version": "2.2.1", + "version": "2.60.4", "entity": "person", "definition_period": "year", "documentation": "Survivor benefits other than Social Security survivor benefits." @@ -410,7 +410,7 @@ "SPM_STTAX": "SPM unit's state tax" }, "policyengine_variable": { - "version": "2.2.1", + "version": "2.60.4", "entity": "tax_unit", "definition_period": "year", "value_type": "bool", @@ -482,7 +482,7 @@ "key": "takes_up_early_head_start_if_eligible" }, "policyengine_variable": { - "version": "2.2.1", + "version": "2.60.4", "entity": "person", "definition_period": "year", "value_type": "bool", diff --git a/packages/microcosm-build/src/microcosm/build/us/engine_abi.lock.json b/packages/microcosm-build/src/microcosm/build/us/engine_abi.lock.json index 65c22eece..7e44e9ab3 100644 --- a/packages/microcosm-build/src/microcosm/build/us/engine_abi.lock.json +++ b/packages/microcosm-build/src/microcosm/build/us/engine_abi.lock.json @@ -1 +1 @@ -{"engine":{"package":"policyengine-us","version":"2.2.1"},"programs":{"aca":{"consumers":["assigned_aca_ptc","person_receives_aca","selected_marketplace_plan_actuarial_value","selected_marketplace_plan_premium_proxy"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_aca_if_eligible"},"basic_health_program":{"consumers":["basic_health_program_enrolled"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_basic_health_program_if_eligible"},"ca_premium_subsidy":{"consumers":["assigned_ca_premium_subsidy"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_ca_premium_subsidy_if_eligible"},"chip":{"consumers":["chip_enrolled"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_chip_if_eligible"},"co_premium_assistance":{"consumers":["assigned_co_premium_assistance"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_co_premium_assistance_if_eligible"},"dc_ptc":{"consumers":["dc_ptc"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_dc_ptc"},"early_head_start":{"consumers":["early_head_start"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_early_head_start_if_eligible"},"eitc":{"consumers":["dc_eitc_without_qualifying_child","eitc","nj_eitc","ok_federal_eitc","wa_working_families_tax_credit","wa_working_families_tax_credit_age_expansion_eligible"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_eitc"},"head_start":{"consumers":["head_start"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_head_start_if_eligible"},"housing_assistance":{"consumers":["housing_assistance"],"default":true,"engine_class":"data_seeded","entity":"spm_unit","value_type":"bool","variable":"takes_up_housing_assistance_if_eligible"},"medicaid":{"consumers":["medicaid_enrolled"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_medicaid_if_eligible"},"medicare":{"consumers":["medicare_enrolled"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_medicare_if_eligible"},"nm_premium_assistance":{"consumers":["assigned_nm_premium_assistance"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_nm_premium_assistance_if_eligible"},"snap":{"consumers":["snap"],"default":true,"engine_class":"data_seeded","entity":"spm_unit","value_type":"bool","variable":"takes_up_snap_if_eligible"},"ssi":{"consumers":["ca_sbd_general_relief_receives_other_cash_assistance","ssi"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_ssi_if_eligible"},"tanf":{"consumers":["ca_calworks_child_care_eligible","tanf"],"default":true,"engine_class":"data_seeded","entity":"spm_unit","value_type":"bool","variable":"takes_up_tanf_if_eligible"},"wic":{"consumers":["wic"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_wic_if_eligible"}},"remaining_stage_input_manifest":{"receipt":{"consumer_counts":{"PolicyEngineUSEngine.materialize":12,"_complete_schedule_d_input":5,"_simulation_projection":926,"prepare_stacked_tail_derivation":2,"seed_multispine_pool_inputs":17,"ssi_static_dependency_closure":54,"with_us_qbi_input_reconciliation":27,"with_us_take_up_inputs":16},"engine_input_projection_contract":{"default_count":925,"defaults_sha256":"f938af6506623f453ca55922cf4a8ba6443d5f780f85e4381b777083a90396a0","engine_version_ref":{"kind":"engine_abi_lock","pointer":"/engine/version"},"input_count":926,"sha256":"cefb137f164c6629589a887bbb56831ebc463cd46909a72ead4dbe0557961e61"},"entry_count":1059,"manifest_sha256":"0a84565a659a6404cb17715dda36f094a87431c713c7a37bf65a936b16937325","schema_version":1,"sha256":"a1bbee6d7784821947c71551916347a7cf9ac6d15b13ac10c131ae74f941bfe0","ssi_dependency_contract":{"edge_count":187,"engine_version_ref":{"kind":"engine_abi_lock","pointer":"/engine/version"},"formula_node_count":63,"input_leaf_count":54,"root":"ssi","sha256":"200ca39e784511e9ede685261f5e0840198ec2b9c4292a522c0fc504c535b31c"},"stage_counts":{"derive":34,"seed":33,"simulate":992}},"rows":[{"available_by":"transferred","consumer":"_complete_schedule_d_input","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"long_term_capital_gains_before_response"},{"available_by":"transferred","consumer":"_complete_schedule_d_input","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"non_sch_d_capital_gains"},{"available_by":"assembled","consumer":"_complete_schedule_d_input","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"derive","variable":"person_tax_unit_id"},{"available_by":"transferred","consumer":"_complete_schedule_d_input","entity":"person","execution_scope":"whole_pool","fallback":"derive_from_finite_transferred_parents","provision":"optional_transferred_or_schedule_d_derived","stage":"derive","variable":"schedule_d_capital_gain_distributions"},{"available_by":"assembled","consumer":"_complete_schedule_d_input","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"derive","variable":"tax_unit_id"},{"available_by":"assembled","consumer":"prepare_stacked_tail_derivation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_provenance","stage":"derive","variable":"person_support_clone_index"},{"available_by":"transferred","consumer":"prepare_stacked_tail_derivation","entity":"person","execution_scope":"clone_2","fallback":"absent_or_cleared_then_schedule_d_derived","provision":"optional_existing_derived_leaf","stage":"derive","variable":"schedule_d_capital_gain_distributions"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembled_raw_acs_source_authority","stage":"derive","variable":"SEMP"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembled_native_person_input","stage":"derive","variable":"age"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"business_is_sstb"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"estate_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"estate_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"farm_operations_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"farm_rent_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"non_qualified_dividend_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"partnership_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"partnership_s_corp_income_would_be_qualified"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"derive","variable":"person_id"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":"person_id_for_unstacked_lineage_digest","provision":"assembly_support_source_identity","stage":"derive","variable":"person_source_id"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_provenance","stage":"derive","variable":"person_support_channel"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_provenance","stage":"derive","variable":"person_support_clone_index"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"derive","variable":"person_tax_unit_id"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"qualified_bdc_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"qualified_reit_and_ptp_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"rental_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"primary_puf_exact_zero_universe","stage":"derive","variable":"s_corp_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:primary_puf_qrf_nontransfer","stage":"derive","variable":"self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"self_employment_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"sstb_self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"sstb_self_employment_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"sstb_unadjusted_basis_qualified_property"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"sstb_w2_wages_from_qualified_business"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"unadjusted_basis_qualified_property"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"w2_wages_from_qualified_business"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_basic_health_program_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_chip_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_early_head_start_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_head_start_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_medicaid_if_eligible"},{"available_by":"transferred","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"transferred_or_preserved_input","stage":"seed","variable":"takes_up_medicare_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_ssi_if_eligible"},{"available_by":"transferred","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"transferred_or_preserved_input","stage":"seed","variable":"takes_up_wic_if_eligible"},{"available_by":"transferred","consumer":"seed_multispine_pool_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"transferred_or_preserved_input","stage":"seed","variable":"takes_up_housing_assistance_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_snap_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":"sourced_seed_when_input_is_missing","provision":"administrative_seed_or_preserved_input","stage":"seed","variable":"takes_up_tanf_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_aca_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_ca_premium_subsidy_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_co_premium_assistance_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_dc_ptc"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"sourced_seed_when_input_is_missing","provision":"administrative_seed_or_preserved_input","stage":"seed","variable":"takes_up_eitc"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_nm_premium_assistance_if_eligible"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"family","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"family_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"household","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"household_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"marital_unit","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"marital_unit_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembled_native_person_input","stage":"seed","variable":"age"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"person_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"seed","variable":"person_spm_unit_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"seed","variable":"person_tax_unit_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":"support_source_id_then_entity_id","provision":"optional_assembled_source_identity","stage":"seed","variable":"source_household_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":"support_source_id_then_entity_id","provision":"optional_assembled_source_identity","stage":"seed","variable":"source_person_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":"support_source_id_then_entity_id","provision":"optional_assembled_source_identity","stage":"seed","variable":"source_year"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_resolve_weights_from_household_weight","stage":"seed","variable":""},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"seed","variable":"spm_unit_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"spm_unit_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_resolve_weights_from_household_weight","stage":"seed","variable":""},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"seed","variable":"tax_unit_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"tax_unit_source_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"family","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"family_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"household","execution_scope":"whole_pool","fallback":null,"provision":"frame_household_weight","stage":"simulate","variable":""},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"household","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"household_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"marital_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"marital_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_family_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_household_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"person_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_marital_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_spm_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_tax_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"spm_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"tax_unit_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"family","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"family_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"family","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"family_weight"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_ssp_excluded_institutional_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"auto_loan_balance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"auto_loan_interest"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"average_home_energy_use_in_state"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"bedrooms"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"block_geoid"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cbo_corporate_income_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cbo_excise_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cbsa_code"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"congressional_district_geoid"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"county_fips"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_tfa_region"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"current_home_energy_use"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_business_assets_debt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_business_assets_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_business_assets_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_count"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"household_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_income_ami_ratio"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_other_real_estate_debt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_other_real_estate_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_other_real_estate_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_rental_property_debt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_rental_property_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_rental_property_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_vehicles_debt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_vehicles_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_vehicles_owned"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_vehicles_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_weight"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_denver"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_wilmington"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_yonkers"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_homeless"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_public_housing"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_non_english_speaking_home"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_on_tribal_land"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_rural"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_shared_living"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_sro"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"living_arrangements_allow_for_food_preparation"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_state_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"net_worth"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_drive_clean_purchased_qualifying_vehicle"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_drive_clean_vehicle_cost"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_drive_clean_vehicle_electric_range"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"parent_has_less_than_high_school_education"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"place_fips"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_for_null","provision":"preserved_stacked_engine_input","stage":"simulate","variable":"puma"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_passenger_vehicle_loan_interest"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sldl"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sldu"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"preserved_stacked_engine_input","stage":"simulate","variable":"state_fips"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tenant_pays_utilities"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"tenure_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tract_geoid"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vtd"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"zcta"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"zip_code"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"marital_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"marital_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"able_contributions_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"adopted_this_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"after_school_expenses"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"age"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_ccap_care_schedule"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_ccap_charged_rate"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_resides_in_assisted_living_home"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ccsp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ccsp_quality_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_level_b_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_meets_snf_criteria"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_receives_elderly_disabled_medicaid_waiver"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ssp_care_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ssp_grandfathered"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_base_period_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_quarters_with_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_second_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_weekly_earnings"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"alimony_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"alimony_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ambulance_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"american_opportunity_credit_claimed_prior_years"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"amt_foreign_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ar_sra_care_type"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"attends_eligible_educational_institution_for_american_opportunity_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"attends_eligible_educational_institution_for_lifetime_learning_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_530a_distribution"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_ccap_quality_enhanced_provider"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"bank_account_assets"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"bond_assets"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"business_is_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"business_is_sstb"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_calworks_child_care_factor_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_calworks_child_care_provider_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_calworks_child_care_time_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_calworks_child_care_welfare_to_work"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_cvrp_vehicle_rebate_amount"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_in_home_supportive_services"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_in_medical_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_state_disability_insurance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"care_and_support_costs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"care_and_support_payments_from_tax_filer"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"casualty_loss"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"charitable_cash_donations"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"charitable_non_cash_donations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"charitable_non_cash_donations_non_50_pct_orgs"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"child_support_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"child_support_received"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"childcare_attending_days_per_month"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"childcare_days_per_week"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"childcare_hours_per_day"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"childcare_provider_type_group"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"claimed_as_dependent_on_another_return"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"claimed_ma_covid_19_essential_employee_premium_pay_program_2020"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_care_worker_credit_eligible_care_worker"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_denver_employee_occupational_privilege_tax_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_glendale_employee_occupational_privilege_tax_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_greenwood_village_employee_occupational_privilege_tax_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_quality_rating_of_child_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_sheridan_employee_occupational_privilege_tax_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cost_of_attending_college"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"count_529_contribution_beneficiaries"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cps_race"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"csrs_retirement_pay"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_c4k_provider_accredited"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_c4k_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_ssp_has_therapeutic_diet"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_ssp_lives_with_others"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_ssp_resides_in_boarding_home"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"current_pregnancy_month"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ccsp_childcare_provider_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ccsp_schedule_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ossp_facility_size"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ossp_in_adult_foster_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_poc_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_wilmington_nonresident_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"debt_relief"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dependent_care_employer_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"detailed_industry_recode"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"detailed_occupation_recode"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"disability_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"divorce_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e00700"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e01100"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e01200"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e02000"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03220"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03230"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03240"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03270"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03290"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03300"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03400"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03500"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e07240"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e07260"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e07300"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e09700"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e09800"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e09900"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e11200"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e18500"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e19200"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e19800"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e20100"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e20400"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e24515"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e24518"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e26270"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e27200"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e32800"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e58990"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e62900"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e87521"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e87530"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"early_withdrawal_penalty"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"educational_assistance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"educator_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_contribution_to_health_insurance_premiums_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_headcount"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_ny_mctmt_zone_1_quarterly_payroll_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_ny_mctmt_zone_2_quarterly_payroll_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_quarterly_payroll_expense_override"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_sponsored_insurance_premiums"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_state_unemployment_tax_rate_override"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_denver_occupational_privilege_tax_employee_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_denver_occupational_privilege_tax_owner_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_glendale_occupational_privilege_tax_employee_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_glendale_occupational_privilege_tax_owner_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_greenwood_village_occupational_privilege_tax_employee_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_greenwood_village_occupational_privilege_tax_owner_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_sheridan_occupational_privilege_tax_employee_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_mo_st_louis_payroll_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_or_lane_transit_district_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_or_trimet_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_payroll_tax_gross_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_taxable_earnings_for_federal_unemployment_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_taxable_earnings_for_social_security"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_taxable_earnings_for_state_unemployment_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_payroll_expense_current_year_total"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_payroll_expense_lower_band_taxable_payroll"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_payroll_expense_prior_year_total"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_payroll_expense_upper_band_taxable_payroll"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_social_housing_excess_compensation"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"employment_income_before_lsr"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"er_visit_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"estate_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"estate_income_would_be_qualified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"excess_withheld_payroll_tax"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_operations_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_operations_income_would_be_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_rent_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_rent_income_would_be_qualified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"financial_assistance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fl_oss_community_care_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fl_oss_program_track"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fl_sr_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"four_year_college_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fsla_overtime_premium"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_caps_care_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_caps_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_caps_quality_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_ssp_in_nursing_home_or_institutionalized_hospice"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"gambling_losses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"gambling_winnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"general_assistance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"general_business_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"gi_cash_assistance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_american_opportunity_credit_1098_t_or_exception"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_american_opportunity_credit_institution_ein"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_applied_for_unemployment_compensation"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_bcc_qualifying_coverage"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_champva_health_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_chip_health_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_completed_first_four_years_of_postsecondary_education"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_developmental_delay"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_emergency_medical_condition"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_esi"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_felony_drug_conviction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_health_coverage_other_than_chip"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_indian_health_service_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_individualized_education_program"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_lifetime_learning_credit_1098_t_or_exception"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_long_distance_medical_travel_for_medicaid_ce"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_marketplace_health_coverage_at_interview"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_medicaid_health_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_never_worked"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_no_prior_formal_early_learning"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_non_marketplace_direct_purchase_health_coverage_at_interview"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_other_means_tested_health_coverage_at_interview"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_tricare_health_coverage_at_interview"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_va_health_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"health_insurance_premiums"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"health_insurance_premiums_without_medicare_part_b"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"health_savings_account_payroll_contributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heating_expense_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"hi_ccap_provider_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"hi_oss_care_facility_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"home_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"home_is_on_agricultural_land"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"home_mortgage_interest"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"hourly_wage"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"hours_worked_last_week"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ia_cca_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ia_cca_quality_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"id_aabd_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"id_iccp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_aabd_is_bedfast"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_ccap_base_day_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"illicit_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"imaging_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"immigration_status_str"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_ccdf_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_ccdf_ptq_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_out_of_home_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_resides_in_licensed_residential_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_resides_in_unlicensed_residential_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"inpatient_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"investment_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"investment_in_529_plan_indv"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"investment_income_elected_form_4952"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"investment_interest_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_american_indian_or_alaska_native_for_medicaid_ce"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_blind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_born_outside_us"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_breastfeeding"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_complying_with_tanf_work_requirements"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_computer_scientist"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_deaf"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_deceased"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_disabled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_english_proficient"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_enrolled_at_least_half_time_for_american_opportunity_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_enrolled_in_ccdf"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_enrolled_in_head_start"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_executive_administrative_professional"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_farmer_fisher"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_federal_work_study_participant"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"is_female"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_full_time_college_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_fully_disabled_service_connected_veteran"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_grandparent_of_filer_or_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_hispanic"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_hospitalized_for_medicaid_ce"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"is_household_head"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_household_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_adult_residential_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_foster_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_foster_care_group_home"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_k12_nonpublic_school"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_medicaid_community_engagement_treatment_program"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_medicaid_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_residential_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_secondary_school"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_substance_use_treatment_program"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_work_program"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_incapable_of_self_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_incarcerated"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_medicaid_1115_mec_adult"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_medicaid_community_engagement_seasonal_worker"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_medically_frail_or_has_special_medical_needs_for_medicaid_ce"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_migratory_child"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_military"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_paid_hourly"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_parent_of_filer_or_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_part_time_college_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_permanently_and_totally_disabled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_permanently_disabled_veteran"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_pregnant"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_pursuing_credential_for_american_opportunity_credit"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"preserved_stacked_engine_input","stage":"simulate","variable":"is_related_to_head_or_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_runaway_child"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_self_employed"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_separated"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_severely_disabled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_abawd_discretionary_exempt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_abawd_indian_exempt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_employment_training_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_work_incentive_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_work_program_participant"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_work_registration_noncompliant"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_workfare_participant"},{"available_by":"release","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"refuse_null_if_present_no_default","provision":"unprovisioned_source_input","stage":"simulate","variable":"is_spm_independent_minor_role"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_surviving_child_of_disabled_veteran"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_surviving_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_surviving_spouse_of_disabled_veteran"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_tafdc_related_to_head_or_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_union_member_or_covered"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_unmarried_partner_of_household_head"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_wccc_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_wic_at_nutritional_risk"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_wic_fully_breastfeeding"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"keogh_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ks_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_service_credit_months_post_1997"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_service_credit_months_pre_1998"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_ssp_care_receivers"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_ssp_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_quality_rating_of_child_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_receives_blind_exemption"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"lab_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"life_insurance_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_capital_gains_basis"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"long_term_capital_gains_before_response"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_capital_gains_on_assets_eligible_for_vt_exclusion"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"long_term_capital_gains_on_collectibles"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_capital_gains_on_small_business_stock"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_capital_gains_years_held"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_health_insurance_premiums"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_ccfa_care_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_ccfa_is_in_relatives_home_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_ccfa_schedule_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"major_industry_recode"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_ccs_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_paa_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_paa_pending_federal_benefit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_claiming_tax_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_community_engagement_community_service_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_community_engagement_less_than_half_time_education_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_community_engagement_six_month_average_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_community_engagement_work_program_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_tax_dependent_exception_non_custodial_parent"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicare_part_b_premiums_reported"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicare_quarters_of_coverage"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"meets_ssi_disability_criteria"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ccap_exempt_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ccap_star_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_basic_pay"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_retirement_pay"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_retirement_pay_survivors"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_service_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"miscellaneous_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_ccap_quality_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_msa_has_guardian"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_msa_housing_assistance_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_msa_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_msa_uses_representative_payee"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_ccs_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_kansas_city_earnings_tax_taxable_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_snc_facility_base_charge"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_st_louis_earnings_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_st_louis_earnings_tax_taxable_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"months_receiving_social_security_disability"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ms_ccpp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_ccap_care_time"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_ccap_provider_qris_step"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_aabd_alternate_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_child_care_subsidy_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_child_care_subsidy_quality_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_school_readiness_credit_child_care_worker_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_school_readiness_credit_eligible_worker"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"never_eligible_for_social_security_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nh_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_ccap_grow_nj_kids_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_base_period_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_base_period_weeks"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_qualifying_dependents"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_spouse_employed_when_claim_established"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_weekly_gross_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_weeks_claimed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_working_less_than_full_time"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_ccap_focus_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_ccap_non_traditional_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"non_public_school_tuition"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"non_qualified_dividend_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"non_sch_d_capital_gains"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nv_ccdp_provider_star_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nv_ccdp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_base_period_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_gross_weekly_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_quarters_with_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_second_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_weekly_hours_worked"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_yonkers_nonresident_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"offered_aca_disqualifying_esi"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_bonus_depreciation_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_has_special_accommodations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_is_accredited"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_non_traditional_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_owf_transitional"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_quality_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_educator_expense_deduction_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_federal_conformity_deductions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_has_taken_oh_lump_sum_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_homestead_exemption_qualifying_surviving_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_other_add_backs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_section_179_expense_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_uniformed_services_retirement_income_deduction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ccs_provider_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ccs_star_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_base_period_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_base_period_total_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_gross_weekly_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_high_quarter_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_high_quarter_total_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_erdc_provider_area"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_erdc_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"other_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"other_health_insurance_premiums"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"other_medical_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"outpatient_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"over_the_counter_health_expenses"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"own_children_in_household"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"p08000"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_ccw_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_philadelphia_wage_tax_reduced_rate_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_philadelphia_wage_tax_resident"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_philadelphia_wage_tax_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_base_year_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_credit_weeks"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_gross_weekly_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_highest_quarter_wages"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"partnership_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"partnership_s_corp_income_would_be_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"partnership_self_employment_net_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"passive_partnership_s_corp_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_countable_assets"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_dependent_available_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_dependent_other_allowances"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_head_allowances"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_months_in_school"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pension_survivors"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"person_count"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_family_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_household_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_marital_unit_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_spm_unit_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_tax_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"personal_property"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pfml_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"physician_services_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"pre_subsidy_care_expenses"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"pre_subsidy_rent"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pre_subsidy_transportation_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pre_tax_health_insurance_premiums"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"prescription_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"previous_year_income_available"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"primary_residence_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"prior_year_minimum_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_adoption_assistance_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_bdc_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_dividend_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_reit_and_ptp_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_tuition_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"railroad_benefits"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"real_estate_taxes"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"receives_medicaid"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"receives_or_needs_protective_services"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"receives_ssi"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"receives_wic"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"rental_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"rental_income_would_be_qualified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"retired_from_federal_government"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"retired_from_ky_government"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"retired_on_total_disability"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"retirement_benefits_from_ss_exempt_employment"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_ccap_star_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_ccap_step_rating"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"roth_401k_contributions_desired"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"roth_403b_contributions_desired"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"roth_ira_contributions_desired"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"s_corp_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"salt_refund_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_ccap_quality_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_ccap_registered_quality_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_ccap_second_child_discount_rate"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_tuition_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_tuition_credit_eligible"},{"available_by":"derived","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"derived_schedule_d_input","stage":"simulate","variable":"schedule_d_capital_gain_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sd_cca_provider_type"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employed_pension_contributions_desired"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employment_income_last_year"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employment_income_would_be_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"short_term_capital_gains"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_dependents"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_disability"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_retirement"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_survivors"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ss_aime_input"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_lives_in_another_persons_household"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_lives_in_medical_treatment_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_medicaid_pays_majority_of_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_others_pay_all_meals"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_qualifying_quarters_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_food_from_others"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_outside_shelter_support"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_shelter_from_others_in_household"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_for_null","provision":"preserved_stacked_engine_input","stage":"simulate","variable":"ssi_reported"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_shelter_support_value"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"ssn_card_type"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_self_employment_income_would_be_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_unadjusted_basis_qualified_property"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_w2_wages_from_qualified_business"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"state_or_federal_salary"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"stock_assets"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"strike_benefits"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"student_loan_interest"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"survivor_benefits"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_basic_health_program_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_chip_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_early_head_start_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_head_start_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_medicaid_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_medicare_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_ssi_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_wic_if_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_401k_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_403b_distributions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_interest_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_ira_distributions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_private_pension_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_public_pension_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_sep_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_preparation_fees"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_401k_distributions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_403b_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_estate_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_federal_pension_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_interest_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_ira_distributions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_private_pension_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_public_pension_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_roth_conversions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_sep_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"technical_institution_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tip_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tn_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tn_ccap_qris_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"total_disability_payments"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"traditional_401k_contributions_desired"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"traditional_403b_contributions_desired"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"traditional_ira_contributions_desired"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"treasury_tipped_occupation_code"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tx_ccs_care_schedule"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tx_ccs_provider_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tx_ccs_provider_type"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"unadjusted_basis_qualified_property"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"under_12_months_postpartum"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"under_60_days_postpartum"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"unemployment_compensation"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"unreimbursed_business_employee_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"urgent_care_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"us_bonds_for_higher_ed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"us_govt_interest_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"use_reported_ssi"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_base_period_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_gross_weekly_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_quarters_with_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_weekly_hours_worked"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_weeks_unemployed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_ccsp_is_full_day"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_ccsp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_educator_expenses"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"veterans_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vt_ccfap_provider_type"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"w2_wages_from_qualified_business"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_eceap_slot_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_pfml_average_weekly_wage_override"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_pfml_leave_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_pfml_qualifying_period_hours_worked"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_wccc_day_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_wccc_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"was_in_foster_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"was_recently_incarcerated_for_medicaid_ce"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"weekly_hours_worked_before_lsr"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"weekly_snap_work_program_hours"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"weeks_unemployed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_shares_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wic_breastfeeding_infant_count"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wic_infant_feeding_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"worked_last_year"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"workers_compensation"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wv_ccap_non_traditional_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wv_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wv_ccap_quality_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wy_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"year_deceased"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"year_of_retirement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"years_in_military"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"years_since_us_entry"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ccsp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ar_months_since_tea_exit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ar_was_tea_recipient"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"bottled_gas_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"broadband_cost"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_riv_share_eligible_for_emergency_payment"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_scc_general_assistance_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_clothing_provided_in_kind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_food_provided_in_kind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_housing_provided_in_kind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_is_recipient"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_utilities_provided_in_kind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_smc_general_assistance_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_ccap_is_in_entry_process"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_ccap_is_in_re_determination_process"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"coal_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cooking_fuel_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ccsp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_liheap_housing_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_poc_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"enrolled_in_ebb"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"experienced_covid_income_loss"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fdpir"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fl_sr_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fuel_oil_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_caps_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"gas_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_cooling_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"head_start_applies_housing_cost_adjustment"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"head_start_uses_discretionary_income_limit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heat_expense_included_in_rent"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heating_cooling_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heating_expense_last_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heating_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"homeowners_association_fees"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"homeowners_insurance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"housing_designated_welfare"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ia_cca_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"id_iccp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_aabd_institutional_status"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_aabd_vehicle_is_essential"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_ccap_non_parent_relative_child_only_tanf"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_ccap_protective_care_override"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_liheap_eligible_for_crisis_assistance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_ccdf_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_nd_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_sd_cca_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_wi_shares_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_general_relief_disability_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_general_relief_housing_subsidy_program_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_general_relief_recipient"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_ccfa_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_eaedc_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_ccs_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"meets_ccdf_activity_test"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"metered_gas_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_ccap_registration_fee"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_ccs_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"months_since_calworks_exit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mortgage_payments"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_child_care_subsidy_at_redetermination"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_child_care_subsidy_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nv_ccdp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_owf_basic_assistance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"other_heating_fuel_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_ccw_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_ccw_has_stepparent"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"phone_cost"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pre_subsidy_electricity_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"receives_housing_assistance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"receives_snap"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"receives_tanf"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sd_tanf_is_shared_living"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sewage_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"snap_self_employment_income_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_assets"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_count"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"spm_unit_energy_subsidy"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"spm_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_net_income_reported"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"spm_unit_pre_subsidy_childcare_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_school_lunch_subsidy"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_snap"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"spm_unit_tenure_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_total_income_reported"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_housing_assistance_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_snap_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_tanf_if_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tn_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tn_ccap_protective_services_waiver"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"trash_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tx_ottanf_crisis_criteria"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_ccsp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_show_all_cash_assistance_programs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"was_calworks_recipient"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"water_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wood_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wy_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wy_power_shelter_qualified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"advanced_main_air_circulating_fan_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"air_sealing_ventilation_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"amt_form_completed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"amt_non_agi_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_charitable_contributions_to_qualifying_charitable_organizations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_charitable_contributions_to_qualifying_foster_care_organizations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"biomass_stove_boiler_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_property_tax_exemption"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cohabitating_spouses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_amt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_section_179_expense_add_back"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"domestic_production_ald"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"electric_heat_pump_clothes_dryer_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"electric_load_service_center_upgrade_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"electric_stove_cooktop_range_or_oven_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"electric_wiring_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_central_air_conditioner_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_door_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_insulation_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_roof_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_window_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"excess_payroll_tax_withheld"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"first_home_mortgage_balance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"first_home_mortgage_interest"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"first_home_mortgage_origination_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"foreign_earned_income_exclusion"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"foreign_tax_credit_potential"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"form_4972_lumpsum_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fuel_cell_property_capacity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fuel_cell_property_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_investment_in_529_plan_deduction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_itemized_deductions_adjustment"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"geothermal_heat_pump_property_expenditures"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"health_savings_account_ald"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heat_pump_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heat_pump_water_heater_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"home_energy_audit_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"id_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_pass_through_entity_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_pass_through_withholding"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_schedule_m_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_schedule_m_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_bonus_depreciation_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_healthcare_sharing_deduction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_nol"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_nol_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_oos_municipal_obligation_interest_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_other_add_backs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_other_deductions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_section_179_expense_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_tax_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_use_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"investment_income_form_4952"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_barred_from_american_opportunity_credit_due_to_improper_claims"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_nonresident_alien_for_american_opportunity_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_nonresident_alien_for_lifetime_learning_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"k12_tuition_and_fees"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ks_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_total_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_affordability_payment_subtraction_reported"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_property_tax_fairness_credit_utilities_in_rent_amount"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_step_4_share_of_child_care_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_renters_credit_property_tax_exempt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_renters_credit_qualifying_crp"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ms_charitable_contributions_to_qualifying_foster_care_organizations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ms_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_renters_refund_property_tax_exempt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_battery_capacity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_battery_components_made_in_north_america"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_battery_critical_minerals_extracted_in_trading_partner_country"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_classification"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_msrp"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nh_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_senior_freeze"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_qualified_geothermal_energy_system_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_qualified_solar_energy_systems_equipment_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nyc_unincorporated_business_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_adjustments"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_federal_pension_subtraction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_tax_before_credits_in_prior_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"other_net_gain"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_primary_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"prior_energy_efficient_home_improvement_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"prior_energy_efficient_window_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"property_sales_net_capital_gain"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"puerto_rico_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"purchased_qualifying_new_clean_vehicle"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"purchased_qualifying_used_clean_vehicle"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_battery_storage_technology_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_furnace_or_hot_water_boiler_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_retirement_penalty"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"recapture_of_investment_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"refundable_payroll_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"rent_is_shared_with_another_tax_unit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"residential_efficiency_electrification_retrofit_energy_savings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"residential_efficiency_electrification_retrofit_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_section_179_expense_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"salt_refund_last_year"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"second_home_mortgage_balance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"second_home_mortgage_interest"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"second_home_mortgage_origination_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"selected_marketplace_plan_benchmark_ratio"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"selected_marketplace_plan_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"separate_filer_itemizes"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"small_wind_energy_property_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"solar_electric_property_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"solar_water_heating_property_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"specified_possession_income"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_aca_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_ca_premium_subsidy_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_co_premium_assistance_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_dc_ptc"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_eitc"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_nm_premium_assistance_if_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_unit_count"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"tax_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_unit_income_ami_ratio"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_unit_stillborn_children"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxsim_pprofinc"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxsim_sprofinc"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tuition_and_fees"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"unrecaptured_section_1250_gain"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"unreported_payroll_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"used_clean_vehicle_sale_price"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"utilities_included_in_rent"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_pte_cotenant_disposable_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"would_file_if_eligible_for_refundable_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"would_file_taxes_voluntarily"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wv_additions"},{"available_by":"assembled","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembled_native_person_input","stage":"simulate","variable":"age"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"alimony_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"bank_account_assets"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"bond_assets"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"child_support_received"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"disability_benefits"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"employment_income_before_lsr"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"financial_assistance"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"gi_cash_assistance"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"immigration_status_str"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_blind"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_full_time_college_student"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_separated"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"keogh_distributions"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"meets_ssi_disability_criteria"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"non_qualified_dividend_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"own_children_in_household"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_dividend_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"rental_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_dependents"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_disability"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_retirement"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_survivors"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_lives_in_another_persons_household"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_lives_in_medical_treatment_facility"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_medicaid_pays_majority_of_care"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_others_pay_all_meals"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_qualifying_quarters_earnings"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_food_from_others"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_outside_shelter_support"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_shelter_from_others_in_household"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_shelter_support_value"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"stock_assets"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"survivor_benefits"},{"available_by":"seeded","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"seed_receipted_value_or_disclosed_engine_default","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_ssi_if_eligible"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_401k_distributions"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_403b_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_interest_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_ira_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_private_pension_income"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_public_pension_income"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_sep_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_401k_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_403b_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_interest_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_ira_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_private_pension_income"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_public_pension_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_sep_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"unemployment_compensation"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"veterans_benefits"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"workers_compensation"}]}} +{"engine":{"package":"policyengine-us","version":"2.60.4"},"programs":{"aca":{"consumers":["assigned_aca_ptc","files_return_for_aca_ptc","person_receives_aca","selected_marketplace_plan_actuarial_value","selected_marketplace_plan_premium_proxy"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_aca_if_eligible"},"basic_health_program":{"consumers":["basic_health_program_enrolled"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_basic_health_program_if_eligible"},"ca_premium_subsidy":{"consumers":["assigned_ca_premium_subsidy"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_ca_premium_subsidy_if_eligible"},"chip":{"consumers":["chip_enrolled"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_chip_if_eligible"},"co_premium_assistance":{"consumers":["assigned_co_premium_assistance"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_co_premium_assistance_if_eligible"},"dc_ptc":{"consumers":["dc_ptc"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_dc_ptc"},"early_head_start":{"consumers":["early_head_start"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_early_head_start_if_eligible"},"eitc":{"consumers":["dc_eitc_without_qualifying_child","eitc","nj_eitc","ok_federal_eitc","wa_working_families_tax_credit","wa_working_families_tax_credit_age_expansion_eligible"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_eitc"},"head_start":{"consumers":["head_start"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_head_start_if_eligible"},"housing_assistance":{"consumers":["housing_assistance"],"default":true,"engine_class":"data_seeded","entity":"spm_unit","value_type":"bool","variable":"takes_up_housing_assistance_if_eligible"},"medicaid":{"consumers":["medicaid_enrolled"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_medicaid_if_eligible"},"medicare":{"consumers":["medicare_enrolled"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_medicare_if_eligible"},"medicare_part_d":{"consumers":["medicare_part_d_enrolled"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_medicare_part_d_if_eligible"},"nm_premium_assistance":{"consumers":["assigned_nm_premium_assistance"],"default":true,"engine_class":"data_seeded","entity":"tax_unit","value_type":"bool","variable":"takes_up_nm_premium_assistance_if_eligible"},"snap":{"consumers":["snap"],"default":true,"engine_class":"data_seeded","entity":"spm_unit","value_type":"bool","variable":"takes_up_snap_if_eligible"},"ssi":{"consumers":["ca_sbd_general_relief_receives_other_cash_assistance","nh_ssp_eligible","ny_ssp","ok_ssp_eligible","sd_ssp_care","ssi","tx_ssi_state_supplement_eligible","va_ag_eligible","vt_aabd_ep"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_ssi_if_eligible"},"tanf":{"consumers":["ca_calworks_child_care_eligible","tanf"],"default":true,"engine_class":"data_seeded","entity":"spm_unit","value_type":"bool","variable":"takes_up_tanf_if_eligible"},"wic":{"consumers":["wic"],"default":true,"engine_class":"data_seeded","entity":"person","value_type":"bool","variable":"takes_up_wic_if_eligible"}},"remaining_stage_input_manifest":{"receipt":{"consumer_counts":{"PolicyEngineUSEngine.materialize":12,"_complete_schedule_d_input":5,"_simulation_projection":1074,"prepare_stacked_tail_derivation":2,"seed_multispine_pool_inputs":18,"ssi_static_dependency_closure":96,"with_us_qbi_input_reconciliation":27,"with_us_take_up_inputs":16},"engine_input_projection_contract":{"default_count":1073,"defaults_sha256":"6074e12fe8a712a0c605f334073ec178c94bf20449131463b704c859c3acbb84","engine_version_ref":{"kind":"engine_abi_lock","pointer":"/engine/version"},"input_count":1074,"sha256":"f76224d83f92cc165205410e5f5d71f634899a2fd0c687540656aab643899bd2"},"entry_count":1250,"manifest_sha256":"7681ca4573651f65ed87b09f0fd64e3724a7ba8001805d450a132093caed2fa9","schema_version":1,"sha256":"33eab061e841883bcc03ac8ee276ce7bb43f00d989617d43d3454336dc8c36d8","ssi_dependency_contract":{"edge_count":351,"engine_version_ref":{"kind":"engine_abi_lock","pointer":"/engine/version"},"formula_node_count":121,"input_leaf_count":96,"root":"ssi","sha256":"b7f3f6bec42d8eb496d2a24bc94b0f81a12b30960a2725a009f88f5295003971"},"stage_counts":{"derive":34,"seed":34,"simulate":1182}},"rows":[{"available_by":"transferred","consumer":"_complete_schedule_d_input","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"long_term_capital_gains_before_response"},{"available_by":"transferred","consumer":"_complete_schedule_d_input","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"non_sch_d_capital_gains"},{"available_by":"assembled","consumer":"_complete_schedule_d_input","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"derive","variable":"person_tax_unit_id"},{"available_by":"transferred","consumer":"_complete_schedule_d_input","entity":"person","execution_scope":"whole_pool","fallback":"derive_from_finite_transferred_parents","provision":"optional_transferred_or_schedule_d_derived","stage":"derive","variable":"schedule_d_capital_gain_distributions"},{"available_by":"assembled","consumer":"_complete_schedule_d_input","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"derive","variable":"tax_unit_id"},{"available_by":"assembled","consumer":"prepare_stacked_tail_derivation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_provenance","stage":"derive","variable":"person_support_clone_index"},{"available_by":"transferred","consumer":"prepare_stacked_tail_derivation","entity":"person","execution_scope":"clone_2","fallback":"absent_or_cleared_then_schedule_d_derived","provision":"optional_existing_derived_leaf","stage":"derive","variable":"schedule_d_capital_gain_distributions"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembled_raw_acs_source_authority","stage":"derive","variable":"SEMP"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembled_native_person_input","stage":"derive","variable":"age"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"business_is_sstb"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"estate_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"estate_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"farm_operations_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"farm_rent_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"non_qualified_dividend_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"partnership_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"partnership_s_corp_income_would_be_qualified"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"derive","variable":"person_id"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":"person_id_for_unstacked_lineage_digest","provision":"assembly_support_source_identity","stage":"derive","variable":"person_source_id"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_provenance","stage":"derive","variable":"person_support_channel"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_provenance","stage":"derive","variable":"person_support_clone_index"},{"available_by":"assembled","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"derive","variable":"person_tax_unit_id"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"qualified_bdc_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"qualified_reit_and_ptp_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"rental_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"primary_puf_exact_zero_universe","stage":"derive","variable":"s_corp_income"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:primary_puf_qrf_nontransfer","stage":"derive","variable":"self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"self_employment_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"sstb_self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"sstb_self_employment_income_would_be_qualified"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"sstb_unadjusted_basis_qualified_property"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"sstb_w2_wages_from_qualified_business"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"unadjusted_basis_qualified_property"},{"available_by":"transferred","consumer":"with_us_qbi_input_reconciliation","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"pool_input_surface:puf_tax_itemization","stage":"derive","variable":"w2_wages_from_qualified_business"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_basic_health_program_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_chip_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_early_head_start_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_head_start_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_medicaid_if_eligible"},{"available_by":"transferred","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"transferred_or_preserved_input","stage":"seed","variable":"takes_up_medicare_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_medicare_part_d_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_ssi_if_eligible"},{"available_by":"transferred","consumer":"seed_multispine_pool_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"transferred_or_preserved_input","stage":"seed","variable":"takes_up_wic_if_eligible"},{"available_by":"transferred","consumer":"seed_multispine_pool_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"transferred_or_preserved_input","stage":"seed","variable":"takes_up_housing_assistance_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_snap_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":"sourced_seed_when_input_is_missing","provision":"administrative_seed_or_preserved_input","stage":"seed","variable":"takes_up_tanf_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_aca_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_ca_premium_subsidy_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_co_premium_assistance_if_eligible"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_dc_ptc"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"sourced_seed_when_input_is_missing","provision":"administrative_seed_or_preserved_input","stage":"seed","variable":"takes_up_eitc"},{"available_by":"seeded","consumer":"seed_multispine_pool_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":"checked_take_up_contract_engine_default","provision":"preserved_input_or_disclosed_engine_default","stage":"seed","variable":"takes_up_nm_premium_assistance_if_eligible"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"family","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"family_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"household","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"household_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"marital_unit","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"marital_unit_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembled_native_person_input","stage":"seed","variable":"age"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"person_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"seed","variable":"person_spm_unit_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"seed","variable":"person_tax_unit_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":"support_source_id_then_entity_id","provision":"optional_assembled_source_identity","stage":"seed","variable":"source_household_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":"support_source_id_then_entity_id","provision":"optional_assembled_source_identity","stage":"seed","variable":"source_person_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"person","execution_scope":"whole_pool","fallback":"support_source_id_then_entity_id","provision":"optional_assembled_source_identity","stage":"seed","variable":"source_year"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_resolve_weights_from_household_weight","stage":"seed","variable":""},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"seed","variable":"spm_unit_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"spm_unit_source_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_resolve_weights_from_household_weight","stage":"seed","variable":""},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"seed","variable":"tax_unit_id"},{"available_by":"assembled","consumer":"with_us_take_up_inputs","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"assembly_support_source_identity","stage":"seed","variable":"tax_unit_source_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"family","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"family_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"household","execution_scope":"whole_pool","fallback":null,"provision":"frame_household_weight","stage":"simulate","variable":""},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"household","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"household_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"marital_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"marital_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_family_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_household_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"person_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_marital_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_spm_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"frame_membership","stage":"simulate","variable":"person_tax_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"spm_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"spm_unit_id"},{"available_by":"assembled","consumer":"PolicyEngineUSEngine.materialize","entity":"tax_unit","execution_scope":"whole_pool","fallback":null,"provision":"frame_entity_id","stage":"simulate","variable":"tax_unit_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"family","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"family_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"family","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"family_weight"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"family","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_large_group_net_income_limit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"family","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_nonfinancially_ineligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_ssp_excluded_institutional_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"auto_loan_balance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"auto_loan_interest"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"average_home_energy_use_in_state"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"bedrooms"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"block_geoid"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cbo_corporate_income_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cbo_excise_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cbsa_code"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"congressional_district_geoid"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"county_fips"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_tfa_region"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"current_home_energy_use"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_business_assets_debt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_business_assets_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_business_assets_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_count"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"household_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_income_ami_ratio"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_other_real_estate_debt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_other_real_estate_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_other_real_estate_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_rental_property_debt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_rental_property_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_rental_property_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_vehicles_debt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_vehicles_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_vehicles_owned"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_vehicles_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"household_weight"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_denver"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_wilmington"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_yonkers"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_homeless"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_public_housing"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_non_english_speaking_home"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_on_tribal_land"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_rural"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_shared_living"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_sro"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"living_arrangements_allow_for_food_preparation"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_state_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"net_worth"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_drive_clean_purchased_qualifying_vehicle"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_drive_clean_vehicle_cost"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_drive_clean_vehicle_electric_range"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"parent_has_less_than_high_school_education"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"place_fips"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_for_null","provision":"preserved_stacked_engine_input","stage":"simulate","variable":"puma"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_passenger_vehicle_loan_interest"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sldl"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sldu"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"preserved_stacked_engine_input","stage":"simulate","variable":"state_fips"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tenant_pays_utilities"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"tenure_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tract_geoid"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vtd"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_tribal_area_i"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"zcta"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"household","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"zip_code"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"marital_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"marital_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"marital_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mortgage_and_real_estate_taxes_paid_from_joint_account"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"able_contributions_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"adopted_this_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"after_school_expenses"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"age"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_ccap_care_schedule"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_ccap_charged_rate"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ak_resides_in_assisted_living_home"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ccsp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ccsp_quality_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_level_b_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_meets_snf_criteria"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_receives_elderly_disabled_medicaid_waiver"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ssp_care_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ssp_grandfathered"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_base_period_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_quarters_with_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_second_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_weekly_earnings"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"alimony_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"alimony_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ambulance_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"american_opportunity_credit_claimed_prior_years"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"amt_foreign_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ar_sra_care_type"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"attends_eligible_educational_institution_for_american_opportunity_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"attends_eligible_educational_institution_for_lifetime_learning_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_530a_distribution"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_ccap_quality_enhanced_provider"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"bank_account_assets"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"bond_assets"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"business_is_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"business_is_sstb"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_calworks_child_care_factor_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_calworks_child_care_provider_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_calworks_child_care_time_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_calworks_child_care_welfare_to_work"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_cvrp_vehicle_rebate_amount"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_in_home_supportive_services"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_in_medical_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_state_disability_insurance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"care_and_support_costs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"care_and_support_payments_from_tax_filer"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"casualty_loss"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"charitable_capital_gain_donations_50_pct_orgs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"charitable_capital_gain_donations_non_50_pct_orgs"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"charitable_cash_donations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"charitable_cash_donations_50_pct_orgs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"charitable_cash_donations_non_50_pct_orgs"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"charitable_non_cash_donations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"charitable_non_cash_donations_50_pct_orgs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"charitable_non_cash_donations_non_50_pct_orgs"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"child_support_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"child_support_received"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"childcare_attending_days_per_month"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"childcare_days_per_week"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"childcare_hours_per_day"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"childcare_provider_type_group"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"claim_of_right_repayment"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"claimed_as_dependent_on_another_return"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"claimed_ma_covid_19_essential_employee_premium_pay_program_2020"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_care_worker_credit_eligible_care_worker"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_denver_employee_occupational_privilege_tax_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_glendale_employee_occupational_privilege_tax_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_greenwood_village_employee_occupational_privilege_tax_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_quality_rating_of_child_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_sheridan_employee_occupational_privilege_tax_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"collectibles_gain_or_loss"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cost_of_attending_college"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"count_529_contribution_beneficiaries"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cps_race"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"csrs_retirement_pay"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_c4k_provider_accredited"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_c4k_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_ssp_has_therapeutic_diet"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_ssp_lives_with_others"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_ssp_resides_in_boarding_home"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"current_pregnancy_month"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ccsp_childcare_provider_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ccsp_schedule_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ossp_facility_size"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ossp_in_adult_foster_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_poc_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_wilmington_nonresident_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"debt_relief"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"deceased_spousal_unused_exclusion_amount"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dependent_care_employer_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dependent_claimant_filing_exception"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"detailed_industry_recode"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"detailed_occupation_recode"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"disability_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"disability_benefits_before_minimum_retirement_age"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"divorce_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e00700"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e01100"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e01200"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e02000"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03220"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03230"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03240"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03270"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03290"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03300"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03400"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e03500"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e07240"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e07260"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e07300"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e09700"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e09800"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e09900"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e11200"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e18500"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e19200"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e19800"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e20100"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e20400"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e24515"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e24518"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e26270"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e27200"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e32800"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e58990"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e62900"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e87521"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"e87530"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"early_withdrawal_penalty"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"educational_assistance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"educator_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"eitc_passive_income_also_in_earned_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_contribution_to_health_insurance_premiums_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_headcount"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_ny_mctmt_zone_1_quarterly_payroll_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_ny_mctmt_zone_2_quarterly_payroll_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_quarterly_payroll_expense_override"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_sponsored_insurance_premiums"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_state_unemployment_tax_rate_override"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_denver_occupational_privilege_tax_employee_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_denver_occupational_privilege_tax_owner_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_glendale_occupational_privilege_tax_employee_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_glendale_occupational_privilege_tax_owner_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_greenwood_village_occupational_privilege_tax_employee_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_greenwood_village_occupational_privilege_tax_owner_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_co_sheridan_occupational_privilege_tax_employee_months"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_mo_st_louis_payroll_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_or_lane_transit_district_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_or_trimet_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_payroll_tax_gross_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_taxable_earnings_for_federal_unemployment_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_taxable_earnings_for_social_security"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_taxable_earnings_for_state_unemployment_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_payroll_expense_current_year_total"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_payroll_expense_lower_band_taxable_payroll"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_payroll_expense_prior_year_total"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_payroll_expense_upper_band_taxable_payroll"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"employer_total_wa_seattle_social_housing_excess_compensation"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"employment_income_before_lsr"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"er_visit_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"estate_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"estate_income_net_investment_income_adjustment"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"estate_income_would_be_qualified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"excess_withheld_payroll_tax"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_operations_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_operations_income_would_be_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_rent_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"farm_rent_income_would_be_qualified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"financial_assistance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fl_oss_community_care_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fl_oss_program_track"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fl_sr_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"four_year_college_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fsla_overtime_premium"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_caps_care_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_caps_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_caps_quality_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_ssp_in_nursing_home_or_institutionalized_hospice"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"gambling_losses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"gambling_winnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"general_assistance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"general_business_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"gi_cash_assistance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_american_opportunity_credit_1098_t_or_exception"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_american_opportunity_credit_institution_ein"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_applied_for_unemployment_compensation"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_bcc_qualifying_coverage"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_champva_health_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_chip_health_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_completed_first_four_years_of_postsecondary_education"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_developmental_delay"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_emergency_medical_condition"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_esi"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_felony_drug_conviction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_health_coverage_other_than_chip"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_indian_health_service_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_individualized_education_program"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_lifetime_learning_credit_1098_t_or_exception"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_long_distance_medical_travel_for_medicaid_ce"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_marketplace_health_coverage_at_interview"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_medicaid_health_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_never_worked"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_no_prior_formal_early_learning"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_non_marketplace_direct_purchase_health_coverage_at_interview"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_other_means_tested_health_coverage_at_interview"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_tricare_health_coverage_at_interview"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"has_va_health_coverage_at_interview"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"health_insurance_premiums"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"health_insurance_premiums_without_medicare_part_b"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"health_savings_account_ald_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"health_savings_account_payroll_contributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heating_expense_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"hi_ccap_provider_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"hi_oss_care_facility_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"home_equity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"home_is_on_agricultural_land"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"home_mortgage_interest"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"home_mortgage_points"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"hourly_wage"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"hours_worked_last_week"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ia_cca_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ia_cca_quality_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"id_aabd_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"id_iccp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_aabd_is_bedfast"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_ccap_base_day_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"illicit_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"imaging_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"immigration_status_str"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_ccdf_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_ccdf_ptq_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_out_of_home_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_resides_in_licensed_residential_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_resides_in_unlicensed_residential_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"inpatient_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"investment_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"investment_in_529_plan_indv"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"investment_income_elected_form_4952"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"investment_interest_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_american_indian_or_alaska_native_for_medicaid_ce"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_blind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_born_outside_us"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_breastfeeding"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_complying_with_tanf_work_requirements"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_computer_scientist"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_deaf"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_deceased"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_disabled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_english_proficient"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_enrolled_at_least_half_time_for_american_opportunity_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_enrolled_in_ccdf"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_enrolled_in_head_start"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_executive_administrative_professional"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_farmer_fisher"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_federal_work_study_participant"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"is_female"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_full_time_college_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_fully_disabled_service_connected_veteran"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_grandparent_of_filer_or_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_hispanic"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_hospitalized_for_medicaid_ce"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"is_household_head"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_household_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_adult_residential_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_foster_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_foster_care_group_home"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_k12_nonpublic_school"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_medicaid_community_engagement_treatment_program"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_medicaid_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_residential_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_secondary_school"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_substance_use_treatment_program"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_work_program"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_incapable_of_self_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_incarcerated"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_medicaid_1115_mec_adult"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_medicaid_community_engagement_seasonal_worker"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_medically_frail_or_has_special_medical_needs_for_medicaid_ce"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_migratory_child"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_military"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_paid_hourly"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_parent_of_filer_or_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_part_time_college_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_permanently_and_totally_disabled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_permanently_disabled_veteran"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_pregnant"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_pursuing_credential_for_american_opportunity_credit"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"preserved_stacked_engine_input","stage":"simulate","variable":"is_related_to_head_or_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_runaway_child"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_self_employed"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_separated"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_severely_disabled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_abawd_discretionary_exempt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_abawd_indian_exempt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_employment_training_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_lpr_in_waiting_period_exempt_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_work_incentive_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_work_program_participant"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_work_registration_noncompliant"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_snap_workfare_participant"},{"available_by":"release","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"refuse_null_if_present_no_default","provision":"unprovisioned_source_input","stage":"simulate","variable":"is_spm_independent_minor_role"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_surviving_child_of_disabled_veteran"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_surviving_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_surviving_spouse_of_disabled_veteran"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_tafdc_related_to_head_or_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_under_court_supervision"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_union_member_or_covered"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_unmarried_partner_of_household_head"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_wccc_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_wic_at_nutritional_risk"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_wic_fully_breastfeeding"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"keogh_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ks_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_service_credit_months_post_1997"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_service_credit_months_pre_1998"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_ssp_care_receivers"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_ssp_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_quality_rating_of_child_care_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_receives_blind_exemption"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"lab_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"life_insurance_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_capital_gains_basis"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"long_term_capital_gains_before_response"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_capital_gains_on_assets_eligible_for_vt_exclusion"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"long_term_capital_gains_on_collectibles"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_capital_gains_on_small_business_stock"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_capital_gains_years_held"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_capital_loss_carryover"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"long_term_health_insurance_premiums"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_ccfa_care_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_ccfa_is_in_relatives_home_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_ccfa_schedule_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"major_industry_recode"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_ccs_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_paa_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_paa_pending_federal_benefit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_claiming_tax_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_community_engagement_community_service_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_community_engagement_less_than_half_time_education_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_community_engagement_six_month_average_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_community_engagement_work_program_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicaid_tax_dependent_exception_non_custodial_parent"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicare_part_b_premiums_reported"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"medicare_quarters_of_coverage"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"meets_ssi_disability_criteria"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ccap_exempt_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ccap_star_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_basic_pay"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_retirement_pay"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_retirement_pay_survivors"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_service_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"miscellaneous_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_ccap_quality_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_msa_has_guardian"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_msa_housing_assistance_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_msa_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_msa_uses_representative_payee"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_ccs_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_kansas_city_earnings_tax_taxable_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_sab_reported_earnings_taxes"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_snc_facility_base_charge"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_ssp_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_st_louis_earnings_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_st_louis_earnings_tax_taxable_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_tanf_is_non_parent_caretaker"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_tanf_non_parent_caretaker_opts_out"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"months_receiving_social_security_disability"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mortgage_insurance_premiums"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ms_ccpp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_ccap_care_time"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_elderly_homeowner_or_renter_credit_property_tax_rebate_received"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_elderly_homeowner_or_renter_credit_received"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_ssp_payment_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_claim_of_right_repayment_excluded_from_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_lieap_bank_account_exclusions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_lieap_is_daas_disabled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_lieap_nonbank_resources"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_military_retirement_survivor_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_sa_care_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_sa_facility_rate"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_ccap_provider_qris_step"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_aabd_alternate_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_child_care_subsidy_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_child_care_subsidy_quality_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_school_readiness_credit_child_care_worker_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_school_readiness_credit_eligible_worker"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"never_eligible_for_social_security_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nh_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nh_ssp_essential_person_countable_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nh_ssp_essential_person_resources"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nh_ssp_grant_reduction_applies"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nh_ssp_has_essential_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_ccap_grow_nj_kids_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_ssp_care_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_base_period_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_base_period_weeks"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_qualifying_dependents"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_spouse_employed_when_claim_established"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_weekly_gross_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_weeks_claimed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_working_less_than_full_time"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_ccap_focus_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_ccap_non_traditional_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"non_public_school_tuition"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"non_qualified_dividend_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"non_sch_d_capital_gains"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nv_ccdp_provider_star_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nv_ccdp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nv_oss_care_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ssp_care_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_base_period_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_gross_weekly_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_quarters_with_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_second_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_weekly_hours_worked"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_yonkers_nonresident_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"offered_aca_disqualifying_esi"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_bonus_depreciation_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_has_special_accommodations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_is_accredited"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_non_traditional_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_owf_transitional"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_quality_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_educator_expense_deduction_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_federal_conformity_deductions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_has_taken_oh_lump_sum_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_homestead_exemption_qualifying_surviving_spouse"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_qualifying_capital_gain"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_qualifying_capital_gain_deductible_payroll"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_rss_certified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_section_179_expense_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ccs_provider_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ccs_star_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ssp_is_excluded"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_base_period_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_base_period_total_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_gross_weekly_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_high_quarter_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_high_quarter_total_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_erdc_provider_area"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_erdc_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_ssp_approved_initial_room_board"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_ssp_care_liability"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_ssp_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_ssp_inaccessible_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_ssp_spousal_diversion_difference"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"other_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"other_health_insurance_premiums"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"other_medical_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"outpatient_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"over_the_counter_health_expenses"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"own_children_in_household"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"p08000"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_ccw_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_philadelphia_wage_tax_reduced_rate_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_philadelphia_wage_tax_resident"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_philadelphia_wage_tax_taxable_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_ssp_care_home"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_base_year_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_credit_weeks"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_gross_weekly_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_highest_quarter_wages"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"parent_1_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"parent_2_id"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"partnership_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"partnership_s_corp_income_would_be_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"partnership_self_employment_net_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"passive_estate_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"passive_partnership_s_corp_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_countable_assets"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_dependent_available_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_dependent_other_allowances"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_head_allowances"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_months_in_school"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pension_survivors"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"person_count"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_family_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_household_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_marital_unit_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_spm_unit_id"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"person_tax_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"personal_property"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pfml_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"physician_services_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"pre_subsidy_care_expenses"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"pre_subsidy_rent"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pre_subsidy_transportation_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pre_tax_health_insurance_premiums"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"prescription_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"previous_year_income_available"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"primary_residence_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"prior_year_minimum_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_adoption_assistance_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_bdc_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_dividend_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_reit_and_ptp_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_tuition_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"railroad_benefits"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"real_estate_taxes"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"receives_medicaid"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"receives_or_needs_protective_services"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"receives_ssi"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"receives_wic"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"rental_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"rental_income_would_be_qualified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"retired_from_federal_government"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"retired_from_ky_government"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"retired_on_total_disability"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"retirement_benefits_from_ss_exempt_employment"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_ccap_star_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_ccap_step_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_ssp_certified_residential_care"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"roth_401k_contributions_desired"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"roth_403b_contributions_desired"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"roth_ira_contributions_desired"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"s_corp_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"salt_refund_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_ccap_quality_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_ccap_registered_quality_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_ccap_second_child_discount_rate"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_tuition_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_tuition_credit_eligible"},{"available_by":"derived","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"derived_schedule_d_input","stage":"simulate","variable":"schedule_d_capital_gain_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sd_cca_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sd_ssp_approved_care_cost"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sd_ssp_care_certified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sd_ssp_care_income_deductions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sd_ssp_care_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"second_residence_mortgage_insurance_premiums"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"second_residence_mortgage_interest"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"second_residence_mortgage_points"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"section_1202_gain"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employed_pension_contributions_desired"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employment_income_last_year"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employment_income_would_be_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"short_term_capital_gains"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"snap_alien_qualifying_quarters"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_dependents"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_disability"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_retirement"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_survivors"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ss_aime_input"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_lives_in_another_persons_household"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_lives_in_medical_treatment_facility"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_medicaid_pays_majority_of_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_others_pay_all_meals"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_qualifying_quarters_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_food_from_others"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_outside_shelter_support"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_shelter_from_others_in_household"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_for_null","provision":"preserved_stacked_engine_input","stage":"simulate","variable":"ssi_reported"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_resource_deeming_child_is_ineligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_resource_deeming_excluded_military_resources"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_resource_deeming_waiver"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_shelter_support_value"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"ssn_card_type"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_self_employment_income_would_be_qualified"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_unadjusted_basis_qualified_property"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_w2_wages_from_qualified_business"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"state_or_federal_salary"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"stock_assets"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"strike_benefits"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"student_loan_interest"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"survivor_benefits"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_basic_health_program_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_chip_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_early_head_start_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_head_start_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_medicaid_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_medicare_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_medicare_part_d_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_ssi_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_wic_if_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_401k_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_403b_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_disability_benefits"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_interest_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_ira_distributions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_private_pension_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_public_pension_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_sep_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_preparation_fees"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_unit_role_input"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_401k_distributions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_403b_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_estate_value"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_federal_pension_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_interest_income"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_ira_distributions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_private_pension_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_public_pension_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_roth_conversions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_sep_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"technical_institution_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tip_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tn_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tn_ccap_qris_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"total_disability_payments"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"traditional_401k_contributions_desired"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"traditional_403b_contributions_desired"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"traditional_ira_contributions_desired"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"treasury_tipped_occupation_code"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tx_ccs_care_schedule"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tx_ccs_provider_rating"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tx_ccs_provider_type"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"unadjusted_basis_qualified_property"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"under_12_months_postpartum"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"under_60_days_postpartum"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"unemployment_compensation"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"unreimbursed_business_employee_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"urgent_care_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"us_bonds_for_higher_ed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"us_govt_interest_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"use_reported_ssi"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_base_period_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_gross_weekly_earnings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_high_quarter_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_quarters_with_wages"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_weekly_hours_worked"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_weeks_unemployed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_ag_certified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_ag_facility_rate"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_ccsp_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_educator_expenses"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"veterans_benefits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vt_aabd_care_setting"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vt_aabd_ep_additional_countable_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vt_aabd_ep_level"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vt_aabd_ep_nonspouse_essential_person"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vt_aabd_ep_passes_state_resource_test"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vt_ccfap_provider_type"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"w2_wages_from_qualified_business"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_eceap_slot_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_pfml_average_weekly_wage_override"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_pfml_leave_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_pfml_qualifying_period_hours_worked"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_wccc_day_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_wccc_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"was_in_foster_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"was_recently_incarcerated_for_medicaid_ce"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"weekly_hours_worked_before_lsr"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"weekly_snap_work_program_hours"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"weeks_unemployed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"weeks_worked"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_additional_flat_disregard"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_additional_fraction_disregard"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_child_excluded"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_graduates_before_19"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_other_countable_resources"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_other_qualifying_immigration_status"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_part_time_student"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_cts_received_recently"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_shares_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_ssi_e_certified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_ssi_e_for_home_care"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_ssp_institutional_continuation"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wic_breastfeeding_infant_count"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wic_infant_feeding_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"worked_last_year"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"workers_compensation"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wv_ccap_non_traditional_hours"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wv_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wv_ccap_quality_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wy_ccap_provider_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"year_deceased"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"year_of_retirement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"years_in_military"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"person","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"years_since_us_entry"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ccsp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ar_months_since_tea_exit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ar_was_tea_recipient"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"bottled_gas_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"broadband_cost"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_riv_share_eligible_for_emergency_payment"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_scc_general_assistance_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_clothing_provided_in_kind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_food_provided_in_kind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_housing_provided_in_kind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_is_recipient"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_sf_caap_utilities_provided_in_kind"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_smc_general_assistance_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_ccap_is_in_entry_process"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_ccap_is_in_re_determination_process"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"coal_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cooking_fuel_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_ccsp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"dc_liheap_housing_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"de_poc_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"enrolled_in_ebb"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"experienced_covid_income_loss"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fdpir"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fl_sr_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fuel_oil_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_caps_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"gas_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"has_cooling_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"head_start_applies_housing_cost_adjustment"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"head_start_uses_discretionary_income_limit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heat_expense_included_in_rent"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heating_cooling_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heating_expense_last_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heating_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"homeowners_association_fees"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"homeowners_insurance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"housing_designated_welfare"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ia_cca_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"id_iccp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_aabd_institutional_status"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_aabd_vehicle_is_essential"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_ccap_non_parent_relative_child_only_tanf"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_ccap_protective_care_override"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_liheap_eligible_for_crisis_assistance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_eap_dwelling_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_in_ccdf_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_nd_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_sd_cca_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_wi_shares_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ks_liheap_dwelling_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ks_liheap_utility_rate_tier"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_general_relief_disability_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_general_relief_housing_subsidy_program_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"la_general_relief_recipient"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_ccfa_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ma_eaedc_living_arrangement"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_ccs_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_meap_dwelling_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"meets_ccdf_activity_test"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"metered_gas_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_ccap_registration_fee"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mo_ccs_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"months_since_calworks_exit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mortgage_payments"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mt_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_lieap_has_paid_excess_heating_costs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_child_care_subsidy_at_redetermination"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_child_care_subsidy_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_liheap_dwelling_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nv_ccdp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_heap_dwelling_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_ccap_owf_basic_assistance"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_liheap_dwelling_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_liheap_dwelling_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"other_heating_fuel_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_ccw_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_ccw_has_stepparent"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"phone_cost"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pre_subsidy_electricity_expense"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"receives_housing_assistance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"receives_snap"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"receives_tanf"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sd_tanf_is_shared_living"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sewage_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"snap_self_employment_income_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_assets"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_count"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"spm_unit_energy_subsidy"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"spm_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_net_income_reported"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"spm_unit_pre_subsidy_childcare_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_school_lunch_subsidy"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_snap"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"assembled_native_engine_input","stage":"simulate","variable":"spm_unit_tenure_type"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"spm_unit_total_income_reported"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_housing_assistance_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_snap_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_tanf_if_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tn_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tn_ccap_protective_services_waiver"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"trash_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tx_ottanf_crisis_criteria"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_ccsp_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_show_all_cash_assistance_programs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"was_calworks_recipient"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"water_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wood_expense"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wy_ccap_enrolled"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"spm_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wy_power_shelter_qualified"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"advanced_main_air_circulating_fan_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"air_sealing_ventilation_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"amt_form_completed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"amt_non_agi_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_charitable_contributions_to_qualifying_charitable_organizations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_charitable_contributions_to_qualifying_foster_care_organizations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"az_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"biomass_stove_boiler_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ca_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"co_property_tax_exemption"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"cohabitating_spouses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_amt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ct_section_179_expense_add_back"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"domestic_production_ald"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"electric_heat_pump_clothes_dryer_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"electric_load_service_center_upgrade_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"electric_stove_cooktop_range_or_oven_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"electric_wiring_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_central_air_conditioner_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_door_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_insulation_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_roof_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"energy_efficient_window_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"excess_payroll_tax_withheld"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"first_home_mortgage_balance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"first_home_mortgage_origination_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"foreign_earned_income_exclusion_allocable_deductions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"foreign_earned_income_exclusion_amount"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"foreign_earned_income_exclusion_disallowed_deductions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"foreign_housing_deduction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"foreign_housing_exclusion"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"foreign_tax_credit_potential"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"form_4972_lumpsum_distributions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fuel_cell_property_capacity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"fuel_cell_property_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_investment_in_529_plan_deduction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_itemized_deductions_adjustment"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ga_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"geothermal_heat_pump_property_expenditures"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"health_savings_account_ald"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heat_pump_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"heat_pump_water_heater_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"hi_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"hi_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"home_energy_audit_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"id_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"id_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_pass_through_entity_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"il_pass_through_withholding"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_bonus_depreciation_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_healthcare_sharing_deduction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_nol"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_nol_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_oos_municipal_obligation_interest_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_other_add_backs"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_other_deductions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_section_179_expense_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_tax_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"in_use_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"investment_income_form_4952"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_barred_from_american_opportunity_credit_due_to_improper_claims"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_nonresident_alien_for_american_opportunity_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_nonresident_alien_for_lifetime_learning_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"itemized_medical_expenses_long_term_care_premiums"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"k12_tuition_and_fees"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ks_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ks_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ky_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"md_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_affordability_payment_subtraction_reported"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_property_tax_fairness_credit_utilities_in_rent_amount"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"me_step_4_share_of_child_care_expenses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mi_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_renters_credit_property_tax_exempt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"mn_renters_credit_qualifying_crp"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ms_charitable_contributions_to_qualifying_foster_care_organizations"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ms_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nc_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nd_renters_refund_property_tax_exempt"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ne_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_battery_capacity"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_battery_components_made_in_north_america"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_battery_critical_minerals_extracted_in_trading_partner_country"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_classification"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"new_clean_vehicle_msrp"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nh_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_senior_freeze"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_non_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nm_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_pass_through_entity_tax_credit_claimed"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_qualified_geothermal_energy_system_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_qualified_solar_energy_systems_equipment_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"nyc_unincorporated_business_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"oh_refundable_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_adjustments"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_federal_pension_subtraction"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"or_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"other_net_gain"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"pell_grant_primary_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"prior_energy_efficient_home_improvement_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"prior_energy_efficient_window_credits"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"property_sales_net_capital_gain"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"puerto_rico_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"purchased_qualifying_new_clean_vehicle"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"purchased_qualifying_used_clean_vehicle"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_battery_storage_technology_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_furnace_or_hot_water_boiler_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"qualified_retirement_penalty"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"recapture_of_investment_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"refundable_payroll_tax_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"rent_is_shared_with_another_tax_unit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"residential_efficiency_electrification_retrofit_energy_savings"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"residential_efficiency_electrification_retrofit_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ri_section_179_expense_add_back"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"sc_other_subtractions"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"second_home_mortgage_balance"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"second_home_mortgage_origination_year"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"selected_marketplace_plan_benchmark_ratio"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"selected_marketplace_plan_category"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"separate_filer_itemizes"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"small_wind_energy_property_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"solar_electric_property_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"solar_water_heating_property_expenditures"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"specified_possession_income"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_aca_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_ca_premium_subsidy_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_co_premium_assistance_if_eligible"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_dc_ptc"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_eitc"},{"available_by":"seeded","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_nm_premium_assistance_if_eligible"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_unit_count"},{"available_by":"assembled","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"frame_structural_engine_input","stage":"simulate","variable":"tax_unit_id"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_unit_income_ami_ratio"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_unit_stillborn_children"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxsim_pprofinc"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxsim_sprofinc"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"tuition_and_fees"},{"available_by":"transferred","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"ephemeral_simulation_projection_engine_default_if_present_null","provision":"materialized_pool_input_surface","stage":"simulate","variable":"unrecaptured_section_1250_gain"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"unrecaptured_section_1250_gain_before_losses"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"unreported_payroll_tax"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"used_clean_vehicle_sale_price"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"va_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vt_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"vt_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wa_pte_cotenant_disposable_income"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wi_other_subtractions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"would_file_if_eligible_for_refundable_credit"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"would_file_taxes_voluntarily"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wv_other_additions"},{"available_by":"simulate","consumer":"_simulation_projection","entity":"tax_unit","execution_scope":"disposable_simulation_copy","fallback":"policyengine_default_if_absent","provision":"declared_absent_engine_input","stage":"simulate","variable":"wv_other_subtractions"},{"available_by":"assembled","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"assembled_native_person_input","stage":"simulate","variable":"age"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_base_period_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_high_quarter_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_quarters_with_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_second_high_quarter_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"al_ui_weekly_earnings"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"alimony_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"bank_account_assets"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"bond_assets"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"child_support_received"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"disability_benefits"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"employment_income_before_lsr"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"financial_assistance"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"gi_cash_assistance"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"immigration_status_str"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_blind"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_full_time_college_student"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"is_household_head"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"is_separated"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"keogh_distributions"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"meets_ssi_disability_criteria"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_retirement_pay"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"military_retirement_pay_survivors"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_base_period_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_base_period_weeks"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_qualifying_dependents"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_spouse_employed_when_claim_established"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_weekly_gross_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_weeks_claimed"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"nj_unemployment_insurance_working_less_than_full_time"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"non_qualified_dividend_income"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_base_period_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_gross_weekly_earnings"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_high_quarter_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_quarters_with_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_second_high_quarter_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ny_ui_weekly_hours_worked"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_base_period_taxable_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_base_period_total_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_gross_weekly_earnings"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_high_quarter_taxable_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ok_ui_high_quarter_total_wages"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"own_children_in_household"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_base_year_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_credit_weeks"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_gross_weekly_earnings"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"pa_uc_highest_quarter_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"pre_tax_health_insurance_premiums"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"qualified_dividend_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"rental_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_dependents"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_disability"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_retirement"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"social_security_survivors"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_lives_in_another_persons_household"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_lives_in_medical_treatment_facility"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_medicaid_pays_majority_of_care"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_others_pay_all_meals"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_qualifying_quarters_earnings"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_food_from_others"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_outside_shelter_support"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_receives_shelter_from_others_in_household"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_resource_deeming_child_is_ineligible"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_resource_deeming_excluded_military_resources"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_resource_deeming_waiver"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ssi_shelter_support_value"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"sstb_self_employment_income_before_lsr"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"ephemeral_simulation_projection_engine_default","provision":"declared_deferred_null_input","stage":"simulate","variable":"stock_assets"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"survivor_benefits"},{"available_by":"seeded","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"seed_receipted_value_or_disclosed_engine_default","provision":"seed_stage_program_contract","stage":"simulate","variable":"takes_up_ssi_if_eligible"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_401k_distributions"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_403b_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_interest_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_ira_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"tax_exempt_private_pension_income"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_public_pension_income"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_exempt_sep_distributions"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"tax_unit_role_input"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_401k_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_403b_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_interest_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_ira_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_private_pension_income"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"taxable_public_pension_income"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"taxable_sep_distributions"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"unemployment_compensation"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_base_period_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_gross_weekly_earnings"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_high_quarter_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_quarters_with_wages"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_weekly_hours_worked"},{"available_by":"simulate","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":"policyengine_default_for_absent_input","provision":"declared_absent_engine_input","stage":"simulate","variable":"ut_ui_weeks_unemployed"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"veterans_benefits"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"weeks_unemployed"},{"available_by":"transferred","consumer":"ssi_static_dependency_closure","entity":"person","execution_scope":"whole_pool","fallback":null,"provision":"materialized_pool_input_surface","stage":"simulate","variable":"workers_compensation"}]}} diff --git a/packages/microcosm-build/src/microcosm/build/us/release_input_coverage_manifest.json b/packages/microcosm-build/src/microcosm/build/us/release_input_coverage_manifest.json index 0e8c17162..81d53ecec 100644 --- a/packages/microcosm-build/src/microcosm/build/us/release_input_coverage_manifest.json +++ b/packages/microcosm-build/src/microcosm/build/us/release_input_coverage_manifest.json @@ -108,9 +108,6 @@ "first_home_mortgage_balance": { "status": "required" }, - "first_home_mortgage_interest": { - "status": "required" - }, "first_home_mortgage_origination_year": { "status": "required" }, @@ -221,7 +218,7 @@ "status": "required" }, "is_incapable_of_self_care": { - "note": "Section 21 qualifying-individual flag for the CDCC adult-care leg (PolicyEngine/microcosm#451 item 1), derived from the measured ASEC self-care difficulty item PEDISDRS by the adult_care_inputs base-builder stage. Also read by SNAP/Medicaid work-requirement logic and multiple state dependent-care formulas in PolicyEngine-US 2.2.1. Currently absent — the intended red gate until the next base rebuild carries the stage through.", + "note": "Section 21 qualifying-individual flag for the CDCC adult-care leg (PolicyEngine/microcosm#451 item 1), derived from the measured ASEC self-care difficulty item PEDISDRS by the adult_care_inputs base-builder stage. Also read by SNAP/Medicaid work-requirement logic and multiple state dependent-care formulas in PolicyEngine-US 2.60.4. Currently absent — the intended red gate until the next base rebuild carries the stage through.", "status": "required" }, "is_military": { @@ -334,15 +331,15 @@ "status": "required" }, "receives_snap": { - "note": "ASEC reported SNAP receipt (maximum member SPM_SNAPSUB > 0 per SPM unit), carried by cps_carried.derive_us_cps_carried_inputs; a formula-less monthly boolean spm_unit input in PolicyEngine-US 2.2.1. Required with NO reviewed exclusion per PolicyEngine/microcosm#978 option 1: the ACS local-area transfer requires it in its donor, and a local-area release must name a published donor, so a national default that drops it cannot serve the local chain. The published populace-us-2024-spm-20260915 default does not persist it (its Build P parent, built 2026-07-28 at cae8640, predates the ASEC receipt carry of PolicyEngine/microcosm#600) — the intended red gate until a national build persists it.", + "note": "ASEC reported SNAP receipt (maximum member SPM_SNAPSUB > 0 per SPM unit), carried by cps_carried.derive_us_cps_carried_inputs; a formula-less monthly boolean spm_unit input in PolicyEngine-US 2.60.4. Required with NO reviewed exclusion per PolicyEngine/microcosm#978 option 1: the ACS local-area transfer requires it in its donor, and a local-area release must name a published donor, so a national default that drops it cannot serve the local chain. The published populace-us-2024-spm-20260915 default does not persist it (its Build P parent, built 2026-07-28 at cae8640, predates the ASEC receipt carry of PolicyEngine/microcosm#600) — the intended red gate until a national build persists it.", "status": "required" }, "receives_tanf": { - "note": "ASEC reported TANF receipt (any member with PAW_VAL > 0 and PAW_TYP 1 or 3, per SPM unit), carried by cps_carried.derive_us_cps_carried_inputs; a formula-less monthly boolean spm_unit input in PolicyEngine-US 2.2.1. Required with NO reviewed exclusion per PolicyEngine/microcosm#978 option 1: the ACS local-area transfer requires it in its donor, and a local-area release must name a published donor, so a national default that drops it cannot serve the local chain. The published populace-us-2024-spm-20260915 default does not persist it (its Build P parent, built 2026-07-28 at cae8640, predates the ASEC receipt carry of PolicyEngine/microcosm#600) — the intended red gate until a national build persists it.", + "note": "ASEC reported TANF receipt (any member with PAW_VAL > 0 and PAW_TYP 1 or 3, per SPM unit), carried by cps_carried.derive_us_cps_carried_inputs; a formula-less monthly boolean spm_unit input in PolicyEngine-US 2.60.4. Required with NO reviewed exclusion per PolicyEngine/microcosm#978 option 1: the ACS local-area transfer requires it in its donor, and a local-area release must name a published donor, so a national default that drops it cannot serve the local chain. The published populace-us-2024-spm-20260915 default does not persist it (its Build P parent, built 2026-07-28 at cae8640, predates the ASEC receipt carry of PolicyEngine/microcosm#600) — the intended red gate until a national build persists it.", "status": "required" }, "receives_wic": { - "note": "ASEC reported WIC receipt (WICYN == 1), stored on the reporting adult as her SPM unit's receipt carrier by cps_carried.derive_us_cps_carried_inputs; a formula-less monthly boolean person input in PolicyEngine-US 2.2.1. Required with NO reviewed exclusion per PolicyEngine/microcosm#978 option 1: the ACS local-area transfer requires it in its donor, and a local-area release must name a published donor, so a national default that drops it cannot serve the local chain. The published populace-us-2024-spm-20260915 default does not persist it (its Build P parent, built 2026-07-28 at cae8640, predates the ASEC receipt carry of PolicyEngine/microcosm#600) — the intended red gate until a national build persists it.", + "note": "ASEC reported WIC receipt (WICYN == 1), stored on the reporting adult as her SPM unit's receipt carrier by cps_carried.derive_us_cps_carried_inputs; a formula-less monthly boolean person input in PolicyEngine-US 2.60.4. Required with NO reviewed exclusion per PolicyEngine/microcosm#978 option 1: the ACS local-area transfer requires it in its donor, and a local-area release must name a published donor, so a national default that drops it cannot serve the local chain. The published populace-us-2024-spm-20260915 default does not persist it (its Build P parent, built 2026-07-28 at cae8640, predates the ASEC receipt carry of PolicyEngine/microcosm#600) — the intended red gate until a national build persists it.", "status": "required" }, "rental_income": { @@ -550,9 +547,9 @@ } }, "counts": { - "required": 167, + "required": 166, "reviewed_exclusion": 7, - "total": 174 + "total": 173 }, "derivation": "Required surface = input columns in the pinned, sha-verified ecps_parity_reference.json populated layers, plus the documented post-reference fsla_overtime_premium, qualified_passenger_vehicle_loan_interest, five desired retirement-contribution inputs, meets_ssi_disability_criteria required by shipped validation probes, the #282 Schedule-D capital-gain-distributions route leg schedule_d_capital_gain_distributions (PolicyEngine/microcosm#462), the three ASEC reported-receipt inputs receives_wic, receives_snap, receives_tanf that the ACS local-area transfer requires in its donor (PolicyEngine/microcosm#978 option 1), and the engine's declared dataset source input is_spm_independent_minor_role (the spm_independence_role base-builder stage; PolicyEngine/microcosm#893). status='reviewed_exclusion' for ecps_parity_known_gaps.json entries (reason+issue from that register); EXCEPT every primary-source restoration pinned by RESTORED_REFERENCE_ECPS_REQUIRED_INPUTS (including the Section 199A QBI family), and the SSI countable-resource asset inputs (bank_account_assets, stock_assets, bond_assets), which are status='required' with NO exclusion per PolicyEngine/microcosm#368 so the gate fails on today's artifacts and asset restoration (Deliverable 2) turns it green. All other populated layers are 'required'. Regenerate with tools/build_us_release_input_coverage_manifest.py.", "description": "Declared full-coverage contract for a US release: every input column the reference eCPS exports must be persisted as a key with non-default signal, or carry a reviewed exclusion. Enforced as a hard release gate (microcosm.build.us_runtime.release_input_coverage) that generalizes assert_required_us_release_source_columns from 5 columns to the full eCPS input surface.", @@ -581,7 +578,7 @@ "neutralized_variable": "self_employment_income_last_year", "parameter_changes": {}, "period": 2024, - "reason": "PolicyEngine-US adds self_employment_income_last_year to earned_income_last_year and then aggregates it over tax-unit nondependents. The Wyden-Smith ACTC lookback is the downstream policy consumer, but its parameter also reads formula-owned prior-year wages, so neutralizing this one leaf is the unique coverage probe. The SHA-locked strict equal-share 2022-2024 ASEC pool carries $357.24 billion of weighted net source amount; without the adjacent-year carry the neutralization is a structural zero. The distinct previous_year_income_available flag has no formula consumer in PolicyEngine-US 2.2.1 and remains protected by the hard non-default column gate." + "reason": "PolicyEngine-US adds self_employment_income_last_year to earned_income_last_year and then aggregates it over tax-unit nondependents. The Wyden-Smith ACTC lookback is the downstream policy consumer, but its parameter also reads formula-owned prior-year wages, so neutralizing this one leaf is the unique coverage probe. The SHA-locked strict equal-share 2022-2024 ASEC pool carries $357.24 billion of weighted net source amount; without the adjacent-year carry the neutralization is a structural zero. The distinct previous_year_income_available flag has no formula consumer in PolicyEngine-US 2.60.4 and remains protected by the hard non-default column gate." }, { "binding_inputs": [ @@ -946,11 +943,11 @@ "student_loan_interest_ald", "early_withdrawal_penalty", "alimony_expense_ald", - "educator_expense", + "educator_expense_ald", "health_savings_account_ald", "self_employed_health_insurance_ald", "self_employed_pension_contribution_ald", - "traditional_ira_contributions", + "traditional_ira_deduction", "qualified_adoption_assistance_expense", "us_bonds_for_higher_ed", "specified_possession_income", @@ -960,7 +957,7 @@ } }, "period": 2024, - "reason": "PolicyEngine-US 2.2.1 excludes the former Section 199 deduction from current-law above-the-line deductions. This probe preserves the exact 2024 list and adds only domestic_production_ald, so baseline-minus-reform income tax must be positive. Without the restored E03240 input, reactivation is a structural zero." + "reason": "PolicyEngine-US 2.60.4 excludes the former Section 199 deduction from current-law above-the-line deductions. This probe preserves the exact 2024 list and adds only domestic_production_ald, so baseline-minus-reform income tax must be positive. Without the restored E03240 input, reactivation is a structural zero." }, { "binding_inputs": [ @@ -992,7 +989,7 @@ "neutralized_variable": "salt_refund_income", "parameter_changes": {}, "period": 2024, - "reason": "PolicyEngine-US 2.2.1 includes salt_refund_income in the South Carolina, Idaho, and West Virginia subtraction lists. Neutralizing only that leaf removes the state subtraction and raises state income tax, so baseline-minus-reform state income tax must be negative. Without the restored E00700 input the neutralization is a structural zero." + "reason": "PolicyEngine-US 2.60.4 includes salt_refund_income in the South Carolina, Idaho, and West Virginia subtraction lists. Neutralizing only that leaf removes the state subtraction and raises state income tax, so baseline-minus-reform state income tax must be negative. Without the restored E00700 input the neutralization is a structural zero." }, { "binding_inputs": [ @@ -1042,19 +1039,63 @@ "2024-01-01.2024-12-31": [ "ssi", "general_assistance", + "ak_ssp", + "al_ssp", + "co_oap", + "co_state_supplement", + "ct_ssp_person", + "dc_ossp", + "de_ssp", + "fl_oss", + "ga_ssp_person", + "hi_oss", + "id_aabd", + "in_ssp", + "ks_sspp", + "ky_ssp", + "la_oss", + "ma_state_supplement", + "md_paa", + "me_ssp", + "mi_ssp_person", + "mn_msa_person", + "mo_ssp", + "mt_ssp", + "nc_sa", + "ne_aabd", + "nh_ssp", + "nj_ssp", + "nm_ssi_state_supplement", + "nv_oss", + "ny_ssp", + "oh_rss", + "ok_ssp", + "pa_ssp", + "ri_ssp", + "sc_ssi_state_supplement", + "sd_ssp", + "tx_ssi_state_supplement", + "ut_dhhs_ssp", + "va_ag", + "vt_aabd", + "wa_ssp", + "wi_ssp_countable_for_snap", + "wy_ssp", "pension_income", "veterans_benefits", - "unemployment_compensation", + "total_unemployment_compensation", "disability_benefits", "workers_compensation", "social_security", + "survivor_benefits", "retirement_distributions", - "rental_income", + "military_retirement_income", + "snap_rental_income", + "snap_farm_rent_income", "alimony_income", - "financial_assistance", - "survivor_benefits", "dividend_income", "interest_income", + "financial_assistance", "miscellaneous_income" ] } @@ -1103,19 +1144,63 @@ "2024-01-01.2024-12-31": [ "ssi", "general_assistance", + "ak_ssp", + "al_ssp", + "co_oap", + "co_state_supplement", + "ct_ssp_person", + "dc_ossp", + "de_ssp", + "fl_oss", + "ga_ssp_person", + "hi_oss", + "id_aabd", + "in_ssp", + "ks_sspp", + "ky_ssp", + "la_oss", + "ma_state_supplement", + "md_paa", + "me_ssp", + "mi_ssp_person", + "mn_msa_person", + "mo_ssp", + "mt_ssp", + "nc_sa", + "ne_aabd", + "nh_ssp", + "nj_ssp", + "nm_ssi_state_supplement", + "nv_oss", + "ny_ssp", + "oh_rss", + "ok_ssp", + "pa_ssp", + "ri_ssp", + "sc_ssi_state_supplement", + "sd_ssp", + "tx_ssi_state_supplement", + "ut_dhhs_ssp", + "va_ag", + "vt_aabd", + "wa_ssp", + "wi_ssp_countable_for_snap", + "wy_ssp", "pension_income", "veterans_benefits", - "unemployment_compensation", + "total_unemployment_compensation", "workers_compensation", "social_security", + "survivor_benefits", "retirement_distributions", - "rental_income", + "military_retirement_income", + "snap_rental_income", + "snap_farm_rent_income", "child_support_received", "alimony_income", - "financial_assistance", - "survivor_benefits", "dividend_income", "interest_income", + "financial_assistance", "miscellaneous_income" ] } @@ -1139,19 +1224,63 @@ "2024-01-01.2024-12-31": [ "ssi", "general_assistance", + "ak_ssp", + "al_ssp", + "co_oap", + "co_state_supplement", + "ct_ssp_person", + "dc_ossp", + "de_ssp", + "fl_oss", + "ga_ssp_person", + "hi_oss", + "id_aabd", + "in_ssp", + "ks_sspp", + "ky_ssp", + "la_oss", + "ma_state_supplement", + "md_paa", + "me_ssp", + "mi_ssp_person", + "mn_msa_person", + "mo_ssp", + "mt_ssp", + "nc_sa", + "ne_aabd", + "nh_ssp", + "nj_ssp", + "nm_ssi_state_supplement", + "nv_oss", + "ny_ssp", + "oh_rss", + "ok_ssp", + "pa_ssp", + "ri_ssp", + "sc_ssi_state_supplement", + "sd_ssp", + "tx_ssi_state_supplement", + "ut_dhhs_ssp", + "va_ag", + "vt_aabd", + "wa_ssp", + "wi_ssp_countable_for_snap", + "wy_ssp", "pension_income", "veterans_benefits", - "unemployment_compensation", + "total_unemployment_compensation", "disability_benefits", "social_security", + "survivor_benefits", "retirement_distributions", - "rental_income", + "military_retirement_income", + "snap_rental_income", + "snap_farm_rent_income", "child_support_received", "alimony_income", - "financial_assistance", - "survivor_benefits", "dividend_income", "interest_income", + "financial_assistance", "miscellaneous_income" ] } @@ -1197,7 +1326,7 @@ "health_savings_account_ald", "self_employed_health_insurance_ald", "self_employed_pension_contribution_ald", - "traditional_ira_contributions", + "traditional_ira_deduction", "qualified_adoption_assistance_expense", "us_bonds_for_higher_ed", "specified_possession_income", @@ -1226,11 +1355,11 @@ "self_employment_tax_ald", "student_loan_interest_ald", "early_withdrawal_penalty", - "educator_expense", + "educator_expense_ald", "health_savings_account_ald", "self_employed_health_insurance_ald", "self_employed_pension_contribution_ald", - "traditional_ira_contributions", + "traditional_ira_deduction", "qualified_adoption_assistance_expense", "us_bonds_for_higher_ed", "specified_possession_income", @@ -1424,7 +1553,7 @@ "neutralized_variable": "pre_subsidy_rent", "parameter_changes": {}, "period": 2024, - "reason": "PolicyEngine-US includes pre_subsidy_rent in the SNAP shelter deduction. Neutralizing only the restored ACS rent leaf therefore reduces SNAP; on the pinned retired small eCPS artifact under PolicyEngine-US 1.764.6, baseline-minus-neutralized SNAP is +$11.731 billion. Without nondefault ACS rent, that effect is a structural zero. The other source-mapped housing leaves are enforced by their exact ASEC mappings and signal gate; household tenure_type has no standalone PolicyEngine-US 2.2.1 formula consumer." + "reason": "PolicyEngine-US includes pre_subsidy_rent in the SNAP shelter deduction. Neutralizing only the restored ACS rent leaf therefore reduces SNAP; on the pinned retired small eCPS artifact under PolicyEngine-US 1.764.6, baseline-minus-neutralized SNAP is +$11.731 billion. Without nondefault ACS rent, that effect is a structural zero. The other source-mapped housing leaves are enforced by their exact ASEC mappings and signal gate; household tenure_type has no standalone PolicyEngine-US 2.60.4 formula consumer." }, { "binding_inputs": [ diff --git a/packages/microcosm-build/src/microcosm/build/us/source_stages.json b/packages/microcosm-build/src/microcosm/build/us/source_stages.json index 72b56c12a..786a628bf 100644 --- a/packages/microcosm-build/src/microcosm/build/us/source_stages.json +++ b/packages/microcosm-build/src/microcosm/build/us/source_stages.json @@ -201,8 +201,6 @@ "partnership_self_employment_net_earnings", "first_home_mortgage_balance", "second_home_mortgage_balance", - "first_home_mortgage_interest", - "second_home_mortgage_interest", "first_home_mortgage_origination_year", "second_home_mortgage_origination_year", "health_savings_account_ald", @@ -258,8 +256,6 @@ "health_savings_account_ald", "first_home_mortgage_balance", "second_home_mortgage_balance", - "first_home_mortgage_interest", - "second_home_mortgage_interest", "first_home_mortgage_origination_year", "second_home_mortgage_origination_year", "qualified_bdc_income", diff --git a/packages/microcosm-build/src/microcosm/build/us/spec/battery.yaml b/packages/microcosm-build/src/microcosm/build/us/spec/battery.yaml index ecfe34a68..c52904cfc 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/battery.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/battery.yaml @@ -676,6 +676,11 @@ metric_registry: column: takes_up_medicaid_if_eligible clone_index: 0 metric: boolean_incidence +- entity: person + family: take_up + column: takes_up_medicare_part_d_if_eligible + clone_index: 0 + metric: boolean_incidence - entity: person family: take_up column: takes_up_ssi_if_eligible @@ -736,11 +741,6 @@ metric_registry: column: first_home_mortgage_balance clone_index: 0 metric: monetary_sign_separated -- entity: tax_unit - family: puf_tax_itemization - column: first_home_mortgage_interest - clone_index: 0 - metric: monetary_sign_separated - entity: tax_unit family: puf_tax_itemization column: first_home_mortgage_origination_year diff --git a/packages/microcosm-build/src/microcosm/build/us/spec/calibration.yaml b/packages/microcosm-build/src/microcosm/build/us/spec/calibration.yaml index 128371e09..2f5e01f19 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/calibration.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/calibration.yaml @@ -279,7 +279,6 @@ tail_contracts: - farm_rent_income - farm_rent_income_would_be_qualified - first_home_mortgage_balance - - first_home_mortgage_interest - first_home_mortgage_origination_year - fsla_overtime_premium - has_never_worked @@ -335,7 +334,6 @@ tail_contracts: - scf_student_loan_debt - scf_vehicle_installment_debt - second_home_mortgage_balance - - second_home_mortgage_interest - second_home_mortgage_origination_year - self_employed_pension_contributions_desired - self_employment_income_before_lsr diff --git a/packages/microcosm-build/src/microcosm/build/us/spec/catalogs.yaml b/packages/microcosm-build/src/microcosm/build/us/spec/catalogs.yaml index 9d7b29381..080356f96 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/catalogs.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/catalogs.yaml @@ -1307,6 +1307,16 @@ columns: nullable: false domain: source_operator_medicare_take_up public_stability: internal +- key: person.takes_up_medicare_part_d_if_eligible + contract: + entity: person + dtype: bool + unit: boolean + definition_period: year + vintage: vintage:target_2024 + nullable: false + domain: take_up_rate_unsourced + public_stability: internal - key: person.takes_up_ssi_if_eligible contract: entity: person @@ -1690,17 +1700,6 @@ columns: domain: puf_tax_itemization public_stability: internal unit_waiver: policyengine_us_unit_unavailable -- key: tax_unit.first_home_mortgage_interest - contract: - entity: tax_unit - dtype: float64 - unit: unit_not_declared_by_engine_metadata - definition_period: year - vintage: vintage:target_2024 - nullable: false - domain: puf_tax_itemization - public_stability: internal - unit_waiver: policyengine_us_unit_unavailable - key: tax_unit.first_home_mortgage_origination_year contract: entity: tax_unit @@ -1734,17 +1733,6 @@ columns: domain: primary_puf_qrf_nontransfer public_stability: internal unit_waiver: policyengine_us_unit_unavailable -- key: tax_unit.second_home_mortgage_interest - contract: - entity: tax_unit - dtype: float64 - unit: unit_not_declared_by_engine_metadata - definition_period: year - vintage: vintage:target_2024 - nullable: false - domain: primary_puf_qrf_nontransfer - public_stability: internal - unit_waiver: policyengine_us_unit_unavailable - key: tax_unit.second_home_mortgage_origination_year contract: entity: tax_unit diff --git a/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml b/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml index 7676bdc8f..b9f5de676 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml @@ -1789,20 +1789,6 @@ families: period: year requires_concepts: [] output_coverage_scope: puf_clone - - name: first_home_mortgage_interest - entity: tax_unit - value_kind: amount - dtype: float - period: year - requires_concepts: [] - output_coverage_scope: puf_clone - - name: second_home_mortgage_interest - entity: tax_unit - value_kind: amount - dtype: float - period: year - requires_concepts: [] - output_coverage_scope: puf_clone - name: first_home_mortgage_origination_year entity: tax_unit value_kind: category @@ -2723,13 +2709,6 @@ families: period: year requires_concepts: [] output_coverage_scope: whole_pool - - name: first_home_mortgage_interest - entity: tax_unit - value_kind: amount - dtype: float - period: year - requires_concepts: [] - output_coverage_scope: whole_pool - name: first_home_mortgage_origination_year entity: tax_unit value_kind: category @@ -4118,16 +4097,6 @@ producer_graph: required_scope: whole_pool tolerated_absence_receipts: - optional_input:primary_puf_qrf:tax_unit_output_passthrough:first_home_mortgage_balance - - alternatives: - - - column: first_home_mortgage_interest - entity: tax_unit - value_kind: finite_numeric - column: '@effective:tax_unit_output_passthrough:first_home_mortgage_interest' - entity: tax_unit - producing_stage: post_clone_input_surface - required_scope: whole_pool - tolerated_absence_receipts: - - optional_input:primary_puf_qrf:tax_unit_output_passthrough:first_home_mortgage_interest - alternatives: - - column: first_home_mortgage_origination_year entity: tax_unit @@ -4158,16 +4127,6 @@ producer_graph: required_scope: whole_pool tolerated_absence_receipts: - optional_input:primary_puf_qrf:tax_unit_output_passthrough:second_home_mortgage_balance - - alternatives: - - - column: second_home_mortgage_interest - entity: tax_unit - value_kind: finite_numeric - column: '@effective:tax_unit_output_passthrough:second_home_mortgage_interest' - entity: tax_unit - producing_stage: post_clone_input_surface - required_scope: whole_pool - tolerated_absence_receipts: - - optional_input:primary_puf_qrf:tax_unit_output_passthrough:second_home_mortgage_interest - alternatives: - - column: second_home_mortgage_origination_year entity: tax_unit @@ -5271,11 +5230,9 @@ producer_graph: recipient_owned_candidate_overlap: - domestic_production_ald - first_home_mortgage_balance - - first_home_mortgage_interest - first_home_mortgage_origination_year - health_savings_account_ald - second_home_mortgage_balance - - second_home_mortgage_interest - second_home_mortgage_origination_year top_k: 100 max_top_share: 0.75 @@ -33242,15 +33199,6 @@ producer_graph: producing_stage: primary_puf_qrf required_scope: puf_clone tolerated_absence_receipts: [] - - alternatives: - - - column: first_home_mortgage_interest - entity: tax_unit - value_kind: finite_numeric - column: first_home_mortgage_interest - entity: tax_unit - producing_stage: primary_puf_qrf - required_scope: puf_clone - tolerated_absence_receipts: [] - alternatives: - - column: first_home_mortgage_origination_year entity: tax_unit @@ -33332,7 +33280,6 @@ producer_graph: - domestic_production_ald - unrecaptured_section_1250_gain - first_home_mortgage_balance - - first_home_mortgage_interest - first_home_mortgage_origination_year - health_savings_account_ald execution_receipt_contract: diff --git a/packages/microcosm-build/src/microcosm/build/us/spec/sources.yaml b/packages/microcosm-build/src/microcosm/build/us/spec/sources.yaml index e33ffec84..91425b334 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/sources.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/sources.yaml @@ -99,7 +99,7 @@ sources: stage_asset: id: source_stages path: microcosm.build.us/source_stages.json - sha256: e75217c0db3075bf2664492167d31ce7ee82c2c5f6a70e3b67e8bb6f4ddd7ecf + sha256: cdd24258daf5e4e78b49330cfe9d5ea762aacc2e7232bb072e476632dcac378e stage_manifest: version: 1 country: us @@ -305,8 +305,6 @@ stages: - partnership_self_employment_net_earnings - first_home_mortgage_balance - second_home_mortgage_balance - - first_home_mortgage_interest - - second_home_mortgage_interest - first_home_mortgage_origination_year - second_home_mortgage_origination_year - health_savings_account_ald @@ -361,8 +359,6 @@ stages: - health_savings_account_ald - first_home_mortgage_balance - second_home_mortgage_balance - - first_home_mortgage_interest - - second_home_mortgage_interest - first_home_mortgage_origination_year - second_home_mortgage_origination_year - qualified_bdc_income diff --git a/packages/microcosm-build/src/microcosm/build/us/spec/take_up.yaml b/packages/microcosm-build/src/microcosm/build/us/spec/take_up.yaml index d6a554568..fafc42974 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/take_up.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/take_up.yaml @@ -268,6 +268,27 @@ programs: operation_index: 1 operation_id: derive_medicare_take_up final_owner_stage: medicare_take_up_input +- id: medicare_part_d + variable: takes_up_medicare_part_d_if_eligible + ownership: engine + documentation: + consumed_via: medicare_part_d_enrolled, gated by medicare_enrolled; it gates income_adjusted_part_d_premium_surcharge + (policyengine-us 2.60) + followup: No locked source measures Part D enrollment (the ASEC has no Part D item). CMS publishes + Part D enrollment counts, so a count-calibrated stage anchored on Medicare enrollment is the route + to seeding it. + notes: New in the policyengine-us 2.60 line. Left at the engine default (every Medicare enrollee takes + up Part D), which keeps the Part D income-related premium charged to every enrollee above the thresholds, + as policyengine-us 2.2.1 did. + pipeline: + - kind: engine_default + operation_id: legacy_seeded_input_default + kernel: kernel:engine_default + debt: + populace_treatment: rate_unsourced + rate_review: + status: no_source + final_owner_stage: policyengine_us_default - id: ssi variable: takes_up_ssi_if_eligible ownership: modeled @@ -571,8 +592,8 @@ legacy_contract_metadata: #312.' asserted_engine: package: policyengine-us - constraint: '>=2.2.1,<3' - inventory_built_against: 2.2.1 + constraint: '>=2.60.4,<3' + inventory_built_against: 2.60.4 note: engine_class, entity, value_type, and default below are asserted against the installed engine by test. inventory_built_against records the version the curated treatments were reviewed against; the pin constraint is the contract the build honors. diff --git a/packages/microcosm-build/src/microcosm/build/us/take_up_contract.json b/packages/microcosm-build/src/microcosm/build/us/take_up_contract.json index b86fc1049..3251b7379 100644 --- a/packages/microcosm-build/src/microcosm/build/us/take_up_contract.json +++ b/packages/microcosm-build/src/microcosm/build/us/take_up_contract.json @@ -4,8 +4,8 @@ "policy": "Take-up contract inventory for PolicyEngine-US take-up flags. Each program records the engine facts a test asserts against the installed policyengine-us (entity, default, engine_class) and the curated populace treatment (seed / rate_unsourced / model_simulated / out_of_scope / near_universal) with its administrative rate provenance. The engine facts are derived, not remembered: PolicyEngineUSEngine.take_up_contract() recomputes them from engine metadata and test_us_take_up_contract.py fails when a checked-in engine fact drifts from the pinned engine (same doctrine as the #301 formula-owned guard). populace issue #312.", "asserted_engine": { "package": "policyengine-us", - "constraint": ">=2.2.1,<3", - "inventory_built_against": "2.2.1", + "constraint": ">=2.60.4,<3", + "inventory_built_against": "2.60.4", "note": "engine_class, entity, value_type, and default below are asserted against the installed engine by test. inventory_built_against records the version the curated treatments were reviewed against; the pin constraint is the contract the build honors." }, "doctrine": { @@ -117,6 +117,18 @@ "rate": {"status": "not_used_measured_source"}, "notes": "The dedicated source stage restores the retired measured mapping MCARE == 1 from every locked ASEC year and copies it with source-identity clones onto the PUF support half. out_of_scope means out of scope for generic Bernoulli seeding, not unseeded." }, + { + "variable": "takes_up_medicare_part_d_if_eligible", + "engine_class": "data_seeded", + "entity": "person", + "value_type": "bool", + "default": true, + "populace_treatment": "rate_unsourced", + "consumed_via": "medicare_part_d_enrolled, gated by medicare_enrolled; it gates income_adjusted_part_d_premium_surcharge (policyengine-us 2.60)", + "rate": {"status": "no_source"}, + "followup": "No locked source measures Part D enrollment (the ASEC has no Part D item). CMS publishes Part D enrollment counts, so a count-calibrated stage anchored on Medicare enrollment is the route to seeding it.", + "notes": "New in the policyengine-us 2.60 line. Left at the engine default (every Medicare enrollee takes up Part D), which keeps the Part D income-related premium charged to every enrollee above the thresholds, as policyengine-us 2.2.1 did." + }, { "variable": "takes_up_ssi_if_eligible", "engine_class": "data_seeded", diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/acs_transfer.py b/packages/microcosm-build/src/microcosm/build/us_runtime/acs_transfer.py index a3fb00a6b..f1e367d94 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/acs_transfer.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/acs_transfer.py @@ -182,6 +182,7 @@ def _pregnancy_structural_policy_identity(*, enabled: bool) -> dict[str, object] ).hexdigest() return payload + _IMMIGRATION_STATUS_TARGETS = ( "ssn_card_type", "immigration_status_str", @@ -438,7 +439,6 @@ def acs_transfer_execution_contract_identity( if target not in { "second_home_mortgage_balance", - "second_home_mortgage_interest", "second_home_mortgage_origination_year", } ), @@ -1138,8 +1138,8 @@ def _prepare_pregnancy_structural_plan( "through 44." ) - source_codes, group_count, key_column, representatives = ( - _pregnancy_source_groups(table) + source_codes, group_count, key_column, representatives = _pregnancy_source_groups( + table ) eligible_min = np.ones(group_count, dtype=np.int8) eligible_max = np.zeros(group_count, dtype=np.int8) @@ -1449,9 +1449,7 @@ def transfer_acs_inputs( person, pregnancy_plan, ) - pregnancy_entity, pregnancy_family, pregnancy_targets = ( - pregnancy_request - ) + pregnancy_entity, pregnancy_family, pregnancy_targets = pregnancy_request if pregnancy_targets != (_PREGNANCY_TARGET,): # pragma: no cover raise AssertionError( "Pregnancy structural target was not isolated before receipt." diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/fiscal_targets.py b/packages/microcosm-build/src/microcosm/build/us_runtime/fiscal_targets.py index 8ad5c1983..1dfc0b14f 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/fiscal_targets.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/fiscal_targets.py @@ -183,8 +183,9 @@ def _us_hierarchy_seed( # the gross column summed $241.3B over itemizers (+29.5%) while the capped # concept summed $214.2B (+15.0%) against the $186.3B aged fact -- the cap # haircut alone was a $27.1B pure concept gap. The capped formula is linear - # in the first/second_home_mortgage_interest export inputs (balances and - # origination years only set the deductible share), so calibration keeps + # in the person-level home_mortgage_interest and + # second_residence_mortgage_interest inputs (policyengine-us 2.60; balances + # and origination years only set the deductible share), so calibration keeps # the same pull-through to the export mass that Build H wanted. A # positive-balance unit's deductible share is always positive; gross and # structural carriers are independently imputed, so equality is a data diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/medicare_irmaa_holdout.py b/packages/microcosm-build/src/microcosm/build/us_runtime/medicare_irmaa_holdout.py index a2e95d9d2..4988cecb5 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/medicare_irmaa_holdout.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/medicare_irmaa_holdout.py @@ -123,10 +123,12 @@ def average_monthly_premium_per_payer(self) -> float: "No weighted Medicare enrollee pays an income-related premium, so no " "Trustees comparison is reported. The premium for a year rests on " "modified adjusted gross income from two years earlier. On " - "policyengine-us 2.2.1 this outcome is expected for a release H5 that " + "policyengine-us 2.2.1 this outcome was expected for a release H5 that " "carries only the release year's inputs, because that engine computes the " - "income from the earlier year's inputs; PolicyEngine/policyengine-us#10106 " - "adds a fallback to the earliest input year." + "income from the earlier year's inputs. From policyengine-us 2.60 " + "(PolicyEngine/policyengine-us#10106) the engine falls back to the " + "earliest input year's income, deflated by per-capita CBO AGI, so on it " + "no payer means no enrollee's income reaches the first threshold." ) _NO_ENROLLEES_REASON = ( "No weighted person is enrolled in Medicare, so no Trustees comparison is reported." diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/multispine_pool.py b/packages/microcosm-build/src/microcosm/build/us_runtime/multispine_pool.py index 9bfdd254e..375ba34ff 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/multispine_pool.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/multispine_pool.py @@ -332,29 +332,29 @@ class PoolEngineInputProjectionContract: POOL_SSI_DEPENDENCY_CONTRACT = PoolSsiDependencyContract( - engine_version="2.2.1", + engine_version="2.60.4", root="ssi", - input_leaf_count=54, - formula_node_count=63, - edge_count=187, - sha256="200ca39e784511e9ede685261f5e0840198ec2b9c4292a522c0fc504c535b31c", + input_leaf_count=96, + formula_node_count=121, + edge_count=351, + sha256="b7f3f6bec42d8eb496d2a24bc94b0f81a12b30960a2725a009f88f5295003971", ) """Exact static graph consumed by the terminal SSI agreement simulation.""" POOL_ENGINE_INPUT_PROJECTION_CONTRACT = PoolEngineInputProjectionContract( - engine_version="2.2.1", - input_count=926, - default_count=925, - sha256="cefb137f164c6629589a887bbb56831ebc463cd46909a72ead4dbe0557961e61", - defaults_sha256="f938af6506623f453ca55922cf4a8ba6443d5f780f85e4381b777083a90396a0", + engine_version="2.60.4", + input_count=1074, + default_count=1073, + sha256="f76224d83f92cc165205410e5f5d71f634899a2fd0c687540656aab643899bd2", + defaults_sha256="6074e12fe8a712a0c605f334073ec178c94bf20449131463b704c859c3acbb84", ) """Exact installed input registry scanned by the disposable projection.""" POOL_SSI_INPUT_PROVISION_COUNTS: tuple[tuple[str, int], ...] = ( ("assembled_native_person_input", 1), - ("declared_absent_engine_input", 18), + ("declared_absent_engine_input", 59), ("declared_deferred_null_input", 3), - ("materialized_pool_input_surface", 31), + ("materialized_pool_input_surface", 32), ("seed_stage_program_contract", 1), ) """How each SSI input leaf is provisioned, by count. @@ -366,14 +366,14 @@ class PoolEngineInputProjectionContract: """ POOL_PROJECTION_INPUT_PROVISION_COUNTS: tuple[tuple[str, int], ...] = ( - ("assembled_native_engine_input", 5), - ("declared_absent_engine_input", 763), + ("assembled_native_engine_input", 7), + ("declared_absent_engine_input", 910), ("declared_deferred_null_input", 3), ("derived_schedule_d_input", 1), ("frame_structural_engine_input", 10), - ("materialized_pool_input_surface", 122), + ("materialized_pool_input_surface", 120), ("preserved_stacked_engine_input", 4), - ("seed_stage_program_contract", 17), + ("seed_stage_program_contract", 18), ("unprovisioned_source_input", 1), ) """How every installed engine input is provisioned, by count. @@ -383,9 +383,9 @@ class PoolEngineInputProjectionContract: """ POOL_REMAINING_STAGE_INPUT_MANIFEST_SHA256 = ( - "0a84565a659a6404cb17715dda36f094a87431c713c7a37bf65a936b16937325" + "7681ca4573651f65ed87b09f0fd64e3724a7ba8001805d450a132093caed2fa9" ) -"""Pinned content digest of all 1,059 post-transfer consumer/input rows.""" +"""Pinned content digest of all 1,250 post-transfer consumer/input rows.""" @dataclass(frozen=True) diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/operator_boundary.py b/packages/microcosm-build/src/microcosm/build/us_runtime/operator_boundary.py index 36405d1b4..19fdeb348 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/operator_boundary.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/operator_boundary.py @@ -220,6 +220,7 @@ "takes_up_chip_if_eligible", "takes_up_basic_health_program_if_eligible", "takes_up_medicare_if_eligible", + "takes_up_medicare_part_d_if_eligible", "takes_up_ssi_if_eligible", "takes_up_head_start_if_eligible", "takes_up_early_head_start_if_eligible", diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/puf_qrf_chain.py b/packages/microcosm-build/src/microcosm/build/us_runtime/puf_qrf_chain.py index 616c9352a..1c1ee1ea8 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/puf_qrf_chain.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/puf_qrf_chain.py @@ -87,7 +87,7 @@ *PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS, ) PRIMARY_QRF_TARGET_ORDER_SHA256 = ( - "795519d161e6b8425fc3b64de7eb435d52d25e7c8250b5861f3bb21ab48266a3" + "c2fbe2e37f82c6b901175f77dd6bf6352408871585509eb7fbeefb769fe20af5" ) _ARTIFACT_KIND = "populace_primary_puf_qrf_chain" diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/puf_support.py b/packages/microcosm-build/src/microcosm/build/us_runtime/puf_support.py index 165cf5a44..7ba9c19c0 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/puf_support.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/puf_support.py @@ -170,17 +170,16 @@ PUF_TAX_DETAIL_SUPPORT_CHANNEL, ) +# policyengine-us 2.60 removed the tax-unit first/second_home_mortgage_interest +# legs (policyengine-us#9605): the person-level home_mortgage_interest carries +# the whole amount, and second-residence interest is its own person input. _US_PUF_E19200_LINEAGE_DONOR_COLUMNS = ( "home_mortgage_interest", - "first_home_mortgage_interest", - "second_home_mortgage_interest", "interest_deduction", ) US_PUF_DONOR_MORTGAGE_QUARANTINE_FIELDS = ( "home_mortgage_interest", "investment_interest_expense", - "first_home_mortgage_interest", - "second_home_mortgage_interest", "interest_deduction", ) @@ -339,8 +338,6 @@ class _PredictorSourcePlan: "unrecaptured_section_1250_gain", "first_home_mortgage_balance", "second_home_mortgage_balance", - "first_home_mortgage_interest", - "second_home_mortgage_interest", "first_home_mortgage_origination_year", "second_home_mortgage_origination_year", "health_savings_account_ald", @@ -478,8 +475,6 @@ def puf_tax_detail_tail_bound_quantiles_identity() -> dict[str, float]: "health_savings_account_ald", "first_home_mortgage_balance", "second_home_mortgage_balance", - "first_home_mortgage_interest", - "second_home_mortgage_interest", "first_home_mortgage_origination_year", "second_home_mortgage_origination_year", *US_QBI_NONNEGATIVE_OUTPUT_COLUMNS, diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/release_input_coverage.py b/packages/microcosm-build/src/microcosm/build/us_runtime/release_input_coverage.py index e803bb013..8a727bb91 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/release_input_coverage.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/release_input_coverage.py @@ -53,6 +53,7 @@ from dataclasses import dataclass, field from importlib.resources import files from pathlib import Path +from types import MappingProxyType from typing import Any from microcosm.build.gates import GateResult, input_column_coverage_gate @@ -124,6 +125,7 @@ "US_RELEASE_INPUT_COVERAGE_RESOURCE", "POST_REFERENCE_ECPS_REQUIRED_INPUTS", "REFERENCE_ECPS_LAYER_RENAMES", + "REFERENCE_ECPS_RETIRED_LAYERS", "RESTORED_REFERENCE_ECPS_REQUIRED_INPUTS", "ReformCoverageProbe", "ReleaseInputColumn", @@ -142,11 +144,25 @@ # The SHA-pinned incumbent predates the verified PolicyEngine-US 1.777.0 WIC # input rename. Preserve its historical evidence bytes while projecting the -# retired name onto the live 2.2.1 input leaf for the current release gate. +# retired name onto the live input leaf for the current release gate. REFERENCE_ECPS_LAYER_RENAMES = { "would_claim_wic": "takes_up_wic_if_eligible", } +# Reference layers whose engine input the pinned engine removed, each with the +# live layer that carries its amount. They are neither coverage requirements +# nor graded parity layers (a rename would merge them into a layer the +# reference already carries). policyengine-us 2.60 removed the tax-unit +# first/second home mortgage interest legs (policyengine-us#9605); 2.2.1 read +# them only where no person-level home_mortgage_interest was reported, and on +# the certified d1386 H5 the person-level layer carries the whole amount. +REFERENCE_ECPS_RETIRED_LAYERS = MappingProxyType( + { + "first_home_mortgage_interest": "home_mortgage_interest", + "second_home_mortgage_interest": "home_mortgage_interest", + } +) + # The frozen reference artifact predates the retired pipeline's export of the # pure FLSA overtime-premium input, OBBBA's distinct qualifying passenger- # vehicle interest leaf, the final pipeline's five desired retirement- @@ -717,7 +733,13 @@ def _ecps_populated_layers() -> frozenset[str]: f"{_ECPS_PARITY_REFERENCE_RESOURCE}: 'nonzero_shares' must be a " "non-empty JSON object." ) - historical = {str(name) for name, share in shares.items() if float(share) > 0.0} + # A layer whose engine input the pinned engine retired is not a + # requirement; its live successor is graded in its place. + historical = { + str(name) + for name, share in shares.items() + if float(share) > 0.0 and str(name) not in REFERENCE_ECPS_RETIRED_LAYERS + } projected = {REFERENCE_ECPS_LAYER_RENAMES.get(name, name) for name in historical} if len(projected) != len(historical): raise ValueError( diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/stacked_spine.py b/packages/microcosm-build/src/microcosm/build/us_runtime/stacked_spine.py index d71320311..865b52112 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/stacked_spine.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/stacked_spine.py @@ -2809,11 +2809,6 @@ def _terminal_surface_from_pool_registry() -> TargetFamilies: "puf_tax_itemization", "first_home_mortgage_balance", ), - ( - "tax_unit", - "puf_tax_itemization", - "first_home_mortgage_interest", - ), ( "tax_unit", "puf_tax_itemization", @@ -2963,6 +2958,7 @@ def _terminal_surface_from_pool_registry() -> TargetFamilies: ("person", "take_up", "takes_up_early_head_start_if_eligible"), ("person", "take_up", "takes_up_head_start_if_eligible"), ("person", "take_up", "takes_up_medicaid_if_eligible"), + ("person", "take_up", "takes_up_medicare_part_d_if_eligible"), ("person", "take_up", "takes_up_ssi_if_eligible"), ( "spm_unit", @@ -5062,7 +5058,7 @@ def validate_stacked_post_puf_transfer_receipt( if not isinstance(targets, Mapping) or set(targets) != expected_target_labels: raise ValueError( f"{boundary}: stacked post-PUF transfer target surface is not the " - "canonical 70-target surface; production manifest emission is " + "canonical 69-target surface; production manifest emission is " "forbidden." ) for name, group in expected_groups.items(): @@ -5095,7 +5091,7 @@ def validate_stacked_post_puf_transfer_receipt( if completion != { "status": "complete", "group_count": 19, - "target_count": 70, + "target_count": 69, "residual_null_rows": 0, }: raise ValueError( @@ -8982,8 +8978,8 @@ def validate_structural_absence_receipt( len(_canonical_surface_keys) != 134 or len(set(_canonical_surface_keys)) != 134 or len(_canonical_early_transfer_keys) != 48 - or len(_canonical_late_transfer_keys) != 70 - or len(_canonical_late_puf_producer_keys) != 43 + or len(_canonical_late_transfer_keys) != 69 + or len(_canonical_late_puf_producer_keys) != 42 or len(_canonical_late_source_producer_keys) != 29 or len(_canonical_late_puf_producer_keys & _canonical_late_source_producer_keys) != 2 @@ -8992,7 +8988,7 @@ def validate_structural_absence_receipt( or _canonical_early_transfer_keys & _canonical_late_transfer_keys or _canonical_early_transfer_keys | _canonical_late_transfer_keys != _canonical_full_transfer_keys - or len(_canonical_full_transfer_keys) != 118 + or len(_canonical_full_transfer_keys) != 117 or set(_plan_target_keys(_CANONICAL_STACKED_GAP_FILL_PLAN_ANCHOR)) != _canonical_early_transfer_keys or not _canonical_full_transfer_keys.issubset(_canonical_surface_keys) @@ -9012,10 +9008,10 @@ def validate_structural_absence_receipt( ) ): raise RuntimeError( - "Canonical stacked authority must partition the exact 118-target " - "transfer surface into 48 early gap-fill and 70 post-PUF targets " + "Canonical stacked authority must partition the exact 117-target " + "transfer surface into 48 early gap-fill and 69 post-PUF targets " "inside an exact 134-target terminal surface and metric registry; " - "the late surface must be exactly covered by 43 PUF-clone and 29 " + "the late surface must be exactly covered by 42 PUF-clone and 29 " "ASEC-source producer targets with their declared two-target overlap." ) @@ -11137,7 +11133,7 @@ def _aggregate_late_transfer_result( ], execution_order: Sequence[str], ) -> StackedPostPufTransferResult: - """Bind all bounded group outcomes into the canonical 70-target receipt.""" + """Bind all bounded group outcomes into the canonical 69-target receipt.""" expected_groups = tuple(group.name for group in CANONICAL_US_LATE_TRANSFER_GROUPS) if set(group_results) != set(expected_groups): diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/us_late_producer_registry.py b/packages/microcosm-build/src/microcosm/build/us_runtime/us_late_producer_registry.py index 134ec403e..9c2a17232 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/us_late_producer_registry.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/us_late_producer_registry.py @@ -1412,11 +1412,11 @@ def _bounded_transfer_groups( ) if ( len(CANONICAL_US_LATE_TRANSFER_GROUPS) != 19 - or sum(len(group.targets) for group in CANONICAL_US_LATE_TRANSFER_GROUPS) != 70 + or sum(len(group.targets) for group in CANONICAL_US_LATE_TRANSFER_GROUPS) != 69 ): raise RuntimeError( "Canonical US late transfer must contain exactly 19 bounded groups " - "and 70 ordered targets." + "and 69 ordered targets." ) _canonical_late_targets = { target for group in CANONICAL_US_LATE_TRANSFER_GROUPS for target in group.targets @@ -1425,11 +1425,11 @@ def _bounded_transfer_groups( len(_BOOLEAN_LATE_TARGETS) != 17 or len(_STRING_LATE_TARGETS) != 2 or not (_BOOLEAN_LATE_TARGETS | _STRING_LATE_TARGETS) <= _canonical_late_targets - or len(_canonical_late_targets - _BOOLEAN_LATE_TARGETS - _STRING_LATE_TARGETS) != 51 + or len(_canonical_late_targets - _BOOLEAN_LATE_TARGETS - _STRING_LATE_TARGETS) != 50 ): raise RuntimeError( - "Canonical US late target kinds must partition 70 targets into " - "51 numeric, 17 boolean, and 2 string inputs." + "Canonical US late target kinds must partition 69 targets into " + "50 numeric, 17 boolean, and 2 string inputs." ) US_LATE_TRANSFER_INPUT_INVENTORIES: Mapping[str, SourceInputInventory] = ( MappingProxyType( diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/worker_identity.py b/packages/microcosm-build/src/microcosm/build/us_runtime/worker_identity.py index db3b05654..f33b4b43c 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/worker_identity.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/worker_identity.py @@ -28,7 +28,7 @@ PRIMARY_QRF_WORKER_MODULE = "microcosm.build.us_runtime.puf_qrf_worker" PRIMARY_QRF_INTERPRETER_PLACEHOLDER = "{python_interpreter}" APPROVED_UV_LOCK_SHA256 = ( - "66ed380da8ad2caa67a6147793e9e8ed1906f0815959c50cb921b2005b5dc547" + "138a6b6f6b0204e2395b2f3649c23cd114f3352fd9c298b964f1915549ddf8bc" ) LEGACY_CAMPAIGN_UV_LOCK_SHA256 = ( "27f47e385cfa35e2644a37410d1804b361ad9aee123577551c8421547bda65ee" diff --git a/packages/microcosm-build/tests/engine_contract/us/test_imputation_lineage_spec.py b/packages/microcosm-build/tests/engine_contract/us/test_imputation_lineage_spec.py index 84ff79dc7..8196c2c49 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_imputation_lineage_spec.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_imputation_lineage_spec.py @@ -133,8 +133,8 @@ def test_complete_bundle_family_inventory(spec: dict[str, object]) -> None: } assert targets == { "gap_fill_stacked_spine": 48, - "primary_puf_qrf": 65, - "late_producer_dag": 70, + "primary_puf_qrf": 63, + "late_producer_dag": 69, } for family in spec["families"]: keys = [(target["entity"], target["name"]) for target in family["targets"]] @@ -145,12 +145,12 @@ def test_dashboard_compiles_the_packaged_bundle_without_a_mirror_spec() -> None: payload = emit() assert payload["spec_binding"]["spec_sha256"] == payload["spec_sha256"] assert payload["counts"] == { - "imputed_variables": 183, + "imputed_variables": 180, "families": 33, "computed_producers": 38, "boolean": 45, - "amount": 132, + "amount": 129, "categorical": 5, - "value_kinds": {"amount": 132, "category": 5, "count": 1, "flag": 45}, + "value_kinds": {"amount": 129, "category": 5, "count": 1, "flag": 45}, } assert len(payload["known_gaps"]) == 1 diff --git a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_coverage_tool.py b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_coverage_tool.py index 7be8062b0..bafa17cfd 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_coverage_tool.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_coverage_tool.py @@ -82,22 +82,22 @@ def test_us_coverage_is_exact_complete_and_honest( assert_coverage_complete(coverage_report) assert coverage_report["status"] == "pass" fields = coverage_report["field_usage"] - assert fields["configuration_field_count"] == 42_184 - assert fields["authored_normative_field_count"] == 32_404 - assert fields["resolved_binding_field_count"] == 9_780 - assert fields["consumed_field_count"] == 42_184 + assert fields["configuration_field_count"] == 43_674 + assert fields["authored_normative_field_count"] == 32_352 + assert fields["resolved_binding_field_count"] == 11_322 + assert fields["consumed_field_count"] == 43_674 assert fields["unused_field_count"] == 0 assert fields["multiple_primary_use_field_count"] == 0 assert fields["claim_count"] == 49 assert fields["mode_counts"] == { - "legacy_behavior": 14_010, - "compiler_semantic": 27_717, + "legacy_behavior": 15_537, + "compiler_semantic": 27_680, "front_end_validation": 354, "identity_only": 103, } assert fields["generation0_effect_counts"] == { - "legacy_behavior": 38_498, - "no_generation0_effect": 3_686, + "legacy_behavior": 39_999, + "no_generation0_effect": 3_675, } inventory = coverage_report["inventory_coverage"] @@ -105,9 +105,9 @@ def test_us_coverage_is_exact_complete_and_honest( assert inventory["covered_item_count"] == 41 assert inventory["missing_item_count"] == 0 assert inventory["missing_items"] == [] - assert inventory["counts"]["producer_inputs"] == 2_744 + assert inventory["counts"]["producer_inputs"] == 2_741 assert inventory["counts"]["ownership_rows"] == 18 - assert inventory["counts"]["tail_control_fields"] == 934 + assert inventory["counts"]["tail_control_fields"] == 930 assert inventory["counts"]["seed_owner_bindings"] == 112 diff --git a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_engine_abi.py b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_engine_abi.py index 75f1c4406..970ad27e4 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_engine_abi.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_engine_abi.py @@ -21,10 +21,10 @@ def test_checked_in_us_lock_is_fresh_schema_valid_and_not_authored() -> None: ) assert payload["engine"] == { "package": "policyengine-us", - "version": "2.2.1", + "version": "2.60.4", } - assert len(payload["programs"]) == 17 - assert len({row["variable"] for row in payload["programs"].values()}) == 17 + assert len(payload["programs"]) == 18 + assert len({row["variable"] for row in payload["programs"].values()}) == 18 assert all( set(row) == { @@ -38,15 +38,15 @@ def test_checked_in_us_lock_is_fresh_schema_valid_and_not_authored() -> None: for row in payload["programs"].values() ) remaining = payload["remaining_stage_input_manifest"] - assert len(remaining["rows"]) == 1059 - assert remaining["receipt"]["entry_count"] == 1059 + assert len(remaining["rows"]) == 1250 + assert remaining["receipt"]["entry_count"] == 1250 assert remaining["receipt"]["stage_counts"] == { "derive": 34, - "seed": 33, - "simulate": 992, + "seed": 34, + "simulate": 1182, } assert remaining["receipt"]["manifest_sha256"] == ( - "0a84565a659a6404cb17715dda36f094a87431c713c7a37bf65a936b16937325" + "7681ca4573651f65ed87b09f0fd64e3724a7ba8001805d450a132093caed2fa9" ) assert ( remaining["receipt"]["ssi_dependency_contract"]["engine_version_ref"] diff --git a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_stacked_authority_semantics.py b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_stacked_authority_semantics.py index 95258db5a..bd490f931 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_stacked_authority_semantics.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_stacked_authority_semantics.py @@ -70,13 +70,13 @@ def test_authority_projection_is_field_and_byte_identical_to_live_generation_zer assert projected == live assert stacked_identity_bytes(projected) == _canonical_bytes(live) assert projected["sha256"] == ( - "9d4a9672a0f03039b1fe874b9fe21ed575be0d29f14afc396d03cdf5c809bdd2" + "69cb10a9668fe1a4f3b7b1ab447ee6664e869bc56f6b51dc8fe545c952e8aa14" ) assert { name: component["sha256"] for name, component in projected["components"].items() } == { "declared_surface": ( - "5b5a4470e2612365f253e933833bb08b8f9c857ea0bc175b958ead9a74abee01" + "e54c770524efda7db583faf74960c84443b1e8357f9814e6a5785c34fb4bf4cc" ), "gap_fill_plan": ( "f41319a95750a441676bc6599b1de6bb49a87b45d83b9263d627c402cfe8e750" @@ -85,13 +85,13 @@ def test_authority_projection_is_field_and_byte_identical_to_live_generation_zer "cacc6c11e114dbae3aaa2761cc6b3fcb1191cd9b689b1c2bd096614c51ebff8b" ), "late_producer_schedule": ( - "777979b267e7307581b39d14b7232b6ee2712e3da0029fffc090396ebd849166" + "6e02595bca6a572bce591dd272b33391dfdbd70e5d4e38c793ae702142471283" ), "metric_registry": ( - "d75cb9b29f8b0a9a085471a11f4c19c32ba04cbe5419053df94ea81cbe6125a9" + "17d9eb4dab35507dfdb2fc7420c15728f7d63bb879a9327d3cc976600e68ed76" ), "post_puf_transfer_surface": ( - "a31e8a9512ec829c98745ed9ca2177e66d529bdc4b096ecfa2b4452f7bd41d73" + "8b59ad9d95d3243d5fa783dedfa77fe75426361d55b9030454eb2cdc5c6496f1" ), "post_transfer_calibration": ( "141519684c72ab84a077ae0f5716a0416f1e19da57262948e459633cbe560576" @@ -188,7 +188,7 @@ def test_checkpoint_projection_is_field_and_byte_identical_to_live_oracle( ] assert ( projected["pool_code"]["late_producer_schedule"]["schedule_sha256"] - == "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f" + == "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16" ) diff --git a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_take_up_semantics.py b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_take_up_semantics.py index 04f4f5742..caa4b4736 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_take_up_semantics.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_take_up_semantics.py @@ -127,10 +127,10 @@ def test_generated_take_up_has_closed_coherent_semantics() -> None: load_schema_registry().validate(take_up, "take_up.schema.json") validate_take_up_semantics(take_up, sources_document=sources) - assert len(take_up["programs"]) == 17 + assert len(take_up["programs"]) == 18 steps = list(_steps(take_up)) - assert len(steps) == 28 + assert len(steps) == 29 assert sum("source_operation_ref" in step for _, step in steps) == 18 @@ -196,13 +196,15 @@ def test_mixed_ownership_requires_segment_shape() -> None: def test_mixed_segments_cannot_claim_the_same_scope_twice() -> None: take_up, sources = _documents() program = _program(take_up, "housing_assistance") + index = take_up["programs"].index(program) segments = program["segments"] segments[1]["row_scope"] = copy.deepcopy(segments[0]["row_scope"]) with pytest.raises( SpecValidationError, match=( - "take_up/programs/11/segments/1/row_scope: duplicate mixed-ownership scope" + f"take_up/programs/{index}/segments/1/row_scope: " + "duplicate mixed-ownership scope" ), ): validate_take_up_semantics(take_up, sources_document=sources) diff --git a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_typed_closure.py b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_typed_closure.py index 05f349a72..5f68dd027 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_typed_closure.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_spec_engine_typed_closure.py @@ -51,7 +51,9 @@ def test_us_typed_closure_has_exact_inventory_counts( typed_resources: dict[str, Any], typed_result: TypedClosureResult, ) -> None: - assert len(typed_result.columns) == 176 + # policyengine-us 2.60.4: the two tax-unit mortgage legs are retired and + # the Part D take-up flag is added. + assert len(typed_result.columns) == 175 assert len(typed_result.artifacts) == 84 assert len(typed_result.scopes) == 7 assert Counter(artifact.kind for artifact in typed_result.artifacts) == { @@ -63,7 +65,7 @@ def test_us_typed_closure_has_exact_inventory_counts( graph = typed_resources["imputation"]["producer_graph"] assert sum(len(node["outputs"]) for node in graph["nodes"]) == 92 compiled_outputs = compile_producer_outputs(typed_resources) - assert sum(len(rows) for rows in compiled_outputs.values()) == 227 + assert sum(len(rows) for rows in compiled_outputs.values()) == 224 assert sum(len(node["virtual_resources"]) for node in graph["nodes"]) == 75 column_keys = {column.key for column in typed_result.columns} output_artifact_ids = { diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_alimony.py b/packages/microcosm-build/tests/engine_contract/us/test_us_alimony.py index cdf3ff255..036705f15 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_alimony.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_alimony.py @@ -15,6 +15,11 @@ def test_policyengine_us_contract_includes_strike_person_year_input_leaf() -> No assert str(variable.definition_period).lower() == "year" assert variable.default_value == 0 - assert "alimony_expense" in ( + # policyengine-us 2.60 deducts each non-dependent's eligible alimony + # through a person-level variable; the divorce-year test is unchanged. + assert "alimony_expense_ald_person" in ( variables["alimony_expense_ald"].formula.__code__.co_consts ) + assert "alimony_expense" in ( + variables["alimony_expense_ald_person"].formula.__code__.co_consts + ) diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_bundle_core_contracts.py b/packages/microcosm-build/tests/engine_contract/us/test_us_bundle_core_contracts.py index 64ede4c77..0afc25227 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_bundle_core_contracts.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_bundle_core_contracts.py @@ -8,8 +8,10 @@ def test_us_catalog_has_complete_explicit_contracts() -> None: __import__("policyengine_us") catalog = build_catalogs() columns = catalog["columns"] - assert len(columns) == 176 - assert len({row["key"] for row in columns}) == 176 + # policyengine-us 2.60.4: the two tax-unit mortgage legs are retired and + # the Part D take-up flag is added. + assert len(columns) == 175 + assert len({row["key"] for row in columns}) == 175 assert catalog["metadata_waivers"] == [ { "id": "policyengine_us_unit_unavailable", @@ -34,8 +36,8 @@ def test_us_catalog_has_complete_explicit_contracts() -> None: else: assert "unit_waiver" not in contract assert Counter(row["contract"]["unit"] for row in columns) == { - "unit_not_declared_by_engine_metadata": 89, - "boolean": 51, + "unit_not_declared_by_engine_metadata": 87, + "boolean": 52, "count": 27, "categorical": 9, } @@ -60,7 +62,7 @@ def test_us_catalog_has_complete_explicit_contracts() -> None: "catalogs": catalog, } ) - assert len(resolved.columns) == 176 + assert len(resolved.columns) == 175 by_key = {row["key"]: row["contract"] for row in columns} for column in resolved.columns: contract = by_key[column.key] diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_dc_ptc_take_up_exclusion.py b/packages/microcosm-build/tests/engine_contract/us/test_us_dc_ptc_take_up_exclusion.py index a708b90fd..5762bb952 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_dc_ptc_take_up_exclusion.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_dc_ptc_take_up_exclusion.py @@ -53,7 +53,7 @@ def test_sha_locked_artifact_schemas_match_the_recorded_absence() -> None: def test_policyengine_2_2_1_requires_a_tax_unit_year_boolean() -> None: from policyengine_us import CountryTaxBenefitSystem - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables["takes_up_dc_ptc"] assert variable.is_input_variable() assert variable.entity.key == "tax_unit" diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_early_head_start_exclusion.py b/packages/microcosm-build/tests/engine_contract/us/test_us_early_head_start_exclusion.py index 0c320944e..987734903 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_early_head_start_exclusion.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_early_head_start_exclusion.py @@ -7,11 +7,11 @@ def test_policyengine_2_2_1_requires_under_3_or_pregnant_person_input() -> None: from policyengine_us import CountryTaxBenefitSystem - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" system = CountryTaxBenefitSystem() evidence = _entry()["evidence"]["policyengine_variable"] assert evidence == { - "version": "2.2.1", + "version": "2.60.4", "entity": "person", "definition_period": "year", "value_type": "bool", diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_financial_assistance_exclusion.py b/packages/microcosm-build/tests/engine_contract/us/test_us_financial_assistance_exclusion.py index 232bb79da..1c2bd5378 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_financial_assistance_exclusion.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_financial_assistance_exclusion.py @@ -45,7 +45,7 @@ def test_sha_locked_artifact_schemas_match_the_recorded_absence() -> None: def test_policyengine_2_2_1_requires_a_person_year_input() -> None: from policyengine_us import CountryTaxBenefitSystem - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables["financial_assistance"] assert variable.is_input_variable() assert variable.entity.key == "person" diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_graph.py b/packages/microcosm-build/tests/engine_contract/us/test_us_graph.py index 48a15f7b9..7b2bf944e 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_graph.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_graph.py @@ -78,7 +78,7 @@ def test_us_post_transfer_rewrites_are_opened_by_identity_filters() -> None: materialize = graph.node("materialize_multispine_agreement_outputs") assert create.structural is StructuralDelta.CREATE - assert len(create.outputs) == 76 + assert len(create.outputs) == 77 assert all(not owned.rewrite for owned in create.outputs) for stage in _STAGES[:3]: @@ -94,7 +94,7 @@ def test_us_post_transfer_rewrites_are_opened_by_identity_filters() -> None: assert all(owned.rewrite for owned in derive.outputs) seed_by_coordinate = {(owned.entity, owned.column): owned for owned in seed.outputs} - assert len(seed_by_coordinate) == 17 + assert len(seed_by_coordinate) == 18 assert not seed_by_coordinate[("tax_unit", "takes_up_eitc")].rewrite assert all( owned.rewrite diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_multispine_pool.py b/packages/microcosm-build/tests/engine_contract/us/test_us_multispine_pool.py index 1fd8fde60..8e73cb983 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_multispine_pool.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_multispine_pool.py @@ -9,9 +9,9 @@ def test_simulation_projection_defaults_match_pinned_engine_surface() -> None: receipt = pool_engine_input_projection_receipt(PolicyEngineUSEngine()) assert receipt == { - "engine_version": "2.2.1", - "input_count": 926, - "default_count": 925, + "engine_version": "2.60.4", + "input_count": 1074, + "default_count": 1073, "defaults_sha256": (POOL_ENGINE_INPUT_PROJECTION_CONTRACT.defaults_sha256), } @@ -202,11 +202,11 @@ def test_derive_stage_keeps_whole_pool_qbi_reconciliation() -> None: derived = result.frame.table("person") assert result.receipt["operator_order"] == list(POOL_DERIVE_OPERATOR_ORDER) - assert result.receipt["remaining_stage_input_manifest"]["entry_count"] == 1059 + assert result.receipt["remaining_stage_input_manifest"]["entry_count"] == 1250 assert result.receipt["remaining_stage_input_manifest"]["stage_counts"] == { "derive": 34, - "seed": 33, - "simulate": 992, + "seed": 34, + "simulate": 1182, } assert ( result.receipt["qbi_input_reconciliation"]["recipient_source_universe"][ diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_pool_input_consumers.py b/packages/microcosm-build/tests/engine_contract/us/test_us_pool_input_consumers.py similarity index 94% rename from packages/microcosm-build/tests/engine_free/us/test_us_pool_input_consumers.py rename to packages/microcosm-build/tests/engine_contract/us/test_us_pool_input_consumers.py index c111318a4..428eda0b5 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_pool_input_consumers.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_pool_input_consumers.py @@ -57,7 +57,8 @@ class _ReviewedNonEngineConsumer(TypedDict): _REVIEWED_WIC_CONSUMERS = { # WICYN identifies the adult-female reporter/carrier, not the beneficiary. - # These targets are reviewed from the six PolicyEngine-US 2.2.1 formulas; + # These targets are reviewed from the six PolicyEngine-US formulas (read + # on 2.2.1 and again, unchanged, on 2.60.4); # output entity alone is insufficient because Pell aggregates by tax unit # and Virginia reads people inside an SPM-unit aggregation. Values pin the # direct receiver and the enclosing aggregation entity, in that order. @@ -90,13 +91,7 @@ def consumer_receipts(self, name: str) -> tuple[ConsumerReceipt, ...]: ... def variable_metadata(self, name: str) -> VariableMetadata: ... -try: - _ENGINE_INDEX = PolicyEngineUSVariableMetadataIndex() -except ImportError: - pytest.skip( - "requires the policyengine-us [us] extra", - allow_module_level=True, - ) +_ENGINE_INDEX = PolicyEngineUSVariableMetadataIndex() _POOL_INPUT_SURFACE = pool_input_surface() @@ -496,10 +491,12 @@ def test_guard_rejects_redundant_allowlist_entry() -> None: "deductible_mortgage_interest_tax_unit", "entity_call", ), + # policyengine-us 2.60 sums the person-level interest inputs through + # home_mortgage_interest_tax_unit's class-level adds. ( - "first_home_mortgage_interest", + "home_mortgage_interest", "home_mortgage_interest_tax_unit", - "add", + "adds", ), ( "first_home_mortgage_origination_year", @@ -512,9 +509,9 @@ def test_guard_rejects_redundant_allowlist_entry() -> None: "entity_call", ), ( - "second_home_mortgage_interest", + "second_residence_mortgage_interest", "home_mortgage_interest_tax_unit", - "add", + "adds", ), ( "second_home_mortgage_origination_year", @@ -524,10 +521,10 @@ def test_guard_rejects_redundant_allowlist_entry() -> None: ), ids=( "first_home_mortgage_balance", - "first_home_mortgage_interest", + "home_mortgage_interest", "first_home_mortgage_origination_year", "second_home_mortgage_balance", - "second_home_mortgage_interest", + "second_residence_mortgage_interest", "second_home_mortgage_origination_year", ), ) @@ -546,17 +543,21 @@ def test_colocated_mortgage_consumer_is_discoverable( @pytest.mark.parametrize( - ("variable", "consumer", "filename"), + ("variable", "consumer", "filename", "kind"), ( ( "is_disabled", "il_pi_has_developmental_delay", "il_pi_has_developmental_delay.py", + "entity_call", ), + # policyengine-us 2.60 adds the parameter's pension sources over the + # tax unit's members (``add(person, period, p.pension_sources)``). ( "taxable_pension_income", "ok_pension_subtraction", "ok_pension_subtraction.py", + "parameter_add", ), ), ids=("is_disabled", "taxable_pension_income"), @@ -565,12 +566,14 @@ def test_group_member_consumer_is_discoverable( variable: str, consumer: str, filename: str, + kind: str, ) -> None: assert any( receipt.consumer == consumer and receipt.path.endswith(f"/{filename}") and receipt.line > 0 - and receipt.kind == "entity_call" + and receipt.kind == kind + and receipt.receiver_entity == "person" for receipt in _ENGINE_INDEX.consumer_receipts(variable) ) @@ -595,17 +598,21 @@ def test_strike_benefits_market_income_consumer_is_discoverable() -> None: @pytest.mark.parametrize( - ("variable", "consumer", "filename"), + ("variable", "consumer", "filename", "kind"), ( ( "has_champva_health_coverage_at_interview", "qualifying_non_marketplace_health_coverage_type_count_at_interview", "qualifying_non_marketplace_health_coverage_type_count_at_interview.py", + "parameter_adds", ), + # policyengine-us 2.60 sums the parameter's deduction list through + # ``tax_unit_non_dep_add``, a reviewed package helper. ( "domestic_production_ald", "above_the_line_deductions", "above_the_line_deductions.py", + "parameter_helper_call", ), ), ids=( @@ -617,12 +624,13 @@ def test_parameter_consumer_is_discoverable( variable: str, consumer: str, filename: str, + kind: str, ) -> None: assert any( receipt.consumer == consumer and receipt.path.endswith(f"/{filename}") and receipt.line > 0 - and receipt.kind == "parameter_adds" + and receipt.kind == kind for receipt in _ENGINE_INDEX.consumer_receipts(variable) ) diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_scf_wealth.py b/packages/microcosm-build/tests/engine_contract/us/test_us_scf_wealth.py index f449a4fc6..d46ec9791 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_scf_wealth.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_scf_wealth.py @@ -7,7 +7,7 @@ def test_policyengine_2_2_1_net_worth_input_contract() -> None: from policyengine_us import CountryTaxBenefitSystem - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables["net_worth"] assert variable.is_input_variable() assert variable.entity.key == "household" diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_survivor_benefits_exclusion.py b/packages/microcosm-build/tests/engine_contract/us/test_us_survivor_benefits_exclusion.py index 4f6303af5..1aad5d4f4 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_survivor_benefits_exclusion.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_survivor_benefits_exclusion.py @@ -45,7 +45,7 @@ def test_sha_locked_artifact_schemas_match_the_recorded_absence() -> None: def test_policyengine_2_2_1_requires_a_person_year_input() -> None: from policyengine_us import CountryTaxBenefitSystem - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables["survivor_benefits"] assert variable.is_input_variable() assert variable.entity.key == "person" diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_weeks_unemployed.py b/packages/microcosm-build/tests/engine_contract/us/test_us_weeks_unemployed.py index 8b824ccea..ee96f1b2c 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_weeks_unemployed.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_weeks_unemployed.py @@ -4,7 +4,7 @@ from test_support.microcosm_build.us_weeks_unemployed import * -def test_live_engine_graph_has_only_structurally_blocked_ui_consumers() -> None: +def test_live_engine_graph_has_exactly_the_reviewed_consumers() -> None: import policyengine_us system = policyengine_us.CountryTaxBenefitSystem() @@ -14,7 +14,23 @@ def test_live_engine_graph_has_only_structurally_blocked_ui_consumers() -> None: for formula in variable.formulas.values() if _OUTPUT in formula.__code__.co_consts } - assert consumers == {"al_ui", "ny_ui", "ok_ui", "pa_uc"} + # policyengine-us 2.60 converts weeks into months of unemployment + # compensation for the SNAP work registration exemption (7 CFR + # 273.7(b)(1)(v)). That consumer is live: it reads the compensation the + # release stores. Zero weeks with positive compensation counts as all 12 + # months, the engine's behavior before months were modeled. + assert consumers == { + "al_ui", + "ny_ui", + "ok_ui", + "pa_uc", + "unemployment_compensation_months", + } + months = system.variables["unemployment_compensation_months"] + assert months.entity.key == "person" + assert "total_unemployment_compensation" in ( + months.formulas[min(months.formulas)].__code__.co_consts + ) weeks = system.variables[_OUTPUT] assert weeks.default_value == 0 assert not weeks.formulas diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_wic_nutritional_risk_exclusion.py b/packages/microcosm-build/tests/engine_contract/us/test_us_wic_nutritional_risk_exclusion.py index 036a44ae5..25c1f1831 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_wic_nutritional_risk_exclusion.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_wic_nutritional_risk_exclusion.py @@ -7,7 +7,7 @@ def test_policyengine_2_2_1_defaults_risk_true_and_uses_it_for_eligibility() -> None: from policyengine_us import CountryTaxBenefitSystem - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" system = CountryTaxBenefitSystem() variable = system.variables["is_wic_at_nutritional_risk"] assert variable.is_input_variable() diff --git a/packages/microcosm-build/tests/engine_free/shared/test_ci_test_plan.py b/packages/microcosm-build/tests/engine_free/shared/test_ci_test_plan.py index 5300e9024..c8b879103 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_ci_test_plan.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_ci_test_plan.py @@ -195,6 +195,26 @@ def test_example(): assert ci_test_plan.engine_guard_lines(source) == (5,) +def test_engine_guard_detection_finds_module_skips_on_import_error() -> None: + source = """ +try: + INDEX = PolicyEngineUSVariableMetadataIndex() +except ImportError: + pytest.skip("requires the policyengine-us extra", allow_module_level=True) + +try: + import yaml +except (ModuleNotFoundError, OSError): + pytest.skip("optional", allow_module_level=True) + +try: + import yaml +except ImportError: + pytest.skip("only this test") +""" + assert ci_test_plan.engine_guard_lines(source) == (5, 10) + + def test_every_repository_test_has_a_valid_execution_category() -> None: invalid = [ path.relative_to(ci_test_plan.ROOT) diff --git a/packages/microcosm-build/tests/engine_free/shared/test_engine_core_pins.py b/packages/microcosm-build/tests/engine_free/shared/test_engine_core_pins.py index 779b70b8b..08abaa42a 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_engine_core_pins.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_engine_core_pins.py @@ -3,8 +3,8 @@ Nothing imports both engines and CI installs one country extra per job, so every extra that installs policyengine-us is declared in conflict with every extra that installs policyengine-uk, and uv locks the two sides in separate -forks. The US side stays on the core the certified US default was built with -until its next certified build. The UK side resolves the locked policyengine-uk +forks. The US side pins the engine and core the next certified US build is +built with. The UK side resolves the locked policyengine-uk and the core that release brings, and a lock change that moves either has to move the pin below with it. The resolution checks read the committed ``uv.lock`` through ``uv export --frozen``, uv's own reading of what an install @@ -23,10 +23,11 @@ from test_support.paths import REPOSITORY_ROOT -#: What every US install path resolves until the next certified US build. +#: What every US install path resolves: the engine the next certified US +#: build is built with, on the core policyengine.py's bundle pins. US_ENGINE = { - "policyengine-core": "3.32.5", - "policyengine-us": "2.2.1", + "policyengine-core": "3.33.3", + "policyengine-us": "2.60.4", "spm-calculator": "1.0.0", } #: What every UK install path resolves: the locked policyengine-uk and the diff --git a/packages/microcosm-build/tests/engine_free/shared/test_release_input_coverage.py b/packages/microcosm-build/tests/engine_free/shared/test_release_input_coverage.py index 7e5838e1a..bd378d1cc 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_release_input_coverage.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_release_input_coverage.py @@ -652,11 +652,11 @@ def test_shipped_alimony_probe_has_sign_period_and_expense_input(self) -> None: "self_employment_tax_ald", "student_loan_interest_ald", "early_withdrawal_penalty", - "educator_expense", + "educator_expense_ald", "health_savings_account_ald", "self_employed_health_insurance_ald", "self_employed_pension_contribution_ald", - "traditional_ira_contributions", + "traditional_ira_deduction", "qualified_adoption_assistance_expense", "us_bonds_for_higher_ed", "specified_possession_income", @@ -718,19 +718,63 @@ def test_shipped_child_support_received_probe_removes_only_snap_source( "2024-01-01.2024-12-31": [ "ssi", "general_assistance", + "ak_ssp", + "al_ssp", + "co_oap", + "co_state_supplement", + "ct_ssp_person", + "dc_ossp", + "de_ssp", + "fl_oss", + "ga_ssp_person", + "hi_oss", + "id_aabd", + "in_ssp", + "ks_sspp", + "ky_ssp", + "la_oss", + "ma_state_supplement", + "md_paa", + "me_ssp", + "mi_ssp_person", + "mn_msa_person", + "mo_ssp", + "mt_ssp", + "nc_sa", + "ne_aabd", + "nh_ssp", + "nj_ssp", + "nm_ssi_state_supplement", + "nv_oss", + "ny_ssp", + "oh_rss", + "ok_ssp", + "pa_ssp", + "ri_ssp", + "sc_ssi_state_supplement", + "sd_ssp", + "tx_ssi_state_supplement", + "ut_dhhs_ssp", + "va_ag", + "vt_aabd", + "wa_ssp", + "wi_ssp_countable_for_snap", + "wy_ssp", "pension_income", "veterans_benefits", - "unemployment_compensation", + "total_unemployment_compensation", "disability_benefits", "workers_compensation", "social_security", + "survivor_benefits", "retirement_distributions", - "rental_income", + "military_retirement_income", + "snap_rental_income", + "snap_farm_rent_income", "alimony_income", - "financial_assistance", - "survivor_benefits", "dividend_income", "interest_income", + "financial_assistance", "miscellaneous_income", ] } @@ -781,19 +825,63 @@ def test_shipped_disability_probe_removes_only_snap_unearned_source( "2024-01-01.2024-12-31": [ "ssi", "general_assistance", + "ak_ssp", + "al_ssp", + "co_oap", + "co_state_supplement", + "ct_ssp_person", + "dc_ossp", + "de_ssp", + "fl_oss", + "ga_ssp_person", + "hi_oss", + "id_aabd", + "in_ssp", + "ks_sspp", + "ky_ssp", + "la_oss", + "ma_state_supplement", + "md_paa", + "me_ssp", + "mi_ssp_person", + "mn_msa_person", + "mo_ssp", + "mt_ssp", + "nc_sa", + "ne_aabd", + "nh_ssp", + "nj_ssp", + "nm_ssi_state_supplement", + "nv_oss", + "ny_ssp", + "oh_rss", + "ok_ssp", + "pa_ssp", + "ri_ssp", + "sc_ssi_state_supplement", + "sd_ssp", + "tx_ssi_state_supplement", + "ut_dhhs_ssp", + "va_ag", + "vt_aabd", + "wa_ssp", + "wi_ssp_countable_for_snap", + "wy_ssp", "pension_income", "veterans_benefits", - "unemployment_compensation", + "total_unemployment_compensation", "workers_compensation", "social_security", + "survivor_benefits", "retirement_distributions", - "rental_income", + "military_retirement_income", + "snap_rental_income", + "snap_farm_rent_income", "child_support_received", "alimony_income", - "financial_assistance", - "survivor_benefits", "dividend_income", "interest_income", + "financial_assistance", "miscellaneous_income", ] } @@ -823,7 +911,7 @@ def test_shipped_educator_expense_probe_removes_only_its_ald(self) -> None: "health_savings_account_ald", "self_employed_health_insurance_ald", "self_employed_pension_contribution_ald", - "traditional_ira_contributions", + "traditional_ira_deduction", "qualified_adoption_assistance_expense", "us_bonds_for_higher_ed", "specified_possession_income", diff --git a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_battery_semantics.py b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_battery_semantics.py index ca1b720aa..881f3db28 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_battery_semantics.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_battery_semantics.py @@ -55,9 +55,9 @@ def test_battery_registry_views_match_live_registry( assert views["required_scalar_targets"] == 134 assert views["required_joint_targets"] == 1 assert views["metric_counts"] == { - "boolean_incidence": 51, + "boolean_incidence": 52, "categorical_tvd": 4, - "monetary_sign_separated": 79, + "monetary_sign_separated": 78, } diff --git a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_calibration_semantics.py b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_calibration_semantics.py index ccec9ee14..ccfc6ea29 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_calibration_semantics.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_calibration_semantics.py @@ -31,7 +31,7 @@ ROOT = _TEST_PATHS.repository US_ROOT = ROOT / "packages/microcosm-build/src/microcosm/build/us" CANONICAL_LEGACY_PROJECTION_SHA256 = ( - "05cb099ee8bd0234ae94586b76dc20ab8a5bd0735c00d4e82e67f912e0b33823" + "d294746c334aa90fdbedcf76888f43fd4738e56834bc09d19e8d9e204c19c90a" ) diff --git a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_compiler_ir.py b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_compiler_ir.py index b025205ae..fce4d8fde 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_compiler_ir.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_compiler_ir.py @@ -22,7 +22,7 @@ ) from microcosm.build.spec_engine.resolver import F0_CONTRACT_ONLY_KERNEL_IDS -US_SCHEDULE_SHA256 = "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f" +US_SCHEDULE_SHA256 = "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16" @pytest.fixture(scope="module") @@ -67,7 +67,7 @@ def test_us_compiles_exact_stage_dag_and_lossless_producer_graph( assert len(graph.order) == 38 assert len(set(graph.order)) == 38 assert len(graph.ownership_matrix) == 18 - assert graph.compiled_output_count == 227 + assert graph.compiled_output_count == 224 assert graph.schedule_sha256 == US_SCHEDULE_SHA256 assert sha256_json(graph.schedule_wire()) == US_SCHEDULE_SHA256 @@ -140,7 +140,7 @@ def test_us_node_slices_are_transitive_and_content_attested( def test_ir_retains_all_typed_resolution_products(compiled_us: CompiledSpecIR) -> None: inventory = compiled_us.typed_inventory assert len(inventory["entities"]) == 8 - assert len(inventory["columns"]) == 176 + assert len(inventory["columns"]) == 175 assert len(inventory["artifacts"]) == 84 assert len(inventory["scopes"]) == 7 assert len(inventory["references"]) == 334 diff --git a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_field_usage.py b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_field_usage.py index c5ec18bb5..92f4cc672 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_field_usage.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_field_usage.py @@ -95,22 +95,22 @@ def _mutated_bundle( def test_exact_complete_ledger_has_one_primary_mode_per_pointer(field_ledger) -> None: - assert len(field_ledger.fields) == EXPECTED_CONFIGURATION_FIELD_COUNT == 42_184 + assert len(field_ledger.fields) == EXPECTED_CONFIGURATION_FIELD_COUNT == 43_674 assert field_ledger.source_counts == { - "authored": 32_404, - "resolved_bindings": 9_780, + "authored": 32_352, + "resolved_bindings": 11_322, } assert field_ledger.mode_counts == { - "legacy_behavior": 14_010, - "compiler_semantic": 27_717, + "legacy_behavior": 15_537, + "compiler_semantic": 27_680, "front_end_validation": 354, "identity_only": 103, } assert field_ledger.generation0_effect_counts == { - "legacy_behavior": 38_498, - "no_generation0_effect": 3_686, + "legacy_behavior": 39_999, + "no_generation0_effect": 3_675, } - assert len({field.pointer for field in field_ledger.fields}) == 42_184 + assert len({field.pointer for field in field_ledger.fields}) == 43_674 def test_eligibility_concepts_are_validation_not_generation0_behavior( diff --git a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_imputation_semantics.py b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_imputation_semantics.py index c9ae76814..6e80bcc71 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_imputation_semantics.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_imputation_semantics.py @@ -98,7 +98,7 @@ def test_imputation_projector_matches_live_plans_and_graph_receipts( for key, expected in live.items(): assert canonical_json_bytes(projected[key]) == canonical_json_bytes(expected) assert projected["late_producer_schedule_receipt"]["schedule_sha256"] == ( - "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f" + "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16" ) assert projected["overlap_ownership"]["sha256"] == ( "5f64f0aac49e2313177564f71876bffc8c81b3ded4df701e70930e60e9c98356" @@ -119,7 +119,7 @@ def test_imputation_projector_matches_live_primary_chain( "checkpoint_schema_version": PRIMARY_QRF_CHECKPOINT_SCHEMA_VERSION, } tuples = derive_primary_effective_predictor_tuples(us_domains["imputation"]) - assert len(tuples) == 65 + assert len(tuples) == 63 preceding: list[str] = [] for row, target in zip(tuples, PRIMARY_QRF_TARGET_ORDER, strict=True): assert row["target"] == target diff --git a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_legacy_adapter.py b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_legacy_adapter.py index ab4444375..36b4a6d0a 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_legacy_adapter.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_legacy_adapter.py @@ -197,14 +197,14 @@ def test_adapter_preserves_generation_zero_identity_components( imputation = legacy_payload["imputation"] assert isinstance(imputation, dict) assert legacy_payload["stacked_authority_receipt"]["sha256"] == ( - "9d4a9672a0f03039b1fe874b9fe21ed575be0d29f14afc396d03cdf5c809bdd2" + "69cb10a9668fe1a4f3b7b1ab447ee6664e869bc56f6b51dc8fe545c952e8aa14" ) assert imputation["late_producer_schedule_receipt"]["schedule_sha256"] == ( - "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f" + "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16" ) assert imputation["overlap_ownership"]["sha256"] == ( "5f64f0aac49e2313177564f71876bffc8c81b3ded4df701e70930e60e9c98356" ) assert legacy_payload["take_up_contract_identity"]["resource_sha256"] == ( - "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35" + "24bdfcd795e973e0345ae68020ab7dbceda0d95cb673bc9da95460bd239a1451" ) diff --git a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_loader.py b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_loader.py index 2d4a49476..da947c917 100644 --- a/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_loader.py +++ b/packages/microcosm-build/tests/engine_free/shared/test_spec_engine_loader.py @@ -14,9 +14,11 @@ def test_semantic_hash_has_golden_vector_and_surface_separation(tmp_path) -> Non # protocol inside it attests microcosm.calibrate.solve's bytes, so # microcosm#1124's opt-in retain_best_objective and microcosm#1301's # budget_search_bracket move it, and the fit kernels' bytes, so the QRF - # chain step's caller-owned uniforms move it too. + # chain step's caller-owned uniforms move it too. It also attests the US + # source runtimes (puf_support, puf_qrf_chain, acs_transfer), which the + # policyengine-us 2.60.4 lock edits (microcosm#1365). assert first.spec_sha256 == ( - "4f71334334c67cc17d1aab5b02a838def57bcc54ac4413b89b70b8ae3086d9ee" + "a5e0f37f557917ec8ec388fecb20a868bc3d4def8abdceb90888ef27ab595817" ) second_root = _rich_minimal(tmp_path / "xy", note="second", store="local:b") diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_bundle_core_contracts.py b/packages/microcosm-build/tests/engine_free/us/test_us_bundle_core_contracts.py index a780c4814..b175d5960 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_bundle_core_contracts.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_bundle_core_contracts.py @@ -25,7 +25,7 @@ def test_source_surface_classification_is_complete() -> None: } assert normative["stage_asset"] == { "id": "source_stages", - "sha256": "e75217c0db3075bf2664492167d31ce7ee82c2c5f6a70e3b67e8bb6f4ddd7ecf", + "sha256": "cdd24258daf5e4e78b49330cfe9d5ea762aacc2e7232bb072e476632dcac378e", } assert operational["stage_asset"] == { "path": "microcosm.build.us/source_stages.json" diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_fiscal_refresh_builder.py b/packages/microcosm-build/tests/engine_free/us/test_us_fiscal_refresh_builder.py index 4fa27b499..28b4af261 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_fiscal_refresh_builder.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_fiscal_refresh_builder.py @@ -14,6 +14,8 @@ import numpy as np import pandas as pd import pytest +from hypothesis import given, settings +from hypothesis import strategies as st from microcosm.build.us_runtime import h5_io as builder_h5_io from microcosm.calibrate import ( @@ -16969,6 +16971,83 @@ def test_ecps_reference_projection_refuses_to_merge_two_layers() -> None: ) +def test_ecps_reference_layers_drop_the_retired_mortgage_legs() -> None: + """policyengine-us 2.60 removed the tax-unit first/second home mortgage + interest inputs; the person-level layer is graded in their place.""" + + builder = _load_builder_module() + shares = { + "first_home_mortgage_interest": 0.13, + "second_home_mortgage_interest": 0.0, + "home_mortgage_interest": 0.09, + } + + kept, retired = builder._retire_ecps_reference_layers( + shares, {"home_mortgage_interest", "employment_income"} + ) + + assert kept == {"home_mortgage_interest": 0.09} + assert retired == { + "first_home_mortgage_interest": "home_mortgage_interest", + "second_home_mortgage_interest": "home_mortgage_interest", + } + + +@settings(max_examples=50, deadline=None) +@given( + shares=st.dictionaries( + st.sampled_from( + [ + "first_home_mortgage_interest", + "second_home_mortgage_interest", + "home_mortgage_interest", + "employment_income", + "would_claim_wic", + ] + ), + st.floats(min_value=0.0, max_value=1.0, allow_nan=False), + ) +) +def test_ecps_reference_retirement_partitions_every_layer(shares) -> None: + """Property: every layer is kept or retired, never both, and only a + registered layer is retired, onto its registered successor.""" + + builder = _load_builder_module() + kept, retired = builder._retire_ecps_reference_layers( + shares, {"home_mortgage_interest", "employment_income", "takes_up_wic"} + ) + + assert set(kept) | set(retired) == set(shares) + assert not set(kept) & set(retired) + assert retired == { + name: builder.REFERENCE_ECPS_RETIRED_LAYERS[name] + for name in shares + if name in builder.REFERENCE_ECPS_RETIRED_LAYERS + } + assert all(kept[name] == shares[name] for name in kept) + + +@pytest.mark.parametrize( + ("engine_inputs", "message"), + [ + ( + {"first_home_mortgage_interest", "home_mortgage_interest"}, + "still defines it", + ), + ({"employment_income"}, "lacks the successor"), + ], +) +def test_ecps_reference_retirement_refuses_an_engine_it_does_not_describe( + engine_inputs: set[str], message: str +) -> None: + builder = _load_builder_module() + + with pytest.raises(ValueError, match=message): + builder._retire_ecps_reference_layers( + {"first_home_mortgage_interest": 0.13}, engine_inputs + ) + + def _parity_reference(builder, shares): from microcosm.build.us_runtime.parity_reference import ( EcpsParityReference, diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_fiscal_targets.py b/packages/microcosm-build/tests/engine_free/us/test_us_fiscal_targets.py index a83cee7a9..c39a5c5e3 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_fiscal_targets.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_fiscal_targets.py @@ -1239,14 +1239,14 @@ def test_locked_policyengine_us_pin_guards_the_obbba_window_premise() -> None: # Companion to the engine-gated window test above, enforced in the BASE # environment (mandatory CI installs no engine extra, so that test skips # there). The window premise was verified against policyengine-us - # 2.2.1, and uv.lock is the only door a different engine can enter + # 2.60.4, and uv.lock is the only door a different engine can enter # mandatory CI through — so pin it here. Bumping the engine must move # this pin in the same change, after re-running # test_obbba_no_tax_channels_are_absent_from_2024_law_deduction_lists in # a [us]-extra environment to re-verify the TY2025-TY2028 window. lock_text = (_TEST_PATHS.repository / "uv.lock").read_text() versions = re.findall(r'name = "policyengine-us"\nversion = "([^"]+)"', lock_text) - assert versions == ["2.2.1"], versions + assert versions == ["2.60.4"], versions def test_us_fiscal_target_references_pass_issue_40_coverage_gate() -> None: diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool.py b/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool.py index 4e15a813b..8c7861b2a 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool.py @@ -603,10 +603,10 @@ def test_pool_transfer_plan_extends_legacy_except_receipted_asset_deferrals() -> assert "has_marketplace_health_coverage" not in owners target_names = sorted(owners) - assert len(target_names) == 118 + assert len(target_names) == 117 assert ( hashlib.sha256(("\n".join(target_names) + "\n").encode()).hexdigest() - == "c792f12f0ef34f8a2ca9f16e68f5b306391eed56f120cda247bf778a95118c15" + == "077c9d870c79e57c11a98ef91ed89c0f844457009ecd262f5bb9aa4b4d931a28" ) @@ -626,10 +626,10 @@ def keys(target_families): source_producers = keys(pool_post_puf_source_producer_target_families()) assert len(early) == 48 - assert len(late) == 70 + assert len(late) == 69 assert early.isdisjoint(late) assert early | late == full - assert len(puf_producers) == 43 + assert len(puf_producers) == 42 assert len(source_producers) == 29 assert len(puf_producers & source_producers) == 2 assert puf_producers | source_producers == late @@ -661,16 +661,16 @@ def test_pool_input_surface_normalizes_all_four_source_registries() -> None: surface = pool_input_surface() by_name = {entry.variable: entry for entry in surface} - assert len(surface) == len(by_name) == 142 + assert len(surface) == len(by_name) == 141 assert [entry.variable for entry in surface] == sorted(by_name) assert Counter( provenance for entry in surface for provenance in entry.provenance ) == Counter( { - "pool_transfer_target_families": 118, + "pool_transfer_target_families": 117, "POOL_DEFERRED_TRANSFER_INPUTS": 3, - "PRIMARY_QRF_TARGET_ORDER": 65, - "load_take_up_contract": 17, + "PRIMARY_QRF_TARGET_ORDER": 63, + "load_take_up_contract": 18, } ) assert by_name["bank_account_assets"] == PoolInputSurfaceEntry( @@ -1071,9 +1071,9 @@ def test_remaining_stage_manifest_enumerates_every_simulation_projection_input() def test_remaining_stage_manifest_is_unique_complete_and_stable() -> None: manifest = pool_remaining_stage_input_manifest(_installed_variable_metadata_index()) - assert len(manifest) == 1059 + assert len(manifest) == 1250 assert Counter(entry.stage for entry in manifest) == Counter( - {"derive": 34, "seed": 33, "simulate": 992} + {"derive": 34, "seed": 34, "simulate": 1182} ) assert len( { @@ -1086,16 +1086,16 @@ def test_remaining_stage_manifest_is_unique_complete_and_stable() -> None: receipt = pool_remaining_stage_input_manifest_receipt( _installed_variable_metadata_index() ) - assert receipt["entry_count"] == 1059 + assert receipt["entry_count"] == 1250 assert receipt["stage_counts"] == { "derive": 34, - "seed": 33, - "simulate": 992, + "seed": 34, + "simulate": 1182, } assert receipt["engine_input_projection_contract"] == { - "engine_version": "2.2.1", - "input_count": 926, - "default_count": 925, + "engine_version": "2.60.4", + "input_count": 1074, + "default_count": 1073, "sha256": POOL_ENGINE_INPUT_PROJECTION_CONTRACT.sha256, "defaults_sha256": POOL_ENGINE_INPUT_PROJECTION_CONTRACT.defaults_sha256, } @@ -1126,7 +1126,7 @@ def test_every_pool_transfer_target_is_an_installed_engine_input_leaf() -> None: for columns in families.values() for target in columns } - assert len(targets) == 118 + assert len(targets) == 117 acs_transfer_module.assert_acs_transfer_targets_are_input_leaves( targets, require_known=True, @@ -1151,9 +1151,9 @@ def test_every_pool_transfer_family_accepts_its_produced_physical_dtype( ) ) - assert len(targets) == 118 + assert len(targets) == 117 assert len(predictors) == 32 - assert len(primary_predictor_sets) == 65 + assert len(primary_predictor_sets) == 63 primary_targets = tuple( ( *puf_support_module.PUF_TAX_DETAIL_DEFAULT_PERSON_OUTPUTS, @@ -1166,9 +1166,9 @@ def test_every_pool_transfer_family_accepts_its_produced_physical_dtype( for position, target in enumerate(primary_targets) ) assert len(primary_predictor_sets[0][1]) == 8 - assert len(primary_predictor_sets[-1][1]) == 72 + assert len(primary_predictor_sets[-1][1]) == 70 assert len(POOL_DEFERRED_TRANSFER_INPUTS) == 3 - assert len(targets) + len(POOL_DEFERRED_TRANSFER_INPUTS) == 121 + assert len(targets) + len(POOL_DEFERRED_TRANSFER_INPUTS) == 120 assert set(POOL_SOURCE_OPERATOR_ORDER) <= set(calls) assert all(calls[name] > 0 for name in POOL_SOURCE_OPERATOR_ORDER) assert calls["with_us_prior_year_income_inputs"] == 2 diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool_h5_io.py b/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool_h5_io.py index 68c5646e0..f7f9dd15b 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool_h5_io.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool_h5_io.py @@ -1108,7 +1108,7 @@ def _cached_canonical_stacked_late_dag_receipt( "completion": { "status": "complete", "group_count": 19, - "target_count": 70, + "target_count": 69, "residual_null_rows": 0, }, } diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool_tool.py b/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool_tool.py index 029e65305..661d0c482 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool_tool.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool_tool.py @@ -1044,7 +1044,10 @@ def deterministic_fixture_h5( # Legacy materializer version 4 similarly changes only checkpoint # identity metadata here, invalidating pre-fix finalized checkpoints # that skipped the CPS-reported Social Security restoration on resume. - "manifest": "7037ca123fc822856db26bfaf13a44e5e2abee127d4c096aae70b69d31c99bdb", + # The policyengine-us 2.60.4 lock (microcosm#1365) moves the same + # identity surface again: the version, the re-derived pool contracts + # and the late-transfer completion receipt; pool_h5 and agreement stay. + "manifest": "fea5e496b2df75442f78775d4522df4fcfb805f23ef8afc4e1d603be5d6596d5", } diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_support.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_support.py index 72ff0c8e7..da32714dc 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_support.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_support.py @@ -241,16 +241,6 @@ def test_puf_tax_unit_donor_quarantines_only_mortgage_fields() -> None: 800_000_000.0, ], "domestic_production_ald": [900_000_000.0, 700.0, 800_000_000.0], - "first_home_mortgage_interest": [ - 8_000_000.0, - 4_000_000.0, - 7_000_000.0, - ], - "second_home_mortgage_interest": [ - 2_000_000.0, - 1_000_000.0, - 3_500_000.0, - ], }, adjusted_gross_income=[0.0, 0.0, 10_000_000.0], person_outputs=( @@ -260,11 +250,9 @@ def test_puf_tax_unit_donor_quarantines_only_mortgage_fields() -> None: "short_term_capital_gains", "long_term_capital_gains_before_response", ), - tax_unit_outputs=( - "domestic_production_ald", - "first_home_mortgage_interest", - "second_home_mortgage_interest", - ), + # policyengine-us 2.60 retired the tax-unit first/second home + # mortgage interest legs; the person-level column carries the amount. + tax_unit_outputs=("domestic_production_ald",), donor_build_summary=summary, ) @@ -294,16 +282,9 @@ def test_puf_tax_unit_donor_quarantines_only_mortgage_fields() -> None: raw_total, np.asarray([0.0, 0.0, 10_000_000.0]), ) - share = mortgage / raw_total expected_before_quarantine = { "home_mortgage_interest": mortgage, "investment_interest_expense": investment, - "first_home_mortgage_interest": ( - np.asarray([8_000_000.0, 4_000_000.0, 7_000_000.0]) * share - ), - "second_home_mortgage_interest": ( - np.asarray([2_000_000.0, 1_000_000.0, 3_500_000.0]) * share - ), } for column, expected in expected_before_quarantine.items(): np.testing.assert_allclose( @@ -364,8 +345,6 @@ def test_puf_tax_unit_donor_quarantines_only_mortgage_fields() -> None: assert puf_support_module.US_PUF_DONOR_MORTGAGE_QUARANTINE_FIELDS == ( "home_mortgage_interest", "investment_interest_expense", - "first_home_mortgage_interest", - "second_home_mortgage_interest", "interest_deduction", ) np.testing.assert_allclose( @@ -399,8 +378,6 @@ def test_puf_e19200_split_scales_only_lineage_and_populates_residual() -> None: # future nonzero column. assert puf_support_module._US_PUF_E19200_LINEAGE_DONOR_COLUMNS == ( "home_mortgage_interest", - "first_home_mortgage_interest", - "second_home_mortgage_interest", "interest_deduction", ) grouped_person = ( @@ -423,8 +400,6 @@ def test_puf_e19200_split_scales_only_lineage_and_populates_residual() -> None: donor = pd.DataFrame( { "home_mortgage_interest": [100.0, 200.0], - "first_home_mortgage_interest": [75.0, 150.0], - "second_home_mortgage_interest": [25.0, 50.0], "interest_deduction": interest_deduction, "real_estate_taxes": [8.0, 16.0], "first_home_mortgage_balance": [250_000.0, 500_000.0], @@ -503,8 +478,11 @@ def test_puf_tax_detail_default_person_outputs_are_engine_leaves() -> None: assert "medical_expense_deduction" not in PUF_TAX_DETAIL_DEFAULT_PERSON_OUTPUTS assert "interest_deduction" not in PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS assert "domestic_production_ald" in PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS - assert "first_home_mortgage_interest" in PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS - assert "second_home_mortgage_interest" in PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS + # policyengine-us 2.60 retired the tax-unit interest legs. + assert "first_home_mortgage_interest" not in PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS + assert ( + "second_home_mortgage_interest" not in PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS + ) assert "first_home_mortgage_balance" in PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS assert "second_home_mortgage_balance" in PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS assert ( @@ -1350,8 +1328,6 @@ def test_puf_tax_unit_donor_carries_structural_mortgage_leaves() -> None: "home_mortgage_interest": [10_000.0, 25_000.0], "first_home_mortgage_balance": [250_000.0, 500_000.0], "second_home_mortgage_balance": [0.0, 125_000.0], - "first_home_mortgage_interest": [10_000.0, 20_000.0], - "second_home_mortgage_interest": [0.0, 5_000.0], "first_home_mortgage_origination_year": [2018, 2016], "second_home_mortgage_origination_year": [0, 2020], "health_savings_account_ald": [1_500.0, 0.0], @@ -1368,28 +1344,9 @@ def test_puf_tax_unit_donor_carries_structural_mortgage_leaves() -> None: assert donor["unrecaptured_section_1250_gain"].tolist() == [500.0, 0.0] assert donor["first_home_mortgage_balance"].tolist() == [250_000.0, 500_000.0] assert donor["second_home_mortgage_balance"].tolist() == [0.0, 125_000.0] - np.testing.assert_allclose( - donor["first_home_mortgage_interest"].to_numpy(), - np.asarray([10_000.0, 20_000.0]) - * ( - split_us_puf_e19200_by_agi_band( - np.asarray([10_000.0, 25_000.0]), - np.asarray([0.0, 10_000_000.0]), - )[0] - / np.asarray([10_000.0, 25_000.0]) - ), - ) - np.testing.assert_allclose( - donor["second_home_mortgage_interest"].to_numpy(), - np.asarray([0.0, 5_000.0]) - * ( - split_us_puf_e19200_by_agi_band( - np.asarray([10_000.0, 25_000.0]), - np.asarray([0.0, 10_000_000.0]), - )[0] - / np.asarray([10_000.0, 25_000.0]) - ), - ) + # The retired interest legs are no longer donor outputs. + assert "first_home_mortgage_interest" not in donor + assert "second_home_mortgage_interest" not in donor assert donor["first_home_mortgage_origination_year"].tolist() == [ 2018.0, 2016.0, diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_release_head_to_head_scorer.py b/packages/microcosm-build/tests/engine_free/us/test_us_release_head_to_head_scorer.py index a4fab271e..fef33c169 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_release_head_to_head_scorer.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_release_head_to_head_scorer.py @@ -704,12 +704,14 @@ def test_canonical_battery_contract_matches_production_registries() -> None: assert single == 134 assert joint == 1 assert len(contract) == single + joint - assert sum(len(row["metric_legs"]) for row in contract.values()) == 372 + # policyengine-us 2.60.4 retired the first-home mortgage leg (a four-leg + # monetary metric) and added Part D take-up (a one-leg incidence metric). + assert sum(len(row["metric_legs"]) for row in contract.values()) == 369 assert ( sum(row["metric"] == "monetary_sign_separated" for row in contract.values()) - == 79 + == 78 ) - assert sum(row["metric"] == "boolean_incidence" for row in contract.values()) == 51 + assert sum(row["metric"] == "boolean_incidence" for row in contract.values()) == 52 assert sum(row["metric"] == "categorical_tvd" for row in contract.values()) == 5 assert ( "person/source_operator_immigration/" @@ -758,8 +760,8 @@ def test_observed_origin_battery_is_evidence_not_assertion(monkeypatch) -> None: assert asec_only["observed_origins"]["entities"]["person"]["asec_rows"] == 2 assert both_origins["status"] == "computed_finished_h5" assert both_origins["production_receipt_authenticated"] is False - assert both_origins["metric_leg_count"] == 372 - assert both_origins["scalar_leg_status_counts"] == {"computed": 372} + assert both_origins["metric_leg_count"] == 369 + assert both_origins["scalar_leg_status_counts"] == {"computed": 369} for payload in (no_columns, asec_only): assert payload["comparison_count"] == 135 assert all( diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_spec_bundle.py b/packages/microcosm-build/tests/engine_free/us/test_us_spec_bundle.py index 789b149a0..d48cf8323 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_spec_bundle.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_spec_bundle.py @@ -71,11 +71,11 @@ def test_constant_derived_domain_counts_are_complete( } assert target_counts == { "gap_fill_stacked_spine": 48, - "primary_puf_qrf": 65, - "late_producer_dag": 70, + "primary_puf_qrf": 63, + "late_producer_dag": 69, } assert "primary_effective_predictor_tuples" not in imputation["chaining"] - assert len(derive_primary_effective_predictor_tuples(imputation)) == 65 + assert len(derive_primary_effective_predictor_tuples(imputation)) == 63 itemization_batches = [ family for family in families if "puf_tax_itemization__batch_" in family["id"] ] @@ -90,8 +90,8 @@ def test_constant_derived_domain_counts_are_complete( for stage in ("primary_puf_qrf", "late_producer_dag") } assert modeled_output_scopes == { - "primary_puf_qrf": {"puf_clone": 64, "whole_pool": 1}, - "late_producer_dag": {"whole_pool": 70}, + "primary_puf_qrf": {"puf_clone": 62, "whole_pool": 1}, + "late_producer_dag": {"whole_pool": 69}, } assert all( "output_coverage_scope" not in target @@ -142,16 +142,16 @@ def test_constant_derived_domain_counts_are_complete( assert len(compiled_schedule["waves"]) == 6 assert ( compiled_schedule["schedule_sha256"] - == "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f" + == "50aa8412d99ec92b1638885d6b45a838b23d990fe1cbf3f0d4d3b21426496d16" ) assert ( compiled_schedule["payload_sha256"] - == "7be038d34f228d66c12b53558fc5f30c93f1b376f1058c5e4fd7e7563a88d67f" + == "c04c59fa15718de9e72178b5531f9164f8e456fc883d8195ba60aecf1a6fd0bf" ) - assert len(take_up["programs"]) == 17 + assert len(take_up["programs"]) == 18 assert Counter(program["ownership"] for program in take_up["programs"]) == { - "engine": 7, + "engine": 8, "measured": 1, "mixed": 1, "modeled": 7, @@ -165,12 +165,12 @@ def test_constant_derived_domain_counts_are_complete( take_up_steps.extend( step for segment in program["segments"] for step in segment["pipeline"] ) - assert len(take_up_steps) == 28 + assert len(take_up_steps) == 29 assert Counter(step["kind"] for step in take_up_steps) == { "assignment": 5, "count_calibration": 5, "probability_seed": 5, - "engine_default": 7, + "engine_default": 8, "measured_map": 3, "imputed_transfer": 2, "delivery_gate": 1, @@ -180,7 +180,7 @@ def test_constant_derived_domain_counts_are_complete( ] local_steps = [step for step in take_up_steps if "source_operation_ref" not in step] assert len(source_backed_steps) == 18 - assert len(local_steps) == 10 + assert len(local_steps) == 11 assert ( len({step["source_operation_ref"]["stage"] for step in source_backed_steps}) == 9 diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_stacked_spine.py b/packages/microcosm-build/tests/engine_free/us/test_us_stacked_spine.py index 773b3b06e..bf2430628 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_stacked_spine.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_stacked_spine.py @@ -1217,8 +1217,8 @@ def test_canonical_metric_registry_covers_the_declared_134_target_split() -> Non assert len(surface_targets) == 134 assert Counter(entity for entity, _family, _target, _clone in surface_targets) == { - "person": 114, - "tax_unit": 12, + "person": 115, + "tax_unit": 11, "spm_unit": 8, } assert ( @@ -1233,8 +1233,8 @@ def test_canonical_metric_registry_covers_the_declared_134_target_split() -> Non ) assert set(registry) == surface_targets assert Counter(registry.values()) == { - "monetary_sign_separated": 79, - "boolean_incidence": 51, + "monetary_sign_separated": 78, + "boolean_incidence": 52, "categorical_tvd": 4, } assert ( @@ -1274,13 +1274,13 @@ def test_canonical_metric_registry_covers_the_declared_134_target_split() -> Non for target in targets } assert len(gap_targets) == 48 - assert len(post_puf_targets) == 70 - assert len(puf_producer_targets) == 43 + assert len(post_puf_targets) == 69 + assert len(puf_producer_targets) == 42 assert len(source_producer_targets) == 29 assert len(puf_producer_targets & source_producer_targets) == 2 assert puf_producer_targets | source_producer_targets == post_puf_targets assert gap_targets.isdisjoint(post_puf_targets) - assert len(gap_targets | post_puf_targets) == 118 + assert len(gap_targets | post_puf_targets) == 117 assert gap_targets | post_puf_targets < surface_targets assert not { "bank_account_assets", @@ -1304,8 +1304,8 @@ def test_canonical_metric_registry_drives_checkpoint_round_trip( registry = stacked_spine_module.CANONICAL_ORIGIN_BATTERY_METRIC_REGISTRY nullable_booleans = _transferred_registry_boolean_targets() assert Counter(registry.values()) == { - "monetary_sign_separated": 79, - "boolean_incidence": 51, + "monetary_sign_separated": 78, + "boolean_incidence": 52, "categorical_tvd": 4, } for (entity, _family, column, _clone_index), metric in registry.items(): @@ -1405,6 +1405,7 @@ def test_checkpoint_boundary_extension_dtype_inventory_is_exact() -> None: ("person", "takes_up_early_head_start_if_eligible"), ("person", "takes_up_head_start_if_eligible"), ("person", "takes_up_medicaid_if_eligible"), + ("person", "takes_up_medicare_part_d_if_eligible"), ("person", "takes_up_ssi_if_eligible"), ("spm_unit", "takes_up_snap_if_eligible"), ("spm_unit", "takes_up_tanf_if_eligible"), @@ -1415,7 +1416,7 @@ def test_checkpoint_boundary_extension_dtype_inventory_is_exact() -> None: ("tax_unit", "takes_up_eitc"), ("tax_unit", "takes_up_nm_premium_assistance_if_eligible"), } - assert len(seeded_numpy_booleans) == 14 + assert len(seeded_numpy_booleans) == 15 assembled_strings = { ("person", "PERIDNUM"), ("person", "source_person_id"), @@ -1514,11 +1515,11 @@ def test_registry_drives_every_late_callback_dtype_family_check() -> None: for output in contract.outputs if (key := (output.entity, output.column)) in by_column ] - assert len(registered_occurrences) == 163 + assert len(registered_occurrences) == 161 assert Counter( metric for _producer, _entity, _column, metric in registered_occurrences ) == { - "monetary_sign_separated": 120, + "monetary_sign_separated": 118, "boolean_incidence": 37, "categorical_tvd": 6, } @@ -1526,9 +1527,9 @@ def test_registry_drives_every_late_callback_dtype_family_check() -> None: (entity, column): metric for _producer, entity, column, metric in registered_occurrences } - assert len(unique_late_targets) == 90 + assert len(unique_late_targets) == 89 assert Counter(unique_late_targets.values()) == { - "monetary_sign_separated": 67, + "monetary_sign_separated": 66, "boolean_incidence": 20, "categorical_tvd": 3, } diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_stored_input_register.py b/packages/microcosm-build/tests/engine_free/us/test_us_stored_input_register.py index e25bc2619..fc170aecf 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_stored_input_register.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_stored_input_register.py @@ -28,9 +28,10 @@ def test_the_register_spells_the_us_entities_in_schema_order(): def test_every_register_entry_is_a_named_producer_column(): """The register is exactly the four support provenance columns and the base-spine tag of every US entity, the pooled-source provenance columns, - microunit's two tax-unit construction columns, the PUF capital-gains tail + microunit's tax-unit filing-status column, the PUF capital-gains tail provenance columns, the ACS-native acs_ amounts and acs_pums's puma_geoid - alias.""" + alias. microunit's tax_unit_role_input and the parent_1_id/parent_2_id + pointers are policyengine-us 2.60 inputs, so they are not in it.""" support = { column(entity) @@ -51,7 +52,7 @@ def test_every_register_entry_is_a_named_producer_column(): puf_tail.PUF_CAPITAL_GAINS_TAIL_DONOR_AGI_BAND_COLUMN, puf_tail.PUF_CAPITAL_GAINS_TAIL_TRANSFER_WEIGHT_COLUMN, } - construction = {_TAX_UNIT_ROLE_COLUMN, TAX_UNIT_FILING_STATUS_COLUMN} + construction = {TAX_UNIT_FILING_STATUS_COLUMN} assert set(US_STORED_NON_VARIABLE_COLUMNS) == ( support @@ -60,10 +61,13 @@ def test_every_register_entry_is_a_named_producer_column(): | tail | _ACS_NATIVE_AMOUNTS | {"puma_geoid"} - | set(US_ELIGIBILITY_INPUTS_PARENT_ID_COLUMNS) ) + assert not set(US_STORED_NON_VARIABLE_COLUMNS) & { + _TAX_UNIT_ROLE_COLUMN, + *US_ELIGIBILITY_INPUTS_PARENT_ID_COLUMNS, + } assert len(_ACS_NATIVE_AMOUNTS) == 6 - assert len(US_STORED_NON_VARIABLE_COLUMNS) == 30 + 6 + 6 + 6 + 1 + 2 + assert len(US_STORED_NON_VARIABLE_COLUMNS) == 30 + 4 + 1 + 6 + 6 + 1 def test_every_register_reason_names_where_its_column_comes_from(): @@ -88,14 +92,9 @@ def test_every_register_reason_names_where_its_column_comes_from(): }, **{column: "_ACS_NATIVE_INPUT_CONTRACTS" for column in _ACS_NATIVE_AMOUNTS}, "puma_geoid": "microcosm.build.us_runtime.acs_pums", - _TAX_UNIT_ROLE_COLUMN: "microcosm.frame.units._TAX_UNIT_ROLE_COLUMN", TAX_UNIT_FILING_STATUS_COLUMN: ( "microcosm.frame.units.TAX_UNIT_FILING_STATUS_COLUMN" ), - **{ - column: "US_ELIGIBILITY_INPUTS_PARENT_ID_COLUMNS" - for column in US_ELIGIBILITY_INPUTS_PARENT_ID_COLUMNS - }, } for column, owner in expected_owner.items(): assert owner in US_STORED_NON_VARIABLE_COLUMNS[column], column diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_adult_care.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_adult_care.py index 856599f1a..04d5c9a60 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_adult_care.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_adult_care.py @@ -8,7 +8,7 @@ def test_policyengine_2_2_1_cdcc_adult_care_contract_and_live_binding() -> None: from policyengine_core.reforms import Reform from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variables = CountryTaxBenefitSystem().variables flag = variables[_FLAG] assert flag.is_input_variable() diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_child_support.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_child_support.py index 457a0bc3e..4e7b85cc8 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_child_support.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_child_support.py @@ -54,6 +54,15 @@ def situation(received: float, expense: float) -> dict[str, object]: active.calculate("spm_unit_spm_expenses", 2024)[0] - baseline.calculate("spm_unit_spm_expenses", 2024)[0] ) == pytest.approx(2_400.0) - assert active.calculate("snap_child_support_deduction", "2024-01")[ + # The $200 monthly payment reaches SNAP exactly once. policyengine-us 2.60 + # treats California as a state that excludes child support paid from gross + # income, so it lands in the gross-income exclusion rather than the + # net-income deduction 2.2.1 used; the two together count it once. + assert active.calculate("snap_countable_child_support_expense", "2024-01")[ 0 ] == pytest.approx(200.0) + assert active.calculate("snap_child_support_gross_income_deduction", "2024-01")[ + 0 + ] + active.calculate("snap_child_support_deduction", "2024-01")[0] == ( + pytest.approx(200.0) + ) diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_disability_benefits.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_disability_benefits.py index 0674372b5..4cddda0f0 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_disability_benefits.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_disability_benefits.py @@ -7,7 +7,7 @@ def test_policyengine_us_2_2_1_contract_and_positive_annual_behavior() -> None: from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables[_OUTPUT] assert variable.is_input_variable() assert variable.entity.key == "person" diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_educator_expenses.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_educator_expenses.py index 3c9576a99..cb6989dcc 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_educator_expenses.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_educator_expenses.py @@ -97,7 +97,7 @@ def predict( def test_policyengine_us_17646_contract_is_person_year_input_in_ald_graph() -> None: from policyengine_us import CountryTaxBenefitSystem - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" system = CountryTaxBenefitSystem() variable = system.variables["educator_expense"] @@ -105,14 +105,18 @@ def test_policyengine_us_17646_contract_is_person_year_input_in_ald_graph() -> N assert variable.entity.key == "person" assert str(variable.definition_period).lower() == "year" assert variable.default_value == 0 + # policyengine-us 2.60 uprates dollar inputs by per-capita series. assert ( variable.uprating - == "calibration.gov.cbo.income_by_source.adjusted_gross_income" + == "calibration.gov.cbo.income_by_source.adjusted_gross_income_per_capita" ) - assert system.variables["above_the_line_deductions"].adds == ( - "gov.irs.ald.deductions" + # 2.60 sums the listed deductions in a formula (head and spouse only) + # rather than through ``adds``, and lists the educator leaf as + # educator_expense_ald, which sums educator_expense_ald_person. + assert system.variables["above_the_line_deductions"].formulas + assert "educator_expense_ald" in system.parameters.gov.irs.ald.deductions( + "2024-01-01" ) - assert "educator_expense" in system.parameters.gov.irs.ald.deductions("2024-01-01") def test_shipped_abolition_probe_has_positive_sign_and_binds_live() -> None: @@ -132,7 +136,7 @@ def test_shipped_abolition_probe_has_positive_sign_and_binds_live() -> None: assert probe.min_abs_effect == 1_000_000.0 deductions = probe.parameter_changes["gov.irs.ald.deductions"] assert set(deductions) == {"2024-01-01.2024-12-31"} - assert "educator_expense" not in deductions["2024-01-01.2024-12-31"] + assert "educator_expense_ald" not in deductions["2024-01-01.2024-12-31"] situation = { "people": { diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_energy_subsidy.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_energy_subsidy.py index ad112c383..d27f4d3f6 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_energy_subsidy.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_energy_subsidy.py @@ -8,7 +8,7 @@ def test_policyengine_2_2_1_contract_and_live_neutralization() -> None: from policyengine_core.reforms import Reform from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables[_OUTPUT] assert variable.is_input_variable() assert variable.entity.key == "spm_unit" diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_farm_business_income.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_farm_business_income.py index e1bedcdc5..3a394c898 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_farm_business_income.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_farm_business_income.py @@ -8,7 +8,7 @@ def test_policyengine_us_2_2_1_qbi_graph_reads_each_farm_leaf() -> None: from policyengine_core.reforms import Reform from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" system = CountryTaxBenefitSystem() for output in US_FARM_BUSINESS_INCOME_OUTPUT_COLUMNS: variable = system.variables[output] diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_housing_inputs.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_housing_inputs.py index 56d552ba3..6bb4d48f0 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_housing_inputs.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_housing_inputs.py @@ -29,7 +29,7 @@ def test_policyengine_us_live_housing_take_up_neutralization() -> None: from microcosm.build.us_runtime.reform_coverage_smoke import _build_reform - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" situation = { "people": { "adult": { @@ -68,5 +68,9 @@ def test_policyengine_us_live_housing_take_up_neutralization() -> None: neutralized = Simulation(situation=situation, reform=_build_reform(probe)) assert baseline.calculate("is_eligible_for_housing_assistance", 2024)[0] - assert baseline.calculate("housing_assistance", 2024)[0] == pytest.approx(11_975) + # policyengine-us 2.60.4 adds LACDA's utility allowance to gross rent + # ($271 a month for a one-bedroom in county 06037; 2.2.1 had none): + # $12,000 rent + $3,252 allowance - $25 minimum rent. + assert baseline.calculate("hud_utility_allowance", 2024)[0] == pytest.approx(3_252) + assert baseline.calculate("housing_assistance", 2024)[0] == pytest.approx(15_227) assert neutralized.calculate("housing_assistance", 2024)[0] == 0 diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_medicare_irmaa_holdout.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_medicare_irmaa_holdout.py index ae27f02f2..2c796fce4 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_medicare_irmaa_holdout.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_medicare_irmaa_holdout.py @@ -84,16 +84,16 @@ def test_holdout_measures_follow_the_engine_on_a_household() -> None: ) -def test_a_single_year_household_has_no_irmaa_on_the_locked_engine() -> None: - """Pin today's zero so an engine bump changes it visibly (microcosm#1206). +def test_a_single_year_household_pays_irmaa_on_the_locked_engine() -> None: + """A single-year release still charges IRMAA on 2.60 (microcosm#1206). - A release H5 carries inputs for its year only. On policyengine-us 2.2.1, - IRMAA rests on income two years earlier, which such a household lacks, so - a 2024 enrollee with $600,000 of 2024 wages pays none and the holdout - withholds its Trustees comparisons. A policyengine-us that includes - PolicyEngine/policyengine-us#10106 falls back to the earliest input year; - when Microcosm moves to one, this test fails and should be rewritten to - expect the top tier. + A release H5 carries inputs for its year only. policyengine-us 2.2.1 read + the income two years earlier, which such a household lacks, so a 2024 + enrollee with $600,000 of 2024 wages paid none. policyengine-us 2.60 + includes PolicyEngine/policyengine-us#10106: with no earlier inputs it + takes the 2024 income deflated to 2022 by per-capita CBO AGI ($543,850), + still above the top threshold, so the enrollee pays the Trustees' 2024 + top-tier amounts. """ from policyengine_us import Simulation @@ -114,9 +114,16 @@ def test_a_single_year_household_has_no_irmaa_on_the_locked_engine() -> None: for variable in MEDICARE_IRMAA_HOLDOUT_VARIABLES ] assert simulation.calculate("adjusted_gross_income", 2024)[0] >= 600_000 + lookback = simulation.calculate("medicare_irmaa_magi_two_years_prior", 2024)[0] + assert 500_000 < lookback < 600_000 payload = medicare_irmaa_holdout_payload(*values, np.array([1.0]), period=2024) - assert payload["status"] == "no_payers", payload["parts"] assert payload["weighted_medicare_enrollees"] == 1 - for row in payload["parts"]: - assert row["weighted_payers"] == 0 - assert row["payers_relative_difference"] is None + part_b_row, part_d_row = payload["parts"] + assert part_b_row["weighted_payers"] == 1 + assert part_b_row["average_monthly_premium_per_payer"] == pytest.approx( + _TRUSTEES_2024_PART_B_TOP_MONTHLY + ) + assert part_d_row["weighted_payers"] == 1 + assert part_d_row["average_monthly_premium_per_payer"] == pytest.approx( + _TRUSTEES_2024_PART_D_TOP_MONTHLY + ) diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_medicare_take_up.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_medicare_take_up.py index d27398d92..254d50f61 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_medicare_take_up.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_medicare_take_up.py @@ -56,7 +56,7 @@ def test_policyengine_contract_and_live_neutralization() -> None: from microcosm.build.us_runtime.reform_coverage_smoke import _build_reform - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" system = CountryTaxBenefitSystem() variable = system.variables[_OUTPUT] assert variable.is_input_variable() diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_other_health_insurance.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_other_health_insurance.py index 8bc63625f..ac8ce0b42 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_other_health_insurance.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_other_health_insurance.py @@ -7,7 +7,7 @@ def test_policyengine_us_graph_uses_other_health_insurance_premiums() -> None: from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables[_OTHER] assert variable.is_input_variable() assert variable.entity.key == "person" @@ -54,7 +54,7 @@ def situation(premiums: float) -> dict[str, object]: def test_policyengine_2_2_1_se_health_ald_contract_and_live_binding() -> None: from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variables = CountryTaxBenefitSystem().variables for name in US_SE_HEALTH_ATTRIBUTION_OUTPUT_COLUMNS: variable = variables[name] diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_reform_coverage_probe_engine_drift.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_reform_coverage_probe_engine_drift.py index 84c4b0e02..dccf275ce 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_reform_coverage_probe_engine_drift.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_reform_coverage_probe_engine_drift.py @@ -34,7 +34,7 @@ "child_support_expense_snap_deduction_abolition": "snap_child_support_deduction", "disability_benefits_snap_exclusion": "disability_benefits", "workers_compensation_snap_exclusion": "workers_compensation", - "educator_expense_ald_abolition": "educator_expense", + "educator_expense_ald_abolition": "educator_expense_ald", "alimony_expense_ald_abolition": "alimony_expense_ald", } _ADDED_ITEM = {"domestic_production_ald_reactivation": "domestic_production_ald"} diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_relationship_inputs.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_relationship_inputs.py index c2060aada..bf8fb4555 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_relationship_inputs.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_relationship_inputs.py @@ -85,7 +85,7 @@ def test_locked_artifacts_confirm_source_presence_and_absence(self) -> None: def test_policyengine_2_2_1_contract_and_live_bindings() -> None: from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variables = CountryTaxBenefitSystem().variables for name in _OUTPUTS: variable = variables[name] diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_retirement_distributions.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_retirement_distributions.py index 4446090c4..16eb6c3a7 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_retirement_distributions.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_retirement_distributions.py @@ -8,7 +8,7 @@ def test_policyengine_2_2_1_contract_and_live_binding() -> None: from policyengine_core.reforms import Reform from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variables = CountryTaxBenefitSystem().variables for name in _OUTPUTS: variable = variables[name] diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_sipp_head_start.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_sipp_head_start.py index ec533201d..f6f8fb37c 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_sipp_head_start.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_sipp_head_start.py @@ -7,7 +7,7 @@ def test_policyengine_us_2_2_1_head_start_is_zero_when_neutralized() -> None: from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables[_OUTPUT] assert variable.is_input_variable() assert variable.entity.key == "person" diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_ssi_disability_criteria.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_ssi_disability_criteria.py index b513b215d..50f547062 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_ssi_disability_criteria.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_ssi_disability_criteria.py @@ -7,7 +7,7 @@ def test_policyengine_us_2_2_1_ssi_is_positive_then_zero_when_neutralized() -> None: from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables[_OUTPUT] assert variable.is_input_variable() assert variable.entity.key == "person" diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_ssi_take_up.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_ssi_take_up.py index c83609d21..8f193676a 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_ssi_take_up.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_ssi_take_up.py @@ -7,7 +7,7 @@ def test_policyengine_us_2_2_1_take_up_flag_controls_positive_ssi() -> None: from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables[_OUTPUT] assert variable.is_input_variable() assert variable.entity.key == "person" diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_voluntary_filing.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_voluntary_filing.py index 37c5216be..e30494bf1 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_voluntary_filing.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_voluntary_filing.py @@ -9,7 +9,7 @@ def test_policyengine_2_2_1_contract_and_aca_ptc_neutralization() -> None: from microcosm.build.us_runtime.reform_coverage_smoke import _build_reform - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables[_OUTPUT] assert variable.is_input_variable() assert variable.entity.key == "tax_unit" diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_wic_claim.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_wic_claim.py index 8e29551af..16c1183ad 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_wic_claim.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_wic_claim.py @@ -11,7 +11,7 @@ def test_policyengine_contract_and_live_wic_neutralization() -> None: from microcosm.build.us_runtime.reform_coverage_smoke import _build_reform - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" system = CountryTaxBenefitSystem() variable = system.variables[_OUTPUT] assert variable.is_input_variable() diff --git a/packages/microcosm-build/tests/engine_scenario/us/test_us_workers_compensation.py b/packages/microcosm-build/tests/engine_scenario/us/test_us_workers_compensation.py index 726443eb7..61074ab12 100644 --- a/packages/microcosm-build/tests/engine_scenario/us/test_us_workers_compensation.py +++ b/packages/microcosm-build/tests/engine_scenario/us/test_us_workers_compensation.py @@ -75,7 +75,7 @@ def test_all_sha_locked_asec_sources_have_exact_wc_val_signal() -> None: def test_policyengine_us_2_2_1_contract_and_positive_annual_behavior() -> None: from policyengine_us import CountryTaxBenefitSystem, Simulation - assert version("policyengine-us") == "2.2.1" + assert version("policyengine-us") == "2.60.4" variable = CountryTaxBenefitSystem().variables[_OUTPUT] assert variable.is_input_variable() assert variable.entity.key == "person" diff --git a/packages/microcosm-build/tests/engine_workflow/us/test_us_batched_target_materialization.py b/packages/microcosm-build/tests/engine_workflow/us/test_us_batched_target_materialization.py index ffdd30281..356a3e3f8 100644 --- a/packages/microcosm-build/tests/engine_workflow/us/test_us_batched_target_materialization.py +++ b/packages/microcosm-build/tests/engine_workflow/us/test_us_batched_target_materialization.py @@ -56,6 +56,7 @@ def test_real_engine_batched_base_simulation_matches_unbatched(monkeypatch) -> N pd.testing.assert_frame_equal(household, unbatched, check_exact=True) assert version == unbatched_version + def test_real_engine_base_batches_build_no_system_and_release_engines( monkeypatch, ) -> None: @@ -117,6 +118,7 @@ def alive_microsimulations() -> int: for column, values in unbatched.items(): np.testing.assert_array_equal(batched[column], values) + def test_real_engine_refuses_a_batched_medicaid_cost_target() -> None: """Compare guarded materialization with unguarded one-household engines.""" @@ -212,6 +214,7 @@ def test_real_engine_refuses_a_batched_medicaid_cost_target() -> None: maximum_microsim_batch_size=batch_size, ) + def test_population_aggregate_list_matches_installed_engine_sources() -> None: """Pin the guard list to weight reads and aggregation markers in US sources. @@ -252,11 +255,47 @@ def test_population_aggregate_list_matches_installed_engine_sources() -> None: "medicaid_household_income": { "medicaid_claiming_tax_unit_value()", "medicaid_external_claimed_sum()", + "medicaid_non_filer_member_sum()", }, "medicaid_household_size": { "medicaid_claiming_tax_unit_value()", "medicaid_external_claimed_sum()", + "medicaid_non_filer_member_sum()", + }, + "ca_medicaid_household_pregnancies": { + "medicaid_claiming_tax_unit_value()", + "medicaid_external_claimed_sum()", + "medicaid_non_filer_member_sum()", + }, + "medicaid_claimed_by_parent_in_tax_unit": { + "medicaid_known_claim_by_named_parent()", + "unlinked_parent()", + }, + # The parent_1_id/parent_2_id joins of policyengine-us 2.60 resolve + # each id among the person's own household (or claiming tax unit) + # and count or pool over those row indices; a household batch + # holds whole households, so every join stays inside it. + "is_parent": {"linked_child_count()"}, + "medicaid_tax_dependent_exception_living_with_both_parents": { + "unlinked_parent()" + }, + "mo_tanf_is_parent_of_dependent_child": {"np.bincount("}, + "wi_works_eligible": {"np.bincount("}, + "wi_cts_caretaker_children": {"np.bincount("}, + "nh_ssp_resources_deemed_from_parents": {"_ssi_parental_resource_pool()"}, + "ssi_resources_deemed_from_ineligible_parent": { + "np.bincount(", + "_ssi_parental_resource_pool()", }, + # Wisconsin caretaker-supplement units are keyed by family member + # indices, so each unit lies inside one family. + "wi_cts": {"cts_filing_unit()", "cts_financial_test()"}, + "wi_cts_buening_member": {"cts_filing_unit()"}, + "wi_cts_sfu_member": {"cts_filing_unit()"}, + # The two sums only count malformed tax units for its error message. + "tax_unit_roles_supplied": {".sum()"}, + # The helper compares state and county codes with parameter lists. + "is_in_snap_abawd_waived_area": {"in_listed_abawd_waiver_area()"}, } ) assert set(found) == set(builder.US_POPULATION_AGGREGATE_VARIABLES) | set( @@ -270,5 +309,5 @@ def test_population_aggregate_list_matches_installed_engine_sources() -> None: "\n".join(f"{name}:{source_digests[name]}" for name in sorted(triaged)).encode() ).hexdigest() assert triaged_digest == ( - "f26eb560e474207fc1fa1d8828b62ba4791fb763089ea2ce7a85b57a259f2755" + "dc3b151dd7dc4588204cb47deb7406f79fea2b027352a8a674c0a886adb674ff" ), triaged_digest diff --git a/packages/microcosm-build/tests/engine_workflow/us/test_us_multispine_pool_tool.py b/packages/microcosm-build/tests/engine_workflow/us/test_us_multispine_pool_tool.py index ed5246646..e2343c1da 100644 --- a/packages/microcosm-build/tests/engine_workflow/us/test_us_multispine_pool_tool.py +++ b/packages/microcosm-build/tests/engine_workflow/us/test_us_multispine_pool_tool.py @@ -106,7 +106,7 @@ def test_stacked_tool_entrypoint_fixture_e2e_emits_one_logbook_row_at_every_term assert published_transfer["completion"] == { "status": "complete", "group_count": 19, - "target_count": 70, + "target_count": 69, "residual_null_rows": 0, } calibrated = [ @@ -343,7 +343,9 @@ def capture_equality(expected: object, actual: object) -> None: # retain_best_objective and microcosm#1301's budget_search_bracket # move it. It covers microcosm.fit.qrf's attested bytes too, so # fit_draw_next's caller-owned uniforms (microcosm#1332) move it. - "spec_sha256": "19460fc168a6f9ed44e580d0e36777cce78bb33cb52b75630ee86203fa795684", + # The policyengine-us 2.60.4 lock (microcosm#1365) moves the take-up + # programs, engine ABI lock and PUF QRF outputs it binds. + "spec_sha256": "5ff97a0bc4b029e69a0ba8be98ad00cab0b267a4239fa1f7a2d1ebde0f7f9283", }, } diff --git a/packages/microcosm-data/pyproject.toml b/packages/microcosm-data/pyproject.toml index d0ad1be68..7a8327eb9 100644 --- a/packages/microcosm-data/pyproject.toml +++ b/packages/microcosm-data/pyproject.toml @@ -25,15 +25,15 @@ microcosm-publish-release = "microcosm.data.publish_cli:main" # Country engines are optional: install the one(s) you load. The extra name is # the country slug, matching the registry key and the loader's error message. [project.optional-dependencies] -# Floor at the engine version verified to load the published artifact. 2.x is -# the SPM-1.0 line: 2.0.0 rejects derived SPM outputs (including the -# `in_poverty` alias) from stored datasets and requires observed county inputs, -# so a 1.x engine cannot load an artifact built for this floor and a 1.x -# artifact cannot be loaded by this engine. Cap below 3 to guard the next -# breaking dataset-schema major. -# microcosm#1086 (option 2): the US side keeps its own policyengine-core pin, -# the core the certified US default was built with. -us = ["policyengine-us>=2.2.1,<3", "policyengine-core==3.32.5"] +# Floor at the engine the next certified US build is built with. 2.x is the +# SPM-1.0 line: 2.0.0 rejects derived SPM outputs (including the `in_poverty` +# alias) from stored datasets and requires observed county inputs, so a 1.x +# engine cannot load a 2.x artifact and a 1.x artifact cannot be loaded by +# this engine. The loader still enforces each release's own certified range at +# load time, so this floor loads only releases certified for it. Cap below 3 +# to guard the next breaking dataset-schema major. +# microcosm#1086 (option 2): the US side keeps its own policyengine-core pin. +us = ["policyengine-us>=2.60.4,<3", "policyengine-core==3.33.3"] # The UK artifact lives in a PRIVATE repo (UK Data Service licence): loads # require an authenticated HF token with access. The loader surfaces the # 401 with that explanation rather than retrying. diff --git a/packages/microcosm-data/src/microcosm/data/stored_inputs.py b/packages/microcosm-data/src/microcosm/data/stored_inputs.py index 5193e0cfc..c5ab2ed84 100644 --- a/packages/microcosm-data/src/microcosm/data/stored_inputs.py +++ b/packages/microcosm-data/src/microcosm/data/stored_inputs.py @@ -84,7 +84,8 @@ (:func:`microcosm.data.source_enrichment.claim_measurement_record`). **Naming convention, measured rather than assumed.** policyengine-us 2.2.1 -defines 6,167 variables. 6,114 match ``[a-z][a-z0-9_]*``. The other 53 are the +defines 6,167 variables and 2.60.4 defines 6,797; 6,114 and 6,744 of them +match ``[a-z][a-z0-9_]*``. In both versions the other 53 are the postal codes of the 50 states, DC, PR and VI: ``variables/household/demographic/geographic/state/in_state.py`` generates one household Boolean formula per state, named by its code. No variable starts @@ -248,10 +249,10 @@ "Tax-unit construction output: {detail} ({constant}). Later build stages " "read it (microcosm.build.us_runtime.us_late_producer_registry and the US " "imputation spec, microcosm/build/us/spec/imputation.yaml). " - "policyengine-us 1.764.6 and 2.2.1 neither define nor read a variable of " - "this name, and there is no live input to rename it to: the engine " - "derives {engine} with formulas, which the release writer refuses to " - "store." + "policyengine-us 1.764.6, 2.2.1 and 2.60.4 neither define nor read a " + "variable of this name, and there is no live input to rename it to: the " + "engine derives {engine} with formulas, which the release writer refuses " + "to store." ) #: The six US entity tables, in ``microcosm.frame.units.US_SCHEMA`` order. #: microcosm-data depends on no other Microcosm shard, so the names are spelled @@ -404,11 +405,6 @@ "microcosm.build.us_runtime.acs_release_predictors)." ), ), - "tax_unit_role_input": _TAX_UNIT_CONSTRUCTION.format( - detail="the HEAD / SPOUSE / DEPENDENT role microunit assigns each person", - constant="microcosm.frame.units._TAX_UNIT_ROLE_COLUMN", - engine="is_tax_unit_head, is_tax_unit_spouse and is_tax_unit_dependent", - ), "filing_status_input": _TAX_UNIT_CONSTRUCTION.format( detail="the filing status microunit assigns each tax unit", constant="microcosm.frame.units.TAX_UNIT_FILING_STATUS_COLUMN", @@ -432,21 +428,6 @@ "puf_capital_gains_tail_transfer_weight": _PUF_TAIL.format( detail="the donor weight carried by the transfer" ), - **{ - column: ( - f"The person_id of the co-resident parent the person's CPS " - f"ASEC {pointer} pointer names, or 0 when unknown, written by " - "microcosm.build.us_runtime.eligibility_inputs " - "(US_ELIGIBILITY_INPUTS_PARENT_ID_COLUMNS; microcosm#884). The " - "certified engine does not define it yet, so it is ignored " - "there; policyengine-us#9406 adds it as an input. Remove this " - "entry when the pinned engine defines the variable." - ) - for column, pointer in ( - ("parent_1_id", "PEPAR1"), - ("parent_2_id", "PEPAR2"), - ) - }, } ) diff --git a/packages/microcosm-data/tests/engine_contract/us/test_stored_inputs.py b/packages/microcosm-data/tests/engine_contract/us/test_stored_inputs.py index f621f6dd5..5720ec6eb 100644 --- a/packages/microcosm-data/tests/engine_contract/us/test_stored_inputs.py +++ b/packages/microcosm-data/tests/engine_contract/us/test_stored_inputs.py @@ -24,8 +24,12 @@ def test_the_naming_convention_holds_for_the_installed_engine(): assert variable.entity.key == "household" assert variable.value_type is bool assert variable.formulas - if metadata.version("policyengine-us") == "2.2.1": - assert (len(names), outside) == (6167, _US_POSTAL_CODES) + measured = {"2.2.1": 6167, "2.60.4": 6797} + if metadata.version("policyengine-us") in measured: + assert (len(names), outside) == ( + measured[metadata.version("policyengine-us")], + _US_POSTAL_CODES, + ) def test_the_register_is_consistent_with_the_installed_engine(): @@ -52,10 +56,23 @@ def test_the_1026_premises_hold_for_the_installed_engine(): assert not wic.formulas for retired_or_construction in ( "medicare_part_b_premiums", - "tax_unit_role_input", "filing_status_input", ): assert retired_or_construction not in variables + # policyengine-us 2.60 reads microunit's tax-unit roles and the ASEC + # parent pointers as inputs, so they left the register. + role = variables["tax_unit_role_input"] + assert (role.entity.key, role.default_value.name) == ("person", "UNSPECIFIED") + assert {"HEAD", "SPOUSE", "DEPENDENT"} <= set(role.possible_values.__members__) + assert not role.formulas + for pointer in ("parent_1_id", "parent_2_id"): + parent = variables[pointer] + assert (parent.entity.key, parent.value_type, parent.default_value) == ( + "person", + int, + 0, + ) + assert not parent.formulas # medicare_part_b_premiums is a Person, YEAR, float input with no formula # in every policyengine-us version read from 1.452.0 to 1.670.2; its # replacement has that shape. @@ -91,9 +108,9 @@ def test_the_1026_premises_hold_for_the_installed_engine(): @pytest.mark.parametrize("name", sorted(_EXPECTED_VERDICTS)) def test_each_examined_file_gets_its_expected_verdict(name): """The examined files, by their stored-column inventories, against the - installed engine: each refusal names exactly the stale inputs, one person - table line each, and every other model-named non-variable column the file - stores is a register entry.""" + installed engine: each refusal names exactly the stale inputs, one line + each on the table that stores it, and every other model-named non-variable + column the file stores is a register entry.""" engine = stored_inputs.installed_us_engine() tables = _inventories()[name]["tables"] @@ -104,7 +121,10 @@ def test_each_examined_file_gets_its_expected_verdict(name): assert [_QUOTED.findall(line) for line in failures] == [ [column] for column in refused ] - assert all("(person table)" in line for line in failures) + assert all( + f"({_REFUSED_COLUMN_TABLE[column]} table)" in line + for column, line in zip(refused, failures, strict=True) + ) registered = { column for columns in tables.values() diff --git a/packages/microcosm-frame/pyproject.toml b/packages/microcosm-frame/pyproject.toml index ef175ba17..13ed3c819 100644 --- a/packages/microcosm-frame/pyproject.toml +++ b/packages/microcosm-frame/pyproject.toml @@ -18,8 +18,8 @@ us = ["microunit>=0.1.0"] # microcosm#1086 (option 2): policyengine installs policyengine-us, so it # carries the US side's own policyengine-core pin. policyengine = [ - "policyengine-us>=2.2.1,<3", - "policyengine-core==3.32.5", + "policyengine-us>=2.60.4,<3", + "policyengine-core==3.33.3", "microunit>=0.1.0", ] uk = ["policyengine-uk>=2.147.2"] diff --git a/packages/microcosm-frame/src/microcosm/frame/adapters/_policyengine_us_helper_reviews.py b/packages/microcosm-frame/src/microcosm/frame/adapters/_policyengine_us_helper_reviews.py new file mode 100644 index 000000000..a3129a8ed --- /dev/null +++ b/packages/microcosm-frame/src/microcosm/frame/adapters/_policyengine_us_helper_reviews.py @@ -0,0 +1,404 @@ +"""Reviewed reads of the PolicyEngine-US helpers defined outside ``variables/``. + +The static consumer index interprets formula modules only. A formula that +calls a package helper (``tax_unit_non_dep_add`` in ``tools/general.py``, the +section 911 tests in ``tools/section_911.py``, the HUD loaders under +``parameters/``) reads whatever that helper reads. Each helper the locked +engine's formulas call is reviewed here: which call arguments name variables +the helper reads, and which variables its body reads on its own. The index +records both as ``helper_call`` receipts of the calling formula. + +Each review pins a digest of the helper's code, of every package function it +uses and of the module constants they read (docstrings excluded). A formula +calling a helper with no review, or one whose code has changed, stops the +index until the helper is reviewed again. +""" + +from __future__ import annotations + +from collections.abc import Mapping +from dataclasses import dataclass +from types import MappingProxyType + + +@dataclass(frozen=True) +class HelperReview: + """What one PolicyEngine-US helper reads, reviewed at one digest.""" + + #: SHA-256 from ``_helper_digest`` for the reviewed code. + digest: str + #: Call arguments naming variables the helper reads, as ``(position, + #: keyword)``: a variable name or a list of them. + arguments: tuple[tuple[int, str], ...] = () + #: Variables the helper's body reads whatever it is passed. + reads: tuple[str, ...] = () + #: Variables read only when the argument at ``(position, keyword)`` is + #: omitted or ``None``, as ``(position, keyword, variables)``. + reads_when_omitted: tuple[tuple[int, str, tuple[str, ...]], ...] = () + #: What was checked, in a sentence or two. + rationale: str = "" + + +# ``tools/section_911.py``'s SECTION_911_LEAF_INPUTS: the Form 2555 leaves. +_SECTION_911_LEAVES = ( + "foreign_earned_income_exclusion_amount", + "foreign_housing_exclusion", + "foreign_earned_income_exclusion_allocable_deductions", + "foreign_housing_deduction", + "foreign_earned_income_exclusion_disallowed_deductions", +) +_SECTION_911_ELECTION = ( + "foreign_earned_income_exclusion", + "section_911_excluded_income", + *_SECTION_911_LEAVES, +) +_EITC_FILING = ( + "tax_unit_is_required_to_file", + "would_file_taxes_voluntarily", + "would_file_if_eligible_for_refundable_credit", +) +_READ_FREE = ( + "Reads no variable: it works only on the arrays, parameters or " + "simulation objects it is passed, or on package data files." +) + +#: Reviews of every helper policyengine-us 2.60.4's formulas call. +POLICYENGINE_US_HELPER_REVIEWS: Mapping[str, HelperReview] = MappingProxyType( + { + "policyengine_us.model_api.all_of_variables": HelperReview( + digest="a98ff1663acb94be709ec337409b7ef6568333f467ea4bb90f47a70e117c2079", + arguments=((0, "variables"),), + rationale=( + "Builds a formula that adds each listed variable over the " + "entity and requires every sum to be positive." + ), + ), + "policyengine_us.model_api.allocate_joint_amount_to_minimize_combined_tax": ( + HelperReview( + digest=( + "8afa7ae71ce9806261cf1e4f698fa5fa591c9502ea5ea27083f6a098dda6b5eb" + ), + rationale=_READ_FREE, + ) + ), + "policyengine_us.parameters.gov.hud.fmr.nearest_fmr_year": HelperReview( + digest="f93ec524019d3517cfe1c86e88ca43e848e2495786aefdd0e61d0bc4e12e4618", + rationale=_READ_FREE, + ), + "policyengine_us.parameters.gov.hud.fmr.nearest_safmr_year": HelperReview( + digest="8c42a8e4a82dd91b351c5aa869bcd0cb2298a8f73eba3694e88a361ac9d6a396", + rationale=_READ_FREE, + ), + "policyengine_us.parameters.gov.hud.income_limits.lookup_income_limit": ( + HelperReview( + digest=( + "96ddc1c7280222e74881df5e056b6da114cf0b2180c11e9bb19072e1321069da" + ), + rationale=_READ_FREE, + ) + ), + "policyengine_us.parameters.gov.hud.income_limits.lookup_sized_income_limit": ( + HelperReview( + digest=( + "4cbe425b3791e506c3768ac95e9afdbe67c3e3d6caec09349bf263cb998eaa24" + ), + rationale=_READ_FREE, + ) + ), + "policyengine_us.parameters.gov.hud.payment_standards.nearest_payment_standard_year": ( + HelperReview( + digest=( + "9c1c3f1cb0e6992700ec5b3eacdf3476506a94da174897d428ed7a39371ff461" + ), + rationale=_READ_FREE, + ) + ), + "policyengine_us.parameters.gov.hud.utility_allowance.utility_allowance_schedule": ( + HelperReview( + digest=( + "b6d0e07f37586325e0993737d940030f662e424770c3fa3c9db2874c0fbe9676" + ), + rationale=_READ_FREE, + ) + ), + "policyengine_us.parameters.gov.states.fl.doe.sr.rates.reimbursement.get_reimbursement_rates": ( + HelperReview( + digest=( + "e375122c4fb90ff4d90c9acad374f63bf747923fd8e1ac3af28b1eb2280ab62a" + ), + rationale=_READ_FREE, + ) + ), + "policyengine_us.parameters.gov.states.tx.twc.ccs.payment.rates_expanded_age_groups.get_rates": ( + HelperReview( + digest=( + "5da20dd4745dafcf5189b49bba20e946277e32bc26b5302712462d74fd5ed119" + ), + rationale=_READ_FREE, + ) + ), + "policyengine_us.spm.clone_spm_system": HelperReview( + digest="210e5ee39dd383801dd4841f53c6361f845aa231d85ccbac1e6c5dc6132d672c", + rationale=_READ_FREE, + ), + "policyengine_us.spm.masked_policyengine_amount": HelperReview( + digest="9ed181def9984ed10aaf40879f62cd5585e296ec0f203b528608948301bdefc8", + reads=("spm_unit_tenure_type", "county_fips"), + rationale=( + "Reads the SPM unit's tenure and, when the provider is " + "county-based, the household county, for the selected units. " + "It also reads spm_measurement_adults and " + "spm_measurement_children, which spm-calculator defines at run " + "time outside this source tree, so no receipt can name them." + ), + ), + "policyengine_us.tools.general.earliest_input_year": HelperReview( + digest="79baffc8cd475fcc2bd875b50c5e4b70369ae66353fe6793132ba612dd2fab6f", + rationale=( + "Scans which periods every supplied input covers, whatever " + "the variable. No one variable's value is read, so it adds " + "no receipt; the IRMAA lookback that calls it reads its " + "income variables directly." + ), + ), + "policyengine_us.tools.general.filer_share": HelperReview( + digest="d4d54b9d564d108ba717e899a91a0dd62774350213941e1c8e7d8a6283477a34", + reads=("is_tax_unit_dependent",), + rationale="Splits passed amounts among each tax unit's non-dependents.", + ), + "policyengine_us.tools.general.get_itemization_branch": HelperReview( + digest="6e3d1af70f756b56b4971d6b24623e8ee34932b0f8ed920dc0304036009f8c0c", + rationale=( + "Returns the branch that sets tax_unit_itemizes. The override " + "is written, not read; the stored-value check on it only " + "decides whether inherited values are dropped." + ), + ), + "policyengine_us.tools.general.get_previous_threshold": HelperReview( + digest="fe2deb6c514f6c48a131536270b29d254ccc18231a992510168f2acffd630c38", + rationale=_READ_FREE, + ), + "policyengine_us.tools.general.has_input_for_period": HelperReview( + digest="026021ea7dba312a0803b808a2e6946493c50cda63925dc2fa01277ec8a8b040", + arguments=((1, "variable"),), + rationale="Tests whether the named variable was supplied for the period.", + ), + "policyengine_us.tools.general.in_state": HelperReview( + digest="6e4def773609523032dec0787f2744955486cae5674b32fc7edaddb82266bd5a", + reads=("state_code_str",), + rationale="Builds a formula comparing state_code_str with a state.", + ), + "policyengine_us.tools.general.person_share_of_tax_unit_amount": ( + HelperReview( + digest=( + "c6059e2f44902e4e2703187ce995729f6c597cb0590a2053d7b0aa8a05e0e19b" + ), + arguments=((2, "tax_unit_variable"), (3, "person_variable")), + reads=("is_tax_unit_dependent", "is_tax_unit_head"), + rationale=( + "Reads the named tax-unit amount and person amounts, and " + "attributes the amount to the head and spouse." + ), + ) + ), + "policyengine_us.tools.general.spouse": HelperReview( + digest="fac41183a12c8e73a6ec7060ec38ff9c8031b4a4ca8d1fa690f4ed672a42436f", + arguments=((2, "variable"),), + rationale="Reads the named person variable for the marital-unit partner.", + ), + "policyengine_us.tools.general.sum_among_non_dependents": HelperReview( + digest="d2f6ecaa8ca742a50fe93fe48b78d935fa43531526a9b13f9e01023357f4ebc3", + arguments=((0, "variable"),), + reads=("is_tax_unit_dependent",), + rationale=( + "Builds a formula summing the named person variable over " + "non-dependents (tax_unit_non_dep_sum)." + ), + ), + "policyengine_us.tools.general.sum_contained_tax_units": HelperReview( + digest="6a2e6bd0ed3c76f01525c92571abd94655a8247589c46d08f179f7afe4eca722", + arguments=((0, "var"),), + reads=("is_tax_unit_head",), + rationale=( + "Sums the named tax-unit variable over the tax units whose " + "heads the group contains." + ), + ), + "policyengine_us.tools.general.tax_unit_non_dep_add": HelperReview( + digest="d4c3a56e340a5442ac1864769979bf1f421cf8eb833f1a8caa35aba3e508a3ca", + arguments=((2, "variables"),), + reads=("is_tax_unit_dependent",), + rationale=( + "Adds each listed variable over the tax unit, leaving out " + "dependents' person amounts. include_dependents only changes " + "how a listed variable is summed, so it names no further read." + ), + ), + "policyengine_us.tools.general.tax_unit_non_dep_sum": HelperReview( + digest="69538fd4f1ceb072421c5dea5fbf0b595ac0e9ba6c5762cc42c9ab14ca3df9c3", + arguments=((0, "var"),), + reads=("is_tax_unit_dependent",), + rationale="Sums the named person variable over non-dependents.", + ), + "policyengine_us.tools.geography.county_helpers.load_county_fips_dataset": ( + HelperReview( + digest=( + "6aa0734d69ad2ae78207cb463166e4069942487061a70970784b28bff9c6ebb2" + ), + rationale=_READ_FREE, + ) + ), + "policyengine_us.tools.geography.county_helpers.map_county_string_to_enum": ( + HelperReview( + digest=( + "ac55be83f3c3e124e85c9383de959dd799c2854bd6d748d4444c35f7ea8e8401" + ), + rationale=_READ_FREE, + ) + ), + "policyengine_us.tools.period_branch.drop_inherited_values": HelperReview( + digest="f0bea20da35ce50adfd17aa73945282ddbfa965515a419f3d9538a4e6a7fbc4d", + rationale="Deletes a branch's calculated arrays; reads no value.", + ), + "policyengine_us.tools.period_branch.get_branch_for_period": HelperReview( + digest="27733309daad8fa4aada3fa514c4b82d18a42045e6ba952391ad1a86f9ecb6ef", + rationale=( + "Returns a per-period branch with no overrides; the caller's " + "reads on it are recorded at the caller." + ), + ), + "policyengine_us.tools.period_branch.get_override_branch": HelperReview( + digest="28b176988c91d1feee4394ea274253872f870857593c5740b34b893c4e0f28fc", + rationale=( + "Returns a branch with the passed inputs set. Overrides are " + "written, not read; the stored-value check on them only " + "decides whether inherited values are dropped." + ), + ), + "policyengine_us.tools.pinned_tbs.get_2020_irc_tbs": HelperReview( + digest="975bacc84e897855862ef6a584e712dd81127017c24805570130dcaad002777a", + rationale=_READ_FREE, + ), + "policyengine_us.tools.pinned_tbs.get_pre_arpa_eitc_tbs": HelperReview( + digest="e9cc06584eb80e0ced9dfaccfc25ff7e3af5f5ceb5e807dc3a38a740d10b73d6", + rationale=_READ_FREE, + ), + "policyengine_us.tools.pinned_tbs.get_pre_tcja_ctc_tbs": HelperReview( + digest="245d9cd291e2970a4cb112276ae387bf2360d561b437cd4da8cb84abb3245dde", + rationale=_READ_FREE, + ), + "policyengine_us.tools.section_911.elects_section_911_exclusion": ( + HelperReview( + digest=( + "607ded7ddab79c8612b2d1b74288bc3f301a6d89f5560c93af407dbda6f799fd" + ), + reads=_SECTION_911_ELECTION, + rationale=( + "Tests the section 911 aggregates and every Form 2555 leaf " + "for a positive amount." + ), + ) + ), + "policyengine_us.tools.section_911.has_section_911_leaf_inputs": ( + HelperReview( + digest=( + "cd9018c420a718e3f4fed001a4611d66af4ade8aeac8cee169b2d108ff1db9f8" + ), + reads=_SECTION_911_LEAVES, + rationale="Tests whether any Form 2555 leaf was supplied.", + ) + ), + "policyengine_us.tools.section_911.section_911_gross_exclusion": ( + HelperReview( + digest=( + "6f203a5f296db8900707a89bac362c3603c4375228868bc83aed3283c7e2e43b" + ), + reads=( + "foreign_earned_income_exclusion_gross", + "foreign_earned_income_exclusion", + *_SECTION_911_LEAVES, + ), + rationale=( + "Reads the Form 2555 gross exclusion when any leaf was " + "supplied, else the legacy aggregate." + ), + ) + ), + "policyengine_us.tools.state_eitc_helpers.calculate_eitc_demographic_eligibility": ( + HelperReview( + digest=( + "dcd9e3a0ffcaca29a17296b372581d20d66fcde163baa47b41bfe257bb3484cf" + ), + reads=("age", "is_full_time_student"), + reads_when_omitted=((3, "child_count", ("eitc_child_count",)),), + rationale="Applies the EITC child-count and age tests.", + ) + ), + "policyengine_us.tools.state_eitc_helpers.calculate_eitc_like_amount": ( + HelperReview( + digest=( + "387ae56d12c4b1e6ed465a2cd7728799516a6c3cd405a88c2ef2dac1607dad48" + ), + reads=( + "takes_up_eitc", + "filer_adjusted_earnings", + "adjusted_gross_income", + "tax_unit_is_joint", + "filing_status", + *_EITC_FILING, + *_SECTION_911_ELECTION, + ), + reads_when_omitted=( + ( + 8, + "investment_income_eligible", + ("eitc_relevant_investment_income",), + ), + ), + rationale=( + "Computes a federal-style EITC: earnings and AGI phase-in " + "and phase-out, the filing, filing-status, take-up and " + "section 911 tests." + ), + ) + ), + "policyengine_us.tools.state_eitc_helpers.calculate_eitc_max_agi_limit": ( + HelperReview( + digest=( + "dcc6efa060f8b7d0f61f1785225cceb7e425b1137bce1e8a518441c189c86ff1" + ), + reads=("tax_unit_is_joint",), + rationale="Computes the EITC phase-out end, with the joint bonus.", + ) + ), + "policyengine_us.tools.state_eitc_helpers.eitc_filing_requirement_met": ( + HelperReview( + digest=( + "ecb333c8100d731e0a1d3c60ca43ae8e14dfdf52a9a0590f50add285ae7d2d84" + ), + reads=_EITC_FILING, + rationale="Mirrors the federal EITC filing condition.", + ) + ), + "policyengine_us.tools.state_eitc_helpers.eitc_filing_status_eligible": ( + HelperReview( + digest=( + "aef122a0a7edd73ad01621297a04c7d81aeb6754b4568e95413961b5fa60f1fa" + ), + reads=("filing_status",), + rationale="Applies the EITC separate-filer rule.", + ) + ), + "policyengine_us.tools.state_eitc_helpers.eitc_section_911_eligible": ( + HelperReview( + digest=( + "aaed8c181d4a7f367ed3daee8a0040d039aced4d7655e331199c23a9257c19ff" + ), + reads=_SECTION_911_ELECTION, + rationale="Negates the section 911 election test.", + ) + ), + } +) + +__all__ = ["POLICYENGINE_US_HELPER_REVIEWS", "HelperReview"] diff --git a/packages/microcosm-frame/src/microcosm/frame/adapters/_policyengine_us_source_index.py b/packages/microcosm-frame/src/microcosm/frame/adapters/_policyengine_us_source_index.py index 5145416c6..455233257 100644 --- a/packages/microcosm-frame/src/microcosm/frame/adapters/_policyengine_us_source_index.py +++ b/packages/microcosm-frame/src/microcosm/frame/adapters/_policyengine_us_source_index.py @@ -9,11 +9,17 @@ from __future__ import annotations import ast -from collections.abc import Mapping +import copy +import hashlib +from collections.abc import Callable, Mapping from dataclasses import dataclass from pathlib import Path from types import MappingProxyType +from microcosm.frame.adapters._policyengine_us_helper_reviews import ( + POLICYENGINE_US_HELPER_REVIEWS, + HelperReview, +) from microcosm.frame.schema import VariableMetadata _ENTITY_KEY_BY_SOURCE_NAME: dict[str, str] = { @@ -126,6 +132,18 @@ class _UnknownValue: origins: tuple[str, ...] +@dataclass(frozen=True) +class _LocalFunctionValue: + """A function defined inside the function being interpreted. + + A call to it is interpreted in place, in the caller's scope (Python + closures read enclosing names when called), so what it reads belongs to + the enclosing consumer. + """ + + node: ast.FunctionDef | ast.AsyncFunctionDef + + _ExactValue = ( _StringValue | _SequenceValue @@ -137,6 +155,7 @@ class _UnknownValue: | _EntityValue | _OpaqueValue | _UnknownValue + | _LocalFunctionValue ) @@ -144,6 +163,12 @@ def _unknown(*origins: str) -> _UnknownValue: return _UnknownValue(tuple(dict.fromkeys(origins))) +#: ``None`` as the evaluator spells a ``None`` constant. It is opaque, so it +#: still fails closed at a sink; ``is None`` tests and one-argument +#: ``dict.get`` misses resolve against it exactly. +_NONE_VALUE = _OpaqueValue("None") + + def _contains_unknown(value: _ExactValue) -> bool: """Return whether an exact value contains any unresolved component.""" @@ -179,6 +204,9 @@ def computed_at(self, period: int | str) -> bool: class _PolicyEngineUSSourceIndex: definitions: Mapping[str, _SourceVariableDefinition] consumers: Mapping[str, tuple[ConsumerReceipt, ...]] + #: Qualified names of the package helpers the formulas call, each + #: answered from its review. + reviewed_helpers: tuple[str, ...] = () @dataclass(frozen=True) @@ -441,91 +469,227 @@ def _resolve_import_module( return ".".join(prefix) -def _inventory_modules(variables_root: Path) -> dict[str, _ModuleIR]: - modules: dict[str, _ModuleIR] = {} - for source_path in sorted(variables_root.rglob("*.py")): - try: - tree = ast.parse(source_path.read_text(), filename=str(source_path)) - except (OSError, SyntaxError) as exc: - raise RuntimeError( - f"Could not index PolicyEngine variable source {source_path}." - ) from exc - relative_path = source_path.relative_to(variables_root).as_posix() - is_package = relative_path.endswith("/__init__.py") or relative_path == ( - "__init__.py" - ) - relative_module = relative_path.removesuffix(".py") - if relative_module == "__init__": - relative_module = "" - elif relative_module.endswith("/__init__"): - relative_module = relative_module.removesuffix("/__init__") - relative_module = relative_module.replace("/", ".") - module_name = "policyengine_us.variables" - if relative_module: - module_name += f".{relative_module}" - module_imports: list[_ModuleImportBinding] = [] - imports: list[_ImportBinding] = [] - star_imports: list[str] = [] - for statement in tree.body: - if isinstance(statement, ast.Import): - for alias in statement.names: - bound_path = ( - (alias.asname,) - if alias.asname is not None - else tuple(alias.name.split(".")) - ) - module_imports.append( - _ModuleImportBinding( - source_module=alias.name, - bound_path=bound_path, - ) - ) - continue - if not isinstance(statement, ast.ImportFrom): - continue - source_module = _resolve_import_module( - module_name, - statement, - is_package=is_package, - ) - if source_module is None: - continue +def _module_ir( + source_path: Path, + *, + root: Path, + package: str, + display_prefix: str, +) -> _ModuleIR: + """Parse one source module below ``root``, named inside ``package``.""" + + try: + tree = ast.parse(source_path.read_text(), filename=str(source_path)) + except (OSError, SyntaxError) as exc: + raise RuntimeError( + f"Could not index PolicyEngine-US source {source_path}." + ) from exc + relative_path = source_path.relative_to(root).as_posix() + is_package = relative_path.endswith("/__init__.py") or relative_path == ( + "__init__.py" + ) + relative_module = relative_path.removesuffix(".py") + if relative_module == "__init__": + relative_module = "" + elif relative_module.endswith("/__init__"): + relative_module = relative_module.removesuffix("/__init__") + relative_module = relative_module.replace("/", ".") + module_name = package + if relative_module: + module_name += f".{relative_module}" + module_imports: list[_ModuleImportBinding] = [] + imports: list[_ImportBinding] = [] + star_imports: list[str] = [] + for statement in tree.body: + if isinstance(statement, ast.Import): for alias in statement.names: - if alias.name == "*": - star_imports.append(source_module) - else: - module_imports.append( - _ModuleImportBinding( - source_module=f"{source_module}.{alias.name}", - bound_path=(alias.asname or alias.name,), - ) - ) - imports.append( - _ImportBinding( - source_module=source_module, - source_name=alias.name, - bound_name=alias.asname or alias.name, - ) + bound_path = ( + (alias.asname,) + if alias.asname is not None + else tuple(alias.name.split(".")) + ) + module_imports.append( + _ModuleImportBinding( + source_module=alias.name, + bound_path=bound_path, ) - modules[module_name] = _ModuleIR( - source_path=source_path, - display_path=f"variables/{relative_path}", - module_name=module_name, + ) + continue + if not isinstance(statement, ast.ImportFrom): + continue + source_module = _resolve_import_module( + module_name, + statement, is_package=is_package, - tree=tree, - module_imports=tuple(module_imports), - imports=tuple(imports), - star_imports=tuple(star_imports), - classes=tuple(node for node in tree.body if isinstance(node, ast.ClassDef)), - functions=tuple( - node - for node in tree.body - if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)) - ), ) + if source_module is None: + continue + for alias in statement.names: + if alias.name == "*": + star_imports.append(source_module) + else: + module_imports.append( + _ModuleImportBinding( + source_module=f"{source_module}.{alias.name}", + bound_path=(alias.asname or alias.name,), + ) + ) + imports.append( + _ImportBinding( + source_module=source_module, + source_name=alias.name, + bound_name=alias.asname or alias.name, + ) + ) + return _ModuleIR( + source_path=source_path, + display_path=f"{display_prefix}{relative_path}", + module_name=module_name, + is_package=is_package, + tree=tree, + module_imports=tuple(module_imports), + imports=tuple(imports), + star_imports=tuple(star_imports), + classes=tuple(node for node in tree.body if isinstance(node, ast.ClassDef)), + functions=tuple( + node + for node in tree.body + if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)) + ), + ) + + +def _inventory_modules(variables_root: Path) -> dict[str, _ModuleIR]: + modules: dict[str, _ModuleIR] = {} + for source_path in sorted(variables_root.rglob("*.py")): + module = _module_ir( + source_path, + root=variables_root, + package="policyengine_us.variables", + display_prefix="variables/", + ) + modules[module.module_name] = module return modules +def _is_helper_module_name(name: str) -> bool: + return (name == "policyengine_us" or name.startswith("policyengine_us.")) and not ( + name == "policyengine_us.variables" + or name.startswith("policyengine_us.variables.") + ) + + +def _helper_module_path(package_root: Path, module_name: str) -> Path | None: + parts = module_name.split(".")[1:] + candidates = ( + (package_root.joinpath(*parts).with_suffix(".py"),) if parts else () + ) + (package_root.joinpath(*parts, "__init__.py"),) + return next((path for path in candidates if path.is_file()), None) + + +def _imported_module_names(module: _ModuleIR) -> set[str]: + names = set(module.star_imports) + names.update(binding.source_module for binding in module.imports) + # ``import a.b`` and ``from a import b`` may each name a submodule. + names.update(binding.source_module for binding in module.module_imports) + return names + + +def _inventory_helper_modules( + package_root: Path, + modules: Mapping[str, _ModuleIR], +) -> dict[str, _ModuleIR]: + """Package modules outside ``variables/`` that formula modules import. + + Formulas reach PolicyEngine-US helpers (``model_api``, ``tools.general``, + the HUD parameter loaders) through star and explicit imports, possibly + through further package modules. This follows those imports from every + formula module, transitively. The modules are inventoried to bind helper + names and to digest helper code; their functions are never interpreted. + """ + + helper_modules: dict[str, _ModuleIR] = {} + pending = sorted( + {name for module in modules.values() for name in _imported_module_names(module)} + ) + while pending: + name = pending.pop() + if ( + name in helper_modules + or name in modules + or not _is_helper_module_name(name) + ): + continue + path = _helper_module_path(package_root, name) + if path is None: + continue + module = _module_ir( + path, + root=package_root, + package="policyengine_us", + display_prefix="", + ) + helper_modules[module.module_name] = module + pending.extend(sorted(_imported_module_names(module))) + return helper_modules + + +def _is_none(left: _ExactValue, right: _ExactValue) -> bool | None: + """``left is right`` when one side is None and the other is decidable.""" + + exact = (_StringValue, _SequenceValue, _MapValue, _BoolValue, _IntValue) + for value, other in ((left, right), (right, left)): + if value == _NONE_VALUE: + if other == _NONE_VALUE: + return True + if isinstance(other, exact): + return False + return None + + +def _sequence_display( + node: ast.List | ast.Tuple | ast.Set, + evaluate: Callable[[ast.expr], _ExactValue], + materialize: Callable[[_ExactValue], _ExactValue] | None = None, +) -> _ExactValue: + """Evaluate a list, tuple or set display, splicing ``*name`` items. + + A starred item contributes its items only when it evaluates to exact + sequences (policyengine-us 2.60 writes ``["adjusted_gross_income", + *TAX_UNIT_ADDITIONS]`` and ``["ssi_earned_income", *ssi_sources.unearned]``); + ``materialize`` resolves a parameter list first. A starred value with + several exact alternatives gives one display per alternative; anything + else leaves the display unknown. + """ + displays: list[list[_ExactValue]] = [[]] + for element in node.elts: + if isinstance(element, ast.Starred): + spliced = evaluate(element.value) + if materialize is not None: + spliced = materialize(spliced) + alternatives = _alternatives(spliced) + if _contains_unknown(spliced) or not all( + isinstance(value, _SequenceValue) for value in alternatives + ): + return _unknown(f"starred:{node.lineno}") + displays = [ + [*display, *value.items] + for display in displays + for value in alternatives + if isinstance(value, _SequenceValue) + ] + if len(displays) > _STATE_CAP: + return _unknown(f"starred-cap:{node.lineno}") + else: + item = evaluate(element) + for display in displays: + display.append(item) + set_like = isinstance(node, ast.Set) + return _make_alternative( + tuple(_SequenceValue(tuple(display), set_like=set_like) for display in displays) + ) + + def _eval_module_value( node: ast.expr, env: Mapping[str, _ExactValue], @@ -539,10 +703,7 @@ def _eval_module_value( if isinstance(node, ast.Name): return env.get(node.id, _unknown(f"name:{node.id}")) if isinstance(node, (ast.List, ast.Tuple, ast.Set)): - return _SequenceValue( - tuple(_eval_module_value(item, env) for item in node.elts), - set_like=isinstance(node, ast.Set), - ) + return _sequence_display(node, lambda item: _eval_module_value(item, env)) if isinstance(node, ast.Dict): items: list[tuple[str, _ExactValue]] = [] for key_node, value_node in zip(node.keys, node.values, strict=True): @@ -660,6 +821,9 @@ class _EvaluationFrame: consumer: str defer_unresolved_sinks: bool = False enqueue_helpers: bool = True + # Local functions the enclosing function calls directly by name; any + # other local function is interpreted where it is defined. + called_local_functions: frozenset[str] = frozenset() def _make_alternative(values: tuple[_ExactValue, ...]) -> _ExactValue: @@ -823,6 +987,18 @@ def _combine_values( return _make_alternative(tuple(results)) +def _is_exact_data(value: _ExactValue) -> bool: + """Whether ``value`` is plain data whose equality the evaluator decides.""" + + if isinstance(value, (_StringValue, _IntValue, _BoolValue)): + return True + if isinstance(value, _SequenceValue): + return all(_is_exact_data(item) for item in value.items) + if isinstance(value, _MapValue): + return all(_is_exact_data(item) for _key, item in value.items) + return value == _NONE_VALUE + + def _truth(value: _ExactValue) -> bool | None: if isinstance(value, _BoolValue): return value.value @@ -856,9 +1032,10 @@ def evaluate( frame.module_env.get(node.id, _unknown(f"name:{node.id}")), ) if isinstance(node, (ast.List, ast.Tuple, ast.Set)): - return _SequenceValue( - tuple(self.evaluate(item, local_env, frame) for item in node.elts), - set_like=isinstance(node, ast.Set), + return _sequence_display( + node, + lambda item: self.evaluate(item, local_env, frame), + lambda value: _materialize_value(value, frame=frame, line=node.lineno), ) if isinstance(node, ast.Dict): items: list[tuple[str, _ExactValue]] = [] @@ -981,6 +1158,9 @@ def _call( key = self.evaluate(node.args[0], local_env, frame) default = self.evaluate(node.args[1], local_env, frame) return self._mapping_get(base, key, default, node.lineno) + if method == "get" and len(node.args) == 1 and not node.keywords: + key = self.evaluate(node.args[0], local_env, frame) + return self._mapping_get(base, key, _NONE_VALUE, node.lineno) # Engine reads and numerical/model-api calls do not themselves produce # a string domain; sink scanning authenticates their arguments. return _OpaqueValue(function_name or "call") @@ -1101,10 +1281,11 @@ def _mapping_get( This is :meth:`_subscript`'s mapping arm with the missing-key case replaced by the caller's explicit default instead of an unknown, which - is exactly what the two-argument form means. Only that form is - resolved: the one-argument ``get`` yields ``None`` on a miss, a value - this lattice does not model, so it keeps falling through to the opaque - result that fails closed at a sink. + is exactly what the two-argument form means. The one-argument form + passes :data:`_NONE_VALUE`, which stays opaque at a sink; an ``is + None`` test on it is exact (policyengine-us 2.60's + ``de_itemized_deductions_indv`` skips a deduction whose + ``EXPENSE_SOURCES.get(deduction)`` is ``None``). PolicyEngine-US 2.2.1 reaches this through ``snap_individual_utility_allowance``, whose loop over the @@ -1224,6 +1405,17 @@ def _subscript( if isinstance(node.slice, ast.Slice): return self._slice(base, node.slice, local_env, frame, node.lineno) key = self.evaluate(node.slice, local_env, frame) + if ( + _contains_unknown(key) + and isinstance(base, _MapValue) + and base.items + and all(isinstance(value, _StringValue) for _key, value in base.items) + ): + # The key is decided at run time (policyengine-us 2.60's + # ``CAPITAL_GAINS_RESPONSE_FORM_VARIABLES[form]``, where ``form`` + # depends on parameter values), but the result is one of the + # map's values or a KeyError, so every value is a possible read. + return _make_alternative(tuple(value for _key, value in base.items)) if _contains_unknown(base) or _contains_unknown(key): return _unknown(f"subscript:{node.lineno}") results: list[_ExactValue] = [] @@ -1371,6 +1563,14 @@ def _compare( results: list[_ExactValue] = [] for left_value in _alternatives(left): for right_value in _alternatives(right): + if isinstance( + node.ops[0], (ast.In, ast.NotIn, ast.Eq, ast.NotEq) + ) and not (_is_exact_data(left_value) and _is_exact_data(right_value)): + # An array, engine object or other opaque value compared + # with anything (``period.start.year != 2021``) is not + # decided here: both outcomes stay possible. + results.append(_unknown(f"compare:{node.lineno}")) + continue if isinstance(node.ops[0], (ast.In, ast.NotIn)): if isinstance(right_value, _SequenceValue): result = any( @@ -1392,6 +1592,17 @@ def _compare( if isinstance(node.ops[0], ast.NotEq): result = not result results.append(_BoolValue(result)) + elif isinstance(node.ops[0], (ast.Is, ast.IsNot)): + # Only identity with None is decidable: None is the one + # opaque value this lattice names, and an exact string, + # number, Boolean or collection is never None. + result = _is_none(left_value, right_value) + if result is None: + results.append(_unknown(f"identity:{node.lineno}")) + continue + if isinstance(node.ops[0], ast.IsNot): + result = not result + results.append(_BoolValue(result)) else: results.append(_unknown(f"compare:{node.lineno}")) return _make_alternative(tuple(results)) @@ -1531,6 +1742,30 @@ def _bind_target( _bind_target(element, item, env) for element, item in zip(target.elts, value.items, strict=True) ) + if isinstance(target, (ast.Tuple, ast.List)) and isinstance( + value, _AlternativeValue + ): + # Each position takes the alternatives of that position; this keeps + # every possible value of each name, not which ones occur together. + if not all( + isinstance(item, _SequenceValue) and len(item.items) == len(target.elts) + for item in value.values + ): + return False + return all( + _bind_target( + element, + _make_alternative( + tuple( + item.items[position] + for item in value.values + if isinstance(item, _SequenceValue) + ) + ), + env, + ) + for position, element in enumerate(target.elts) + ) return False @@ -1540,17 +1775,19 @@ def _bind_target( _ENTITY_AGGREGATION_METHODS = frozenset({"all", "any", "max", "min", "sum"}) _REFERENCE_HELPER_ARGUMENTS: dict[str, int] = { # PolicyEngine-Core logical aggregators share ``add``'s - # ``(entity, period, variables)`` signature. + # ``(entity, period, variables)`` signature. PolicyEngine-US's own + # helpers are answered from POLICYENGINE_US_HELPER_REVIEWS instead. "and_": 2, "any_": 2, "for_each_variable": 2, "multiply": 2, "or_": 2, - # PolicyEngine-US helpers with a single variable-name argument. - "spouse": 2, - "sum_contained_tax_units": 0, - "tax_unit_non_dep_sum": 0, } +#: Simulation and population methods that read a variable named by their +#: first argument: ``branch.calculate(name, period)``, ``get_holder(name)``, +#: and ``simulation.get_array(name, period)`` (a holder's own +#: ``get_array(period, branch)`` is skipped; its ``get_holder`` call names it). +_SIMULATION_READ_METHODS = frozenset({"calculate", "get_array", "get_holder"}) _STATE_CAP = 20_000 @@ -1578,6 +1815,8 @@ class _FunctionContext: class _Flow: env: dict[str, _ExactValue] signal: str = "normal" + # What a ``return`` flow returns; None on every other flow. + value: _ExactValue | None = None def _function_parameters( @@ -1586,6 +1825,63 @@ def _function_parameters( return tuple((*function.args.posonlyargs, *function.args.args)) +def _is_local_name(call: ast.Call, env: Mapping[str, _ExactValue]) -> bool: + """Whether a call's bare callee name is a local, not a module function.""" + + return isinstance(call.func, ast.Name) and call.func.id in env + + +def _bound_parameters( + function: ast.FunctionDef | ast.AsyncFunctionDef | ast.Lambda, +) -> tuple[str, ...]: + arguments = function.args + names = [ + argument.arg + for argument in ( + *arguments.posonlyargs, + *arguments.args, + *arguments.kwonlyargs, + ) + ] + for argument in (arguments.vararg, arguments.kwarg): + if argument is not None: + names.append(argument.arg) + return tuple(names) + + +def _directly_called_local_functions( + function: ast.FunctionDef | ast.AsyncFunctionDef, +) -> frozenset[str]: + """Functions defined inside ``function`` that it only ever calls by name. + + Those are interpreted at each call. A local function that is also passed + or returned as a value, or never called, is interpreted where it is + defined instead, with unknown arguments. + """ + + local = { + node.name + for node in ast.walk(function) + if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)) + and node is not function + } + callees = { + id(node.func) + for node in ast.walk(function) + if isinstance(node, ast.Call) and isinstance(node.func, ast.Name) + } + loads = [ + node + for node in ast.walk(function) + if isinstance(node, ast.Name) + and isinstance(node.ctx, ast.Load) + and node.id in local + ] + called = {node.id for node in loads if id(node) in callees} + escaping = {node.id for node in loads if id(node) not in callees} + return frozenset(called - escaping) + + def _function_bindings( modules: Mapping[str, _ModuleIR], module_envs: Mapping[str, Mapping[str, _ExactValue]], @@ -1650,6 +1946,101 @@ def _function_bindings( raise RuntimeError("PolicyEngine-US source function imports did not converge.") +def _code_dump(node: ast.AST) -> str: + """``node``'s code without docstrings, which do not change what it reads.""" + + stripped = copy.deepcopy(node) + for item in ast.walk(stripped): + if isinstance( + item, (ast.Module, ast.ClassDef, ast.FunctionDef, ast.AsyncFunctionDef) + ): + body = item.body + if ( + body + and isinstance(body[0], ast.Expr) + and isinstance(body[0].value, ast.Constant) + and isinstance(body[0].value.value, str) + ): + item.body = body[1:] or [ast.Pass()] + return ast.dump(stripped, include_attributes=False) + + +def _module_assignment( + modules: Mapping[str, _ModuleIR], + module_name: str, + name: str, + seen: set[tuple[str, str]], +) -> list[str]: + """The top-level assignment of ``name`` that ``module_name`` sees.""" + + if (module_name, name) in seen or module_name not in modules: + return [] + seen.add((module_name, name)) + module = modules[module_name] + found: list[str] = [] + for statement in module.tree.body: + assigned = _assigned_name(statement) + if assigned is not None and assigned[0] == name: + found = [f"{module_name}.{name}\n{_code_dump(statement)}"] + if found: + return found + for binding in module.imports: + if binding.bound_name == name: + return _module_assignment( + modules, binding.source_module, binding.source_name, seen + ) + for source_module in reversed(module.star_imports): + found = _module_assignment(modules, source_module, name, seen) + if found: + return found + return [] + + +def _helper_digest( + identifier: _FunctionID, + modules: Mapping[str, _ModuleIR], + functions: Mapping[_FunctionID, _FunctionIR], + bindings: Mapping[str, Mapping[str, _FunctionID]], +) -> str: + """SHA-256 of a helper's code, the package functions it uses and their constants. + + Every function the helper names, directly or through another, and every + module-level constant those functions read is included, so a helper whose + reads could change gets a new digest. + """ + + parts: set[str] = set() + seen_constants: set[tuple[str, str]] = set() + seen: set[_FunctionID] = set() + pending = [identifier] + while pending: + current = pending.pop() + if current in seen: + continue + seen.add(current) + function = functions.get(current) + if function is None: + continue + parts.add( + f"{current.module_name}.{current.function_name}\n" + f"{_code_dump(function.node)}" + ) + names = bindings.get(current.module_name, {}) + for node in ast.walk(function.node): + if not (isinstance(node, ast.Name) and isinstance(node.ctx, ast.Load)): + continue + callee = names.get(node.id) + if callee is not None: + pending.append(callee) + continue + parts.update( + _module_assignment( + modules, current.module_name, node.id, seen_constants + ) + ) + return hashlib.sha256("\n\n".join(sorted(parts)).encode()).hexdigest() + + class _ConsumerInterpreter: """Sequential exact-state interpreter for PolicyEngine consumer receipts.""" @@ -1659,16 +2050,64 @@ def __init__( module_envs: Mapping[str, Mapping[str, _ExactValue]], resolver: _ParameterListResolver, definitions: Mapping[str, _SourceVariableDefinition], + *, + helper_modules: Mapping[str, _ModuleIR] | None = None, + helper_reviews: Mapping[str, HelperReview] | None = None, ) -> None: self._modules = modules self._module_envs = module_envs self._resolver = resolver self._definitions = definitions self._evaluator = _ExactEvaluator() - self._functions, self._bindings = _function_bindings(modules, module_envs) + self._helper_modules = MappingProxyType(dict(helper_modules or {})) + self._helper_reviews = ( + POLICYENGINE_US_HELPER_REVIEWS + if helper_reviews is None + else MappingProxyType(dict(helper_reviews)) + ) + functions, bindings = _function_bindings( + {**modules, **self._helper_modules}, + module_envs, + ) + # Formula-module functions are interpreted; package helpers outside + # ``variables/`` are bound by name and answered from their reviews. + self._functions = { + identifier: function + for identifier, function in functions.items() + if identifier.module_name in modules + } + self._bindings = { + module_name: MappingProxyType( + { + name: identifier + for name, identifier in names.items() + if identifier.module_name in modules + } + ) + for module_name, names in bindings.items() + if module_name in modules + } + self._all_functions = functions + self._helper_bindings = { + module_name: MappingProxyType( + { + name: identifier + for name, identifier in names.items() + if identifier.module_name in self._helper_modules + } + ) + for module_name, names in bindings.items() + } + self._all_bindings = bindings + self._checked_helpers: set[_FunctionID] = set() + self.reviewed_helpers: set[str] = set() + self._helper_digests: dict[_FunctionID, str] = {} + self._local_calls: set[tuple[int, object]] = set() self._receipts: dict[str, set[ConsumerReceipt]] = {} self._queue: list[_FunctionContext] = [] self._seen_contexts: set[_FunctionContext] = set() + self._return_values: dict[_FunctionContext, _ExactValue] = {} + self._returning: set[_FunctionContext] = set() def run(self) -> Mapping[str, tuple[ConsumerReceipt, ...]]: for module_name in sorted(self._modules): @@ -1774,9 +2213,7 @@ def _scan_class_attributes( owner_name=owner.name, frame=frame, receiver_entity=self._definitions[owner.name].metadata.entity, - aggregation_entity=( - self._definitions[owner.name].metadata.entity - ), + aggregation_entity=(self._definitions[owner.name].metadata.entity), ) elif ( name == "defined_for" @@ -1792,6 +2229,39 @@ def _scan_class_attributes( owner_name=owner.name, frame=frame, ) + else: + self._scan_class_attribute_calls(module, owner, expression, frame) + + def _scan_class_attribute_calls( + self, + module: _ModuleIR, + owner: ast.ClassDef, + expression: ast.expr, + frame: _EvaluationFrame, + ) -> None: + """Record helper factories a class body calls (``formula = f(...)``). + + ``all_of_variables([...])`` and ``sum_among_non_dependents(name)`` + build the variable's formula from variable names. A class-body call + to a formula-module function would build one the index cannot see, so + it fails closed. + """ + + for node in ast.walk(expression): + if not isinstance(node, ast.Call): + continue + helper = self._package_helper(node, {}, frame) + if helper is not None: + self._record_package_helper( + helper, + node, + {}, + frame, + owner.name, + self._definitions[owner.name].metadata.entity, + ) + elif self._helper_identifier(node, frame) is not None: + self._raise_unresolved(node, frame) def _analyze_function( self, @@ -1804,7 +2274,7 @@ def _analyze_function( keywords: tuple[tuple[str, _ExactValue], ...], defer_unresolved_sinks: bool = False, enqueue_helpers: bool = True, - ) -> None: + ) -> list[_Flow]: env: dict[str, _ExactValue] = {} parameters = _function_parameters(function) keyword_values = dict(keywords) @@ -1826,8 +2296,9 @@ def _analyze_function( consumer=consumer, defer_unresolved_sinks=defer_unresolved_sinks, enqueue_helpers=enqueue_helpers, + called_local_functions=_directly_called_local_functions(function), ) - self._analyze_block( + return self._analyze_block( function.body, [_Flow(env)], frame=frame, @@ -1875,6 +2346,10 @@ def _analyze_statement( return [flow] self._scan_expression(expression, env, frame, owner_name) value = self._evaluator.evaluate(expression, env, frame) + if isinstance(expression, ast.Call) and isinstance(value, _OpaqueValue): + returned = self._helper_return_value(expression, env, frame) + if returned is not None: + value = returned updated = dict(env) targets = ( statement.targets @@ -1885,6 +2360,21 @@ def _analyze_statement( if not self._assign_value(target, value, updated, frame): self._assign_unknown(target, updated, statement.lineno) return [_Flow(updated)] + if isinstance(statement, (ast.FunctionDef, ast.AsyncFunctionDef)): + updated = dict(env) + updated[statement.name] = _LocalFunctionValue(statement) + if statement.name not in frame.called_local_functions: + self._analyze_local_function( + statement, + { + name: _unknown(f"local-argument:{name}") + for name in _bound_parameters(statement) + }, + updated, + frame, + owner_name, + ) + return [_Flow(updated)] if isinstance(statement, ast.AugAssign): self._scan_expression(statement.value, env, frame, owner_name) previous = self._evaluator.evaluate(statement.target, env, frame) @@ -1954,7 +2444,14 @@ def _analyze_statement( value = getattr(statement, "value", None) if value is not None: self._scan_expression(value, env, frame, owner_name) - return [_Flow(dict(env), "return")] + returned = ( + self._evaluator.evaluate(value, env, frame) + if value is not None + else _NONE_VALUE + ) + if not isinstance(statement, ast.Return): + returned = _unknown(f"yield:{statement.lineno}") + return [_Flow(dict(env), "return", returned)] if isinstance(statement, ast.Break): return [_Flow(dict(env), "break")] if isinstance(statement, ast.Continue): @@ -2068,6 +2565,18 @@ def _scan_expression( ) return if isinstance(expression, ast.Lambda): + # Whatever the body reads is read by the enclosing consumer; the + # parameters are unknown, so a read named by one fails closed. + lambda_env = dict(env) + for parameter in _bound_parameters(expression): + lambda_env[parameter] = _unknown(f"lambda-argument:{parameter}") + self._scan_expression( + expression.body, + lambda_env, + frame, + owner_name, + aggregation_entity, + ) return if isinstance(expression, ast.Call): function_name = _source_name(expression.func) @@ -2137,6 +2646,24 @@ def _scan_expression( receiver.name if isinstance(receiver, _EntityValue) else "" ), ) + elif ( + package_helper := self._package_helper(expression, env, frame) + ) is not None: + self._record_package_helper( + package_helper, + expression, + env, + frame, + owner_name, + aggregation_entity, + ) + elif isinstance(callee, _LocalFunctionValue): + self._call_local_function(callee, expression, env, frame, owner_name) + elif ( + isinstance(expression.func, ast.Attribute) + and expression.func.attr in _SIMULATION_READ_METHODS + ): + self._record_simulation_read(expression, env, frame, owner_name) else: helper_argument = _REFERENCE_HELPER_ARGUMENTS.get(function_name or "") if helper_argument is not None and len(expression.args) > ( @@ -2227,13 +2754,260 @@ def _scan_comprehension( aggregation_entity, ) + def _call_local_function( + self, + function: _LocalFunctionValue, + call: ast.Call, + env: Mapping[str, _ExactValue], + frame: _EvaluationFrame, + owner_name: str | None, + ) -> None: + """Interpret a local function's body for one call, in the caller's scope.""" + + node = function.node + parameters = _bound_parameters(node) + bound: dict[str, _ExactValue] = { + name: _unknown(f"local-argument:{name}") for name in parameters + } + if any(isinstance(argument, ast.Starred) for argument in call.args) or any( + keyword.arg is None for keyword in call.keywords + ): + self._raise_unresolved(call, frame) + positional = (*node.args.posonlyargs, *node.args.args) + for argument, value in zip(positional, call.args, strict=False): + bound[argument.arg] = self._evaluator.evaluate(value, env, frame) + for keyword in call.keywords: + if keyword.arg in bound: + bound[keyword.arg] = self._evaluator.evaluate(keyword.value, env, frame) + self._analyze_local_function(node, bound, env, frame, owner_name) + + def _analyze_local_function( + self, + node: ast.FunctionDef | ast.AsyncFunctionDef, + arguments: Mapping[str, _ExactValue], + env: Mapping[str, _ExactValue], + frame: _EvaluationFrame, + owner_name: str | None, + ) -> None: + key = ( + id(node), + tuple( + (name, _value_identity(value)) + for name, value in sorted(arguments.items()) + ), + ) + if key in self._local_calls: + # The same call is already being interpreted further up (a + # recursive local function); its reads are recorded there. + return + self._local_calls.add(key) + try: + scope = dict(env) + scope[node.name] = _LocalFunctionValue(node) + scope.update(arguments) + self._analyze_block( + node.body, + [_Flow(scope)], + frame=frame, + owner_name=owner_name, + ) + finally: + self._local_calls.discard(key) + + def _record_simulation_read( + self, + call: ast.Call, + env: Mapping[str, _ExactValue], + frame: _EvaluationFrame, + owner_name: str | None, + ) -> None: + """Record ``calculate``/``get_holder``/``get_array`` reads by name.""" + + assert isinstance(call.func, ast.Attribute) + if call.func.attr == "get_array": + receiver = self._evaluator.evaluate(call.func.value, env, frame) + if isinstance(receiver, _OpaqueValue) and receiver.label == "get_holder": + return + keyword_name = "variable_name" if call.func.attr == "calculate" else "variable" + name = ( + call.args[0] + if call.args and not isinstance(call.args[0], ast.Starred) + else next( + ( + keyword.value + for keyword in call.keywords + if keyword.arg == keyword_name + ), + None, + ) + ) + if name is None: + self._raise_unresolved(call, frame) + self._record_expression( + name, + env=env, + frame=frame, + owner_name=owner_name, + base_kind="simulation_read", + ) + + def _package_helper( + self, + call: ast.Call, + env: Mapping[str, _ExactValue], + frame: _EvaluationFrame, + ) -> _FunctionID | None: + """The PolicyEngine-US helper outside ``variables/`` a call invokes.""" + + module_name = frame.module.module_name + if isinstance(call.func, ast.Name): + name = call.func.id + if ( + name in env + or name in frame.module_env + or name in self._bindings.get(module_name, {}) + ): + return None + return self._helper_bindings.get(module_name, {}).get(name) + if not isinstance(call.func, ast.Attribute): + return None + base_path = _attribute_path(call.func.value) + if base_path is None or base_path[0] in env: + return None + for binding in reversed(frame.module.module_imports): + if base_path[: len(binding.bound_path)] != binding.bound_path: + continue + suffix = base_path[len(binding.bound_path) :] + source_module = ".".join((binding.source_module, *suffix)) + if source_module not in self._helper_modules: + return None + return self._helper_bindings[source_module].get(call.func.attr) + return None + + def _helper_review( + self, + identifier: _FunctionID, + call: ast.Call, + frame: _EvaluationFrame, + ) -> HelperReview: + qualified_name = f"{identifier.module_name}.{identifier.function_name}" + digest = self._helper_digests.get(identifier) + if digest is None: + digest = _helper_digest( + identifier, + {**self._modules, **self._helper_modules}, + self._all_functions, + self._all_bindings, + ) + self._helper_digests[identifier] = digest + review = self._helper_reviews.get(qualified_name) + location = ( + f"called by {frame.consumer!r} at {frame.module.display_path}:{call.lineno}" + ) + if review is None: + raise RuntimeError( + f"Unreviewed PolicyEngine-US helper {qualified_name} (digest " + f"{digest}) {location}. Review which variables it reads and " + "add it to POLICYENGINE_US_HELPER_REVIEWS." + ) + if review.digest != digest: + raise RuntimeError( + f"PolicyEngine-US helper {qualified_name} changed (digest " + f"{digest}, reviewed {review.digest}) {location}. Review which " + "variables it now reads and update POLICYENGINE_US_HELPER_REVIEWS." + ) + if identifier not in self._checked_helpers: + unknown = sorted( + name + for name in ( + *review.reads, + *( + read + for _position, _keyword, names in review.reads_when_omitted + for read in names + ), + ) + if name not in self._definitions + ) + if unknown: + raise RuntimeError( + f"PolicyEngine-US helper review {qualified_name} names reads " + f"that are not variables: {unknown}." + ) + self._checked_helpers.add(identifier) + self.reviewed_helpers.add(qualified_name) + return review + + def _record_package_helper( + self, + identifier: _FunctionID, + call: ast.Call, + env: Mapping[str, _ExactValue], + frame: _EvaluationFrame, + owner_name: str | None, + aggregation_entity: str, + ) -> None: + """Record a reviewed helper's reads as the calling consumer's reads.""" + + review = self._helper_review(identifier, call, frame) + for position, keyword in review.arguments: + if any( + isinstance(argument, ast.Starred) + for argument in call.args[: position + 1] + ): + self._raise_unresolved(call, frame) + if position < len(call.args): + argument = call.args[position] + else: + argument = next( + (item.value for item in call.keywords if item.arg == keyword), + None, + ) + if argument is None and any(item.arg is None for item in call.keywords): + self._raise_unresolved(call, frame) + if argument is None: + continue + self._record_expression( + argument, + env=env, + frame=frame, + owner_name=owner_name, + base_kind="helper_call", + aggregation_entity=aggregation_entity, + ) + reads = list(review.reads) + for position, keyword, names in review.reads_when_omitted: + argument = ( + call.args[position] + if position < len(call.args) + else next( + (item.value for item in call.keywords if item.arg == keyword), + None, + ) + ) + if argument is None or ( + self._evaluator.evaluate(argument, env, frame) == _NONE_VALUE + ): + reads.extend(names) + if reads: + self._record_receipts( + _SequenceValue(tuple(_StringValue(name) for name in reads)), + expression=call, + base_kind="helper_call", + module=frame.module, + consumer=frame.consumer, + owner_name=owner_name, + frame=frame, + aggregation_entity=aggregation_entity, + ) + def _enqueue_helper( self, call: ast.Call, env: Mapping[str, _ExactValue], frame: _EvaluationFrame, ) -> None: - if not frame.enqueue_helpers: + if not frame.enqueue_helpers or _is_local_name(call, env): return identifier = self._helper_identifier(call, frame) if identifier is None: @@ -2258,6 +3032,83 @@ def _enqueue_helper( self._seen_contexts.add(context) self._queue.append(context) + def _helper_return_value( + self, + call: ast.Call, + env: Mapping[str, _ExactValue], + frame: _EvaluationFrame, + ) -> _ExactValue | None: + """What a source helper returns for this call's exact arguments. + + policyengine-us 2.60 formulas unpack helper results before reading + them (``income, deductions = dependent_income_and_deductions(...)``). + The helper body is interpreted with the call's arguments, once per + distinct context, and its ``return`` values (``None`` when it can + fall off the end) become the assigned value's alternatives. A + recursive context is unknown. Returns None for a call that names no + source helper, which keeps the evaluator's opaque result. + """ + + if _is_local_name(call, env): + return None + identifier = self._helper_identifier(call, frame) + if identifier is None or identifier not in self._functions: + return None + if any(isinstance(argument, ast.Starred) for argument in call.args) or any( + keyword.arg is None for keyword in call.keywords + ): + return _unknown(f"helper-unpack:{call.lineno}") + context = _FunctionContext( + identifier=identifier, + args=tuple( + self._evaluator.evaluate(argument, env, frame) for argument in call.args + ), + keywords=tuple( + sorted( + (keyword.arg, self._evaluator.evaluate(keyword.value, env, frame)) + for keyword in call.keywords + if keyword.arg is not None + ) + ), + ) + if context in self._return_values: + return self._return_values[context] + if context in self._returning: + return _unknown(f"helper-recursion:{identifier.function_name}") + self._returning.add(context) + try: + function = self._functions[identifier] + # Only the value is wanted here. The helper's own receipts and + # its strict sink checks belong to the context the call enqueues + # (when its frame enqueues helpers), so this pass defers + # unresolved sinks and enqueues nothing. + flows = self._analyze_function( + module=function.module, + function=function.node, + consumer=function.node.name, + owner_name=None, + args=context.args, + keywords=context.keywords, + defer_unresolved_sinks=True, + enqueue_helpers=False, + ) + finally: + self._returning.discard(context) + values = [ + flow.value + for flow in flows + if flow.signal == "return" and flow.value is not None + ] + if any(flow.signal == "normal" for flow in flows): + values.append(_NONE_VALUE) + result = ( + _make_alternative(tuple(values)) + if values + else _unknown(f"helper-no-return:{identifier.function_name}") + ) + self._return_values[context] = result + return result + def _helper_identifier( self, call: ast.Call, @@ -2464,9 +3315,11 @@ def _dedupe_flows( flows: list[_Flow], frame: _EvaluationFrame, ) -> list[_Flow]: - unique: dict[tuple[str, tuple[tuple[str, _ExactValue], ...]], _Flow] = {} + unique: dict[ + tuple[str, tuple[tuple[str, _ExactValue], ...], _ExactValue | None], _Flow + ] = {} for flow in flows: - key = (flow.signal, tuple(sorted(flow.env.items()))) + key = (flow.signal, tuple(sorted(flow.env.items())), flow.value) unique[key] = flow if len(unique) > _STATE_CAP: raise RuntimeError( @@ -2480,6 +3333,7 @@ def _index_policyengine_us_sources( variables_root: Path, *, parameters_root: Path | None = None, + helper_reviews: Mapping[str, HelperReview] | None = None, ) -> _PolicyEngineUSSourceIndex: """Build the shared source index from one parsed module inventory. @@ -2519,15 +3373,19 @@ def _index_policyengine_us_sources( raise RuntimeError( f"No PolicyEngine variable classes found below {variables_root}." ) - consumers = _ConsumerInterpreter( + interpreter = _ConsumerInterpreter( modules, module_envs, resolver, definitions, - ).run() + helper_modules=_inventory_helper_modules(variables_root.parent, modules), + helper_reviews=helper_reviews, + ) + consumers = interpreter.run() return _PolicyEngineUSSourceIndex( definitions=MappingProxyType(definitions), consumers=consumers, + reviewed_helpers=tuple(sorted(interpreter.reviewed_helpers)), ) diff --git a/packages/microcosm-frame/src/microcosm/frame/adapters/policyengine_us.py b/packages/microcosm-frame/src/microcosm/frame/adapters/policyengine_us.py index d4f042709..8824c92ac 100644 --- a/packages/microcosm-frame/src/microcosm/frame/adapters/policyengine_us.py +++ b/packages/microcosm-frame/src/microcosm/frame/adapters/policyengine_us.py @@ -31,6 +31,7 @@ import numpy as np import pandas as pd +from microcosm.frame.adapters._policyengine_us_helper_reviews import HelperReview from microcosm.frame.adapters._policyengine_us_source_index import ( ConsumerReceipt, _PolicyEngineUSSourceIndex, @@ -126,7 +127,7 @@ class VariableDependencyClosure: # Regenerate with: # uv run python tools/refresh_us_generated_variable_audit.py # The block below is generated from the installed wheels; never edit a -# digest or a name by hand. 119 default-system variables are +# digest or a name by hand. 120 default-system variables are # created outside ordinary top-level ``class ...(Variable)`` # declarations, so the snapshot is tied to every source and activation # surface that produced it: a changed wheel fails closed until this @@ -134,22 +135,22 @@ class VariableDependencyClosure: # formula-owned output. A name policyengine_us.spm.DATASET_SOURCE_INPUTS # declares source-deliverable is recorded as an input leaf despite its # fallback formula; spm.py is pinned so that declaration cannot drift. -_GENERATED_SOURCE_VERSION = "2.2.1" +_GENERATED_SOURCE_VERSION = "2.60.4" _GENERATED_SOURCE_SHA256: dict[str, str] = { "model_api.py": "d7edb7436b84733f179fe223376fb588bb7a3ad6817d119703faeb599d4bb9c7", "reforms/reforms.py": ( - "b4077ecee0342080f9a738422f2275479f1b8923366700aece79ef92c64baa61" + "4cf1f3685101ab91b742dfb114bafdb80313d9826f6acbb0749151ca47f96ca5" ), "reforms/states/mi/surtax.py": ( - "e1d0c0207c46243d3509b22b15fbdc07aa02b4df9461f7b93bec872dc7124ea9" + "7b9ff5915df57d3d1d7901980d60dd82bf7e7479b5fe3c4f6268c50df1f61278" ), - "spm.py": "baa69c0d1163bdc55f7dc9ac85645c2b75e5519c8b72ec54fd57787a22164d5a", - "system.py": "1c8539dcb8aeba4973823887895f5cd42bb9a2ee1270b0a947c9e7c185571302", + "spm.py": "129ad7afad57ef765839f9409310f7d395c8dc36b7a948a0993b6e1c9fe58ae1", + "system.py": "1e0e5b7f703a4f0bd477772aac072dc96804fab5c91e4b260b3b55d6c4c0397a", "variables/gov/puf.py": ( "17545c43549ecf34016107bc8ed2dce25a53610afb802431a1b0ea6724215e7b" ), "variables/gov/states/tax/income/_generate_state_mfs_variables.py": ( - "a0c9decd81b6eb76ac7edcddfc913d89ee86e0f18d8c51702bcb2a015dc2fabe" + "1b8a262ce480871dc03fc013b7342c736c0ddd3c1d4e6e9f36c0c60c4413c13e" ), "variables/household/demographic/geographic/state/in_state.py": ( "a3792c642387b652752461c85c03e5a9cb39fab55b4e038270374dd7e7d8aa60" @@ -191,7 +192,7 @@ class VariableDependencyClosure: "ia_standard_deduction ia_taxable_income " "ky_itemized_deductions ky_standard_deduction " "ky_taxable_income ms_itemized_deductions " - "ms_standard_deduction ms_taxable_income " + "ms_standard_deduction ms_taxable_income mt_agi " "mt_itemized_deductions mt_standard_deduction " "mt_taxable_income".split() ), @@ -245,12 +246,14 @@ def _index_policyengine_us_sources( variables_root: Path, *, parameters_root: Path | None = None, + helper_reviews: Mapping[str, HelperReview] | None = None, ) -> _PolicyEngineUSSourceIndex: """Thin adapter hook over the single combined source-index implementation.""" return _build_policyengine_us_source_index( variables_root, parameters_root=parameters_root, + helper_reviews=helper_reviews, ) diff --git a/packages/microcosm-frame/src/microcosm/frame/adapters/policyengine_us_concepts.py b/packages/microcosm-frame/src/microcosm/frame/adapters/policyengine_us_concepts.py index a9c8b1a98..92c5938f2 100644 --- a/packages/microcosm-frame/src/microcosm/frame/adapters/policyengine_us_concepts.py +++ b/packages/microcosm-frame/src/microcosm/frame/adapters/policyengine_us_concepts.py @@ -34,7 +34,7 @@ # --------------------------------------------------------------------------- # # Which PolicyEngine-US inputs each engine-neutral concept feeds -# (microcosm.frame.concepts), reviewed against policyengine-us 2.2.1. Every +# (microcosm.frame.concepts), reviewed against policyengine-us 2.60.4. Every # target is a pure input (in ``PolicyEngineUSVariableMetadataIndex.variables``), # never a formula-owned aggregate: totals such as ``interest_income`` or # ``employment_income`` are fed through their input leaves. Notes quote the @@ -86,7 +86,7 @@ def _us_take_up(program: str, entity: str, engine_input: str) -> InputBinding: POLICYENGINE_US_CONCEPT_MAPPING = ConceptMapping( engine="policyengine-us", - engine_version="2.2.1", + engine_version="2.60.4", entity_correspondence={"person": "person", "household": "household"}, input_declaration=InputDeclaration.ENGINE_TYPED, bindings=( diff --git a/packages/microcosm-frame/tests/engine_contract/us/test_policyengine_us_helper_reviews.py b/packages/microcosm-frame/tests/engine_contract/us/test_policyengine_us_helper_reviews.py new file mode 100644 index 000000000..e8fa545db --- /dev/null +++ b/packages/microcosm-frame/tests/engine_contract/us/test_policyengine_us_helper_reviews.py @@ -0,0 +1,50 @@ +"""The reviewed PolicyEngine-US helpers against the installed engine's source. + +Building the static index already fails on a helper with no review or with +changed code. These checks close the other direction: no review is stale, and +every review's reads are recorded where the installed formulas call it. +""" + +from pathlib import Path + +import policyengine_us + +from microcosm.frame.adapters._policyengine_us_helper_reviews import ( + POLICYENGINE_US_HELPER_REVIEWS, +) +from microcosm.frame.adapters._policyengine_us_source_index import ( + _index_policyengine_us_sources, +) + +_INDEX = _index_policyengine_us_sources( + Path(policyengine_us.__file__).parent / "variables" +) + + +def test_every_review_is_for_a_helper_the_formulas_call() -> None: + assert set(_INDEX.reviewed_helpers) == set(POLICYENGINE_US_HELPER_REVIEWS) + + +def test_every_reviewed_read_is_recorded_for_a_caller() -> None: + helper_call_targets = { + target + for target, receipts in _INDEX.consumers.items() + if any(receipt.kind.endswith("helper_call") for receipt in receipts) + } + reviewed_reads = { + name + for review in POLICYENGINE_US_HELPER_REVIEWS.values() + for name in review.reads + } + + assert reviewed_reads <= helper_call_targets + + +def test_tax_unit_non_dep_add_reads_reach_their_formulas() -> None: + """policyengine-us 2.60 moved many tax-unit sums onto this helper.""" + + assert { + receipt.consumer + for receipt in _INDEX.consumers["investment_income_elected_form_4952"] + if receipt.kind == "helper_call" + } == {"net_capital_gain", "schedule_d_tax_worksheet_form_4952_lines"} diff --git a/packages/microcosm-frame/tests/engine_free/us/test_policyengine_us_consumer_index.py b/packages/microcosm-frame/tests/engine_free/us/test_policyengine_us_consumer_index.py index fa798f306..e43011006 100644 --- a/packages/microcosm-frame/tests/engine_free/us/test_policyengine_us_consumer_index.py +++ b/packages/microcosm-frame/tests/engine_free/us/test_policyengine_us_consumer_index.py @@ -1,12 +1,16 @@ from __future__ import annotations +import re from importlib.util import find_spec from pathlib import Path from textwrap import dedent, indent import pytest +from hypothesis import HealthCheck, given, settings +from hypothesis import strategies as st from microcosm.frame.adapters import policyengine_us as module +from microcosm.frame.adapters._policyengine_us_helper_reviews import HelperReview _HAS_YAML = find_spec("yaml") is not None _REQUIRES_YAML = pytest.mark.skipif( @@ -51,6 +55,8 @@ def _index( sources: dict[str, str], *, parameters: dict[str, str] | None = None, + package: dict[str, str] | None = None, + helper_reviews: dict[str, HelperReview] | None = None, ) -> module._PolicyEngineUSSourceIndex: variables_root = tmp_path / "variables" parameters_root = tmp_path / "parameters" @@ -58,9 +64,13 @@ def _index( _write(variables_root, relative_path, source) for dotted_path, source in (parameters or {}).items(): _write_parameter(parameters_root, dotted_path, source) + # Package modules outside ``variables/`` (``model_api.py``, ``tools/``). + for relative_path, source in (package or {}).items(): + _write(tmp_path, relative_path, source) return module._index_policyengine_us_sources( variables_root, parameters_root=parameters_root, + helper_reviews=helper_reviews if helper_reviews is not None else {}, ) @@ -959,7 +969,11 @@ def formula(person, period, parameters): def test_single_argument_get_still_fails_closed(tmp_path: Path) -> None: - """``mapping.get(key)`` yields ``None`` on a miss, which is not modeled.""" + """``mapping.get(key)`` with a key read from the engine still fails closed. + + A one-argument miss is modeled as ``None`` only for exact keys; a key the + engine computes at run time names no table entry statically. + """ with pytest.raises(RuntimeError, match="Unresolved dynamic"): _index( @@ -982,3 +996,967 @@ def formula(person, period, parameters): "leaves.py": _variables("leaf_a", "selector"), }, ) + + +@_REQUIRES_YAML +def test_starred_items_splice_module_and_parameter_lists(tmp_path: Path) -> None: + """``[*CONSTANT]`` and ``[*parameter_list]`` displays resolve exactly. + + policyengine-us 2.60 writes ``add(tax_unit, period, ["adjusted_gross_income", + *TAX_UNIT_ADDITIONS])`` and loops over ``["ssi_earned_income", + *ssi_sources.unearned]``. + """ + + index = _index( + tmp_path, + { + "starred.py": _clean( + """ + ADDITIONS = ["addition_a", "addition_b"] + + class module_starred(Variable): + value_type = float + entity = Person + definition_period = YEAR + + def formula(person, period, parameters): + return add(person, period, ["base_income", *ADDITIONS]) + + class parameter_starred(Variable): + value_type = float + entity = Person + definition_period = YEAR + + def formula(person, period, parameters): + sources = parameters(period).group.sources + total = 0 + for source in ["earned", *sources]: + total += person(source, period) + return total + """ + ), + "leaves.py": _variables( + "base_income", + "addition_a", + "addition_b", + "earned", + "unearned_a", + "unearned_b", + ), + }, + parameters={ + "group.sources": """ + values: + 2020-01-01: + - unearned_a + 2024-01-01: + - unearned_a + - unearned_b + """, + }, + ) + + assert { + target + for target in _receipt_targets(index) + if any(r[0] == "module_starred" for r in _receipt_identities(index, target)) + } == {"base_income", "addition_a", "addition_b"} + assert { + target + for target in _receipt_targets(index) + if any(r[0] == "parameter_starred" for r in _receipt_identities(index, target)) + } == {"earned", "unearned_a", "unearned_b"} + + +@_REQUIRES_YAML +def test_single_argument_get_resolves_an_is_none_skip_exactly( + tmp_path: Path, +) -> None: + """A miss of ``mapping.get(key)`` is None, and ``is None`` decides it. + + This is ``de_itemized_deductions_indv``'s shape in policyengine-us 2.60: + deductions without an ``EXPENSE_SOURCES`` entry are skipped. + """ + + index = _index( + tmp_path, + { + "get_none.py": _clean( + """ + EXPENSE_SOURCES = { + "deduction_a": ["expense_a"], + "deduction_b": ["expense_b1", "expense_b2"], + } + + class allocated(Variable): + value_type = float + entity = Person + definition_period = YEAR + + def formula(person, period, parameters): + total = 0 + for deduction in parameters(period).group.deductions: + expense_sources = EXPENSE_SOURCES.get(deduction) + if expense_sources is None: + continue + total += add(person, period, expense_sources) + return total + """ + ), + "leaves.py": _variables( + "expense_a", "expense_b1", "expense_b2", "expense_unused" + ), + }, + parameters={ + "group.deductions": """ + values: + 2020-01-01: + - deduction_a + - deduction_b + - deduction_without_sources + """, + }, + ) + + assert _receipt_targets(index) == {"expense_a", "expense_b1", "expense_b2"} + + +def test_unknown_key_on_an_exact_string_map_reads_every_value( + tmp_path: Path, +) -> None: + """A run-time key into a fully known name table may read any of its values. + + This is ``capital_gains_behavioral_response``'s shape in policyengine-us + 2.60: the form comes from parameter values, so every form's variable is a + possible read. + """ + + index = _index( + tmp_path, + { + "forms.py": _clean( + """ + FORM_VARIABLES = {"a": "form_a_parameter", "b": "form_b_parameter"} + + def selected_form(values): + nonzero = {form: value for form, value in values if value} + if not nonzero: + return None + form, value = next(iter(nonzero.items())) + return form + + class response(Variable): + value_type = float + entity = Person + definition_period = YEAR + + def formula(person, period, parameters): + form = selected_form(parameters(period).group.forms) + if form is None: + return 0 + return person(FORM_VARIABLES[form], period) + """ + ), + "leaves.py": _variables("form_a_parameter", "form_b_parameter"), + }, + ) + + assert _receipt_targets(index) == {"form_a_parameter", "form_b_parameter"} + + +@_REQUIRES_YAML +def test_helper_tuple_return_flows_into_the_callers_sink(tmp_path: Path) -> None: + """``income, deductions = helper(...)`` binds the helper's returned list. + + This is the policyengine-us 2.60 ``dependent_income_and_deductions`` + shape: the helper maps a parameter list through a module table, and one + caller filters itself out before summing the rest. + """ + + index = _index( + tmp_path, + { + "helper.py": _clean( + """ + PERSON_DEDUCTIONS = { + "deduction_a": "deduction_a_person", + "own_deduction": "own_deduction_person", + } + + def income_and_deductions(person, period, parameters): + listed = parameters(period).group.deductions + deductions = [ + PERSON_DEDUCTIONS[item] + for item in listed + if item in PERSON_DEDUCTIONS + ] + return person("gross_income", period), deductions + """ + ), + "consumers.py": _clean( + """ + from policyengine_us.variables.helper import income_and_deductions + + class all_deductions(Variable): + value_type = float + entity = Person + definition_period = YEAR + + def formula(person, period, parameters): + income, deductions = income_and_deductions( + person, period, parameters + ) + return income - add(person, period, deductions) + + class own_deduction_person(Variable): + value_type = float + entity = Person + definition_period = YEAR + + def formula(person, period, parameters): + income, deductions = income_and_deductions( + person, period, parameters + ) + others = [d for d in deductions if d != "own_deduction_person"] + return income - add(person, period, others) + """ + ), + "leaves.py": _variables("gross_income", "deduction_a_person"), + }, + parameters={ + "group.deductions": """ + values: + 2020-01-01: + - deduction_a + - own_deduction + - deduction_without_person_leaf + """, + }, + ) + + def consumed_by(consumer: str) -> set[str]: + return { + target + for target in _receipt_targets(index) + if any(r[0] == consumer for r in _receipt_identities(index, target)) + } + + assert consumed_by("all_deductions") >= { + "deduction_a_person", + "own_deduction_person", + } + assert "own_deduction_person" not in consumed_by("own_deduction_person") + assert "deduction_a_person" in consumed_by("own_deduction_person") + + +def test_helper_return_of_an_engine_value_still_fails_closed( + tmp_path: Path, +) -> None: + """A helper that returns a run-time value cannot name a variable.""" + + with pytest.raises(RuntimeError, match="Unresolved dynamic"): + _index( + tmp_path, + { + "passthrough.py": _clean( + """ + def pick(name): + return name + + class picked(Variable): + value_type = float + entity = Person + definition_period = YEAR + + def formula(person, period, parameters): + name = pick(person("selector", period)) + return person(name, period) + """ + ), + "leaves.py": _variables("selector"), + }, + ) + + +_NAMES = st.lists( + st.from_regex(r"leaf_[a-z]{2,6}", fullmatch=True), + min_size=1, + max_size=5, + unique=True, +) + + +@settings( + max_examples=25, + deadline=None, + suppress_health_check=[HealthCheck.function_scoped_fixture], +) +@given(first=_NAMES, middle=_NAMES, last=_NAMES) +def test_starred_display_reads_exactly_the_union_of_its_parts( + tmp_path_factory: pytest.TempPathFactory, + first: list[str], + middle: list[str], + last: list[str], +) -> None: + """Property: ``[*FIRST, literal..., *LAST]`` reads every item and nothing else.""" + + root = tmp_path_factory.mktemp("starred") + module = _clean( + f""" + FIRST = {first!r} + LAST = {last!r} + + class spliced(Variable): + value_type = float + entity = Person + definition_period = YEAR + + def formula(person, period, parameters): + return add(person, period, [*FIRST, {", ".join(map(repr, middle))}, *LAST]) + """ + ) + leaves = sorted({*first, *middle, *last}) + index = _index(root, {"spliced.py": module, "leaves.py": _variables(*leaves)}) + + assert _receipt_targets(index) == set(leaves) + + +# Package helpers outside ``variables/`` ------------------------------------- + +_MODEL_API = "from policyengine_us.tools.general import *\n" +_GENERAL = """ +LEAVES = ("first_leaf", "second_leaf") + + +def tax_unit_non_dep_sum(var, tax_unit, period): + return tax_unit.sum( + tax_unit.members(var, period) + * not_(tax_unit.members("is_dependent", period)) + ) + + +def tax_unit_non_dep_add(tax_unit, period, variables, include_dependents=()): + \"\"\"Add variables over non-dependents.\"\"\" + total = 0 + for variable in variables: + total = total + tax_unit_non_dep_sum(variable, tax_unit, period) + return total + + +def eitc_like(tax_unit, period, child_count=None): + if child_count is None: + child_count = tax_unit("child_count", period) + return child_count * tax_unit("takes_up", period) + + +def any_leaf(tax_unit, period): + return any(tax_unit(leaf, period) for leaf in LEAVES) + + +def sum_among_non_dependents(variable): + def formula(tax_unit, period, parameters): + return tax_unit_non_dep_sum(variable, tax_unit, period) + + return formula +""" +_HELPER_LEAVES = _variables( + "wages", + "interest", + "is_dependent", + "child_count", + "takes_up", + "first_leaf", + "second_leaf", +) +_HELPER_REVIEW_SPECS = { + "policyengine_us.tools.general.tax_unit_non_dep_add": { + "arguments": ((2, "variables"),), + "reads": ("is_dependent",), + }, + "policyengine_us.tools.general.tax_unit_non_dep_sum": { + "arguments": ((0, "var"),), + "reads": ("is_dependent",), + }, + "policyengine_us.tools.general.eitc_like": { + "reads": ("takes_up",), + "reads_when_omitted": ((2, "child_count", ("child_count",)),), + }, + "policyengine_us.tools.general.any_leaf": { + "reads": ("first_leaf", "second_leaf"), + }, + "policyengine_us.tools.general.sum_among_non_dependents": { + "arguments": ((0, "variable"),), + "reads": ("is_dependent",), + }, +} + + +def _tax_unit_variable(name: str, body: str) -> str: + return ( + _clean( + f""" + from policyengine_us.model_api import * + + class {name}(Variable): + value_type = float + entity = TaxUnit + definition_period = YEAR + + """ + ) + + indent(dedent(body).strip(), " ") + + "\n" + ) + + +def _helper_digest_error(exc: pytest.ExceptionInfo[RuntimeError]) -> tuple[str, str]: + match = re.search( + r"helper (\S+) (?:\(digest|changed \(digest) ([0-9a-f]{64})", + str(exc.value), + ) + assert match is not None, str(exc.value) + return match.group(1), match.group(2) + + +def _reviewed_index( + tmp_path: Path, + sources: dict[str, str], + *, + package: dict[str, str], + specs: dict[str, dict[str, object]] | None = None, +) -> module._PolicyEngineUSSourceIndex: + """Index ``sources``, reviewing each helper as a reviewer would. + + Every unreviewed helper stops the index with its digest; the review is + then written from ``specs`` at that digest and the index rerun. + """ + + reviews: dict[str, HelperReview] = {} + specs = _HELPER_REVIEW_SPECS if specs is None else specs + for _ in range(len(specs) + 1): + try: + return _index( + tmp_path, + sources, + package=package, + helper_reviews=reviews, + ) + except RuntimeError as exc: + match = re.search( + r"Unreviewed PolicyEngine-US helper (\S+) \(digest ([0-9a-f]{64})\)", + str(exc), + ) + if match is None: + raise + name, digest = match.groups() + reviews[name] = HelperReview(digest=digest, **specs[name]) # type: ignore[arg-type] + raise AssertionError("helper reviews did not converge") + + +def test_unreviewed_package_helper_fails_closed_with_its_digest( + tmp_path: Path, +) -> None: + with pytest.raises(RuntimeError) as exc: + _index( + tmp_path, + { + "filer_total.py": _tax_unit_variable( + "filer_total", + """ + def formula(tax_unit, period, parameters): + return tax_unit_non_dep_add(tax_unit, period, ["wages"]) + """, + ), + "leaves.py": _HELPER_LEAVES, + }, + package={"model_api.py": _MODEL_API, "tools/general.py": _GENERAL}, + ) + assert "Unreviewed PolicyEngine-US helper" in str(exc.value) + assert _helper_digest_error(exc)[0] == ( + "policyengine_us.tools.general.tax_unit_non_dep_add" + ) + + +def test_reviewed_package_helper_reads_belong_to_the_caller(tmp_path: Path) -> None: + """Named variables and the helper's own reads are the caller's receipts.""" + + index = _reviewed_index( + tmp_path, + { + "filer_total.py": _tax_unit_variable( + "filer_total", + """ + def formula(tax_unit, period, parameters): + return tax_unit_non_dep_add( + tax_unit, period, ["wages", "interest"] + ) + any_leaf(tax_unit, period) + """, + ), + "leaves.py": _HELPER_LEAVES, + }, + package={"model_api.py": _MODEL_API, "tools/general.py": _GENERAL}, + ) + + expected = {("filer_total", "variables/filer_total.py", "helper_call")} + for target in ("wages", "interest", "is_dependent", "first_leaf", "second_leaf"): + assert _receipt_identities(index, target) == expected + assert _receipt_targets(index) == { + "wages", + "interest", + "is_dependent", + "first_leaf", + "second_leaf", + } + + +def test_helper_reads_tied_to_an_omitted_argument(tmp_path: Path) -> None: + index = _reviewed_index( + tmp_path, + { + "passes_count.py": _tax_unit_variable( + "passes_count", + """ + def formula(tax_unit, period, parameters): + return eitc_like(tax_unit, period, 2) + """, + ), + "omits_count.py": _tax_unit_variable( + "omits_count", + """ + def formula(tax_unit, period, parameters): + return eitc_like(tax_unit, period, child_count=None) + """, + ), + "leaves.py": _HELPER_LEAVES, + }, + package={"model_api.py": _MODEL_API, "tools/general.py": _GENERAL}, + ) + + assert {receipt.consumer for receipt in index.consumers["takes_up"]} == { + "passes_count", + "omits_count", + } + assert {receipt.consumer for receipt in index.consumers["child_count"]} == { + "omits_count" + } + + +def test_class_body_helper_factory_reads_belong_to_the_class(tmp_path: Path) -> None: + index = _reviewed_index( + tmp_path, + { + "earned.py": _tax_unit_variable( + "earned", + """ + formula = sum_among_non_dependents("wages") + """, + ), + "leaves.py": _HELPER_LEAVES, + }, + package={"model_api.py": _MODEL_API, "tools/general.py": _GENERAL}, + ) + + assert _receipt_identities(index, "wages") == { + ("earned", "variables/earned.py", "helper_call") + } + assert _receipt_identities(index, "is_dependent") == { + ("earned", "variables/earned.py", "helper_call") + } + + +def test_class_body_call_to_a_formula_module_function_fails_closed( + tmp_path: Path, +) -> None: + with pytest.raises( + RuntimeError, + match="Unresolved dynamic PolicyEngine consumer aggregation", + ): + _index( + tmp_path, + { + "factories.py": _clean( + """ + def make(variable): + def formula(person, period, parameters): + return person(variable, period) + + return formula + """ + ), + "made.py": _clean( + """ + from policyengine_us.variables.factories import make + + class made(Variable): + value_type = float + entity = Person + definition_period = YEAR + formula = make("wages") + """ + ), + "leaves.py": _HELPER_LEAVES, + }, + ) + + +def test_local_name_shadowing_a_helper_is_not_the_helper(tmp_path: Path) -> None: + index = _index( + tmp_path, + { + "shadowed.py": _tax_unit_variable( + "shadowed", + """ + def formula(tax_unit, period, parameters): + tax_unit_non_dep_add = choose_function() + return tax_unit_non_dep_add(tax_unit, period, ["wages"]) + """, + ), + "leaves.py": _HELPER_LEAVES, + }, + package={"model_api.py": _MODEL_API, "tools/general.py": _GENERAL}, + ) + + assert _receipt_targets(index) == set() + + +def test_helper_digest_ignores_docstrings_and_follows_code_and_constants( + tmp_path: Path, +) -> None: + def digest(root: Path, general: str) -> str: + with pytest.raises(RuntimeError) as exc: + _index( + root, + { + "caller.py": _tax_unit_variable( + "caller", + """ + def formula(tax_unit, period, parameters): + return any_leaf(tax_unit, period) + """, + ), + "leaves.py": _HELPER_LEAVES, + }, + package={"model_api.py": _MODEL_API, "tools/general.py": general}, + ) + return _helper_digest_error(exc)[1] + + base = digest(tmp_path / "base", _GENERAL) + redocumented = _GENERAL.replace( + "def any_leaf(tax_unit, period):\n", + 'def any_leaf(tax_unit, period):\n """Any leaf is positive."""\n', + ) + recoded = _GENERAL.replace( + "return any(tax_unit(leaf, period) for leaf in LEAVES)", + "return all(tax_unit(leaf, period) for leaf in LEAVES)", + ) + reconstant = _GENERAL.replace( + 'LEAVES = ("first_leaf", "second_leaf")', + 'LEAVES = ("first_leaf",)', + ) + + assert digest(tmp_path / "doc", redocumented) == base + assert digest(tmp_path / "code", recoded) != base + assert digest(tmp_path / "constant", reconstant) != base + + +def test_changed_helper_fails_closed_until_reviewed_again(tmp_path: Path) -> None: + sources = { + "caller.py": _tax_unit_variable( + "caller", + """ + def formula(tax_unit, period, parameters): + return any_leaf(tax_unit, period) + """, + ), + "leaves.py": _HELPER_LEAVES, + } + reviewed = _reviewed_index( + tmp_path / "reviewed", + sources, + package={"model_api.py": _MODEL_API, "tools/general.py": _GENERAL}, + ) + assert _receipt_targets(reviewed) == {"first_leaf", "second_leaf"} + with pytest.raises(RuntimeError) as exc: + _index( + tmp_path / "changed", + sources, + package={ + "model_api.py": _MODEL_API, + "tools/general.py": _GENERAL.replace( + 'LEAVES = ("first_leaf", "second_leaf")', + 'LEAVES = ("first_leaf", "second_leaf", "wages")', + ), + }, + helper_reviews={ + "policyengine_us.tools.general.any_leaf": HelperReview( + digest=_helper_digest_error_free_digest(tmp_path, sources), + reads=("first_leaf", "second_leaf"), + ) + }, + ) + assert "changed (digest" in str(exc.value) + + +def _helper_digest_error_free_digest(tmp_path: Path, sources: dict[str, str]) -> str: + with pytest.raises(RuntimeError) as exc: + _index( + tmp_path / "original", + sources, + package={"model_api.py": _MODEL_API, "tools/general.py": _GENERAL}, + ) + return _helper_digest_error(exc)[1] + + +def test_review_naming_a_non_variable_read_fails(tmp_path: Path) -> None: + specs = { + "policyengine_us.tools.general.any_leaf": { + "reads": ("first_leaf", "not_a_variable"), + } + } + with pytest.raises(RuntimeError, match="names reads that are not variables"): + _reviewed_index( + tmp_path, + { + "caller.py": _tax_unit_variable( + "caller", + """ + def formula(tax_unit, period, parameters): + return any_leaf(tax_unit, period) + """, + ), + "leaves.py": _HELPER_LEAVES, + }, + package={"model_api.py": _MODEL_API, "tools/general.py": _GENERAL}, + specs=specs, + ) + + +# Simulation reads, local functions and lambdas --------------------------------- + + +def test_simulation_calculate_holder_and_array_reads(tmp_path: Path) -> None: + index = _index( + tmp_path, + { + "branch_reader.py": _tax_unit_variable( + "branch_reader", + """ + def formula(tax_unit, period, parameters): + simulation = tax_unit.simulation + branch = simulation.get_branch("counterfactual") + holder = simulation.get_holder("stored_leaf") + stored = holder.get_array(period, simulation.branch_name) + supplied = simulation.get_array("supplied_leaf", period) + return branch.calculate("branch_leaf", period) + stored + supplied + """, + ), + "leaves.py": _variables("stored_leaf", "supplied_leaf", "branch_leaf"), + }, + ) + + for target in ("stored_leaf", "supplied_leaf", "branch_leaf"): + assert _receipt_identities(index, target) == { + ("branch_reader", "variables/branch_reader.py", "simulation_read") + } + assert _receipt_targets(index) == {"stored_leaf", "supplied_leaf", "branch_leaf"} + + +def test_simulation_read_of_an_unknown_name_fails_closed(tmp_path: Path) -> None: + with pytest.raises( + RuntimeError, + match="Unresolved dynamic PolicyEngine consumer aggregation", + ): + _index( + tmp_path, + { + "branch_reader.py": _tax_unit_variable( + "branch_reader", + """ + def formula(tax_unit, period, parameters): + branch = tax_unit.simulation.get_branch("counterfactual") + return branch.calculate(choose_name(), period) + """, + ), + }, + ) + + +def test_local_function_reads_are_exact_and_belong_to_the_caller( + tmp_path: Path, +) -> None: + """A recursive local function reads exactly what its calls reach.""" + + index = _index( + tmp_path, + { + "lookback.py": _clean( + """ + NAMES = ("first_leaf", "third_leaf") + + class lookback(Variable): + value_type = float + entity = TaxUnit + definition_period = YEAR + + def formula(tax_unit, period, parameters): + def provided(variable): + if variable == "first_leaf": + return provided("second_leaf") + return tax_unit(variable, period) + + total = 0 + for name in NAMES: + total = total + provided(name) + return total + """ + ), + "leaves.py": _variables("first_leaf", "second_leaf", "third_leaf"), + }, + ) + + assert _receipt_targets(index) == {"second_leaf", "third_leaf"} + assert _receipt_identities(index, "second_leaf") == { + ("lookback", "variables/lookback.py", "entity_call") + } + + +def test_escaping_local_function_is_read_where_defined(tmp_path: Path) -> None: + index = _index( + tmp_path, + { + "unused.py": _tax_unit_variable( + "unused", + """ + def formula(tax_unit, period, parameters): + def never_called(): + return tax_unit("dead_leaf", period) + + return 0 + """, + ), + "leaves.py": _variables("dead_leaf"), + }, + ) + assert _receipt_identities(index, "dead_leaf") == { + ("unused", "variables/unused.py", "entity_call") + } + + with pytest.raises( + RuntimeError, + match="Unresolved dynamic PolicyEngine consumer aggregation", + ): + _index( + tmp_path / "escaping", + { + "mapped.py": _tax_unit_variable( + "mapped", + """ + def formula(tax_unit, period, parameters): + def read(name): + return tax_unit(name, period) + + return sum(map(read, ["first_leaf"])) + """, + ), + "leaves.py": _variables("first_leaf"), + }, + ) + + +def test_lambda_reads_are_recorded_and_unknown_names_fail_closed( + tmp_path: Path, +) -> None: + index = _index( + tmp_path, + { + "deferred.py": _tax_unit_variable( + "deferred", + """ + def formula(tax_unit, period, parameters): + read = lambda: tax_unit("lambda_leaf", period) + return read() + """, + ), + "leaves.py": _variables("lambda_leaf"), + }, + ) + assert _receipt_identities(index, "lambda_leaf") == { + ("deferred", "variables/deferred.py", "entity_call") + } + + with pytest.raises( + RuntimeError, + match="Unresolved dynamic PolicyEngine consumer aggregation", + ): + _index( + tmp_path / "dynamic", + { + "folded.py": _tax_unit_variable( + "folded", + """ + def formula(tax_unit, period, parameters): + return reduce( + lambda total, name: total + tax_unit(name, period), + ["lambda_leaf"], + 0, + ) + """, + ), + "leaves.py": _variables("lambda_leaf"), + }, + ) + + +@settings( + max_examples=25, + deadline=None, + suppress_health_check=[HealthCheck.function_scoped_fixture], +) +@given(names=_NAMES) +def test_reviewed_helper_reads_exactly_the_listed_variables_and_its_own( + tmp_path_factory: pytest.TempPathFactory, + names: list[str], +) -> None: + """Property: ``tax_unit_non_dep_add(..., names)`` reads names and nothing else.""" + + root = tmp_path_factory.mktemp("helper") + index = _reviewed_index( + root, + { + "filer_total.py": _tax_unit_variable( + "filer_total", + f""" + def formula(tax_unit, period, parameters): + return tax_unit_non_dep_add(tax_unit, period, {names!r}) + """, + ), + "leaves.py": _variables(*names, "is_dependent"), + }, + package={"model_api.py": _MODEL_API, "tools/general.py": _GENERAL}, + ) + + assert _receipt_targets(index) == {*names, "is_dependent"} + + +def test_comparing_an_engine_value_keeps_both_outcomes(tmp_path: Path) -> None: + """``period.start.year != 2021`` is undecided; exact data still decides.""" + + index = _index( + tmp_path, + { + "by_year.py": _tax_unit_variable( + "by_year", + """ + def formula(tax_unit, period, parameters): + if period.start.year != 2021: + return tax_unit("first_leaf", period) + if "second_leaf" in ["second_leaf"]: + return tax_unit("second_leaf", period) + return tax_unit("third_leaf", period) + """, + ), + "leaves.py": _variables("first_leaf", "second_leaf", "third_leaf"), + }, + ) + + assert _receipt_targets(index) == {"first_leaf", "second_leaf"} diff --git a/packages/microcosm-frame/tests/engine_free/us/test_policyengine_us_metadata_index.py b/packages/microcosm-frame/tests/engine_free/us/test_policyengine_us_metadata_index.py index 3bfb58002..21e2dd7f0 100644 --- a/packages/microcosm-frame/tests/engine_free/us/test_policyengine_us_metadata_index.py +++ b/packages/microcosm-frame/tests/engine_free/us/test_policyengine_us_metadata_index.py @@ -21,7 +21,7 @@ "de_taxable_income de_agi ia_standard_deduction ia_itemized_deductions " "ia_taxable_income ia_agi ky_standard_deduction ky_itemized_deductions " "ky_taxable_income ms_standard_deduction ms_itemized_deductions " - "ms_taxable_income mt_standard_deduction mt_itemized_deductions " + "ms_taxable_income mt_agi mt_standard_deduction mt_itemized_deductions " "mt_taxable_income".split() ) # policyengine-us 2.x installs spm-calculator's measurement variables into the @@ -181,7 +181,7 @@ def test_generated_snapshot_covers_the_pinned_default_system() -> None: ) assert set(generated) == formula_owned | _EXPECTED_PUF | _EXPECTED_SPM_INPUTS - assert len(generated) == 119 + assert len(generated) == 120 assert {name for name, item in generated.items() if item.formula_owned} == ( formula_owned ) @@ -207,9 +207,9 @@ def test_generated_snapshot_covers_the_pinned_default_system() -> None: assert (metadata.entity, metadata.dtype, metadata.period) == expected index = module.PolicyEngineUSVariableMetadataIndex() - assert len(index._definitions) == 6_167 - assert len(index.variables()) == 926 - assert len(index.formula_owned_outputs(index._definitions)) == 5_241 + assert len(index._definitions) == 6_797 + assert len(index.variables()) == 1_074 + assert len(index.formula_owned_outputs(index._definitions)) == 5_723 assert index.formula_owned_outputs(["AK", "e00700", "ar_agi", "mi_surtax"]) == { "AK", "ar_agi", diff --git a/packages/microcosm-frame/tests/golden/concept-coverage/policyengine-us.json b/packages/microcosm-frame/tests/golden/concept-coverage/policyengine-us.json index 6c0440fc9..7c426f363 100644 --- a/packages/microcosm-frame/tests/golden/concept-coverage/policyengine-us.json +++ b/packages/microcosm-frame/tests/golden/concept-coverage/policyengine-us.json @@ -545,8 +545,8 @@ } ], "engine": "policyengine-us", - "engine_version": "2.2.1", - "input_count": 926, + "engine_version": "2.60.4", + "input_count": 1074, "schema_sha256": "5a55669d0447a686692911a6327ae298f19741dde29559f2654a75807878a141", "structural_inputs": [ { @@ -767,10 +767,6 @@ "entity": "person", "name": "az_530a_distribution" }, - { - "entity": "tax_unit", - "name": "az_additions" - }, { "entity": "spm_unit", "name": "az_ccap_enrolled" @@ -791,6 +787,14 @@ "entity": "tax_unit", "name": "az_charitable_contributions_to_qualifying_foster_care_organizations" }, + { + "entity": "tax_unit", + "name": "az_other_additions" + }, + { + "entity": "tax_unit", + "name": "az_other_subtractions" + }, { "entity": "person", "name": "bank_account_assets" @@ -855,6 +859,14 @@ "entity": "person", "name": "ca_in_medical_care_facility" }, + { + "entity": "tax_unit", + "name": "ca_other_additions" + }, + { + "entity": "tax_unit", + "name": "ca_other_subtractions" + }, { "entity": "spm_unit", "name": "ca_riv_share_eligible_for_emergency_payment" @@ -915,14 +927,34 @@ "entity": "household", "name": "cbsa_code" }, + { + "entity": "person", + "name": "charitable_capital_gain_donations_50_pct_orgs" + }, + { + "entity": "person", + "name": "charitable_capital_gain_donations_non_50_pct_orgs" + }, { "entity": "person", "name": "charitable_cash_donations" }, + { + "entity": "person", + "name": "charitable_cash_donations_50_pct_orgs" + }, + { + "entity": "person", + "name": "charitable_cash_donations_non_50_pct_orgs" + }, { "entity": "person", "name": "charitable_non_cash_donations" }, + { + "entity": "person", + "name": "charitable_non_cash_donations_50_pct_orgs" + }, { "entity": "person", "name": "charitable_non_cash_donations_non_50_pct_orgs" @@ -951,6 +983,10 @@ "entity": "person", "name": "childcare_provider_type_group" }, + { + "entity": "person", + "name": "claim_of_right_repayment" + }, { "entity": "person", "name": "claimed_as_dependent_on_another_return" @@ -987,6 +1023,14 @@ "entity": "tax_unit", "name": "co_non_refundable_credits" }, + { + "entity": "tax_unit", + "name": "co_other_additions" + }, + { + "entity": "tax_unit", + "name": "co_other_subtractions" + }, { "entity": "tax_unit", "name": "co_property_tax_exemption" @@ -1007,6 +1051,10 @@ "entity": "tax_unit", "name": "cohabitating_spouses" }, + { + "entity": "person", + "name": "collectibles_gain_or_loss" + }, { "entity": "household", "name": "congressional_district_geoid" @@ -1047,6 +1095,14 @@ "entity": "person", "name": "ct_c4k_provider_type" }, + { + "entity": "tax_unit", + "name": "ct_other_additions" + }, + { + "entity": "tax_unit", + "name": "ct_other_subtractions" + }, { "entity": "tax_unit", "name": "ct_section_179_expense_add_back" @@ -1101,7 +1157,19 @@ }, { "entity": "person", - "name": "de_additions" + "name": "dc_other_additions" + }, + { + "entity": "person", + "name": "dc_other_subtractions" + }, + { + "entity": "person", + "name": "de_other_additions" + }, + { + "entity": "person", + "name": "de_other_subtractions" }, { "entity": "spm_unit", @@ -1123,10 +1191,18 @@ "entity": "person", "name": "debt_relief" }, + { + "entity": "person", + "name": "deceased_spousal_unused_exclusion_amount" + }, { "entity": "person", "name": "dependent_care_employer_benefits" }, + { + "entity": "person", + "name": "dependent_claimant_filing_exception" + }, { "entity": "person", "name": "detailed_industry_recode" @@ -1139,6 +1215,10 @@ "entity": "person", "name": "disability_benefits" }, + { + "entity": "person", + "name": "disability_benefits_before_minimum_retirement_age" + }, { "entity": "person", "name": "divorce_year" @@ -1291,6 +1371,10 @@ "entity": "person", "name": "educator_expense" }, + { + "entity": "person", + "name": "eitc_passive_income_also_in_earned_income" + }, { "entity": "tax_unit", "name": "electric_heat_pump_clothes_dryer_expenditures" @@ -1443,6 +1527,10 @@ "entity": "person", "name": "estate_income" }, + { + "entity": "person", + "name": "estate_income_net_investment_income_adjustment" + }, { "entity": "person", "name": "estate_income_would_be_qualified" @@ -1487,10 +1575,6 @@ "entity": "tax_unit", "name": "first_home_mortgage_balance" }, - { - "entity": "tax_unit", - "name": "first_home_mortgage_interest" - }, { "entity": "tax_unit", "name": "first_home_mortgage_origination_year" @@ -1513,7 +1597,23 @@ }, { "entity": "tax_unit", - "name": "foreign_earned_income_exclusion" + "name": "foreign_earned_income_exclusion_allocable_deductions" + }, + { + "entity": "tax_unit", + "name": "foreign_earned_income_exclusion_amount" + }, + { + "entity": "tax_unit", + "name": "foreign_earned_income_exclusion_disallowed_deductions" + }, + { + "entity": "tax_unit", + "name": "foreign_housing_deduction" + }, + { + "entity": "tax_unit", + "name": "foreign_housing_exclusion" }, { "entity": "tax_unit", @@ -1567,6 +1667,14 @@ "entity": "tax_unit", "name": "ga_itemized_deductions_adjustment" }, + { + "entity": "tax_unit", + "name": "ga_other_additions" + }, + { + "entity": "tax_unit", + "name": "ga_other_subtractions" + }, { "entity": "person", "name": "ga_ssp_in_nursing_home_or_institutionalized_hospice" @@ -1715,6 +1823,10 @@ "entity": "tax_unit", "name": "health_savings_account_ald" }, + { + "entity": "person", + "name": "health_savings_account_ald_person" + }, { "entity": "person", "name": "health_savings_account_payroll_contributions" @@ -1755,6 +1867,14 @@ "entity": "person", "name": "hi_oss_care_facility_type" }, + { + "entity": "tax_unit", + "name": "hi_other_additions" + }, + { + "entity": "tax_unit", + "name": "hi_other_subtractions" + }, { "entity": "tax_unit", "name": "home_energy_audit_expenditures" @@ -1767,6 +1887,10 @@ "entity": "person", "name": "home_is_on_agricultural_land" }, + { + "entity": "person", + "name": "home_mortgage_points" + }, { "entity": "spm_unit", "name": "homeowners_association_fees" @@ -1863,10 +1987,6 @@ "entity": "person", "name": "id_aabd_living_arrangement" }, - { - "entity": "tax_unit", - "name": "id_additions" - }, { "entity": "spm_unit", "name": "id_iccp_enrolled" @@ -1875,6 +1995,14 @@ "entity": "person", "name": "id_iccp_provider_type" }, + { + "entity": "tax_unit", + "name": "id_other_additions" + }, + { + "entity": "tax_unit", + "name": "id_other_subtractions" + }, { "entity": "spm_unit", "name": "il_aabd_institutional_status" @@ -1909,19 +2037,19 @@ }, { "entity": "tax_unit", - "name": "il_pass_through_entity_tax_credit" + "name": "il_other_additions" }, { "entity": "tax_unit", - "name": "il_pass_through_withholding" + "name": "il_other_subtractions" }, { "entity": "tax_unit", - "name": "il_schedule_m_additions" + "name": "il_pass_through_entity_tax_credit" }, { "entity": "tax_unit", - "name": "il_schedule_m_subtractions" + "name": "il_pass_through_withholding" }, { "entity": "person", @@ -1951,6 +2079,10 @@ "entity": "household", "name": "in_denver" }, + { + "entity": "spm_unit", + "name": "in_eap_dwelling_type" + }, { "entity": "tax_unit", "name": "in_healthcare_sharing_deduction" @@ -2267,6 +2399,10 @@ "entity": "person", "name": "is_snap_employment_training_student" }, + { + "entity": "person", + "name": "is_snap_lpr_in_waiting_period_exempt_category" + }, { "entity": "person", "name": "is_snap_work_incentive_student" @@ -2303,6 +2439,10 @@ "entity": "person", "name": "is_tafdc_related_to_head_or_spouse" }, + { + "entity": "person", + "name": "is_under_court_supervision" + }, { "entity": "person", "name": "is_union_member_or_covered" @@ -2323,6 +2463,10 @@ "entity": "person", "name": "is_wic_fully_breastfeeding" }, + { + "entity": "tax_unit", + "name": "itemized_medical_expenses_long_term_care_premiums" + }, { "entity": "tax_unit", "name": "k12_tuition_and_fees" @@ -2331,21 +2475,37 @@ "entity": "person", "name": "keogh_distributions" }, + { + "entity": "person", + "name": "ks_ccap_provider_type" + }, + { + "entity": "spm_unit", + "name": "ks_liheap_dwelling_type" + }, + { + "entity": "spm_unit", + "name": "ks_liheap_utility_rate_tier" + }, { "entity": "tax_unit", - "name": "ks_additions" + "name": "ks_other_additions" + }, + { + "entity": "tax_unit", + "name": "ks_other_subtractions" }, { "entity": "person", - "name": "ks_ccap_provider_type" + "name": "ky_ccap_provider_type" }, { "entity": "person", - "name": "ky_additions" + "name": "ky_other_additions" }, { "entity": "person", - "name": "ky_ccap_provider_type" + "name": "ky_other_subtractions" }, { "entity": "tax_unit", @@ -2423,6 +2583,10 @@ "entity": "person", "name": "long_term_capital_gains_years_held" }, + { + "entity": "person", + "name": "long_term_capital_loss_carryover" + }, { "entity": "person", "name": "long_term_health_insurance_premiums" @@ -2463,6 +2627,18 @@ "entity": "person", "name": "md_ccs_provider_type" }, + { + "entity": "spm_unit", + "name": "md_meap_dwelling_type" + }, + { + "entity": "tax_unit", + "name": "md_other_additions" + }, + { + "entity": "tax_unit", + "name": "md_other_subtractions" + }, { "entity": "person", "name": "md_paa_living_arrangement" @@ -2473,19 +2649,19 @@ }, { "entity": "tax_unit", - "name": "md_total_additions" + "name": "me_affordability_payment_subtraction_reported" }, { - "entity": "tax_unit", - "name": "me_additions" + "entity": "person", + "name": "me_ccap_provider_type" }, { "entity": "tax_unit", - "name": "me_affordability_payment_subtraction_reported" + "name": "me_other_additions" }, { - "entity": "person", - "name": "me_ccap_provider_type" + "entity": "tax_unit", + "name": "me_other_subtractions" }, { "entity": "tax_unit", @@ -2563,6 +2739,14 @@ "entity": "tax_unit", "name": "mi_non_refundable_credits" }, + { + "entity": "tax_unit", + "name": "mi_other_additions" + }, + { + "entity": "tax_unit", + "name": "mi_other_subtractions" + }, { "entity": "person", "name": "mi_ssp_living_arrangement" @@ -2619,6 +2803,14 @@ "entity": "person", "name": "mn_msa_uses_representative_payee" }, + { + "entity": "tax_unit", + "name": "mn_other_additions" + }, + { + "entity": "tax_unit", + "name": "mn_other_subtractions" + }, { "entity": "tax_unit", "name": "mn_renters_credit_property_tax_exempt" @@ -2639,6 +2831,18 @@ "entity": "person", "name": "mo_kansas_city_earnings_tax_taxable_earnings" }, + { + "entity": "person", + "name": "mo_other_additions" + }, + { + "entity": "person", + "name": "mo_other_subtractions" + }, + { + "entity": "person", + "name": "mo_sab_reported_earnings_taxes" + }, { "entity": "person", "name": "mo_snc_facility_base_charge" @@ -2655,6 +2859,14 @@ "entity": "person", "name": "mo_st_louis_earnings_tax_taxable_earnings" }, + { + "entity": "person", + "name": "mo_tanf_is_non_parent_caretaker" + }, + { + "entity": "person", + "name": "mo_tanf_non_parent_caretaker_opts_out" + }, { "entity": "person", "name": "months_receiving_social_security_disability" @@ -2663,6 +2875,14 @@ "entity": "spm_unit", "name": "months_since_calworks_exit" }, + { + "entity": "marital_unit", + "name": "mortgage_and_real_estate_taxes_paid_from_joint_account" + }, + { + "entity": "person", + "name": "mortgage_insurance_premiums" + }, { "entity": "person", "name": "ms_ccpp_provider_type" @@ -2688,112 +2908,212 @@ "name": "mt_ccap_provider_type" }, { - "entity": "tax_unit", - "name": "nc_additions" + "entity": "person", + "name": "mt_elderly_homeowner_or_renter_credit_property_tax_rebate_received" }, { "entity": "person", - "name": "nd_ccap_provider_qris_step" + "name": "mt_elderly_homeowner_or_renter_credit_received" }, { "entity": "person", - "name": "nd_ccap_provider_type" + "name": "mt_other_additions" }, { - "entity": "tax_unit", - "name": "nd_refundable_credits" + "entity": "person", + "name": "mt_other_subtractions" }, { - "entity": "tax_unit", - "name": "nd_renters_refund_property_tax_exempt" + "entity": "person", + "name": "mt_ssp_payment_category" }, { "entity": "person", - "name": "ne_aabd_alternate_living_arrangement" + "name": "nc_claim_of_right_repayment_excluded_from_income" }, { - "entity": "tax_unit", - "name": "ne_additions" + "entity": "person", + "name": "nc_lieap_bank_account_exclusions" }, { "entity": "spm_unit", - "name": "ne_child_care_subsidy_at_redetermination" + "name": "nc_lieap_has_paid_excess_heating_costs" }, { - "entity": "spm_unit", - "name": "ne_child_care_subsidy_enrolled" + "entity": "person", + "name": "nc_lieap_is_daas_disabled" }, { "entity": "person", - "name": "ne_child_care_subsidy_provider_type" + "name": "nc_lieap_nonbank_resources" }, { "entity": "person", - "name": "ne_child_care_subsidy_quality_tier" + "name": "nc_military_retirement_survivor_eligible" }, { - "entity": "person", - "name": "ne_school_readiness_credit_child_care_worker_rating" + "entity": "tax_unit", + "name": "nc_other_additions" + }, + { + "entity": "tax_unit", + "name": "nc_other_subtractions" }, { "entity": "person", - "name": "ne_school_readiness_credit_eligible_worker" + "name": "nc_sa_care_setting" }, { - "entity": "household", - "name": "net_worth" + "entity": "person", + "name": "nc_sa_facility_rate" }, { "entity": "person", - "name": "never_eligible_for_social_security_benefits" + "name": "nd_ccap_provider_qris_step" }, { - "entity": "tax_unit", - "name": "new_clean_vehicle_battery_capacity" + "entity": "person", + "name": "nd_ccap_provider_type" }, { "entity": "tax_unit", - "name": "new_clean_vehicle_battery_components_made_in_north_america" + "name": "nd_other_additions" }, { "entity": "tax_unit", - "name": "new_clean_vehicle_battery_critical_minerals_extracted_in_trading_partner_country" + "name": "nd_other_subtractions" }, { "entity": "tax_unit", - "name": "new_clean_vehicle_classification" + "name": "nd_refundable_credits" }, { "entity": "tax_unit", - "name": "new_clean_vehicle_msrp" + "name": "nd_renters_refund_property_tax_exempt" }, { "entity": "person", - "name": "nh_ccap_provider_type" + "name": "ne_aabd_alternate_living_arrangement" }, { - "entity": "tax_unit", - "name": "nh_refundable_credits" + "entity": "spm_unit", + "name": "ne_child_care_subsidy_at_redetermination" }, { "entity": "spm_unit", - "name": "nj_ccap_enrolled" + "name": "ne_child_care_subsidy_enrolled" }, { "entity": "person", - "name": "nj_ccap_grow_nj_kids_rating" + "name": "ne_child_care_subsidy_provider_type" }, { "entity": "person", - "name": "nj_ccap_provider_type" + "name": "ne_child_care_subsidy_quality_tier" }, { - "entity": "tax_unit", - "name": "nj_non_refundable_credits" + "entity": "spm_unit", + "name": "ne_liheap_dwelling_type" }, { "entity": "tax_unit", - "name": "nj_senior_freeze" + "name": "ne_other_additions" + }, + { + "entity": "tax_unit", + "name": "ne_other_subtractions" + }, + { + "entity": "person", + "name": "ne_school_readiness_credit_child_care_worker_rating" + }, + { + "entity": "person", + "name": "ne_school_readiness_credit_eligible_worker" + }, + { + "entity": "household", + "name": "net_worth" + }, + { + "entity": "person", + "name": "never_eligible_for_social_security_benefits" + }, + { + "entity": "tax_unit", + "name": "new_clean_vehicle_battery_capacity" + }, + { + "entity": "tax_unit", + "name": "new_clean_vehicle_battery_components_made_in_north_america" + }, + { + "entity": "tax_unit", + "name": "new_clean_vehicle_battery_critical_minerals_extracted_in_trading_partner_country" + }, + { + "entity": "tax_unit", + "name": "new_clean_vehicle_classification" + }, + { + "entity": "tax_unit", + "name": "new_clean_vehicle_msrp" + }, + { + "entity": "person", + "name": "nh_ccap_provider_type" + }, + { + "entity": "tax_unit", + "name": "nh_refundable_credits" + }, + { + "entity": "person", + "name": "nh_ssp_essential_person_countable_income" + }, + { + "entity": "person", + "name": "nh_ssp_essential_person_resources" + }, + { + "entity": "person", + "name": "nh_ssp_grant_reduction_applies" + }, + { + "entity": "person", + "name": "nh_ssp_has_essential_person" + }, + { + "entity": "spm_unit", + "name": "nj_ccap_enrolled" + }, + { + "entity": "person", + "name": "nj_ccap_grow_nj_kids_rating" + }, + { + "entity": "person", + "name": "nj_ccap_provider_type" + }, + { + "entity": "tax_unit", + "name": "nj_non_refundable_credits" + }, + { + "entity": "person", + "name": "nj_other_additions" + }, + { + "entity": "person", + "name": "nj_other_subtractions" + }, + { + "entity": "tax_unit", + "name": "nj_senior_freeze" + }, + { + "entity": "person", + "name": "nj_ssp_care_setting" }, { "entity": "person", @@ -2823,10 +3143,6 @@ "entity": "person", "name": "nj_unemployment_insurance_working_less_than_full_time" }, - { - "entity": "tax_unit", - "name": "nm_additions" - }, { "entity": "spm_unit", "name": "nm_ccap_enrolled" @@ -2847,6 +3163,14 @@ "entity": "tax_unit", "name": "nm_non_refundable_credits" }, + { + "entity": "tax_unit", + "name": "nm_other_additions" + }, + { + "entity": "tax_unit", + "name": "nm_other_subtractions" + }, { "entity": "person", "name": "non_public_school_tuition" @@ -2868,8 +3192,8 @@ "name": "nv_ccdp_provider_type" }, { - "entity": "tax_unit", - "name": "ny_additions" + "entity": "person", + "name": "nv_oss_care_setting" }, { "entity": "household", @@ -2883,6 +3207,22 @@ "entity": "household", "name": "ny_drive_clean_vehicle_electric_range" }, + { + "entity": "spm_unit", + "name": "ny_heap_dwelling_type" + }, + { + "entity": "tax_unit", + "name": "ny_other_additions" + }, + { + "entity": "tax_unit", + "name": "ny_other_subtractions" + }, + { + "entity": "tax_unit", + "name": "ny_pass_through_entity_tax_credit_claimed" + }, { "entity": "tax_unit", "name": "ny_qualified_geothermal_energy_system_expenditures" @@ -2891,6 +3231,10 @@ "entity": "tax_unit", "name": "ny_qualified_solar_energy_systems_equipment_expenditures" }, + { + "entity": "person", + "name": "ny_ssp_care_setting" + }, { "entity": "person", "name": "ny_ui_base_period_wages" @@ -2981,23 +3325,31 @@ }, { "entity": "person", - "name": "oh_other_add_backs" + "name": "oh_other_additions" }, { - "entity": "tax_unit", - "name": "oh_refundable_credits" + "entity": "person", + "name": "oh_other_subtractions" }, { "entity": "person", - "name": "oh_section_179_expense_add_back" + "name": "oh_qualifying_capital_gain" }, { "entity": "person", - "name": "oh_uniformed_services_retirement_income_deduction" + "name": "oh_qualifying_capital_gain_deductible_payroll" }, { "entity": "tax_unit", - "name": "ok_additions" + "name": "oh_refundable_credits" + }, + { + "entity": "person", + "name": "oh_rss_certified" + }, + { + "entity": "person", + "name": "oh_section_179_expense_add_back" }, { "entity": "tax_unit", @@ -3011,6 +3363,22 @@ "entity": "person", "name": "ok_ccs_star_level" }, + { + "entity": "spm_unit", + "name": "ok_liheap_dwelling_type" + }, + { + "entity": "tax_unit", + "name": "ok_other_additions" + }, + { + "entity": "tax_unit", + "name": "ok_other_subtractions" + }, + { + "entity": "person", + "name": "ok_ssp_is_excluded" + }, { "entity": "person", "name": "ok_ui_base_period_taxable_wages" @@ -3031,10 +3399,6 @@ "entity": "person", "name": "ok_ui_high_quarter_total_wages" }, - { - "entity": "tax_unit", - "name": "or_additions" - }, { "entity": "person", "name": "or_erdc_provider_area" @@ -3047,9 +3411,37 @@ "entity": "tax_unit", "name": "or_federal_pension_subtraction" }, + { + "entity": "spm_unit", + "name": "or_liheap_dwelling_type" + }, + { + "entity": "tax_unit", + "name": "or_other_additions" + }, { "entity": "tax_unit", - "name": "or_tax_before_credits_in_prior_year" + "name": "or_other_subtractions" + }, + { + "entity": "person", + "name": "or_ssp_approved_initial_room_board" + }, + { + "entity": "person", + "name": "or_ssp_care_liability" + }, + { + "entity": "person", + "name": "or_ssp_category" + }, + { + "entity": "person", + "name": "or_ssp_inaccessible_income" + }, + { + "entity": "person", + "name": "or_ssp_spousal_diversion_difference" }, { "entity": "person", @@ -3107,6 +3499,10 @@ "entity": "person", "name": "pa_philadelphia_wage_tax_taxable_wages" }, + { + "entity": "person", + "name": "pa_ssp_care_home" + }, { "entity": "person", "name": "pa_uc_base_year_wages" @@ -3123,6 +3519,14 @@ "entity": "person", "name": "pa_uc_highest_quarter_wages" }, + { + "entity": "person", + "name": "parent_1_id" + }, + { + "entity": "person", + "name": "parent_2_id" + }, { "entity": "household", "name": "parent_has_less_than_high_school_education" @@ -3139,6 +3543,10 @@ "entity": "person", "name": "partnership_self_employment_net_earnings" }, + { + "entity": "person", + "name": "passive_estate_income" + }, { "entity": "person", "name": "passive_partnership_s_corp_income" @@ -3375,10 +3783,22 @@ "entity": "person", "name": "ri_ccap_step_rating" }, + { + "entity": "tax_unit", + "name": "ri_other_additions" + }, + { + "entity": "tax_unit", + "name": "ri_other_subtractions" + }, { "entity": "tax_unit", "name": "ri_section_179_expense_add_back" }, + { + "entity": "person", + "name": "ri_ssp_certified_residential_care" + }, { "entity": "person", "name": "roth_401k_contributions_desired" @@ -3399,10 +3819,6 @@ "entity": "person", "name": "salt_refund_income" }, - { - "entity": "tax_unit", - "name": "salt_refund_last_year" - }, { "entity": "person", "name": "sc_ccap_provider_type" @@ -3419,6 +3835,14 @@ "entity": "person", "name": "sc_ccap_second_child_discount_rate" }, + { + "entity": "tax_unit", + "name": "sc_other_additions" + }, + { + "entity": "tax_unit", + "name": "sc_other_subtractions" + }, { "entity": "person", "name": "sc_tuition_credit" @@ -3435,6 +3859,22 @@ "entity": "person", "name": "sd_cca_provider_type" }, + { + "entity": "person", + "name": "sd_ssp_approved_care_cost" + }, + { + "entity": "person", + "name": "sd_ssp_care_certified" + }, + { + "entity": "person", + "name": "sd_ssp_care_income_deductions" + }, + { + "entity": "person", + "name": "sd_ssp_care_setting" + }, { "entity": "spm_unit", "name": "sd_tanf_is_shared_living" @@ -3445,11 +3885,23 @@ }, { "entity": "tax_unit", - "name": "second_home_mortgage_interest" + "name": "second_home_mortgage_origination_year" }, { - "entity": "tax_unit", - "name": "second_home_mortgage_origination_year" + "entity": "person", + "name": "second_residence_mortgage_insurance_premiums" + }, + { + "entity": "person", + "name": "second_residence_mortgage_interest" + }, + { + "entity": "person", + "name": "second_residence_mortgage_points" + }, + { + "entity": "person", + "name": "section_1202_gain" }, { "entity": "tax_unit", @@ -3491,6 +3943,10 @@ "entity": "tax_unit", "name": "small_wind_energy_property_expenditures" }, + { + "entity": "person", + "name": "snap_alien_qualifying_quarters" + }, { "entity": "spm_unit", "name": "snap_self_employment_income_expense" @@ -3591,6 +4047,18 @@ "entity": "person", "name": "ssi_reported" }, + { + "entity": "person", + "name": "ssi_resource_deeming_child_is_ineligible" + }, + { + "entity": "person", + "name": "ssi_resource_deeming_excluded_military_resources" + }, + { + "entity": "person", + "name": "ssi_resource_deeming_waiver" + }, { "entity": "person", "name": "ssi_shelter_support_value" @@ -3635,6 +4103,10 @@ "entity": "person", "name": "survivor_benefits" }, + { + "entity": "person", + "name": "takes_up_medicare_part_d_if_eligible" + }, { "entity": "person", "name": "tax_exempt_401k_distributions" @@ -3643,6 +4115,10 @@ "entity": "person", "name": "tax_exempt_403b_distributions" }, + { + "entity": "person", + "name": "tax_exempt_disability_benefits" + }, { "entity": "person", "name": "tax_exempt_ira_distributions" @@ -3667,6 +4143,10 @@ "entity": "tax_unit", "name": "tax_unit_income_ami_ratio" }, + { + "entity": "person", + "name": "tax_unit_role_input" + }, { "entity": "tax_unit", "name": "tax_unit_stillborn_children" @@ -3807,6 +4287,10 @@ "entity": "tax_unit", "name": "unrecaptured_section_1250_gain" }, + { + "entity": "tax_unit", + "name": "unrecaptured_section_1250_gain_before_losses" + }, { "entity": "person", "name": "unreimbursed_business_employee_expenses" @@ -3835,13 +4319,17 @@ "entity": "tax_unit", "name": "used_clean_vehicle_sale_price" }, + { + "entity": "person", + "name": "ut_ccap_provider_type" + }, { "entity": "tax_unit", - "name": "ut_additions" + "name": "ut_other_additions" }, { - "entity": "person", - "name": "ut_ccap_provider_type" + "entity": "tax_unit", + "name": "ut_other_subtractions" }, { "entity": "person", @@ -3868,21 +4356,17 @@ "name": "ut_ui_weeks_unemployed" }, { - "entity": "tax_unit", - "name": "utilities_included_in_rent" + "entity": "person", + "name": "va_ag_certified" }, { - "entity": "tax_unit", - "name": "va_additions" + "entity": "person", + "name": "va_ag_facility_rate" }, { "entity": "spm_unit", "name": "va_ccsp_enrolled" }, - { - "entity": "person", - "name": "va_ccsp_is_full_day" - }, { "entity": "person", "name": "va_ccsp_provider_type" @@ -3891,14 +4375,50 @@ "entity": "person", "name": "va_educator_expenses" }, + { + "entity": "tax_unit", + "name": "va_other_additions" + }, + { + "entity": "tax_unit", + "name": "va_other_subtractions" + }, { "entity": "person", "name": "veterans_benefits" }, + { + "entity": "person", + "name": "vt_aabd_care_setting" + }, + { + "entity": "person", + "name": "vt_aabd_ep_additional_countable_income" + }, + { + "entity": "person", + "name": "vt_aabd_ep_level" + }, + { + "entity": "person", + "name": "vt_aabd_ep_nonspouse_essential_person" + }, + { + "entity": "person", + "name": "vt_aabd_ep_passes_state_resource_test" + }, { "entity": "person", "name": "vt_ccfap_provider_type" }, + { + "entity": "tax_unit", + "name": "vt_other_additions" + }, + { + "entity": "tax_unit", + "name": "vt_other_subtractions" + }, { "entity": "household", "name": "vtd" @@ -3963,10 +4483,78 @@ "entity": "person", "name": "weeks_unemployed" }, + { + "entity": "person", + "name": "weeks_worked" + }, + { + "entity": "person", + "name": "wi_cts_additional_flat_disregard" + }, + { + "entity": "person", + "name": "wi_cts_additional_fraction_disregard" + }, + { + "entity": "person", + "name": "wi_cts_child_excluded" + }, + { + "entity": "person", + "name": "wi_cts_graduates_before_19" + }, + { + "entity": "family", + "name": "wi_cts_large_group_net_income_limit" + }, + { + "entity": "family", + "name": "wi_cts_nonfinancially_ineligible" + }, + { + "entity": "person", + "name": "wi_cts_other_countable_resources" + }, + { + "entity": "person", + "name": "wi_cts_other_qualifying_immigration_status" + }, + { + "entity": "person", + "name": "wi_cts_part_time_student" + }, + { + "entity": "person", + "name": "wi_cts_received_recently" + }, + { + "entity": "household", + "name": "wi_cts_tribal_area_i" + }, + { + "entity": "tax_unit", + "name": "wi_other_additions" + }, + { + "entity": "tax_unit", + "name": "wi_other_subtractions" + }, { "entity": "person", "name": "wi_shares_provider_type" }, + { + "entity": "person", + "name": "wi_ssi_e_certified" + }, + { + "entity": "person", + "name": "wi_ssi_e_for_home_care" + }, + { + "entity": "person", + "name": "wi_ssp_institutional_continuation" + }, { "entity": "person", "name": "wic_breastfeeding_infant_count" @@ -3983,10 +4571,6 @@ "entity": "person", "name": "workers_compensation" }, - { - "entity": "tax_unit", - "name": "wv_additions" - }, { "entity": "person", "name": "wv_ccap_non_traditional_hours" @@ -3999,6 +4583,14 @@ "entity": "person", "name": "wv_ccap_quality_tier" }, + { + "entity": "tax_unit", + "name": "wv_other_additions" + }, + { + "entity": "tax_unit", + "name": "wv_other_subtractions" + }, { "entity": "spm_unit", "name": "wy_ccap_enrolled" diff --git a/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/frame.json b/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/frame.json index 95d24ac25..7cdf29a47 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/frame.json +++ b/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/frame.json @@ -63,6 +63,7 @@ "takes_up_chip_if_eligible", "takes_up_basic_health_program_if_eligible", "takes_up_medicare_if_eligible", + "takes_up_medicare_part_d_if_eligible", "takes_up_ssi_if_eligible", "takes_up_head_start_if_eligible", "takes_up_early_head_start_if_eligible", diff --git a/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/person.csv b/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/person.csv index 10d9b6548..2c35476b5 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/person.csv +++ b/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/person.csv @@ -1,6 +1,6 @@ -person_id,person_household_id,person_tax_unit_id,person_spm_unit_id,person_family_id,person_marital_unit_id,A_AGE,A_SEX,source_year,measured,person_spine_source_id,person_source_id,person_support_channel,person_support_clone_index,age,SEMP,long_term_capital_gains_before_response,non_sch_d_capital_gains,schedule_d_capital_gain_distributions,self_employment_income_before_lsr,non_qualified_dividend_income,estate_income_would_be_qualified,farm_operations_income_would_be_qualified,farm_rent_income_would_be_qualified,partnership_s_corp_income_would_be_qualified,rental_income_would_be_qualified,self_employment_income_would_be_qualified,sstb_self_employment_income_would_be_qualified,business_is_sstb,qualified_bdc_income,qualified_reit_and_ptp_income,sstb_self_employment_income_before_lsr,sstb_unadjusted_basis_qualified_property,sstb_w2_wages_from_qualified_business,unadjusted_basis_qualified_property,w2_wages_from_qualified_business,takes_up_medicaid_if_eligible,takes_up_chip_if_eligible,takes_up_basic_health_program_if_eligible,takes_up_medicare_if_eligible,takes_up_ssi_if_eligible,takes_up_head_start_if_eligible,takes_up_early_head_start_if_eligible,takes_up_wic_if_eligible,short_term_capital_gains,long_term_capital_gains_on_collectibles,__stratum__ -83,83,83,83,83,83,4.0_0000000000000000e+01,1,2024,8.3_0000000000000000e+01,83,83,asec,0,4.0_0000000000000000e+01,1.0_0000000000000000e+01,1.0_0000000000000000e+02,5.0_0000000000000000e+00,7.0_0000000000000000e+00,1.0_0000000000000000e+01,1.0_0000000000000000e+00,False,False,False,False,False,False,False,True,2.0_0000000000000000e+00,3.0_0000000000000000e+00,5.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,2.0_0000000000000000e+02,1.0_0000000000000000e+02,True,True,True,True,True,True,True,True,,,fixture -84,84,84,84,84,84,4.0_0000000000000000e+01,1,2024,1.0_8300000000000000e+03,83,84,acs,0,4.0_0000000000000000e+01,2.0_0000000000000000e+01,2.0_0000000000000000e+02,1.0_0000000000000000e+01,,2.0_0000000000000000e+01,2.0_0000000000000000e+00,False,False,False,False,False,False,False,False,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,False,False,False,False,False,False,False,False,,,fixture -183,183,183,183,183,183,4.0_0000000000000000e+01,1,2024,8.3_0000000000000000e+01,83,83,asec,1,4.0_0000000000000000e+01,1.0_0000000000000000e+01,1.0_0000000000000000e+02,5.0_0000000000000000e+00,7.0_0000000000000000e+00,1.0_0000000000000000e+01,1.0_0000000000000000e+00,False,False,False,False,False,False,False,True,2.0_0000000000000000e+00,3.0_0000000000000000e+00,5.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,2.0_0000000000000000e+02,1.0_0000000000000000e+02,True,True,True,True,True,True,True,True,,,fixture -184,184,184,184,184,184,4.0_0000000000000000e+01,1,2024,1.0_8300000000000000e+03,83,84,acs,1,4.0_0000000000000000e+01,2.0_0000000000000000e+01,2.0_0000000000000000e+02,1.0_0000000000000000e+01,,2.0_0000000000000000e+01,2.0_0000000000000000e+00,False,False,False,False,False,False,False,False,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,False,False,False,False,False,False,False,False,,,fixture -283,283,283,283,283,283,4.0_0000000000000000e+01,1,2024,8.3_0000000000000000e+01,83,83,asec,2,4.0_0000000000000000e+01,1.0_0000000000000000e+01,5.0_0000000000000000e+02,3.0_0000000000000000e+00,7.0_0000000000000000e+00,1.0_0000000000000000e+01,1.0_0000000000000000e+00,False,False,False,False,False,False,False,True,2.0_0000000000000000e+00,3.0_0000000000000000e+00,5.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,2.0_0000000000000000e+02,1.0_0000000000000000e+02,True,True,True,True,True,True,True,True,1.0_0000000000000000e+00,2.0_0000000000000000e+00,fixture +person_id,person_household_id,person_tax_unit_id,person_spm_unit_id,person_family_id,person_marital_unit_id,A_AGE,A_SEX,source_year,measured,person_spine_source_id,person_source_id,person_support_channel,person_support_clone_index,age,SEMP,long_term_capital_gains_before_response,non_sch_d_capital_gains,schedule_d_capital_gain_distributions,self_employment_income_before_lsr,non_qualified_dividend_income,estate_income_would_be_qualified,farm_operations_income_would_be_qualified,farm_rent_income_would_be_qualified,partnership_s_corp_income_would_be_qualified,rental_income_would_be_qualified,self_employment_income_would_be_qualified,sstb_self_employment_income_would_be_qualified,business_is_sstb,qualified_bdc_income,qualified_reit_and_ptp_income,sstb_self_employment_income_before_lsr,sstb_unadjusted_basis_qualified_property,sstb_w2_wages_from_qualified_business,unadjusted_basis_qualified_property,w2_wages_from_qualified_business,takes_up_medicaid_if_eligible,takes_up_chip_if_eligible,takes_up_basic_health_program_if_eligible,takes_up_medicare_if_eligible,takes_up_medicare_part_d_if_eligible,takes_up_ssi_if_eligible,takes_up_head_start_if_eligible,takes_up_early_head_start_if_eligible,takes_up_wic_if_eligible,short_term_capital_gains,long_term_capital_gains_on_collectibles,__stratum__ +83,83,83,83,83,83,4.0_0000000000000000e+01,1,2024,8.3_0000000000000000e+01,83,83,asec,0,4.0_0000000000000000e+01,1.0_0000000000000000e+01,1.0_0000000000000000e+02,5.0_0000000000000000e+00,7.0_0000000000000000e+00,1.0_0000000000000000e+01,1.0_0000000000000000e+00,False,False,False,False,False,False,False,True,2.0_0000000000000000e+00,3.0_0000000000000000e+00,5.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,2.0_0000000000000000e+02,1.0_0000000000000000e+02,True,True,True,True,True,True,True,True,True,,,fixture +84,84,84,84,84,84,4.0_0000000000000000e+01,1,2024,1.0_8300000000000000e+03,83,84,acs,0,4.0_0000000000000000e+01,2.0_0000000000000000e+01,2.0_0000000000000000e+02,1.0_0000000000000000e+01,,2.0_0000000000000000e+01,2.0_0000000000000000e+00,False,False,False,False,False,False,False,False,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,False,False,False,False,False,False,False,False,False,,,fixture +183,183,183,183,183,183,4.0_0000000000000000e+01,1,2024,8.3_0000000000000000e+01,83,83,asec,1,4.0_0000000000000000e+01,1.0_0000000000000000e+01,1.0_0000000000000000e+02,5.0_0000000000000000e+00,7.0_0000000000000000e+00,1.0_0000000000000000e+01,1.0_0000000000000000e+00,False,False,False,False,False,False,False,True,2.0_0000000000000000e+00,3.0_0000000000000000e+00,5.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,2.0_0000000000000000e+02,1.0_0000000000000000e+02,True,True,True,True,True,True,True,True,True,,,fixture +184,184,184,184,184,184,4.0_0000000000000000e+01,1,2024,1.0_8300000000000000e+03,83,84,acs,1,4.0_0000000000000000e+01,2.0_0000000000000000e+01,2.0_0000000000000000e+02,1.0_0000000000000000e+01,,2.0_0000000000000000e+01,2.0_0000000000000000e+00,False,False,False,False,False,False,False,False,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,False,False,False,False,False,False,False,False,False,,,fixture +283,283,283,283,283,283,4.0_0000000000000000e+01,1,2024,8.3_0000000000000000e+01,83,83,asec,2,4.0_0000000000000000e+01,1.0_0000000000000000e+01,5.0_0000000000000000e+02,3.0_0000000000000000e+00,7.0_0000000000000000e+00,1.0_0000000000000000e+01,1.0_0000000000000000e+00,False,False,False,False,False,False,False,True,2.0_0000000000000000e+00,3.0_0000000000000000e+00,5.0_0000000000000000e+00,0.0_0000000000000000e+00,0.0_0000000000000000e+00,2.0_0000000000000000e+02,1.0_0000000000000000e+02,True,True,True,True,True,True,True,True,True,1.0_0000000000000000e+00,2.0_0000000000000000e+00,fixture diff --git a/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/schema.json b/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/schema.json index 810fb2b28..d7da1b491 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/schema.json +++ b/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/sources/schema.json @@ -66,6 +66,7 @@ "takes_up_head_start_if_eligible": "bool", "takes_up_medicaid_if_eligible": "bool", "takes_up_medicare_if_eligible": "bool", + "takes_up_medicare_part_d_if_eligible": "bool", "takes_up_ssi_if_eligible": "bool", "takes_up_wic_if_eligible": "bool", "unadjusted_basis_qualified_property": "float64", diff --git a/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/us_post_transfer.json b/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/us_post_transfer.json index 3c5251e7c..b4614d65c 100644 --- a/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/us_post_transfer.json +++ b/packages/microcosm-graph/tests/fixtures/parity/us_post_transfer/us_post_transfer.json @@ -1 +1 @@ -{"country":"us","nodes":[{"base":null,"citation":"","description":"Load the synthetic stacked pool after ACS transfer.","id":"create_stacked_pool","inputs":[],"kernel":"us.post_transfer.create@1","mass":"conserve","outputs":[{"column":"A_AGE","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"A_SEX","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"source_year","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"measured","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_spine_source_id","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"age","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"SEMP","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"long_term_capital_gains_before_response","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"non_sch_d_capital_gains","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"schedule_d_capital_gain_distributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"self_employment_income_before_lsr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"non_qualified_dividend_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"estate_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"farm_operations_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"farm_rent_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"partnership_s_corp_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"rental_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"self_employment_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"sstb_self_employment_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"business_is_sstb","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"qualified_bdc_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"qualified_reit_and_ptp_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sstb_self_employment_income_before_lsr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sstb_unadjusted_basis_qualified_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sstb_w2_wages_from_qualified_business","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"unadjusted_basis_qualified_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"w2_wages_from_qualified_business","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_medicaid_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_chip_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_basic_health_program_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_medicare_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_ssi_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_head_start_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_early_head_start_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_wic_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"short_term_capital_gains","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"long_term_capital_gains_on_collectibles","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"TYPEHUGQ","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_spine_source_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"tax_unit_spine_source_id","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"tax_unit_source_id","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"tax_unit_support_channel","dtype":"string","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"tax_unit_support_clone_index","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_dc_ptc","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_aca_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_ca_premium_subsidy_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_co_premium_assistance_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_nm_premium_assistance_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_transfer_applied","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_donor_is_synthetic","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_donor_source_id","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_donor_filing_status_code","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_donor_agi_band_index","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_transfer_weight","dtype":"float64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"unrecaptured_section_1250_gain","dtype":"float64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"spm_unit_spine_source_id","dtype":"int64","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"spm_unit_source_id","dtype":"int64","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"spm_unit_support_channel","dtype":"string","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"spm_unit_support_clone_index","dtype":"int64","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"takes_up_snap_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"takes_up_tanf_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"takes_up_housing_assistance_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"family_spine_source_id","dtype":"int64","entity":"family","ownership":"produced","rows":"all"},{"column":"family_source_id","dtype":"int64","entity":"family","ownership":"produced","rows":"all"},{"column":"family_support_channel","dtype":"string","entity":"family","ownership":"produced","rows":"all"},{"column":"family_support_clone_index","dtype":"int64","entity":"family","ownership":"produced","rows":"all"},{"column":"marital_unit_spine_source_id","dtype":"int64","entity":"marital_unit","ownership":"produced","rows":"all"},{"column":"marital_unit_source_id","dtype":"int64","entity":"marital_unit","ownership":"produced","rows":"all"},{"column":"marital_unit_support_channel","dtype":"string","entity":"marital_unit","ownership":"produced","rows":"all"},{"column":"marital_unit_support_clone_index","dtype":"int64","entity":"marital_unit","ownership":"produced","rows":"all"}],"params":{"context_schema_version":1},"population":null,"sources":["stacked"],"structural":"create","weights":null},{"base":"create_stacked_pool","citation":"","description":"Open a population version for prepare_stacked_tail_derivation rewrites.","id":"prepare_stacked_tail_derivation.boundary","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Clear clone-2 Schedule-D incumbents before derivation.","id":"prepare_stacked_tail_derivation","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.prepare@1","mass":"conserve","outputs":[{"column":"schedule_d_capital_gain_distributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"prepare_stacked_tail_derivation"},"population":"prepare_stacked_tail_derivation.boundary","sources":["stacked"],"structural":"none","weights":null},{"base":"prepare_stacked_tail_derivation.boundary","citation":"","description":"Open a population version for derive_multispine_pool_inputs rewrites.","id":"derive_multispine_pool_inputs.boundary","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Derive Schedule-D and reconcile the QBI input family.","id":"derive_multispine_pool_inputs","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","non_qualified_dividend_income","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.derive@1","mass":"conserve","outputs":[{"column":"schedule_d_capital_gain_distributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"estate_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"farm_operations_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"farm_rent_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"partnership_s_corp_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rental_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sstb_self_employment_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"business_is_sstb","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"qualified_bdc_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"qualified_reit_and_ptp_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sstb_self_employment_income_before_lsr","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sstb_unadjusted_basis_qualified_property","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sstb_w2_wages_from_qualified_business","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"unadjusted_basis_qualified_property","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"w2_wages_from_qualified_business","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income_before_lsr","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"qbi_contract_version":2,"remaining_stage_manifest_sha256":"0a84565a659a6404cb17715dda36f094a87431c713c7a37bf65a936b16937325","schedule_d_asset_sha256":"e7d31a5956dc420940002b5c5120b4fa7f6af6fa8bf071d488affe35b616611d","stage":"derive_multispine_pool_inputs"},"population":"derive_multispine_pool_inputs.boundary","sources":["stacked"],"structural":"none","weights":null},{"base":"derive_multispine_pool_inputs.boundary","citation":"","description":"Open a population version for seed_multispine_pool_inputs rewrites.","id":"seed_multispine_pool_inputs.boundary","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Seed take-up inputs and disclose remaining defaults.","id":"seed_multispine_pool_inputs","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.seed@1","mass":"conserve","outputs":[{"column":"takes_up_snap_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_tanf_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_eitc","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_medicaid_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_chip_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_basic_health_program_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_medicare_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_ssi_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_dc_ptc","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_head_start_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_early_head_start_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_housing_assistance_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_wic_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_aca_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_ca_premium_subsidy_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_co_premium_assistance_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_nm_premium_assistance_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"engine_ref":"policyengine-us","seed":0,"stage":"seed_multispine_pool_inputs","take_up_contract_version":1,"take_up_resource_sha256":"9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35","time_period":2024},"population":"seed_multispine_pool_inputs.boundary","sources":["stacked"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Materialize SSI on the disposable agreement view.","id":"materialize_multispine_agreement_outputs","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain","takes_up_eitc"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.materialize@1","mass":"conserve","outputs":[{"column":"ssi","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"engine_input_defaults_sha256":"f938af6506623f453ca55922cf4a8ba6443d5f780f85e4381b777083a90396a0","engine_input_projection_sha256":"cefb137f164c6629589a887bbb56831ebc463cd46909a72ead4dbe0557961e61","engine_ref":"policyengine-us","household_batch_size":5000,"ssi_dependency_sha256":"200ca39e784511e9ede685261f5e0840198ec2b9c4292a522c0fc504c535b31c","stage":"materialize_multispine_agreement_outputs","time_period":2024},"population":"seed_multispine_pool_inputs.boundary","sources":["stacked"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Synthetic stacked US pool at the completed ACS-transfer boundary.","name":"stacked"}]} +{"country":"us","nodes":[{"base":null,"citation":"","description":"Load the synthetic stacked pool after ACS transfer.","id":"create_stacked_pool","inputs":[],"kernel":"us.post_transfer.create@1","mass":"conserve","outputs":[{"column":"A_AGE","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"A_SEX","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"source_year","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"measured","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_spine_source_id","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_source_id","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_channel","dtype":"string","entity":"person","ownership":"produced","rows":"all"},{"column":"person_support_clone_index","dtype":"int64","entity":"person","ownership":"produced","rows":"all"},{"column":"age","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"SEMP","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"long_term_capital_gains_before_response","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"non_sch_d_capital_gains","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"schedule_d_capital_gain_distributions","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"self_employment_income_before_lsr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"non_qualified_dividend_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"estate_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"farm_operations_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"farm_rent_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"partnership_s_corp_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"rental_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"self_employment_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"sstb_self_employment_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"business_is_sstb","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"qualified_bdc_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"qualified_reit_and_ptp_income","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sstb_self_employment_income_before_lsr","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sstb_unadjusted_basis_qualified_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"sstb_w2_wages_from_qualified_business","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"unadjusted_basis_qualified_property","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"w2_wages_from_qualified_business","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_medicaid_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_chip_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_basic_health_program_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_medicare_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_medicare_part_d_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_ssi_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_head_start_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_early_head_start_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"takes_up_wic_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rows":"all"},{"column":"short_term_capital_gains","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"long_term_capital_gains_on_collectibles","dtype":"float64","entity":"person","ownership":"produced","rows":"all"},{"column":"TYPEHUGQ","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_spine_source_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_source_id","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_channel","dtype":"string","entity":"household","ownership":"produced","rows":"all"},{"column":"household_support_clone_index","dtype":"int64","entity":"household","ownership":"produced","rows":"all"},{"column":"tax_unit_spine_source_id","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"tax_unit_source_id","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"tax_unit_support_channel","dtype":"string","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"tax_unit_support_clone_index","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_dc_ptc","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_aca_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_ca_premium_subsidy_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_co_premium_assistance_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_nm_premium_assistance_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_transfer_applied","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_donor_is_synthetic","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_donor_source_id","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_donor_filing_status_code","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_donor_agi_band_index","dtype":"int64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"puf_capital_gains_tail_transfer_weight","dtype":"float64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"unrecaptured_section_1250_gain","dtype":"float64","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"spm_unit_spine_source_id","dtype":"int64","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"spm_unit_source_id","dtype":"int64","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"spm_unit_support_channel","dtype":"string","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"spm_unit_support_clone_index","dtype":"int64","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"takes_up_snap_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"takes_up_tanf_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"takes_up_housing_assistance_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rows":"all"},{"column":"family_spine_source_id","dtype":"int64","entity":"family","ownership":"produced","rows":"all"},{"column":"family_source_id","dtype":"int64","entity":"family","ownership":"produced","rows":"all"},{"column":"family_support_channel","dtype":"string","entity":"family","ownership":"produced","rows":"all"},{"column":"family_support_clone_index","dtype":"int64","entity":"family","ownership":"produced","rows":"all"},{"column":"marital_unit_spine_source_id","dtype":"int64","entity":"marital_unit","ownership":"produced","rows":"all"},{"column":"marital_unit_source_id","dtype":"int64","entity":"marital_unit","ownership":"produced","rows":"all"},{"column":"marital_unit_support_channel","dtype":"string","entity":"marital_unit","ownership":"produced","rows":"all"},{"column":"marital_unit_support_clone_index","dtype":"int64","entity":"marital_unit","ownership":"produced","rows":"all"}],"params":{"context_schema_version":1},"population":null,"sources":["stacked"],"structural":"create","weights":null},{"base":"create_stacked_pool","citation":"","description":"Open a population version for prepare_stacked_tail_derivation rewrites.","id":"prepare_stacked_tail_derivation.boundary","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_medicare_part_d_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Clear clone-2 Schedule-D incumbents before derivation.","id":"prepare_stacked_tail_derivation","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_medicare_part_d_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.prepare@1","mass":"conserve","outputs":[{"column":"schedule_d_capital_gain_distributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"stage":"prepare_stacked_tail_derivation"},"population":"prepare_stacked_tail_derivation.boundary","sources":["stacked"],"structural":"none","weights":null},{"base":"prepare_stacked_tail_derivation.boundary","citation":"","description":"Open a population version for derive_multispine_pool_inputs rewrites.","id":"derive_multispine_pool_inputs.boundary","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_medicare_part_d_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Derive Schedule-D and reconcile the QBI input family.","id":"derive_multispine_pool_inputs","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","non_qualified_dividend_income","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_medicare_part_d_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.derive@1","mass":"conserve","outputs":[{"column":"schedule_d_capital_gain_distributions","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"estate_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"farm_operations_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"farm_rent_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"partnership_s_corp_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"rental_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sstb_self_employment_income_would_be_qualified","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"business_is_sstb","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"qualified_bdc_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"qualified_reit_and_ptp_income","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sstb_self_employment_income_before_lsr","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sstb_unadjusted_basis_qualified_property","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"sstb_w2_wages_from_qualified_business","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"unadjusted_basis_qualified_property","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"w2_wages_from_qualified_business","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"self_employment_income_before_lsr","dtype":"float64","entity":"person","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"qbi_contract_version":2,"remaining_stage_manifest_sha256":"7681ca4573651f65ed87b09f0fd64e3724a7ba8001805d450a132093caed2fa9","schedule_d_asset_sha256":"e7d31a5956dc420940002b5c5120b4fa7f6af6fa8bf071d488affe35b616611d","stage":"derive_multispine_pool_inputs"},"population":"derive_multispine_pool_inputs.boundary","sources":["stacked"],"structural":"none","weights":null},{"base":"derive_multispine_pool_inputs.boundary","citation":"","description":"Open a population version for seed_multispine_pool_inputs rewrites.","id":"seed_multispine_pool_inputs.boundary","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_medicare_part_d_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.identity@1","mass":"conserve","outputs":[],"params":{},"population":null,"sources":[],"structural":"filter","weights":null},{"base":null,"citation":"","description":"Seed take-up inputs and disclose remaining defaults.","id":"seed_multispine_pool_inputs","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.seed@1","mass":"conserve","outputs":[{"column":"takes_up_snap_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_tanf_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_eitc","dtype":"bool","entity":"tax_unit","ownership":"produced","rows":"all"},{"column":"takes_up_medicaid_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_chip_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_basic_health_program_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_medicare_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_medicare_part_d_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_ssi_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_dc_ptc","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_head_start_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_early_head_start_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_housing_assistance_if_eligible","dtype":"bool","entity":"spm_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_wic_if_eligible","dtype":"bool","entity":"person","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_aca_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_ca_premium_subsidy_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_co_premium_assistance_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"},{"column":"takes_up_nm_premium_assistance_if_eligible","dtype":"bool","entity":"tax_unit","ownership":"produced","rewrite":true,"rows":"all"}],"params":{"engine_ref":"policyengine-us","seed":0,"stage":"seed_multispine_pool_inputs","take_up_contract_version":1,"take_up_resource_sha256":"24bdfcd795e973e0345ae68020ab7dbceda0d95cb673bc9da95460bd239a1451","time_period":2024},"population":"seed_multispine_pool_inputs.boundary","sources":["stacked"],"structural":"none","weights":null},{"base":null,"citation":"","description":"Materialize SSI on the disposable agreement view.","id":"materialize_multispine_agreement_outputs","inputs":[{"columns":["A_AGE","A_SEX","source_year","measured","person_spine_source_id","person_source_id","person_support_channel","person_support_clone_index","age","SEMP","long_term_capital_gains_before_response","non_sch_d_capital_gains","schedule_d_capital_gain_distributions","self_employment_income_before_lsr","non_qualified_dividend_income","estate_income_would_be_qualified","farm_operations_income_would_be_qualified","farm_rent_income_would_be_qualified","partnership_s_corp_income_would_be_qualified","rental_income_would_be_qualified","self_employment_income_would_be_qualified","sstb_self_employment_income_would_be_qualified","business_is_sstb","qualified_bdc_income","qualified_reit_and_ptp_income","sstb_self_employment_income_before_lsr","sstb_unadjusted_basis_qualified_property","sstb_w2_wages_from_qualified_business","unadjusted_basis_qualified_property","w2_wages_from_qualified_business","takes_up_medicaid_if_eligible","takes_up_chip_if_eligible","takes_up_basic_health_program_if_eligible","takes_up_medicare_if_eligible","takes_up_medicare_part_d_if_eligible","takes_up_ssi_if_eligible","takes_up_head_start_if_eligible","takes_up_early_head_start_if_eligible","takes_up_wic_if_eligible","short_term_capital_gains","long_term_capital_gains_on_collectibles"],"entity":"person","rows":"all"},{"columns":["TYPEHUGQ","household_spine_source_id","household_source_id","household_support_channel","household_support_clone_index"],"entity":"household","rows":"all"},{"columns":["tax_unit_spine_source_id","tax_unit_source_id","tax_unit_support_channel","tax_unit_support_clone_index","takes_up_dc_ptc","takes_up_aca_if_eligible","takes_up_ca_premium_subsidy_if_eligible","takes_up_co_premium_assistance_if_eligible","takes_up_nm_premium_assistance_if_eligible","puf_capital_gains_tail_transfer_applied","puf_capital_gains_tail_donor_is_synthetic","puf_capital_gains_tail_donor_source_id","puf_capital_gains_tail_donor_filing_status_code","puf_capital_gains_tail_donor_agi_band_index","puf_capital_gains_tail_transfer_weight","unrecaptured_section_1250_gain","takes_up_eitc"],"entity":"tax_unit","rows":"all"},{"columns":["spm_unit_spine_source_id","spm_unit_source_id","spm_unit_support_channel","spm_unit_support_clone_index","takes_up_snap_if_eligible","takes_up_tanf_if_eligible","takes_up_housing_assistance_if_eligible"],"entity":"spm_unit","rows":"all"},{"columns":["family_spine_source_id","family_source_id","family_support_channel","family_support_clone_index"],"entity":"family","rows":"all"},{"columns":["marital_unit_spine_source_id","marital_unit_source_id","marital_unit_support_channel","marital_unit_support_clone_index"],"entity":"marital_unit","rows":"all"}],"kernel":"us.post_transfer.materialize@1","mass":"conserve","outputs":[{"column":"ssi","dtype":"float64","entity":"person","ownership":"produced","rows":"all"}],"params":{"engine_input_defaults_sha256":"6074e12fe8a712a0c605f334073ec178c94bf20449131463b704c859c3acbb84","engine_input_projection_sha256":"f76224d83f92cc165205410e5f5d71f634899a2fd0c687540656aab643899bd2","engine_ref":"policyengine-us","household_batch_size":5000,"ssi_dependency_sha256":"b7f3f6bec42d8eb496d2a24bc94b0f81a12b30960a2725a009f88f5295003971","stage":"materialize_multispine_agreement_outputs","time_period":2024},"population":"seed_multispine_pool_inputs.boundary","sources":["stacked"],"structural":"none","weights":null}],"sources":[{"codec":"csv-tables","description":"Synthetic stacked US pool at the completed ACS-transfer boundary.","name":"stacked"}]} diff --git a/test_support/microcosm_build/spec_engine_engine_abi.py b/test_support/microcosm_build/spec_engine_engine_abi.py index 5490b5b14..bfeaba6da 100644 --- a/test_support/microcosm_build/spec_engine_engine_abi.py +++ b/test_support/microcosm_build/spec_engine_engine_abi.py @@ -59,7 +59,7 @@ def _fake_domains() -> dict[str, object]: "take_up": { "programs": [ {"id": f"program_{index:02d}", "variable": f"variable_{index:02d}"} - for index in range(17) + for index in range(engine_abi_module.US_TAKE_UP_PROGRAM_COUNT) ] }, } @@ -75,7 +75,7 @@ def _fake_engine_contract() -> dict[str, dict[str, object]]: "consumers": [f"consumer_{index:02d}"], "engine_class": "data_seeded", } - for index in range(17) + for index in range(engine_abi_module.US_TAKE_UP_PROGRAM_COUNT) } diff --git a/test_support/microcosm_build/spec_engine_inventory_coverage.py b/test_support/microcosm_build/spec_engine_inventory_coverage.py index 1d051f5c4..56b626c52 100644 --- a/test_support/microcosm_build/spec_engine_inventory_coverage.py +++ b/test_support/microcosm_build/spec_engine_inventory_coverage.py @@ -112,14 +112,14 @@ def binding() -> dict[str, object]: "itemization_batches": 5, "itemization_targets": 37, "late_groups": 19, - "late_targets": 70, + "late_targets": 69, "ownership_rows": 18, - "primary_effective_predictor_tuples": 65, + "primary_effective_predictor_tuples": 63, "primary_families": 1, - "primary_targets": 65, + "primary_targets": 63, "producer_authored_outputs": 92, - "producer_compiled_outputs": 227, - "producer_inputs": 2_744, + "producer_compiled_outputs": 224, + "producer_inputs": 2_741, "producer_nodes": 38, "producer_virtual_resources": 75, "release_rungs": 5, @@ -133,11 +133,11 @@ def binding() -> dict[str, object]: "stacked_checkpoint_full_components": 13, "stacked_checkpoint_pool_code_components": 19, "stacked_checkpoint_static_components": 10, - "tail_control_fields": 934, - "take_up_pipeline_steps": 28, - "take_up_programs": 17, + "tail_control_fields": 930, + "take_up_pipeline_steps": 29, + "take_up_programs": 18, "typed_artifacts": 84, - "typed_columns": 176, + "typed_columns": 175, "typed_entities": 8, "typed_scopes": 7, } diff --git a/test_support/microcosm_build/us_batched_target_materialization.py b/test_support/microcosm_build/us_batched_target_materialization.py index 93434d1fd..0e5af010c 100644 --- a/test_support/microcosm_build/us_batched_target_materialization.py +++ b/test_support/microcosm_build/us_batched_target_materialization.py @@ -496,37 +496,11 @@ def _materialize(builder, monkeypatch, frame, batch_size): return target_frame, registry, compilation, ledger - - - - - - - - - - _AGGREGATE_PROBE_TARGETS = ( _variable("aggregate_probe_total", base_variable="aggregate_probe"), ) - - - - - - - - - - - - - - - - def _second_batch_drops_a_column(real): calls = [0] @@ -549,10 +523,6 @@ def columns(*args, **kwargs): return columns - - - - # --------------------------------------------------------------------------- # Real engine (requires the [us] extra) # --------------------------------------------------------------------------- @@ -599,10 +569,6 @@ def _real_engine_frame() -> Frame: ) - - - - def _medicaid_frame() -> Frame: """Four California parents with children; the first parent's earnings exceed the other three parents' earnings.""" @@ -641,8 +607,6 @@ def _medicaid_frame() -> Frame: ) - - _POPULATION_AGGREGATE_MARKER = re.compile( r"\bsum_by_state\(|\bMicroSeries\(|\.decile_rank\(|\bquantile\(|\bpercentile\(" r"|\bnp\.(?:sum|mean|median|average|nansum|nanmean|nanmedian|sort|argsort" @@ -747,10 +711,9 @@ def _engine_population_aggregate_sources( return found - - -# These inspected 2.2.1 formulas compare a record's status or geography with -# parameter lists, literal lists or enum members, rather than another record. +# These inspected formulas (policyengine-us 2.2.1, and those 2.60.4 adds) +# compare a record's status or geography with parameter lists, literal +# lists or enum members, rather than another record. _CONSTANT_MEMBERSHIP_FORMULAS = { "additional_senior_deduction_eligible_person", "ak_ccap_rate_region", @@ -760,6 +723,7 @@ def _engine_population_aggregate_sources( "ca_ala_general_assistance_immigration_status_eligible", "ca_calworks_child_care_immigration_status_eligible_person", "ca_cc_general_assistance_immigration_status_eligible", + "ca_cchip_eligible", "ca_marin_general_relief_immigration_status_eligible_person", "ca_oc_general_relief_immigration_status_eligible", "ca_riv_general_relief_immigration_status_eligible", @@ -784,6 +748,7 @@ def _engine_population_aggregate_sources( "il_hfs_immigration_status_eligible", "il_tanf_county_group", "il_tanf_immigration_status_eligible_person", + "in_eap", "in_ny_mctd_zone_2", "in_nyc", "is_aca_ptc_immigration_status_eligible", @@ -792,9 +757,10 @@ def _engine_population_aggregate_sources( "is_ca_medicaid_immigration_status_eligible", "is_ccdf_immigration_eligible_child", "is_chip_fcep_eligible_person", + "is_chip_immigration_status_eligible", "is_citizen_or_legal_immigrant", - "is_in_snap_abawd_waived_area", "is_medicaid_immigration_status_eligible", + "is_medicaid_lawfully_residing_option_eligible", "is_snap_gross_test_full_income_count_alien", "is_snap_immigration_status_eligible", "is_snap_prorated_income_member", @@ -804,27 +770,37 @@ def _engine_population_aggregate_sources( "ks_dcf_csfp_county_eligible", "ks_tanf_county_group", "ky_ccap_rate_region", + "local_sales_tax", "ma_ccfa_immigration_status_eligible", "ma_ccfa_region", "ma_dese_csfp_county_eligible", "md_ccs_region", + "md_meap", "me_ccap_region", "meets_ctc_child_identification_requirements", "meets_ctc_identification_requirements", + "meets_snap_qualified_alien_waiting_period", "mo_ccs_region", + "mo_ssp_immigration_status_eligible", "ms_ccpp_facility_location", "mt_tanf_immigration_status_eligible_person", "ne_child_care_subsidy_location", "nh_ccap_immigration_status_eligible_person", + "nh_ssp_eligible", + "nj_liheap_region", "ny_ccap_county_group", + "ny_ssp", "oh_ccap_county_rate_category", + "oh_liheap", "or_healthier_oregon_immigration_status_eligible", + "or_liheap_region", "overtime_income_deduction_ssn_requirement_met", "pa_ccw_region", "pa_ccw_stepparent_county_group", "pa_tanf_county_group", "sc_ccap_geography", "sd_cca_region", + "sd_liheap_region", "state_group", "state_itemized_deductions", "state_standard_deduction", @@ -833,6 +809,7 @@ def _engine_population_aggregate_sources( "tn_ccap_county_tier", "trump_dividend_eligible", "tx_ccs_workforce_board_region", + "va_ag_maximum_care_rate", "va_ccsp_income_eligible", "va_ccsp_locality_group", "va_ccsp_ready_region", @@ -845,6 +822,8 @@ def _engine_population_aggregate_sources( "wa_tanf_immigration_status_eligible", "wa_wccc_center_region", "wa_wccc_region", + "wi_cts_area_i", + "wi_cts_child_eligible", "wic_income_limit", } diff --git a/test_support/microcosm_build/us_multispine_pool.py b/test_support/microcosm_build/us_multispine_pool.py index 47468ad9a..925df3b44 100644 --- a/test_support/microcosm_build/us_multispine_pool.py +++ b/test_support/microcosm_build/us_multispine_pool.py @@ -960,7 +960,7 @@ def _assert_pool_transfer_produced_encodings( # (microcosm#982). assert primary_predictors == puf_support_module.PUF_TAX_DETAIL_DEFAULT_PREDICTORS assert len(primary_predictors) == 8 - assert len(primary_targets) == 65 + assert len(primary_targets) == 63 primary_qrf_observations = [ observation diff --git a/test_support/microcosm_build/us_multispine_pool_tool.py b/test_support/microcosm_build/us_multispine_pool_tool.py index 031108f8a..99cafcc1e 100644 --- a/test_support/microcosm_build/us_multispine_pool_tool.py +++ b/test_support/microcosm_build/us_multispine_pool_tool.py @@ -1342,7 +1342,7 @@ def _canonical_late_transfer_receipt( "completion": { "status": "complete", "group_count": 19, - "target_count": 70, + "target_count": 69, "residual_null_rows": 0, }, } diff --git a/test_support/microcosm_build/us_spec_bundle.py b/test_support/microcosm_build/us_spec_bundle.py index ef4bc8868..860c79e02 100644 --- a/test_support/microcosm_build/us_spec_bundle.py +++ b/test_support/microcosm_build/us_spec_bundle.py @@ -195,13 +195,13 @@ def _load_generator_module(): LEGACY_COMPATIBILITY_SHA256 = { "source_stages.json": ( - "e75217c0db3075bf2664492167d31ce7ee82c2c5f6a70e3b67e8bb6f4ddd7ecf" + "cdd24258daf5e4e78b49330cfe9d5ea762aacc2e7232bb072e476632dcac378e" ), "support_spine.json": ( "68f37dc6ae6e0cde7ebccb53f88dd4a800e63456f838fa214ff98d1db8d815be" ), "take_up_contract.json": ( - "282dbc4c31e30134d008152138a95dd1a84f4355b44ac83607760dcaeef35db5" + "ab6bea51c7d774b5ac3f8c3caef603424bffefa7242ca4e8ab094c60cc3a5b5a" ), } diff --git a/test_support/microcosm_data/stored_inputs.py b/test_support/microcosm_data/stored_inputs.py index 4206bdf94..128503c48 100644 --- a/test_support/microcosm_data/stored_inputs.py +++ b/test_support/microcosm_data/stored_inputs.py @@ -154,10 +154,9 @@ def _column_strategies(st): #: Register entries that postdate the files examined for #1026 and rest on a -#: live producer instead: the parent ids (microcosm#884), bound to -#: eligibility_inputs.US_ELIGIBILITY_INPUTS_PARENT_ID_COLUMNS by -#: test_us_stored_input_register.py (microcosm-data cannot import the build). -_PRODUCER_BOUND_ENTRIES = frozenset({"parent_1_id", "parent_2_id"}) +#: live producer instead. The parent ids (microcosm#884) were the only ones; +#: policyengine-us 2.60 defines them as inputs, so they left the register. +_PRODUCER_BOUND_ENTRIES: frozenset[str] = frozenset() #: The role columns policyengine-core's ``build_from_dataset`` reads to build @@ -258,20 +257,60 @@ def fake_probe_runtime(monkeypatch): # --------------------------------------------------------------------------- -#: Each examined file's expected verdict: the refused columns, and how many -#: register entries it stores. The published default, its receipt child and -#: the ACS local-area release store two retired engine inputs: the #1026 WIC -#: draw as would_claim_wic, and the Medicare Part B target as -#: medicare_part_b_premiums (an input in every policyengine-us version read -#: from 1.452.0 to 1.670.2, replaced by medicare_part_b_premiums_reported by -#: 1.690.7). So each is refused naming exactly those two. The Route A -#: rehearsal export and the Build Q stacked multispine pool pass. +#: Each examined file's expected verdict against the locked policyengine-us +#: 2.60.4: the refused columns in report order, and how many register entries +#: it stores. The published default, its receipt child and the ACS local-area +#: release store two retired person inputs: the #1026 WIC draw as +#: would_claim_wic, and the Medicare Part B target as medicare_part_b_premiums +#: (an input in every policyengine-us version read from 1.452.0 to 1.670.2, +#: replaced by medicare_part_b_premiums_reported by 1.690.7). Every examined +#: file also stores the tax-unit first/second_home_mortgage_interest legs that +#: 2.60 removed (policyengine-us#9605); on 2.2.1 they were inputs. Each file +#: registers one entry fewer than on 2.2.1 because 2.60 defines +#: tax_unit_role_input. _EXPECTED_VERDICTS = { - _PUBLISHED_DEFAULT: (["medicare_part_b_premiums", "would_claim_wic"], 24), - _RECEIPT_CHILD: (["medicare_part_b_premiums", "would_claim_wic"], 24), - _ACS_LOCAL_RELEASE: (["medicare_part_b_premiums", "would_claim_wic"], 37), - _REHEARSAL_EXPORT: ([], 30), - _STACKED_POOL: ([], 43), + _PUBLISHED_DEFAULT: ( + [ + "first_home_mortgage_interest", + "medicare_part_b_premiums", + "second_home_mortgage_interest", + "would_claim_wic", + ], + 23, + ), + _RECEIPT_CHILD: ( + [ + "first_home_mortgage_interest", + "medicare_part_b_premiums", + "second_home_mortgage_interest", + "would_claim_wic", + ], + 23, + ), + _ACS_LOCAL_RELEASE: ( + [ + "first_home_mortgage_interest", + "medicare_part_b_premiums", + "second_home_mortgage_interest", + "would_claim_wic", + ], + 36, + ), + _REHEARSAL_EXPORT: ( + ["first_home_mortgage_interest", "second_home_mortgage_interest"], + 29, + ), + _STACKED_POOL: ( + ["first_home_mortgage_interest", "second_home_mortgage_interest"], + 42, + ), +} +#: The table each refused column is stored on. +_REFUSED_COLUMN_TABLE = { + "first_home_mortgage_interest": "tax_unit", + "second_home_mortgage_interest": "tax_unit", + "medicare_part_b_premiums": "person", + "would_claim_wic": "person", } diff --git a/tools/build_us_fiscal_refresh_release.py b/tools/build_us_fiscal_refresh_release.py index 44bebf56c..272547f9d 100644 --- a/tools/build_us_fiscal_refresh_release.py +++ b/tools/build_us_fiscal_refresh_release.py @@ -44,7 +44,7 @@ import time import tomllib import uuid -from collections.abc import Callable, Iterable, Mapping, Sequence +from collections.abc import Callable, Collection, Iterable, Mapping, Sequence from contextlib import contextmanager, nullcontext from datetime import UTC, datetime from pathlib import Path @@ -319,6 +319,7 @@ ) from microcosm.build.us_runtime.release_input_coverage import ( REFERENCE_ECPS_LAYER_RENAMES, + REFERENCE_ECPS_RETIRED_LAYERS, project_ecps_parity_known_gap_names, us_release_input_coverage_signal_counts, ) @@ -914,10 +915,6 @@ def _automatic_gc_suspended(): "Second-home mortgage decomposition not imputed; constant at the" " engine default (PolicyEngine/microcosm#38)." ), - "second_home_mortgage_interest": ( - "Second-home mortgage decomposition not imputed; constant at the" - " engine default (PolicyEngine/microcosm#38)." - ), "second_home_mortgage_origination_year": ( "Second-home mortgage decomposition not imputed; constant at the" " engine default (PolicyEngine/microcosm#38)." @@ -7542,6 +7539,37 @@ def _input_mass_reference_gate( ) +def _retire_ecps_reference_layers( + nonzero_shares: Mapping[str, float], + engine_inputs: Collection[str], +) -> tuple[dict[str, float], dict[str, str]]: + """Drop the reference layers whose engine input the pinned engine removed. + + Each retired layer (``REFERENCE_ECPS_RETIRED_LAYERS``) names the live + layer that carries its amount. The retirement applies only while the + engine defines the successor and not the retired input; anything else is + refused, because the register would then describe another engine. + Returns the kept layers and ``{retired: successor}`` for those dropped. + """ + + inputs = set(engine_inputs) + kept: dict[str, float] = {} + retired: dict[str, str] = {} + for name, share in nonzero_shares.items(): + successor = REFERENCE_ECPS_RETIRED_LAYERS.get(str(name)) + if successor is None: + kept[str(name)] = float(share) + continue + if str(name) in inputs or successor not in inputs: + raise ValueError( + f"eCPS parity reference layer {name!r} is registered as retired " + f"in favour of {successor!r}, but the installed engine " + f"{'still defines it' if str(name) in inputs else 'lacks the successor'}." + ) + retired[str(name)] = successor + return kept, retired + + def _project_ecps_reference_layers( nonzero_shares: Mapping[str, float], ) -> tuple[dict[str, float], dict[str, str]]: @@ -7630,9 +7658,10 @@ def _ecps_parity_gate( known_gaps = known_gaps if known_gaps is not None else load_ecps_parity_known_gaps() input_variables = _engine_input_variables() candidate_shares = us_nonzero_shares(base_frame, columns=input_variables) - reference_shares, applied_renames = _project_ecps_reference_layers( - reference.nonzero_shares + kept_shares, retired_layers = _retire_ecps_reference_layers( + reference.nonzero_shares, input_variables ) + reference_shares, applied_renames = _project_ecps_reference_layers(kept_shares) # Exemptions resolve through the same register, so a historical-name entry # exempts (and goes stale or dormant on) the live layer it names. projected_gaps, applied_gap_renames = _project_ecps_known_gaps(known_gaps) @@ -7645,6 +7674,7 @@ def _ecps_parity_gate( # The pinned reference predates engine input renames; its layers are graded # under the live names, and the projection is recorded, not hidden. details["reference_layer_renames"] = applied_renames + details["reference_layer_retirements"] = retired_layers details["known_gap_renames"] = applied_gap_renames details["reference"] = { "repo_id": reference.source.repo_id, @@ -7730,7 +7760,8 @@ def _ecps_parity_gate( # itemizer-masked Table 2.1 target (~$186.3B aged) # pins the itemizer share and pulls the full column # down toward the band from $474-526B. -# first_home_mortgage_interest follows home_mortgage_interest (second-home +# first_home_mortgage_interest (retired in policyengine-us 2.60) followed +# home_mortgage_interest (second-home # leg un-imputed / 0 per microcosm#38). # taxable_interest_income ref $320.159B band [$160.079B, $480.238B]; the # microcosm#489 adjudication VINDICATED this diff --git a/tools/build_us_release_input_coverage_manifest.py b/tools/build_us_release_input_coverage_manifest.py index be6f9f56f..6fee39987 100644 --- a/tools/build_us_release_input_coverage_manifest.py +++ b/tools/build_us_release_input_coverage_manifest.py @@ -44,6 +44,7 @@ from microcosm.build.us_runtime.release_input_coverage import ( REFERENCE_ECPS_LAYER_RENAMES, + REFERENCE_ECPS_RETIRED_LAYERS, project_ecps_parity_known_gap_names, ) @@ -170,7 +171,7 @@ "self-care difficulty item PEDISDRS by the adult_care_inputs " "base-builder stage. Also read by SNAP/Medicaid work-requirement " "logic and multiple state dependent-care formulas in PolicyEngine-US " - "2.2.1. " + "2.60.4. " "Currently absent — the intended red gate until the next base " "rebuild carries the stage through." ), @@ -178,19 +179,19 @@ "ASEC reported WIC receipt (WICYN == 1), stored on the reporting " "adult as her SPM unit's receipt carrier by " "cps_carried.derive_us_cps_carried_inputs; a formula-less monthly " - "boolean person input in PolicyEngine-US 2.2.1. " + _RECEIPT_INPUT_NOTE_TAIL + "boolean person input in PolicyEngine-US 2.60.4. " + _RECEIPT_INPUT_NOTE_TAIL ), "receives_snap": ( "ASEC reported SNAP receipt (maximum member SPM_SNAPSUB > 0 per SPM " "unit), carried by cps_carried.derive_us_cps_carried_inputs; a " "formula-less monthly boolean spm_unit input in PolicyEngine-US " - "2.2.1. " + _RECEIPT_INPUT_NOTE_TAIL + "2.60.4. " + _RECEIPT_INPUT_NOTE_TAIL ), "receives_tanf": ( "ASEC reported TANF receipt (any member with PAW_VAL > 0 and PAW_TYP " "1 or 3, per SPM unit), carried by " "cps_carried.derive_us_cps_carried_inputs; a formula-less monthly " - "boolean spm_unit input in PolicyEngine-US 2.2.1. " + _RECEIPT_INPUT_NOTE_TAIL + "boolean spm_unit input in PolicyEngine-US 2.60.4. " + _RECEIPT_INPUT_NOTE_TAIL ), } @@ -369,7 +370,7 @@ "without the adjacent-year carry the neutralization is a " "structural zero. The distinct " "previous_year_income_available flag has no formula consumer in " - "PolicyEngine-US 2.2.1 and remains protected by the hard " + "PolicyEngine-US 2.60.4 and remains protected by the hard " "non-default column gate." ), "issue": "PolicyEngine/microcosm#38", @@ -873,11 +874,11 @@ "student_loan_interest_ald", "early_withdrawal_penalty", "alimony_expense_ald", - "educator_expense", + "educator_expense_ald", "health_savings_account_ald", "self_employed_health_insurance_ald", "self_employed_pension_contribution_ald", - "traditional_ira_contributions", + "traditional_ira_deduction", "qualified_adoption_assistance_expense", "us_bonds_for_higher_ed", "specified_possession_income", @@ -893,7 +894,7 @@ "binding_inputs": ["domestic_production_ald"], "min_abs_effect": 1_000_000.0, "reason": ( - "PolicyEngine-US 2.2.1 excludes the former Section 199 deduction " + "PolicyEngine-US 2.60.4 excludes the former Section 199 deduction " "from current-law above-the-line deductions. This probe preserves " "the exact 2024 list and adds only domestic_production_ald, so " "baseline-minus-reform income tax must be positive. Without the " @@ -934,7 +935,7 @@ "binding_inputs": ["salt_refund_income"], "min_abs_effect": 1_000_000.0, "reason": ( - "PolicyEngine-US 2.2.1 includes salt_refund_income in the " + "PolicyEngine-US 2.60.4 includes salt_refund_income in the " "South Carolina, Idaho, and West Virginia subtraction lists. " "Neutralizing only that leaf removes the state subtraction and " "raises state income tax, so baseline-minus-reform state income " @@ -993,19 +994,63 @@ "2024-01-01.2024-12-31": [ "ssi", "general_assistance", + "ak_ssp", + "al_ssp", + "co_oap", + "co_state_supplement", + "ct_ssp_person", + "dc_ossp", + "de_ssp", + "fl_oss", + "ga_ssp_person", + "hi_oss", + "id_aabd", + "in_ssp", + "ks_sspp", + "ky_ssp", + "la_oss", + "ma_state_supplement", + "md_paa", + "me_ssp", + "mi_ssp_person", + "mn_msa_person", + "mo_ssp", + "mt_ssp", + "nc_sa", + "ne_aabd", + "nh_ssp", + "nj_ssp", + "nm_ssi_state_supplement", + "nv_oss", + "ny_ssp", + "oh_rss", + "ok_ssp", + "pa_ssp", + "ri_ssp", + "sc_ssi_state_supplement", + "sd_ssp", + "tx_ssi_state_supplement", + "ut_dhhs_ssp", + "va_ag", + "vt_aabd", + "wa_ssp", + "wi_ssp_countable_for_snap", + "wy_ssp", "pension_income", "veterans_benefits", - "unemployment_compensation", + "total_unemployment_compensation", "disability_benefits", "workers_compensation", "social_security", + "survivor_benefits", "retirement_distributions", - "rental_income", + "military_retirement_income", + "snap_rental_income", + "snap_farm_rent_income", "alimony_income", - "financial_assistance", - "survivor_benefits", "dividend_income", "interest_income", + "financial_assistance", "miscellaneous_income", ] } @@ -1060,19 +1105,63 @@ "2024-01-01.2024-12-31": [ "ssi", "general_assistance", + "ak_ssp", + "al_ssp", + "co_oap", + "co_state_supplement", + "ct_ssp_person", + "dc_ossp", + "de_ssp", + "fl_oss", + "ga_ssp_person", + "hi_oss", + "id_aabd", + "in_ssp", + "ks_sspp", + "ky_ssp", + "la_oss", + "ma_state_supplement", + "md_paa", + "me_ssp", + "mi_ssp_person", + "mn_msa_person", + "mo_ssp", + "mt_ssp", + "nc_sa", + "ne_aabd", + "nh_ssp", + "nj_ssp", + "nm_ssi_state_supplement", + "nv_oss", + "ny_ssp", + "oh_rss", + "ok_ssp", + "pa_ssp", + "ri_ssp", + "sc_ssi_state_supplement", + "sd_ssp", + "tx_ssi_state_supplement", + "ut_dhhs_ssp", + "va_ag", + "vt_aabd", + "wa_ssp", + "wi_ssp_countable_for_snap", + "wy_ssp", "pension_income", "veterans_benefits", - "unemployment_compensation", + "total_unemployment_compensation", "workers_compensation", "social_security", + "survivor_benefits", "retirement_distributions", - "rental_income", + "military_retirement_income", + "snap_rental_income", + "snap_farm_rent_income", "child_support_received", "alimony_income", - "financial_assistance", - "survivor_benefits", "dividend_income", "interest_income", + "financial_assistance", "miscellaneous_income", ] } @@ -1099,19 +1188,63 @@ "2024-01-01.2024-12-31": [ "ssi", "general_assistance", + "ak_ssp", + "al_ssp", + "co_oap", + "co_state_supplement", + "ct_ssp_person", + "dc_ossp", + "de_ssp", + "fl_oss", + "ga_ssp_person", + "hi_oss", + "id_aabd", + "in_ssp", + "ks_sspp", + "ky_ssp", + "la_oss", + "ma_state_supplement", + "md_paa", + "me_ssp", + "mi_ssp_person", + "mn_msa_person", + "mo_ssp", + "mt_ssp", + "nc_sa", + "ne_aabd", + "nh_ssp", + "nj_ssp", + "nm_ssi_state_supplement", + "nv_oss", + "ny_ssp", + "oh_rss", + "ok_ssp", + "pa_ssp", + "ri_ssp", + "sc_ssi_state_supplement", + "sd_ssp", + "tx_ssi_state_supplement", + "ut_dhhs_ssp", + "va_ag", + "vt_aabd", + "wa_ssp", + "wi_ssp_countable_for_snap", + "wy_ssp", "pension_income", "veterans_benefits", - "unemployment_compensation", + "total_unemployment_compensation", "disability_benefits", "social_security", + "survivor_benefits", "retirement_distributions", - "rental_income", + "military_retirement_income", + "snap_rental_income", + "snap_farm_rent_income", "child_support_received", "alimony_income", - "financial_assistance", - "survivor_benefits", "dividend_income", "interest_income", + "financial_assistance", "miscellaneous_income", ] } @@ -1169,7 +1302,7 @@ "health_savings_account_ald", "self_employed_health_insurance_ald", "self_employed_pension_contribution_ald", - "traditional_ira_contributions", + "traditional_ira_deduction", "qualified_adoption_assistance_expense", "us_bonds_for_higher_ed", "specified_possession_income", @@ -1201,11 +1334,11 @@ "self_employment_tax_ald", "student_loan_interest_ald", "early_withdrawal_penalty", - "educator_expense", + "educator_expense_ald", "health_savings_account_ald", "self_employed_health_insurance_ald", "self_employed_pension_contribution_ald", - "traditional_ira_contributions", + "traditional_ira_deduction", "qualified_adoption_assistance_expense", "us_bonds_for_higher_ed", "specified_possession_income", @@ -1455,7 +1588,7 @@ "structural zero. The " "other source-mapped housing leaves are enforced by their exact " "ASEC mappings and signal gate; household tenure_type has no " - "standalone PolicyEngine-US 2.2.1 formula consumer." + "standalone PolicyEngine-US 2.60.4 formula consumer." ), "issue": "PolicyEngine/microcosm#32", }, @@ -1506,10 +1639,12 @@ def build_manifest() -> dict: # resolve through the runtime rename register the parity gate uses, so a # gap filed under a historical spelling is excluded, and guarded, as the # live column the gate exempts. + # Layers whose input the pinned engine retired are not requirements; their + # live successor layer is graded in their place. populated_layers = { REFERENCE_ECPS_LAYER_RENAMES.get(name, name) for name, share in parity["nonzero_shares"].items() - if float(share) > 0.0 + if float(share) > 0.0 and name not in REFERENCE_ECPS_RETIRED_LAYERS } | set(POST_REFERENCE_ECPS_REQUIRED_INPUTS) gap_register_names = project_ecps_parity_known_gap_names(register_gaps) known_gaps = { diff --git a/tools/ci_test_plan.py b/tools/ci_test_plan.py index 4f98ed9fb..5ec1a50cf 100644 --- a/tools/ci_test_plan.py +++ b/tools/ci_test_plan.py @@ -174,9 +174,41 @@ def engine_guard_lines(source: str) -> tuple[int, ...]: and expression.attr in engine_markers ): lines.add(decorator.lineno) + # ``try: except ImportError: pytest.skip(..., + # allow_module_level=True)`` skips a whole module when the engine is + # missing, which leaves an engine-free module that never runs in CI. + if isinstance(node, ast.ExceptHandler) and _catches_import_error(node): + lines.update( + call.lineno + for statement in node.body + for call in ast.walk(statement) + if isinstance(call, ast.Call) + and isinstance(call.func, (ast.Attribute, ast.Name)) + and ( + call.func.attr + if isinstance(call.func, ast.Attribute) + else call.func.id + ) + == "skip" + and any( + keyword.arg == "allow_module_level" + and isinstance(keyword.value, ast.Constant) + and keyword.value.value is True + for keyword in call.keywords + ) + ) return tuple(sorted(lines)) +def _catches_import_error(handler: ast.ExceptHandler) -> bool: + caught = handler.type + names = caught.elts if isinstance(caught, ast.Tuple) else (caught,) + return any( + isinstance(name, ast.Name) and name.id in {"ImportError", "ModuleNotFoundError"} + for name in names + ) + + def test_files() -> tuple[Path, ...]: """Return every test module below a workspace package's test directory.""" diff --git a/tools/generate_us_bundle_from_constants.py b/tools/generate_us_bundle_from_constants.py index 5dc45835d..17be55f92 100644 --- a/tools/generate_us_bundle_from_constants.py +++ b/tools/generate_us_bundle_from_constants.py @@ -122,13 +122,13 @@ def _domain_builders() -> dict[str, Callable[[], object]]: # frozen files, is the forward YAML -> legacy-payload path. FROZEN_LEGACY_RESOURCE_SHA256 = { "source_stages.json": ( - "e75217c0db3075bf2664492167d31ce7ee82c2c5f6a70e3b67e8bb6f4ddd7ecf" + "cdd24258daf5e4e78b49330cfe9d5ea762aacc2e7232bb072e476632dcac378e" ), "support_spine.json": ( "68f37dc6ae6e0cde7ebccb53f88dd4a800e63456f838fa214ff98d1db8d815be" ), "take_up_contract.json": ( - "282dbc4c31e30134d008152138a95dd1a84f4355b44ac83607760dcaeef35db5" + "ab6bea51c7d774b5ac3f8c3caef603424bffefa7242ca4e8ab094c60cc3a5b5a" ), } diff --git a/tools/graph_us_post_transfer_fixture.py b/tools/graph_us_post_transfer_fixture.py index fdf2316c4..8b2cba0aa 100644 --- a/tools/graph_us_post_transfer_fixture.py +++ b/tools/graph_us_post_transfer_fixture.py @@ -59,11 +59,7 @@ / "us_post_transfer" ) _POOL_TOOL_TEST = ( - _REPOSITORY - / "packages" - / "microcosm-build" - / "tests" - / "test_us_multispine_pool_tool.py" + _REPOSITORY / "test_support" / "microcosm_build" / "us_multispine_pool_tool.py" ) _SAMPLE_SEED = 578 _SOURCE_HOUSEHOLDS = 100 @@ -138,6 +134,9 @@ def _write_root_csv( def _pool_tool_test_helpers() -> ModuleType: name = "graph_us_post_transfer_pool_tool_test_helpers" + # The helpers import the repository's test_support package. + if str(_REPOSITORY) not in sys.path: + sys.path.insert(0, str(_REPOSITORY)) spec = importlib.util.spec_from_file_location(name, _POOL_TOOL_TEST) if spec is None or spec.loader is None: raise RuntimeError( diff --git a/tools/spec_engine_coverage.py b/tools/spec_engine_coverage.py index c066d573c..90e8933ce 100644 --- a/tools/spec_engine_coverage.py +++ b/tools/spec_engine_coverage.py @@ -41,7 +41,7 @@ REPORT_SCHEMA_VERSION = 3 EXPECTED_POINTER_INVENTORY_SHA256 = ( - "8f655670b9794adae905ede64bdceba6395eeb8d642b6c5896d5c516f1f6a6a7" + "946f05fe2aa2948749a8a955b7f0d90a6cb610f6078e0b0a2553cb500338c82d" ) DEFAULT_REPORT_PATH = ( Path(__file__).resolve().parents[1] diff --git a/tools/us_bundle_generation/contracts.py b/tools/us_bundle_generation/contracts.py index 973851691..10b29d06e 100644 --- a/tools/us_bundle_generation/contracts.py +++ b/tools/us_bundle_generation/contracts.py @@ -63,6 +63,7 @@ ("chip", "takes_up_chip_if_eligible"), ("basic_health_program", "takes_up_basic_health_program_if_eligible"), ("medicare", "takes_up_medicare_if_eligible"), + ("medicare_part_d", "takes_up_medicare_part_d_if_eligible"), ("ssi", "takes_up_ssi_if_eligible"), ("dc_ptc", "takes_up_dc_ptc"), ("head_start", "takes_up_head_start_if_eligible"), @@ -994,8 +995,10 @@ def _build_take_up_contract_cached() -> dict[str, object]: programs.append(row) ownership_counts = Counter(str(row["ownership"]) for row in programs) + # policyengine-us 2.60 added takes_up_medicare_part_d_if_eligible, left at + # its engine default (the eighth engine-owned program). expected_ownership_counts = { - "engine": 7, + "engine": 8, "measured": 1, "mixed": 1, "modeled": 7, diff --git a/tools/us_bundle_generation/core.py b/tools/us_bundle_generation/core.py index aa6448f10..e20c11cf5 100644 --- a/tools/us_bundle_generation/core.py +++ b/tools/us_bundle_generation/core.py @@ -1066,7 +1066,9 @@ def build_catalogs() -> dict[str, Any]: or output["column"] == "@resolved_weight" } missing_graph_contracts = graph_physical_keys - seen - if len(graph_physical_keys) != 134 or len(missing_graph_contracts) != 34: + # 132 since policyengine-us 2.60 retired the PUF QRF's two tax-unit + # first/second_home_mortgage_interest outputs. + if len(graph_physical_keys) != 132 or len(missing_graph_contracts) != 34: raise ValueError( "Canonical producer/catalog closure changed; " f"physical_outputs={len(graph_physical_keys)}, " @@ -1143,8 +1145,8 @@ def build_catalogs() -> dict[str, Any]: seen.add(key) if not deferred <= {key.split(".", 1)[1] for key in seen}: raise ValueError("Deferred pool inputs are absent from the generated catalog.") - if len(seen) != 176: - raise ValueError(f"Closed US catalog must contain 176 keys, got {len(seen)}.") + if len(seen) != 175: + raise ValueError(f"Closed US catalog must contain 175 keys, got {len(seen)}.") return { "metadata_waivers": [ { diff --git a/tools/us_bundle_generation/imputation.py b/tools/us_bundle_generation/imputation.py index 5e8a96bb3..d0e1a7482 100644 --- a/tools/us_bundle_generation/imputation.py +++ b/tools/us_bundle_generation/imputation.py @@ -2061,13 +2061,15 @@ def _assert_invariants( by_stage.setdefault(str(family["stage"]), []).append(family) expected = { "gap_fill_stacked_spine": (13, 48), - "primary_puf_qrf": (1, 65), - "late_producer_dag": (19, 70), + # policyengine-us 2.60 retired the PUF QRF's two tax-unit + # first/second_home_mortgage_interest outputs (one of them late). + "primary_puf_qrf": (1, 63), + "late_producer_dag": (19, 69), } expected_dtypes = { "gap_fill_stacked_spine": {"bool": 20, "float": 27, "int": 1}, - "primary_puf_qrf": {"bool": 8, "float": 55, "int": 2}, - "late_producer_dag": {"bool": 17, "float": 50, "int": 1, "str": 2}, + "primary_puf_qrf": {"bool": 8, "float": 53, "int": 2}, + "late_producer_dag": {"bool": 17, "float": 49, "int": 1, "str": 2}, } for stage, (family_count, target_count) in expected.items(): rows = by_stage.get(stage, []) @@ -2121,7 +2123,9 @@ def _assert_invariants( late_authored_output_count, len(tolerated_receipts), ) - expected_graph_counts = (2744, 92, 227, 35, 0, 213) + # (2744, 92, 227, 35, 0, 213) before policyengine-us 2.60 retired the two + # first/second_home_mortgage_interest outputs and their passthroughs. + expected_graph_counts = (2741, 92, 224, 35, 0, 211) if graph_counts != expected_graph_counts: raise RuntimeError( "US producer graph input/output/absence counts changed: " diff --git a/uv.lock b/uv.lock index f26899896..67ef5d8d4 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 5 +revision = 3 requires-python = ">=3.13" resolution-markers = [ "python_full_version >= '3.14' and sys_platform == 'win32'", @@ -828,7 +828,7 @@ us = [ { name = "h5py" }, { name = "microcosm-data" }, { name = "microunit" }, - { name = "policyengine-core", version = "3.32.5", source = { registry = "https://pypi.org/simple" } }, + { name = "policyengine-core" }, { name = "policyengine-us" }, { name = "tables" }, ] @@ -856,9 +856,9 @@ requires-dist = [ { name = "numpy", specifier = ">=1.26" }, { name = "openpyxl", marker = "extra == 'uk'", specifier = ">=3.1" }, { name = "pandas", specifier = ">=2" }, - { name = "policyengine-core", marker = "extra == 'us'", specifier = "==3.32.5" }, + { name = "policyengine-core", marker = "extra == 'us'", specifier = "==3.33.3" }, { name = "policyengine-uk", marker = "extra == 'uk'", specifier = ">=2.147.2" }, - { name = "policyengine-us", marker = "extra == 'us'", specifier = ">=2.2.1,<3" }, + { name = "policyengine-us", marker = "extra == 'us'", specifier = ">=2.60.4,<3" }, { name = "pyarrow", specifier = ">=15" }, { name = "pyyaml", specifier = ">=6" }, { name = "referencing", specifier = ">=0.35,<1" }, @@ -920,7 +920,7 @@ uk = [ { name = "policyengine-uk" }, ] us = [ - { name = "policyengine-core", version = "3.32.5", source = { registry = "https://pypi.org/simple" } }, + { name = "policyengine-core" }, { name = "policyengine-us" }, ] @@ -935,9 +935,9 @@ requires-dist = [ { name = "huggingface-hub", specifier = ">=0.20" }, { name = "microcosm-diagnostics", editable = "packages/microcosm-diagnostics" }, { name = "packaging", specifier = ">=24" }, - { name = "policyengine-core", marker = "extra == 'us'", specifier = "==3.32.5" }, + { name = "policyengine-core", marker = "extra == 'us'", specifier = "==3.33.3" }, { name = "policyengine-uk", marker = "extra == 'uk'", specifier = ">=2.147.2" }, - { name = "policyengine-us", marker = "extra == 'us'", specifier = ">=2.2.1,<3" }, + { name = "policyengine-us", marker = "extra == 'us'", specifier = ">=2.60.4,<3" }, ] provides-extras = ["us", "uk"] @@ -1030,7 +1030,7 @@ axiom = [ ] policyengine = [ { name = "microunit" }, - { name = "policyengine-core", version = "3.32.5", source = { registry = "https://pypi.org/simple" } }, + { name = "policyengine-core" }, { name = "policyengine-us" }, ] uk = [ @@ -1054,9 +1054,9 @@ requires-dist = [ { name = "microunit", marker = "extra == 'us'", specifier = ">=0.1.0" }, { name = "numpy", specifier = ">=2" }, { name = "pandas", specifier = ">=2.3" }, - { name = "policyengine-core", marker = "extra == 'policyengine'", specifier = "==3.32.5" }, + { name = "policyengine-core", marker = "extra == 'policyengine'", specifier = "==3.33.3" }, { name = "policyengine-uk", marker = "extra == 'uk'", specifier = ">=2.147.2" }, - { name = "policyengine-us", marker = "extra == 'policyengine'", specifier = ">=2.2.1,<3" }, + { name = "policyengine-us", marker = "extra == 'policyengine'", specifier = ">=2.60.4,<3" }, { name = "tables", marker = "extra == 'axiom'", specifier = ">=3" }, ] provides-extras = ["us", "policyengine", "uk", "axiom"] @@ -1603,53 +1603,10 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] -[[package]] -name = "policyengine-core" -version = "3.32.5" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] -dependencies = [ - { name = "dpath" }, - { name = "h5py" }, - { name = "huggingface-hub" }, - { name = "ipython" }, - { name = "microdf-python" }, - { name = "numexpr" }, - { name = "numpy" }, - { name = "pandas" }, - { name = "plotly" }, - { name = "psutil" }, - { name = "pytest" }, - { name = "pyvis" }, - { name = "requests" }, - { name = "sortedcontainers" }, - { name = "standard-imghdr" }, - { name = "wheel" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/54/cfd2138584de9cddaa4459bba7fdc381101ca8b8ffd38356a1b256850d5f/policyengine_core-3.32.5.tar.gz", hash = "sha256:f051c269b538fe77ee7868f7cfbc0138551960b1b677a0ad6fdc1a93f1660460", size = 420112, upload-time = "2026-09-10T04:16:48.889Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/d9/72c3707465e9fe77e6f7a55ea64b49a287cbf875b78f6e862d945df26975/policyengine_core-3.32.5-py3-none-any.whl", hash = "sha256:9d8c162d5fe5c784ae16c885da3ffbfc39a536add0e111133144d8edd555935f", size = 245925, upload-time = "2026-09-10T04:16:47.153Z" }, -] - [[package]] name = "policyengine-core" version = "3.33.3" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.14' and sys_platform == 'win32'", - "python_full_version >= '3.14' and sys_platform == 'emscripten'", - "python_full_version >= '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", - "python_full_version < '3.14' and sys_platform == 'win32'", - "python_full_version < '3.14' and sys_platform == 'emscripten'", - "python_full_version < '3.14' and sys_platform != 'emscripten' and sys_platform != 'win32'", -] dependencies = [ { name = "dpath" }, { name = "h5py" }, @@ -1679,7 +1636,7 @@ version = "2.147.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "microdf-python" }, - { name = "policyengine-core", version = "3.33.3", source = { registry = "https://pypi.org/simple" } }, + { name = "policyengine-core" }, { name = "pydantic" }, { name = "tables" }, ] @@ -1690,19 +1647,19 @@ wheels = [ [[package]] name = "policyengine-us" -version = "2.2.1" +version = "2.60.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "microdf-python" }, { name = "pandas" }, - { name = "policyengine-core", version = "3.32.5", source = { registry = "https://pypi.org/simple" } }, + { name = "policyengine-core" }, { name = "spm-calculator" }, { name = "tables" }, { name = "tqdm" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2c/09/763b21371a62635e15e62b53fb696e299f01460907c27313d40f63031eb2/policyengine_us-2.2.1.tar.gz", hash = "sha256:d5300c91f3eae2e47a61f485fdfde91a892b80e95db3e46ff2c4bbd417d76501", size = 11946510, upload-time = "2026-09-15T04:45:50.33Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/5f/1e46158c068f34ccfa05df7bccac6aef1be42e54e3fecf259a5a9c8ac491/policyengine_us-2.60.4.tar.gz", hash = "sha256:db0e67e122cf58d7f770f43ec4b4a14a9e0a97edfac822b73f22ad87b2239b90", size = 14827187, upload-time = "2026-10-23T09:48:28.412Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/09/86ac3968d2a18e28fce3ba1186fc21728e9f299b96a806d6f204f1e0aaed/policyengine_us-2.2.1-py3-none-any.whl", hash = "sha256:0993a6c73fcdfbe171a796aca9d302741bd8e00ab83388ad81c15a08740318c6", size = 14885537, upload-time = "2026-09-15T04:45:46.649Z" }, + { url = "https://files.pythonhosted.org/packages/30/bd/47ec8d8ebe658f9694aee7ad6dff1c70b40c00c4783729766204e91f7d3f/policyengine_us-2.60.4-py3-none-any.whl", hash = "sha256:f95dbc8336e6733db548180680aaaf55b88b2bd8d59f732e8e2ae754dde564bd", size = 18943144, upload-time = "2026-10-23T09:48:24.923Z" }, ] [[package]]