From 451e396e519b07b3895346dc0156fc5a2a7d296b Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 07:31:53 -0400 Subject: [PATCH 01/17] Bound each PUF QRF draw by the population slice its recipient stands for The #982 income-rank predictor sends the top-ranked survey tax units, each standing for several hundred units, onto the PUF's top-ranked returns, which stand for one return or less (the synthetic Forbes-tail records weigh about 0.13). One draw put $141B of line-32 mass on a weight-644 unit in the #1251 rebuild. Weight-aware leaf draws (#481) cannot fix this: the slice such a donor belongs to is smaller than one recipient. QRF finalization now caps each raw amount draw at the positive mass per unit of slice weight of the donor's top slice of the recipient's own weight share, and floors losses from the bottom slice, on every amount output. The rule is bound into the primary PUF execution config (schema 6), and each bounded output writes a tail-bound diagnostics record. Co-Authored-By: Claude Opus 5.5 --- .../us-puf-recipient-share-bound.fixed.md | 1 + .../spec_engine/schema/imputation.schema.json | 48 ++ .../microcosm/build/us_runtime/puf_support.py | 247 +++++- .../build/us_runtime/stacked_spine.py | 17 +- .../us/test_us_multispine_pool_h5_io.py | 2 + .../us/test_us_puf_recipient_share_bound.py | 740 ++++++++++++++++++ .../engine_free/us/test_us_puf_tail_bound.py | 29 +- .../engine_free/us/test_us_stacked_spine.py | 47 +- 8 files changed, 1111 insertions(+), 20 deletions(-) create mode 100644 changelog.d/us-puf-recipient-share-bound.fixed.md create mode 100644 packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py diff --git a/changelog.d/us-puf-recipient-share-bound.fixed.md b/changelog.d/us-puf-recipient-share-bound.fixed.md new file mode 100644 index 0000000000..404d224e6e --- /dev/null +++ b/changelog.d/us-puf-recipient-share-bound.fixed.md @@ -0,0 +1 @@ +A single PUF-channel QRF draw can no longer carry more mass than the population slice its recipient stands for. The #982 income-rank predictor sends the top-ranked survey tax units, each standing for several hundred units, onto the PUF's top-ranked returns, which stand for one return or less: the synthetic Forbes-tail records weigh about 0.13 each. One such draw put $141B of line-32 mass on a single weight-644 unit in the #1251 rebuild. QRF finalization now caps each raw amount draw at the positive mass, per unit of slice weight, of the donor's top slice of the recipient's own weight share, and floors losses from the bottom slice, on every amount output (booleans and origination years excepted). The rule is bound into the primary PUF execution config, which moves to schema 6; every bounded output writes a tail-bound diagnostics record. diff --git a/packages/microcosm-build/src/microcosm/build/spec_engine/schema/imputation.schema.json b/packages/microcosm-build/src/microcosm/build/spec_engine/schema/imputation.schema.json index be210f2657..50aa683d32 100644 --- a/packages/microcosm-build/src/microcosm/build/spec_engine/schema/imputation.schema.json +++ b/packages/microcosm-build/src/microcosm/build/spec_engine/schema/imputation.schema.json @@ -3274,6 +3274,53 @@ "non_sch_d_capital_gains" ] }, + "recipient_share_bound": { + "type": "object", + "additionalProperties": false, + "properties": { + "rule": { + "type": "string" + }, + "schema_version": { + "type": "integer" + }, + "scope": { + "type": "string" + }, + "excluded_output_classes": { + "type": "array", + "items": { + "type": "string" + } + }, + "recipient_share": { + "type": "string" + }, + "cap": { + "type": "string" + }, + "floor": { + "type": "string" + }, + "snapped_outputs": { + "type": "string" + }, + "seam": { + "type": "string" + } + }, + "required": [ + "rule", + "schema_version", + "scope", + "excluded_output_classes", + "recipient_share", + "cap", + "floor", + "snapped_outputs", + "seam" + ] + }, "worker_execution": { "x-spec-surface": "execution_profile", "type": "object", @@ -3347,6 +3394,7 @@ "required": [ "invocation_mode", "tail_bound_quantiles", + "recipient_share_bound", "worker_execution" ] }, 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 165cf5a446..acbb94376e 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 @@ -75,6 +75,7 @@ "PUF_TAX_DETAIL_EARNINGS_COMPONENTS", "PUF_TAX_DETAIL_EARNINGS_INDICATOR_SOURCE", "PUF_TAX_DETAIL_INCOME_RANK_SOURCE", + "PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_RULE", "PufTaxDetailChainInputs", "PUF_ABSENT_CELLS_LEGACY_ZERO_FILL", "PUF_ABSENT_CELLS_PRESERVE_NULLS", @@ -97,6 +98,7 @@ "impute_us_puf_tax_detail_support", "puf_tax_detail_clone_mask", "puf_recipient_predictor_universe_receipt", + "puf_tax_detail_recipient_share_bound_identity", "puf_tax_detail_tail_bound_quantiles_identity", "puf_tax_unit_donor_from_arrays", "prepare_us_puf_tax_detail_chain_inputs", @@ -389,6 +391,55 @@ def puf_tax_detail_tail_bound_quantiles_identity() -> dict[str, float]: return dict(sorted(_PUF_TAX_DETAIL_TAIL_BOUND_QUANTILES.items())) +# Recipient-share bound at the same finalize seam. A PUF-clone recipient whose +# weight is the share ``s`` of the recipient population stands for ``s`` of the +# population, but a QRF draw hands it one donor's value. At the top of the +# income rank a recipient stands for ~600 tax units while the donors it reaches +# stand for a fraction of one: the PUF's synthetic Forbes-tail records carry +# ~0.13 weight each. One such draw carried $141B of line-32 mass in the #1251 +# base, about 5,000 times what its donor represents. Weight-aware leaf draws +# (#481) cannot fix this: the slice of the population such a donor belongs to +# is smaller than one recipient, so whichever donor is drawn, one record +# carries it. The bound caps each raw amount draw at the positive mass, per +# unit of slice weight, of the donor's top slice of the recipient's own share +# (and floors losses from the bottom slice), so no record carries more mass +# than the most extreme slice of the population it could stand for. Tail +# support below pool resolution is the pool's job (DESIGN.md); this keeps the +# fit from delivering it. Discrete and boolean outputs are not amounts and +# are left alone. +PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_RULE = "recipient_share_slice_mass" +_PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_SCHEMA_VERSION = 1 + + +def puf_tax_detail_recipient_share_bound_identity() -> dict[str, object]: + """Return the exact identity of the recipient-share finalization bound.""" + + return { + "rule": PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_RULE, + "schema_version": _PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_SCHEMA_VERSION, + "scope": "every_amount_output_of_the_invocation", + "excluded_output_classes": [ + "boolean_person_outputs", + "discrete_tax_unit_outputs", + ], + "recipient_share": "household_design_weight_over_puf_recipient_total", + "cap": "top_slice_positive_mass_per_slice_weight", + "floor": "bottom_slice_negative_mass_per_slice_weight", + "snapped_outputs": "cap_lowered_to_largest_snap_grid_value", + "seam": "raw_tax_unit_draws_after_tail_bound_quantiles", + } + + +def _recipient_share_bound_amount_outputs(outputs: Sequence[str]) -> tuple[str, ...]: + """Every amount output of an invocation, in chain order.""" + + excluded = ( + _PUF_TAX_DETAIL_BOOLEAN_PERSON_OUTPUTS + | _PUF_TAX_DETAIL_DISCRETE_TAX_UNIT_OUTPUTS + ) + return tuple(output for output in outputs if output not in excluded) + + # ASEC directly measures recipient alimony. The PUF QRF therefore sparsifies # only the cloned PUF half for this leaf; pruning the ASEC half would discard # reported source observations. Expense has no ASEC analogue, so its zero ASEC @@ -1903,6 +1954,7 @@ def finalize_us_puf_tax_detail_predictions( tax_unit_outputs: Sequence[str] = PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS, tail_bound_diagnostics: list[dict[str, object]] | None = None, tail_bound_quantiles: Mapping[str, float] | None = None, + recipient_share_bound_outputs: Sequence[str] | None = None, absent_cells: str = PUF_ABSENT_CELLS_LEGACY_ZERO_FILL, ) -> Frame: """Finalize a complete raw PUF QRF chain onto its support channel. @@ -1922,6 +1974,17 @@ def finalize_us_puf_tax_detail_predictions( weighted mass over the affected raw tax-unit draws before and after clipping; build callers must provide the sink and publish every active cap. + The recipient-share bound then applies to every amount output of the + invocation (see :func:`puf_tax_detail_recipient_share_bound_identity`); an + explicit ``recipient_share_bound_outputs`` narrows it for tests and must + name amount outputs of this invocation. It writes one diagnostics record + per bounded output, including outputs it leaves unchanged. It holds on the + raw tax-unit draws and, for snapped outputs, after snapping. Two later + steps rescale a whole column to the donor instrument and so lift every + kept value by one common factor: the donor-rate sparsification of sparse + outputs restores the column's mass after zeroing carriers, and the + signed-mass calibration scales each leg of its outputs. + ``absent_cells`` selects the finalization policy for cells outside the PUF clone arm (microcosm#578 audit item 1). The legacy default reproduces the historical global zero-fill byte for byte. Under @@ -1983,7 +2046,20 @@ def finalize_us_puf_tax_detail_predictions( "donor support." ) from None resolved_tail_bounds[output] = (quantile, bound) - if resolved_tail_bounds and tail_bound_diagnostics is None: + amount_outputs = _recipient_share_bound_amount_outputs(outputs) + if recipient_share_bound_outputs is None: + share_bound_outputs = amount_outputs + else: + share_bound_outputs = tuple(recipient_share_bound_outputs) + not_amounts = [ + output for output in share_bound_outputs if output not in amount_outputs + ] + if not_amounts or len(set(share_bound_outputs)) != len(share_bound_outputs): + raise ValueError( + "PUF recipient-share bound outputs must be distinct amount " + f"outputs of this invocation; got {not_amounts or 'duplicates'}." + ) + if (resolved_tail_bounds or share_bound_outputs) and tail_bound_diagnostics is None: raise ValueError( "PUF tax-detail tail-bound finalization requires a diagnostics sink; " "tail bounds must not be silent." @@ -2001,13 +2077,29 @@ def finalize_us_puf_tax_detail_predictions( "PUF raw predictions changed recipient row order or index before " "finalization." ) - if resolved_tail_bounds: + if resolved_tail_bounds or share_bound_outputs: recipient_tax_unit_ids = frame.table("tax_unit").loc[puf_mask, "tax_unit_id"] recipient_weights = _tax_unit_household_weights( frame, recipient_tax_unit_ids, ) - + resolved_share_bounds = { + output: _recipient_share_slice_bounds( + donor[output], donor["weight"], recipient_weights + ) + for output in share_bound_outputs + } + snapped_outputs = ( + _PUF_TAX_DETAIL_SPARSE_PERSON_OUTPUTS | _PUF_TAX_DETAIL_SPARSE_TAX_UNIT_OUTPUTS + ) + for output in share_bound_outputs: + if output in snapped_outputs: + floor, cap = resolved_share_bounds[output] + resolved_share_bounds[output] = ( + floor, + _largest_grid_values_within(cap, _observed_snap_grid(donor[output])), + ) + if resolved_tail_bounds: for output, (quantile, bound) in resolved_tail_bounds.items(): values = predictions[output].to_numpy(dtype=np.float64, copy=False) clipped = values > bound @@ -2031,6 +2123,32 @@ def finalize_us_puf_tax_detail_predictions( "clipped_mass_after": clipped_mass_after, } ) + for output, (floor, cap) in resolved_share_bounds.items(): + values = predictions[output].to_numpy(dtype=np.float64, copy=True) + bounded = np.minimum(np.maximum(values, floor), cap) + capped = values > cap + floored = values < floor + moved = capped | floored + weighted_before = np.abs(values * recipient_weights) + weighted_after = np.abs(bounded * recipient_weights) + predictions[output] = bounded + tail_bound_diagnostics.append( + { + "output": output, + "rule": PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_RULE, + "clipped_row_count": int(moved.sum()), + "capped_row_count": int(capped.sum()), + "floored_row_count": int(floored.sum()), + "clipped_mass_before": float( + (values[moved] * recipient_weights[moved]).sum() + ), + "clipped_mass_after": float( + (bounded[moved] * recipient_weights[moved]).sum() + ), + "largest_weighted_draw_before": float(weighted_before.max(initial=0.0)), + "largest_weighted_draw_after": float(weighted_after.max(initial=0.0)), + } + ) for column in outputs: if column in _PUF_TAX_DETAIL_NONNEGATIVE_OUTPUTS: @@ -2674,6 +2792,117 @@ def _weighted_positive_donor_quantile( ) +def _top_slice_means( + values: np.ndarray, + weights: np.ndarray, + slice_weights: np.ndarray, +) -> np.ndarray: + """Weighted mean of each requested top slice of a donor column. + + The donors are ordered from the largest value down. A slice of donor weight + ``t`` takes whole donors until their weight reaches ``t`` and the needed + fraction of the donor at the edge, so the slice holds exactly ``t``. A + zero-weight slice has no mean; it reads the largest donor value, which no + draw can exceed, so the bound it implies is vacuous. + """ + + order = np.argsort(-values, kind="stable") + ordered_values = values[order] + ordered_weights = weights[order] + cumulative_weight = np.cumsum(ordered_weights) + cumulative_mass = np.cumsum(ordered_values * ordered_weights) + take = np.clip(slice_weights, 0.0, cumulative_weight[-1]) + edge = np.minimum( + np.searchsorted(cumulative_weight, take, side="left"), + len(ordered_values) - 1, + ) + previous = edge - 1 + weight_before = np.where( + previous >= 0, cumulative_weight[np.maximum(previous, 0)], 0.0 + ) + mass_before = np.where(previous >= 0, cumulative_mass[np.maximum(previous, 0)], 0.0) + mass = mass_before + (take - weight_before) * ordered_values[edge] + with np.errstate(divide="ignore", invalid="ignore"): + means = np.where(take > 0.0, mass / take, ordered_values[0]) + # The mean of a slice lies between its inner edge and the largest value. + # Running sums can miss that by the last bits (a slice made only of donors + # at one value can come out a hair below it), which would clip draws that + # equal the slice's own values, so the exact bounds are restored here. + return np.clip(means, ordered_values[edge], ordered_values[0]) + + +def _recipient_share_slice_bounds( + donor_values: Sequence[Any], + donor_weights: Sequence[Any], + recipient_weights: Sequence[Any], +) -> tuple[np.ndarray, np.ndarray]: + """Return each recipient's (floor, cap) under the recipient-share bound. + + A recipient whose weight is the share ``s`` of all PUF recipients stands + for ``s`` of the population. The most positive mass it can carry on an + amount column is the positive mass of the donor slice holding the same + share ``s`` of donor weight at the top of the column, so a positive value + is capped at that mass per unit of slice weight; losses are floored the + same way from the bottom slice. Within the positive donors the cap is the + slice's weighted mean, and it falls as the share grows. A side is infinite + only when the donor has no value of that sign. Shares make the bound + independent of either population's weight scale. + """ + + values = pd.to_numeric(pd.Series(donor_values), errors="coerce").to_numpy( + dtype=np.float64 + ) + weights = pd.to_numeric(pd.Series(donor_weights), errors="coerce").to_numpy( + dtype=np.float64 + ) + recipients = np.asarray(recipient_weights, dtype=np.float64) + if values.ndim != 1 or values.shape != weights.shape: + raise ValueError( + "Recipient-share bound donor values and weights must be aligned " + f"1-D arrays, got {values.shape} and {weights.shape}." + ) + if recipients.ndim != 1: + raise ValueError("Recipient-share bound recipient weights must be 1-D.") + if len(values) == 0: + raise ValueError("Recipient-share bound needs at least one donor.") + if not (np.isfinite(values).all() and np.isfinite(weights).all()): + raise ValueError("Recipient-share bound donor values must be finite.") + if not np.isfinite(recipients).all(): + raise ValueError("Recipient-share bound recipient weights must be finite.") + if (weights < 0.0).any() or (recipients < 0.0).any(): + raise ValueError("Recipient-share bound weights must be nonnegative.") + donor_total = float(weights.sum()) + recipient_total = float(recipients.sum()) + if donor_total <= 0.0 or recipient_total <= 0.0: + raise ValueError("Recipient-share bound weights must have positive mass.") + slice_weights = recipients / recipient_total * donor_total + # Ordering by the positive part orders the top slice exactly as the values + # do; donors at or below zero tie at zero and add no positive mass. + top = _top_slice_means(np.maximum(values, 0.0), weights, slice_weights) + bottom = -_top_slice_means(np.maximum(-values, 0.0), weights, slice_weights) + cap = np.where(top > 0.0, top, np.inf) + floor = np.where(bottom < 0.0, bottom, -np.inf) + return floor, cap + + +def _largest_grid_values_within(caps: np.ndarray, grid: np.ndarray) -> np.ndarray: + """Lower each finite cap to the largest ``grid`` value not above it. + + A capped value that is itself a grid value snaps to itself, and every value + at or below it snaps to a grid value at or below it, so snapping after the + bound cannot carry a value past it. ``grid`` is sorted and starts at its + smallest value; a cap below it keeps that smallest value. + """ + + lowered = np.array(caps, dtype=np.float64, copy=True) + finite = np.isfinite(lowered) + if not finite.any(): + return lowered + position = np.searchsorted(grid, lowered[finite], side="right") - 1 + lowered[finite] = grid[np.maximum(position, 0)] + return lowered + + def _tax_unit_household_weights( frame: Frame, tax_unit_ids: Sequence[Any], @@ -3564,6 +3793,13 @@ def _ensure_boolean_output_column(table: pd.DataFrame, column: str) -> None: ) +def _observed_snap_grid(observed: Sequence[Any]) -> np.ndarray: + """The sorted donor values :func:`_snap_to_observed_values` snaps onto.""" + + observed_values = pd.to_numeric(pd.Series(observed), errors="coerce").fillna(0.0) + return np.unique(np.rint(observed_values.to_numpy(dtype=np.float64)).clip(min=0.0)) + + def _snap_to_observed_values( values: Sequence[Any], observed: Sequence[Any], @@ -3579,10 +3815,7 @@ def _snap_to_observed_values( """ value_array = pd.to_numeric(pd.Series(values), errors="coerce").fillna(0.0) - observed_values = pd.to_numeric(pd.Series(observed), errors="coerce").fillna(0.0) - observed_array = np.unique( - np.rint(observed_values.to_numpy(dtype=np.float64)).clip(min=0.0) - ) + observed_array = _observed_snap_grid(observed) if len(observed_array) == 0: return value_array.to_numpy(dtype=np.float64) 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 d71320311f..340700bff6 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 @@ -180,6 +180,7 @@ bind_puf_clone_attachment_tail_descendant, clone_us_frame_for_puf_support, impute_us_puf_tax_detail_support, + puf_tax_detail_recipient_share_bound_identity, puf_tax_detail_tail_bound_quantiles_identity, validate_puf_clone_attachment, ) @@ -5406,7 +5407,7 @@ def _late_resource_binding_schema_version( kind = _late_virtual_resource_kind(column) versions = { "acs_pums_earnings_universe_execution_config": 2, - "primary_puf_execution_config": 5, + "primary_puf_execution_config": 6, "post_clone_source_execution_config": 3, "source_finalizer_execution_config": 2, "late_transfer_model_config": 3, @@ -5607,8 +5608,13 @@ def require_positive_integer(value: object, *, label: str) -> int: "tax_unit_outputs", "invocation_mode", "tail_bound_quantiles", + "recipient_share_bound", "worker_execution", } + if legacy_worker_authentication is not None: + # The attested schema-4 pool predates the recipient-share bound and + # truthfully records none; it is admitted for scoring only. + qrf_keys.discard("recipient_share_bound") if not isinstance(qrf, Mapping) or set(qrf) != qrf_keys: raise ValueError(f"{boundary}: late primary-QRF config is malformed.") require_nonnegative_integer(qrf.get("seed"), label="QRF seed") @@ -5644,6 +5650,12 @@ def require_positive_integer(value: object, *, label: str) -> int: puf_tax_detail_tail_bound_quantiles_identity() ): raise ValueError(f"{boundary}: late primary-QRF tail bounds changed.") + if legacy_worker_authentication is None and qrf.get( + "recipient_share_bound" + ) != (puf_tax_detail_recipient_share_bound_identity()): + raise ValueError( + f"{boundary}: late primary-QRF recipient-share bound changed." + ) recorded_worker = qrf.get("worker_execution") if legacy_worker_authentication is not None: if ( @@ -6110,7 +6122,7 @@ def _late_primary_execution_config_binding( ) return { "resource_kind": "primary_puf_execution_config", - "schema_version": 5, + "schema_version": 6, "clone_attachment": { "fraction": float(clone_attachment_fraction), "seed": clone_attachment_seed, @@ -6138,6 +6150,7 @@ def _late_primary_execution_config_binding( ), }, "tail_bound_quantiles": (puf_tax_detail_tail_bound_quantiles_identity()), + "recipient_share_bound": (puf_tax_detail_recipient_share_bound_identity()), "worker_execution": _late_primary_qrf_worker_execution_binding(), }, "doctrines": { 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 68c5646e06..866f628ee2 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 @@ -1382,6 +1382,8 @@ def _rewrite_as_legacy_relocated_worker_pool( } config["schema_version"] = 4 config["qrf"]["worker_execution"] = recorded_worker + # A schema-4 pool predates the recipient-share bound and records none. + config["qrf"].pop("recipient_share_bound") config_receipt["binding_sha256"] = _json_sha256(config) config_receipt_sha256 = _json_sha256(config_receipt) diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py new file mode 100644 index 0000000000..9b0600730a --- /dev/null +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py @@ -0,0 +1,740 @@ +"""The PUF recipient-share bound: one draw cannot outweigh the slice it stands for. + +A PUF-clone recipient whose weight is the share ``s`` of the recipient +population stands for ``s`` of the population. The bound limits its raw draw +to the weighted mean of the donor slice holding the same share at that end of +the distribution, so ``w_r * value <= (W_r / W_d) * mass(slice)``. +""" + +from __future__ import annotations + +import numpy as np +import pytest +from hypothesis import HealthCheck, given, settings +from hypothesis import strategies as st + +import microcosm.build.us_runtime.puf_support as puf_support_module + +_bounds = puf_support_module._recipient_share_slice_bounds +_grid_within = puf_support_module._largest_grid_values_within +_snap = puf_support_module._snap_to_observed_values + +_PROPERTY_SETTINGS = settings( + max_examples=300, + deadline=None, + suppress_health_check=[HealthCheck.too_slow], +) + +_amounts = st.floats( + min_value=-1e9, max_value=1e9, allow_nan=False, allow_infinity=False +).map(lambda value: float(np.round(value, 2))) +_positive_weights = st.floats( + min_value=1e-3, max_value=1e4, allow_nan=False, allow_infinity=False +) + + +@st.composite +def _donor_and_recipients(draw: st.DrawFn) -> tuple[np.ndarray, ...]: + donors = draw(st.integers(min_value=1, max_value=40)) + values = np.asarray(draw(st.lists(_amounts, min_size=donors, max_size=donors))) + weights = np.asarray( + draw(st.lists(_positive_weights, min_size=donors, max_size=donors)) + ) + recipients = draw(st.integers(min_value=1, max_value=25)) + recipient_weights = np.asarray( + draw(st.lists(_positive_weights, min_size=recipients, max_size=recipients)) + ) + return values, weights, recipient_weights + + +def _reference_slice_mean( + values: np.ndarray, weights: np.ndarray, take: float, *, top: bool +) -> float: + """One slice's same-sign mass per unit weight, donor by donor.""" + + order = sorted(range(len(values)), key=lambda i: -values[i] if top else values[i]) + remaining = take + mass = 0.0 + for index in order: + used = min(weights[index], remaining) + part = max(values[index], 0.0) if top else min(values[index], 0.0) + mass += used * part + remaining -= used + if remaining <= 0.0: + break + return mass / take + + +def _reference_bounds( + values: np.ndarray, weights: np.ndarray, recipient_weights: np.ndarray +) -> tuple[np.ndarray, np.ndarray]: + donor_total = weights.sum() + recipient_total = recipient_weights.sum() + floors, caps = [], [] + for weight in recipient_weights: + take = weight / recipient_total * donor_total + top = _reference_slice_mean(values, weights, take, top=True) + bottom = _reference_slice_mean(values, weights, take, top=False) + caps.append(top if top > 0.0 else np.inf) + floors.append(bottom if bottom < 0.0 else -np.inf) + return np.asarray(floors), np.asarray(caps) + + +def _close(actual: np.ndarray, expected: np.ndarray) -> None: + """Equal infinities, and finite values within float accumulation error.""" + + np.testing.assert_array_equal(np.isinf(actual), np.isinf(expected)) + finite = np.isfinite(expected) + np.testing.assert_allclose(actual[finite], expected[finite], rtol=1e-9, atol=1e-6) + + +def _top_slice_edge(values: np.ndarray, weights: np.ndarray, take: float) -> float: + """The value at the inner edge of the top slice holding ``take`` weight.""" + + order = np.argsort(-values, kind="stable") + cumulative = np.cumsum(weights[order]) + edge = min(int(np.searchsorted(cumulative, take, side="left")), len(values) - 1) + return float(values[order][edge]) + + +def test_bound_is_the_slice_mean_on_a_worked_example() -> None: + # Donor population of weight 1,000: 990 at 10, 9 at 1,000, 1 at 100,000. + values = np.asarray([10.0, 1_000.0, 100_000.0, -50.0]) + weights = np.asarray([980.0, 9.0, 1.0, 10.0]) + # Recipients of share 0.001, 0.01 and 0.989 of their own population. + recipient_weights = np.asarray([1.0, 10.0, 989.0]) + + floor, cap = _bounds(values, weights, recipient_weights) + + # Share 0.001 of 1,000 donor weight is the 100,000 record alone. + assert cap[0] == 100_000.0 + # Share 0.01 is weight 10: the 100,000 record and all 9 at 1,000. + assert cap[1] == pytest.approx((100_000.0 + 9 * 1_000.0) / 10) + # The bottom slice of weight 10 is the ten records at -50. + assert floor[1] == -50.0 + # Share 0.989 is weight 989: on top, everything but 11 of the 980 at 10. + top_mass = 100_000.0 + 9_000.0 + 979.0 * 10.0 + assert cap[2] == pytest.approx(top_mass / 989.0) + # The bottom slice of weight 989 holds every loss, so the heaviest + # recipient may carry at most the population's whole loss mass. + assert floor[2] == pytest.approx(-500.0 / 989.0) + assert floor[0] == -50.0 + + +def test_one_recipient_is_bounded_by_the_donor_mean() -> None: + values = np.asarray([1.0, 2.0, 1_000.0]) + weights = np.asarray([10.0, 10.0, 1.0]) + + floor, cap = _bounds(values, weights, np.asarray([7.0])) + + assert cap[0] == pytest.approx(1_030.0 / 21.0) + assert floor[0] == -np.inf + + +def test_a_slice_of_tied_donors_caps_exactly_at_their_value() -> None: + # Statutory caps tie many donors at one value: a slice made only of them + # must cap at that value exactly, or draws equal to it would be clipped. + weights = np.asarray([0.1, 3.7, 1234.5, 0.3, 77.0] * 40) + values = np.full(len(weights), 2_500.0) + values[::7] = 1_000.0 + recipient_weights = np.linspace(0.5, 900.0, 64) + + _, cap = _bounds(values, weights, recipient_weights / recipient_weights.sum()) + + top_tie_weight = weights[values == 2_500.0].sum() + within = recipient_weights / recipient_weights.sum() * weights.sum() <= ( + top_tie_weight + ) + assert within.any() + assert (cap[within] == 2_500.0).all() + assert (cap <= 2_500.0).all() + + +def test_a_column_with_no_positive_donor_has_no_cap() -> None: + floor, cap = _bounds( + np.asarray([0.0, -5.0, -1.0]), + np.asarray([1.0, 1.0, 1.0]), + np.asarray([1.0, 2.0]), + ) + assert np.isinf(cap).all() + assert (floor < 0.0).all() + + +@pytest.mark.parametrize( + ("donor_values", "donor_weights", "recipient_weights", "message"), + [ + ([1.0], [1.0, 2.0], [1.0], "aligned"), + ([], [], [1.0], "at least one donor"), + ([np.nan], [1.0], [1.0], "finite"), + ([1.0], [1.0], [np.inf], "finite"), + ([1.0], [-1.0], [1.0], "nonnegative"), + ([1.0], [1.0], [-1.0], "nonnegative"), + ([1.0], [0.0], [1.0], "positive mass"), + ([1.0], [1.0], [0.0], "positive mass"), + ], +) +def test_bound_refuses_malformed_inputs( + donor_values: list[float], + donor_weights: list[float], + recipient_weights: list[float], + message: str, +) -> None: + with pytest.raises(ValueError, match=message): + _bounds( + np.asarray(donor_values, dtype=np.float64), + np.asarray(donor_weights, dtype=np.float64), + np.asarray(recipient_weights, dtype=np.float64), + ) + + +@_PROPERTY_SETTINGS +@given(_donor_and_recipients()) +def test_vectorized_bound_matches_the_donor_by_donor_reference( + case: tuple[np.ndarray, ...], +) -> None: + values, weights, recipient_weights = case + + floor, cap = _bounds(values, weights, recipient_weights) + expected_floor, expected_cap = _reference_bounds(values, weights, recipient_weights) + + _close(cap, expected_cap) + _close(floor, expected_floor) + + +@_PROPERTY_SETTINGS +@given(_donor_and_recipients()) +def test_one_record_never_carries_more_than_its_slice_mass( + case: tuple[np.ndarray, ...], +) -> None: + values, weights, recipient_weights = case + donor_total = weights.sum() + recipient_total = recipient_weights.sum() + + floor, cap = _bounds(values, weights, recipient_weights) + + for index, weight in enumerate(recipient_weights): + take = weight / recipient_total * donor_total + scale = recipient_total / donor_total + if np.isfinite(cap[index]): + top_mass = take * _reference_slice_mean(values, weights, take, top=True) + assert weight * cap[index] == pytest.approx(scale * top_mass, rel=1e-9) + if np.isfinite(floor[index]): + bottom_mass = take * _reference_slice_mean(values, weights, take, top=False) + assert weight * floor[index] == pytest.approx(scale * bottom_mass, rel=1e-9) + + +@_PROPERTY_SETTINGS +@given(_donor_and_recipients()) +def test_bound_stays_inside_the_donor_support_and_slice( + case: tuple[np.ndarray, ...], +) -> None: + values, weights, recipient_weights = case + donor_total = weights.sum() + recipient_total = recipient_weights.sum() + + floor, cap = _bounds(values, weights, recipient_weights) + + for index, weight in enumerate(recipient_weights): + take = weight / recipient_total * donor_total + if np.isfinite(cap[index]): + assert 0.0 < cap[index] <= values.max() + # The mean of the slice is at least its inner edge, exactly. + edge = _top_slice_edge(values, weights, take) + assert cap[index] >= edge + if np.isfinite(floor[index]): + assert values.min() <= floor[index] < 0.0 + edge = -_top_slice_edge(-values, weights, take) + assert floor[index] <= edge + + +@_PROPERTY_SETTINGS +@given(_donor_and_recipients()) +def test_heavier_recipients_get_tighter_bounds(case: tuple[np.ndarray, ...]) -> None: + values, weights, recipient_weights = case + + floor, cap = _bounds(values, weights, recipient_weights) + + order = np.argsort(recipient_weights, kind="stable") + ordered_cap = cap[order] + ordered_floor = floor[order] + tolerance = 1e-9 * max(1.0, float(np.abs(values).max())) + assert (np.diff(ordered_cap[np.isfinite(ordered_cap)]) <= tolerance).all() + assert (np.diff(ordered_floor[np.isfinite(ordered_floor)]) >= -tolerance).all() + # A side applies to every recipient or to none: it is infinite only when + # the donor has no value of that sign. + assert np.isfinite(cap).all() == bool((values > 0.0).any()) + assert np.isinf(cap).all() == (not (values > 0.0).any()) + assert np.isfinite(floor).all() == bool((values < 0.0).any()) + assert np.isinf(floor).all() == (not (values < 0.0).any()) + + +@_PROPERTY_SETTINGS +@given( + _donor_and_recipients(), + st.floats(min_value=1e-3, max_value=1e3), + st.floats(min_value=1e-3, max_value=1e3), +) +def test_bound_depends_only_on_weight_shares( + case: tuple[np.ndarray, ...], donor_scale: float, recipient_scale: float +) -> None: + values, weights, recipient_weights = case + + floor, cap = _bounds(values, weights, recipient_weights) + scaled_floor, scaled_cap = _bounds( + values, weights * donor_scale, recipient_weights * recipient_scale + ) + + _close(scaled_cap, cap) + _close(scaled_floor, floor) + + +@_PROPERTY_SETTINGS +@given(_donor_and_recipients(), st.randoms(use_true_random=False)) +def test_bound_ignores_donor_order_and_follows_recipient_order( + case: tuple[np.ndarray, ...], random: object +) -> None: + values, weights, recipient_weights = case + donor_order = list(range(len(values))) + recipient_order = list(range(len(recipient_weights))) + random.shuffle(donor_order) # type: ignore[attr-defined] + random.shuffle(recipient_order) # type: ignore[attr-defined] + + floor, cap = _bounds(values, weights, recipient_weights) + shuffled_floor, shuffled_cap = _bounds( + values[donor_order], weights[donor_order], recipient_weights[recipient_order] + ) + + _close(shuffled_cap, cap[recipient_order]) + _close(shuffled_floor, floor[recipient_order]) + + +@_PROPERTY_SETTINGS +@given(_donor_and_recipients(), st.floats(min_value=0.01, max_value=0.99)) +def test_splitting_a_donor_record_leaves_the_bound_unchanged( + case: tuple[np.ndarray, ...], fraction: float +) -> None: + values, weights, recipient_weights = case + split_values = np.concatenate([values, values[:1]]) + split_weights = np.concatenate( + [[weights[0] * fraction], weights[1:], [weights[0] * (1.0 - fraction)]] + ) + + floor, cap = _bounds(values, weights, recipient_weights) + split_floor, split_cap = _bounds(split_values, split_weights, recipient_weights) + + _close(split_cap, cap) + _close(split_floor, floor) + + +@_PROPERTY_SETTINGS +@given( + st.lists( + st.floats(min_value=0.0, max_value=1e8, allow_nan=False).map(round), + min_size=1, + max_size=30, + ), + st.lists( + st.floats(min_value=-1e8, max_value=1e9, allow_nan=False), + min_size=1, + max_size=30, + ), + st.floats(min_value=0.0, max_value=1e9, allow_nan=False), +) +def test_snapping_after_the_lowered_cap_never_crosses_it( + observed: list[float], draws: list[float], cap: float +) -> None: + grid = np.unique(np.rint(np.asarray(observed, dtype=np.float64)).clip(min=0.0)) + caps = np.full(len(draws), cap) + lowered = _grid_within(caps, grid) + bounded = np.minimum(np.asarray(draws, dtype=np.float64), lowered) + + snapped = _snap(bounded, observed) + + assert (lowered <= np.maximum(cap, grid[0])).all() + assert np.isin(lowered, grid).all() + assert (snapped <= lowered).all() + + +def test_lowering_keeps_infinite_caps_infinite() -> None: + grid = np.asarray([0.0, 5.0, 10.0]) + lowered = _grid_within(np.asarray([np.inf, 7.0, 10.0, 3.0]), grid) + np.testing.assert_array_equal(lowered, [np.inf, 5.0, 10.0, 0.0]) + + +# --------------------------------------------------------------------------- # +# The bound at the finalize seam # +# --------------------------------------------------------------------------- # + +import pandas as pd # noqa: E402 + +from microcosm.build.us_runtime import ( # noqa: E402 + PUF_TAX_DETAIL_SUPPORT_CHANNEL, + clone_us_frame_for_puf_support, + support_channel_column, + support_source_id_column, +) +from microcosm.frame import US_SCHEMA, Frame, WeightKind, Weights # noqa: E402 + +_PASSTHROUGH = "partnership_income" +_SNAPPED = "taxable_interest_income" +_CALIBRATED = "farm_operations_income" +_BOOLEAN = "business_is_sstb" + + +def _recipient_frame(household_weights: list[float]) -> Frame: + count = len(household_weights) + ids = np.arange(1, count + 1, dtype=np.int64) + tables = { + "person": pd.DataFrame( + { + "person_id": ids, + "person_household_id": ids, + "person_tax_unit_id": ids, + "person_spm_unit_id": ids, + "person_family_id": ids, + "person_marital_unit_id": ids, + } + ), + "household": pd.DataFrame( + {"household_id": ids, "state_fips": np.full(count, 6, dtype=np.int64)} + ), + "tax_unit": pd.DataFrame( + {"tax_unit_id": ids, "filing_status_input": ["SINGLE"] * count} + ), + "spm_unit": pd.DataFrame({"spm_unit_id": ids}), + "family": pd.DataFrame({"family_id": ids}), + "marital_unit": pd.DataFrame({"marital_unit_id": ids}), + } + return clone_us_frame_for_puf_support( + Frame( + tables, + US_SCHEMA, + { + "household": Weights( + np.asarray(household_weights, dtype=np.float64), + WeightKind.DESIGN, + ) + }, + ) + ) + + +def _recipient_index(frame: Frame) -> pd.Index: + tax_unit = frame.table("tax_unit") + return tax_unit.index[ + tax_unit[support_channel_column("tax_unit")] == PUF_TAX_DETAIL_SUPPORT_CHANNEL + ] + + +def _puf_values(frame: Frame, column: str) -> np.ndarray: + person = frame.table("person") + puf = person[ + person[support_channel_column("person")] == PUF_TAX_DETAIL_SUPPORT_CHANNEL + ].sort_values(support_source_id_column("person")) + return puf[column].to_numpy(dtype=np.float64) + + +def _recipient_weights(frame: Frame) -> np.ndarray: + ids = frame.table("tax_unit").loc[_recipient_index(frame), "tax_unit_id"] + return puf_support_module._tax_unit_household_weights(frame, ids) + + +def _finalize( + frame: Frame, + donor: pd.DataFrame, + raw: dict[str, np.ndarray], + *, + diagnostics: list[dict[str, object]] | None, + **kwargs: object, +) -> Frame: + predictions = pd.DataFrame( + { + column: np.asarray(values, dtype=np.float64) + for column, values in raw.items() + }, + index=_recipient_index(frame), + ) + return puf_support_module.finalize_us_puf_tax_detail_predictions( + frame, + donor, + predictions, + person_outputs=tuple(raw), + tax_unit_outputs=(), + tail_bound_diagnostics=diagnostics, + **kwargs, + ) + + +def _heavy_tail_donor(column: str, *, losses: bool = True) -> pd.DataFrame: + # 1,000 donor units: most small, nine large, one extreme record of weight + # 0.13 (the Forbes-tail synthetic records' weight), and a loss tail. + values = [100.0, 5_000.0, 2.0e8, -40_000.0 if losses else 0.0, 0.0] + weights = [900.0, 9.0, 0.13, 10.0, 80.87] + return pd.DataFrame({column: values, "weight": weights}) + + +def test_one_extreme_draw_is_bounded_by_its_slice_and_recorded() -> None: + # Recipient shares 0.01, 0.49, 0.01 and 0.49. The light recipients' slices + # hold weight 10: the top one reaches the extreme record, the bottom one is + # exactly the loss records, so neither of their draws moves. + frame = _recipient_frame([20.0, 980.0, 20.0, 980.0]) + donor = _heavy_tail_donor(_PASSTHROUGH) + raw = np.asarray([150.0, 2.0e8, -40_000.0, 4_000.0]) + diagnostics: list[dict[str, object]] = [] + + finalized = _finalize(frame, donor, {_PASSTHROUGH: raw}, diagnostics=diagnostics) + + weights = _recipient_weights(frame) + floor, cap = _bounds(donor[_PASSTHROUGH], donor["weight"], weights) + expected = np.minimum(np.maximum(raw, floor), cap) + actual = _puf_values(finalized, _PASSTHROUGH) + np.testing.assert_array_equal(actual, expected) + # Only the extreme draw moved; its weighted mass fell to its slice's mass. + assert actual[1] < raw[1] + np.testing.assert_array_equal(actual[[0, 2, 3]], raw[[0, 2, 3]]) + assert diagnostics == [ + { + "output": _PASSTHROUGH, + "rule": puf_support_module.PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_RULE, + "clipped_row_count": 1, + "capped_row_count": 1, + "floored_row_count": 0, + "clipped_mass_before": float(raw[1] * weights[1]), + "clipped_mass_after": float(expected[1] * weights[1]), + "largest_weighted_draw_before": float(np.abs(raw * weights).max()), + "largest_weighted_draw_after": float(np.abs(expected * weights).max()), + } + ] + + +_FINALIZE_SETTINGS = settings( + max_examples=60, + deadline=None, + suppress_health_check=[HealthCheck.too_slow, HealthCheck.data_too_large], +) + + +@st.composite +def _finalize_case(draw: st.DrawFn) -> tuple[list[float], pd.DataFrame, np.ndarray]: + recipients = draw(st.integers(min_value=1, max_value=8)) + household_weights = draw( + st.lists( + st.floats(min_value=0.5, max_value=5e3), + min_size=recipients, + max_size=recipients, + ) + ) + donors = draw(st.integers(min_value=1, max_value=12)) + donor = pd.DataFrame( + { + _PASSTHROUGH: draw(st.lists(_amounts, min_size=donors, max_size=donors)), + "weight": draw( + st.lists(_positive_weights, min_size=donors, max_size=donors) + ), + } + ) + raw = np.asarray(draw(st.lists(_amounts, min_size=recipients, max_size=recipients))) + return household_weights, donor, raw + + +@_FINALIZE_SETTINGS +@given(_finalize_case()) +def test_finalized_draws_obey_the_bound_and_move_only_beyond_it( + case: tuple[list[float], pd.DataFrame, np.ndarray], +) -> None: + household_weights, donor, raw = case + frame = _recipient_frame(household_weights) + + finalized = _finalize(frame, donor, {_PASSTHROUGH: raw}, diagnostics=[]) + + floor, cap = _bounds( + donor[_PASSTHROUGH], donor["weight"], _recipient_weights(frame) + ) + actual = _puf_values(finalized, _PASSTHROUGH) + # Bound. + assert (actual <= cap).all() and (actual >= floor).all() + # Untouched inside the bound, bit for bit. + inside = (raw <= cap) & (raw >= floor) + np.testing.assert_array_equal( + actual[inside].view(np.uint64), raw[inside].view(np.uint64) + ) + # Sign and zero preserving, shrink only. + np.testing.assert_array_equal(np.sign(actual), np.sign(raw)) + assert (np.abs(actual) <= np.abs(raw)).all() + # Moved draws land exactly on their own bound. + np.testing.assert_array_equal(actual[raw > cap], cap[raw > cap]) + np.testing.assert_array_equal(actual[raw < floor], floor[raw < floor]) + + +@_FINALIZE_SETTINGS +@given(_finalize_case()) +def test_diagnostics_account_exactly_for_the_moved_mass( + case: tuple[list[float], pd.DataFrame, np.ndarray], +) -> None: + household_weights, donor, raw = case + frame = _recipient_frame(household_weights) + diagnostics: list[dict[str, object]] = [] + + finalized = _finalize(frame, donor, {_PASSTHROUGH: raw}, diagnostics=diagnostics) + + weights = _recipient_weights(frame) + actual = _puf_values(finalized, _PASSTHROUGH) + (record,) = diagnostics + moved = actual != raw + assert record["clipped_row_count"] == int(moved.sum()) + assert record["capped_row_count"] + record["floored_row_count"] == int(moved.sum()) + assert record["clipped_mass_before"] == pytest.approx( + float((raw[moved] * weights[moved]).sum()), rel=1e-12, abs=1e-6 + ) + assert record["clipped_mass_after"] == pytest.approx( + float((actual[moved] * weights[moved]).sum()), rel=1e-12, abs=1e-6 + ) + total_before = float((raw * weights).sum()) + total_after = float((actual * weights).sum()) + assert total_before - total_after == pytest.approx( + record["clipped_mass_before"] - record["clipped_mass_after"], + rel=1e-9, + abs=1e-3, + ) + + +def test_snapped_outputs_stay_on_observed_values_within_the_bound() -> None: + # A donor positive rate above the recipients' keeps the donor-rate + # sparsification idle, so the finalized values are the snapped bounded draws. + frame = _recipient_frame([20.0, 400.0, 600.0, 980.0]) + donor = pd.DataFrame( + {_SNAPPED: [100.0, 5_000.0, 2.0e8, 0.0], "weight": [990.0, 9.0, 0.13, 0.87]} + ) + raw = np.asarray([0.0, 1.9e8, 7_000.4, 4_000.0]) + + finalized = _finalize(frame, donor, {_SNAPPED: raw}, diagnostics=[]) + + _, cap = _bounds(donor[_SNAPPED], donor["weight"], _recipient_weights(frame)) + actual = _puf_values(finalized, _SNAPPED) + grid = puf_support_module._observed_snap_grid(donor[_SNAPPED]) + assert (actual <= cap).all() + assert np.isin(actual, grid).all() + assert actual[1] < raw[1] + # The cap of the heaviest-share draw is not itself a donor value; the draw + # lands on the largest donor value within it. + assert actual[1] == grid[grid <= cap[1]].max() + + +def test_sparsification_rescales_bounded_draws_by_one_common_factor() -> None: + # Every recipient draws positive while the donor is 90.9% positive, so the + # donor-rate sparsification zeroes the smallest draw and rescales the rest + # to keep the column's mass: the bound holds before that, and after it the + # kept draws all carry the same factor. + frame = _recipient_frame([20.0, 400.0, 600.0, 980.0]) + donor = _heavy_tail_donor(_SNAPPED, losses=False) + raw = np.asarray([150.0, 1.9e8, 7_000.0, 4_000.0]) + + finalized = _finalize(frame, donor, {_SNAPPED: raw}, diagnostics=[]) + + weights = _recipient_weights(frame) + floor, cap = _bounds(donor[_SNAPPED], donor["weight"], weights) + grid = puf_support_module._observed_snap_grid(donor[_SNAPPED]) + lowered = puf_support_module._largest_grid_values_within(cap, grid) + before = puf_support_module._snap_to_observed_values( + np.minimum(np.maximum(raw, floor), lowered), donor[_SNAPPED] + ) + actual = _puf_values(finalized, _SNAPPED) + assert (before <= cap).all() + kept = actual > 0.0 + assert kept.any() and not kept.all() + factors = actual[kept] / before[kept] + np.testing.assert_allclose(factors, factors[0], rtol=1e-12) + assert float((actual * weights).sum()) == pytest.approx( + float((before * weights).sum()), rel=1e-12 + ) + + +def test_signed_mass_calibration_still_pins_both_legs_after_the_bound() -> None: + frame = _recipient_frame([20.0, 400.0, 600.0, 980.0, 300.0]) + donor = _heavy_tail_donor(_CALIBRATED) + raw = np.asarray([150.0, 2.0e8, -40_000.0, 4_000.0, -100.0]) + + finalized = _finalize(frame, donor, {_CALIBRATED: raw}, diagnostics=[]) + + weights = _recipient_weights(frame) + actual = _puf_values(finalized, _CALIBRATED) + values = donor[_CALIBRATED].to_numpy() + donor_weights = donor["weight"].to_numpy() + for leg, donor_leg in ((actual > 0.0, values > 0.0), (actual < 0.0, values < 0.0)): + assert float((actual[leg] * weights[leg]).sum()) / weights.sum() == ( + pytest.approx( + float((values[donor_leg] * donor_weights[donor_leg]).sum()) + / donor_weights.sum(), + rel=1e-9, + ) + ) + # The calibration rescales whole legs, so the bound's effect survives it: + # the extreme draw no longer holds nearly all of the positive leg. + positive = actual > 0.0 + leg_mass = actual[positive] * weights[positive] + assert leg_mass.max() < 0.99 * leg_mass.sum() + + +def test_boolean_outputs_are_not_bounded() -> None: + frame = _recipient_frame([20.0, 400.0]) + donor = pd.DataFrame({_BOOLEAN: [0.0, 1.0], "weight": [999.0, 1.0]}) + diagnostics: list[dict[str, object]] = [] + + finalized = _finalize(frame, donor, {_BOOLEAN: [1.0, 1.0]}, diagnostics=diagnostics) + + assert diagnostics == [] + assert _puf_values(finalized, _BOOLEAN).tolist() == [1.0, 1.0] + + +def test_amount_outputs_require_a_diagnostics_sink() -> None: + frame = _recipient_frame([20.0, 400.0]) + with pytest.raises(ValueError, match="diagnostics sink"): + _finalize( + frame, + _heavy_tail_donor(_PASSTHROUGH), + {_PASSTHROUGH: [1.0, 2.0]}, + diagnostics=None, + ) + + +def test_explicit_narrowing_is_validated_and_can_empty_the_bound() -> None: + frame = _recipient_frame([20.0, 400.0]) + donor = _heavy_tail_donor(_PASSTHROUGH) + raw = np.asarray([150.0, 2.0e8]) + + unbounded = _finalize( + frame, + donor, + {_PASSTHROUGH: raw}, + diagnostics=None, + recipient_share_bound_outputs=(), + ) + np.testing.assert_array_equal(_puf_values(unbounded, _PASSTHROUGH), raw) + + for bad in ((_BOOLEAN,), ("not_an_output",), (_PASSTHROUGH, _PASSTHROUGH)): + with pytest.raises(ValueError, match="distinct amount outputs"): + _finalize( + frame, + donor, + {_PASSTHROUGH: raw}, + diagnostics=[], + recipient_share_bound_outputs=bad, + ) + + +def test_bound_identity_is_exact_and_names_its_rule() -> None: + identity = puf_support_module.puf_tax_detail_recipient_share_bound_identity() + assert identity["rule"] == ( + puf_support_module.PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_RULE + ) + assert ( + identity == puf_support_module.puf_tax_detail_recipient_share_bound_identity() + ) + canonical = ( + *puf_support_module.PUF_TAX_DETAIL_DEFAULT_PERSON_OUTPUTS, + *puf_support_module.PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS, + ) + bounded = puf_support_module._recipient_share_bound_amount_outputs(canonical) + assert "partnership_income" in bounded + assert "first_home_mortgage_origination_year" not in bounded + assert not set(bounded) & set(puf_support_module.US_QBI_BOOLEAN_OUTPUT_COLUMNS) diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_tail_bound.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_tail_bound.py index fbf7fe5618..d1919c2009 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_tail_bound.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_tail_bound.py @@ -96,6 +96,7 @@ def _finalize( *, person_outputs: tuple[str, ...] = (_TARGET,), diagnostics: list[dict[str, object]] | None = None, + **kwargs: object, ) -> Frame: return puf_support_module.finalize_us_puf_tax_detail_predictions( frame, @@ -104,6 +105,7 @@ def _finalize( person_outputs=person_outputs, tax_unit_outputs=(), tail_bound_diagnostics=diagnostics, + **kwargs, ) @@ -150,16 +152,20 @@ def test_finalizer_clips_tail_without_changing_participation_or_lower_bits() -> np.testing.assert_array_equal(actual, [0.0, 50.0, 100.0, 100.0]) assert np.count_nonzero(actual > 0.0) == np.count_nonzero(raw > 0.0) np.testing.assert_array_equal(actual[:2].view(np.uint64), raw[:2].view(np.uint64)) - assert diagnostics == [ - { - "output": _TARGET, - "quantile": 0.999, - "bound_value": 100.0, - "clipped_row_count": 2, - "clipped_mass_before": 1_903.0, - "clipped_mass_after": 700.0, - } - ] + assert diagnostics[0] == { + "output": _TARGET, + "quantile": 0.999, + "bound_value": 100.0, + "clipped_row_count": 2, + "clipped_mass_before": 1_903.0, + "clipped_mass_after": 700.0, + } + # The recipient-share bound runs after the quantile cap; every draw is + # already within its slice, so it records the output and moves nothing. + assert len(diagnostics) == 2 + assert diagnostics[1]["output"] == _TARGET + assert diagnostics[1]["rule"] == "recipient_share_slice_mass" + assert diagnostics[1]["clipped_row_count"] == 0 def test_nonconfigured_output_is_bit_identical_through_finalizer() -> None: @@ -174,12 +180,15 @@ def test_nonconfigured_output_is_bit_identical_through_finalizer() -> None: ) diagnostics: list[dict[str, object]] = [] + # Isolate the quantile map: the recipient-share bound covers every amount + # output and has its own tests (test_us_puf_recipient_share_bound.py). finalized = _finalize( frame, _tail_donor(**{_NONCONFIGURED_OUTPUT: [1.0, 2.0, 3.0]}), predictions, person_outputs=(_TARGET, _NONCONFIGURED_OUTPUT), diagnostics=diagnostics, + recipient_share_bound_outputs=(), ) actual = _puf_person_values(finalized, _NONCONFIGURED_OUTPUT) 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 773b3b06e4..c1b3fb6553 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 @@ -4180,7 +4180,7 @@ def test_late_primary_resources_bind_donor_content_and_execution_config( "tax_unit_outputs": "canonical_default", } execution = baseline["tax_unit.@primary_puf_execution_config"]["binding"] - assert execution["schema_version"] == 5 + assert execution["schema_version"] == 6 assert execution["clone_attachment"]["support_channels"] == [ stacked_spine_module.BASE_ASEC_SUPPORT_CHANNEL, stacked_spine_module.PUF_TAX_DETAIL_SUPPORT_CHANNEL, @@ -4191,6 +4191,12 @@ def test_late_primary_resources_bind_donor_content_and_execution_config( assert execution["qrf"]["tail_bound_quantiles"] == { "non_sch_d_capital_gains": 0.999 } + assert execution["qrf"]["recipient_share_bound"] == ( + stacked_spine_module.puf_tax_detail_recipient_share_bound_identity() + ) + assert execution["qrf"]["recipient_share_bound"]["rule"] == ( + "recipient_share_slice_mass" + ) assert execution["doctrines"]["whole_pool_output_universes"] == { "person.s_corp_income": { "rule_id": "puf_tax_detail_s_corp_income_universe_zero_v1", @@ -9255,3 +9261,42 @@ def test_end_to_end_stack_gap_fill_puf_pass_gates_and_battery(tmp_path) -> None: ] assert origin_detail.notna().all() assert (origin_detail > 0.0).any() + + +def _primary_execution_binding() -> dict[str, object]: + return stacked_spine_module._late_primary_execution_config_binding( + clone_attachment_fraction=1.0, + clone_attachment_seed=0, + seed=0, + n_estimators=32, + predictors=None, + person_outputs=None, + tax_unit_outputs=None, + fit_records_enabled=True, + tail_bound_diagnostics_enabled=True, + ) + + +def _validate_primary_execution_binding(binding: dict[str, object]) -> None: + stacked_spine_module._validate_late_resource_binding( + binding, + producer=stacked_spine_module.US_LATE_PRIMARY_PUF_STAGE, + entity="tax_unit", + column="@primary_puf_execution_config", + boundary="test boundary", + ) + + +def test_primary_execution_binding_carries_the_recipient_share_bound() -> None: + binding = _primary_execution_binding() + _validate_primary_execution_binding(binding) + + changed = deepcopy(binding) + changed["qrf"]["recipient_share_bound"]["cap"] = "top_slice_boundary" + with pytest.raises(ValueError, match="recipient-share bound changed"): + _validate_primary_execution_binding(changed) + + missing = deepcopy(binding) + missing["qrf"].pop("recipient_share_bound") + with pytest.raises(ValueError, match="late primary-QRF config is malformed"): + _validate_primary_execution_binding(missing) From 85eb94b7b620d1632afca73bf935224d86d21398 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 08:07:30 -0400 Subject: [PATCH 02/17] Carry Schedule E line 32 by entity on the US PUF donor; retire the S-corp exact-zero universe (#1258) The donor now carries the partnership and S corporation shares of line 32 as separate leaves from the TY2015 source rows: - partnership_income = E25940 + E25980 - E25920 - E25960 - E26110 - s_corp_income = E26170 + E26190 - E26160 - E26180 - E26100 Their sum equals passive + nonpassive exactly and E26270 within the booklet's per-field rounding; the passive subset is byte-identical. Aggregate-row buckets allocate each entity's total in proportion to the processed nonpassive amounts, as #1239 did for line 32. Retired: the stacked-spine universe-zero materializer and its whole-pool doctrine (spec, schema, semantics, receipts), the late ACS transfer's s_corp_income exclusion, the pool's primary_puf_exact_zero_universe provision, the donor's zero alias and the fiscal-refresh degenerate-input exclusion. s_corp_income is now a PUF-clone primary output that the late transfer carries to native rows; the passive reconciliation requires both line-32 components. SOI Table 1.4's partnership and S corporation legs (Chronicle measure ids) bind each entity's own leaf. Re-pinned with the repo's tools: generate_us_bundle_from_constants, repin_us_pool_engine_contracts (remaining-stage manifest, engine ABI lock), inventory and field-usage observations, the H3 fixture tool, and the counts that move with one more late-transfer target (71 -> 72 late, 119 -> 120 transfer, 135 -> 136 terminal, 44 -> 45 PUF producers). Coverage evidence regeneration follows in the next commit. Co-Authored-By: Claude Opus 5.5 --- ...258-puf-schedule-e-entity-split.changed.md | 1 + docs/us-multispine-operator-ordering.md | 24 +- .../build/spec_engine/field_usage.py | 16 +- .../build/spec_engine/imputation_semantics.py | 13 - .../build/spec_engine/inventory_coverage.py | 44 +-- .../spec_engine/schema/imputation.schema.json | 64 +--- .../microcosm/build/us/engine_abi.lock.json | 2 +- .../src/microcosm/build/us/spec/battery.yaml | 5 + .../src/microcosm/build/us/spec/catalogs.yaml | 2 +- .../microcosm/build/us/spec/imputation.yaml | 100 ++++--- .../build/us_runtime/acs_transfer.py | 41 +-- .../build/us_runtime/fiscal_targets.py | 21 ++ .../build/us_runtime/multispine_pool.py | 12 +- .../build/us_runtime/puf_donor_io.py | 4 +- .../build/us_runtime/puf_source_schedule_e.py | 209 ++++++++++--- .../microcosm/build/us_runtime/puf_support.py | 55 ++-- .../build/us_runtime/stacked_spine.py | 204 +------------ .../us_runtime/us_late_producer_registry.py | 28 +- .../us/test_spec_engine_engine_abi.py | 2 +- ...spec_engine_stacked_authority_semantics.py | 4 +- .../shared/test_spec_engine_compiler_ir.py | 2 +- .../test_spec_engine_imputation_semantics.py | 2 +- .../shared/test_spec_engine_legacy_adapter.py | 4 +- .../shared/test_spec_engine_loader.py | 2 +- .../engine_free/us/test_us_acs_transfer.py | 60 +++- .../us/test_us_fiscal_refresh_builder.py | 14 + .../engine_free/us/test_us_fiscal_targets.py | 80 +++++ .../us/test_us_late_producer_dag.py | 26 +- .../engine_free/us/test_us_multispine_pool.py | 26 +- .../engine_free/us/test_us_puf_schedule_e.py | 283 ++++++++++++++++-- .../engine_free/us/test_us_puf_support.py | 104 +++++-- .../engine_free/us/test_us_spec_bundle.py | 4 +- .../engine_free/us/test_us_stacked_spine.py | 179 ++++------- .../microcosm/calibrate/variable_labels.py | 4 + .../us_post_transfer/us_post_transfer.json | 2 +- .../microcosm_build/us_stacked_spine.py | 20 -- tools/build_us_fiscal_refresh_release.py | 4 - tools/build_us_puf_support_base.py | 2 +- tools/spec_engine_coverage.py | 2 +- tools/us_bundle_generation/imputation.py | 17 +- 40 files changed, 959 insertions(+), 729 deletions(-) create mode 100644 changelog.d/1258-puf-schedule-e-entity-split.changed.md diff --git a/changelog.d/1258-puf-schedule-e-entity-split.changed.md b/changelog.d/1258-puf-schedule-e-entity-split.changed.md new file mode 100644 index 0000000000..72c4863003 --- /dev/null +++ b/changelog.d/1258-puf-schedule-e-entity-split.changed.md @@ -0,0 +1 @@ +The US PUF donor now carries the partnership and S corporation shares of Schedule E line 32 as separate leaves (`partnership_income` = E25940 + E25980 − E25920 − E25960 − E26110; `s_corp_income` = E26170 + E26190 − E26160 − E26180 − E26100, from the TY2015 source rows). Previously the whole line-32 total sat in `partnership_income` and `s_corp_income` was an exact-zero universe. Their sum equals E26270 within the booklet's per-field rounding, and the passive subset is byte-identical. The exact-zero machinery is retired: the stacked-spine materializer and its whole-pool doctrine, the late-transfer exclusion, the pool's `primary_puf_exact_zero_universe` provision, the donor's zero alias and the fiscal-refresh degenerate-input exclusion. `s_corp_income` is now a PUF-clone primary output that the late ACS transfer carries to native rows. SOI Table 1.4's partnership and S corporation net income/loss legs bind each entity's own leaf once the feed carries them (microcosm#1258). diff --git a/docs/us-multispine-operator-ordering.md b/docs/us-multispine-operator-ordering.md index ef1d7322e4..015974206c 100644 --- a/docs/us-multispine-operator-ordering.md +++ b/docs/us-multispine-operator-ordering.md @@ -302,7 +302,7 @@ by_origin_battery stack-manifest digest, fraction/seed, clone controls, and the channel-aware producer-precedence schedule. The DAG receipt binds all 71 edges, all input inventories, six derived waves, exact execution rows, the once-only source - finalizer, and the 19-group/71-target aggregate. Every row hashes the live + finalizer, and the 19-group/72-target aggregate. Every row hashes the live content of every declared alternative and output, the callback receipt, and the preceding row. The top receipt hashes the entry/output frames and chain terminus. Its digest is anchored in immutable Frame metadata and carried @@ -357,7 +357,7 @@ by_origin_battery boundaries. 9. A fresh `us_stacked_completeness` gate proves every declared input is observed or has exact source-by-role absence authority. The terminal - `us_by_origin_battery` then evaluates all 135 declared targets (115 person, + `us_by_origin_battery` then evaluates all 136 declared targets (116 person, 12 tax-unit, 8 SPM-unit), plus joint immigration structure, using an immutable live-digested per-column metric registry. Metric choice never dispatches from physical dtype. A digest-bound structural-absence rule may @@ -774,7 +774,7 @@ for every primary-owned physical alternative in `V + T(E)`, including evidence for every target listed below. A target shown in both producer columns requires both scopes; that is the two-target PUF/source overlap. Thus the table is the complete per-node producer delta over `V + T(E)`, as well as the exact -71-target partition. Transfer rows abbreviate the registry's leading +72-target partition. Transfer rows abbreviate the registry's leading `transfer:`; source names in these tables abbreviate the leading `source:`. For every transfer, schema-v3 `@late_transfer_model_config` binds that node's @@ -798,9 +798,9 @@ finalizer applies the same rule to each of its sixteen source-receipt inputs. | `person/model_required_boolean` | `is_pregnant` | — | from `with_us_pregnancy_inputs` | | `person/puf_tax_itemization__batch_1` | `tax_exempt_interest_income`, `long_term_capital_gains_on_collectibles`, `non_sch_d_capital_gains`, `alimony_expense`, `salt_refund_income`, `charitable_cash_donations`, `charitable_non_cash_donations`, `home_mortgage_interest` | all targets | — | | `person/puf_tax_itemization__batch_2` | `investment_interest_expense`, `investment_income_elected_form_4952`, `student_loan_interest`, `educator_expense`, `qualified_tuition_expenses`, `casualty_loss`, `unreimbursed_business_employee_expenses`, `traditional_ira_contributions_desired` | all targets | `traditional_ira_contributions_desired` from `with_us_retirement_contribution_inputs` | -| `person/puf_tax_itemization__batch_3` | `self_employed_pension_contributions_desired`, `estate_income`, `farm_income`, `farm_rent_income`, `partnership_income`, `passive_partnership_s_corp_income`, `partnership_self_employment_net_earnings`, `estate_income_would_be_qualified` | all targets | `self_employed_pension_contributions_desired` from `with_us_retirement_contribution_inputs` | -| `person/puf_tax_itemization__batch_4` | `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` | all targets | — | -| `person/puf_tax_itemization__batch_5` | `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` | all targets | — | +| `person/puf_tax_itemization__batch_3` | `self_employed_pension_contributions_desired`, `estate_income`, `farm_income`, `farm_rent_income`, `partnership_income`, `s_corp_income`, `passive_partnership_s_corp_income`, `partnership_self_employment_net_earnings` | all targets | `self_employed_pension_contributions_desired` from `with_us_retirement_contribution_inputs` | +| `person/puf_tax_itemization__batch_4` | `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` | all targets | — | +| `person/puf_tax_itemization__batch_5` | `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` | all targets | — | | `person/source_operator_child_support` | `child_support_expense`, `child_support_received` | — | both from `with_us_child_support_inputs` | | `person/source_operator_disability_benefits` | `disability_benefits` | — | from `with_us_disability_benefits` | | `person/source_operator_education_inputs` | `attends_eligible_educational_institution_for_american_opportunity_credit`, `educational_assistance`, `has_american_opportunity_credit_1098_t_or_exception`, `has_american_opportunity_credit_institution_ein`, `is_enrolled_at_least_half_time_for_american_opportunity_credit`, `is_pursuing_credential_for_american_opportunity_credit` | — | all from `with_us_education_inputs` | @@ -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 -`6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0`; +`f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da`; the full payload SHA-256 is -`8961be79cc5706e79093c143781c2cf28a74ce7d410ee27cd7da36fc82684b37`. +`76a79c9d05cfde1ec1c812de530b5080e6bc212f9c9e693eba628711d6f553e1`. Reversing registry iteration produces those same bytes. The virtual-resource payload ledger is independently versioned: ACS-universe @@ -973,7 +973,7 @@ and valid. Neither receipt authorizes an upstream null. | Outer pool checkpoint identity and resume | Primary-QRF schema v6, primary execution config v5, portable worker identity v1, tail-manifest schema v2, late-registry schema v17/receipt contract v4, outer stacked materializer v13/authority v12, stacked pool-stage materializer v7, pool manifest schema v10, and the ACS-universe, QBI-mutation, tail-support, late-DAG, and signed virtual-resource-semantics identities must match exactly before any cached stage is discovered. The retiring legacy envelope remains manifest schema v4/materializer v3. | Fresh input pins, live stack receipt, scale controls, code identity, and all semantic contract identities. | No. An older stacked materializer or authority payload is stale; a self-consistent old receipt cannot reopen a checkpoint. Primary-QRF v6 remains current. | | Clone-2 capital-gains tail | Each filing status requires as many eligible recipient households as selected q99.5 donors. Eligibility requires unique single-tax-unit PUF-detail lineage and half-weight capacity for the global maximum assigned donor weight. An adequate status assigns every selected donor once; a thin status skips as a whole with a named, counted `insufficient_support` receipt. | Completed clone-1 QRF output and full PUF tail donors. At 1%, `SINGLE` and `HEAD_OF_HOUSEHOLD` attach, `JOINT` and `SEPARATE` skip, and zero-requirement `SURVIVING_SPOUSE` is `not_applicable`. | No widening or partial attachment is permitted. All 22 AGI bands provide nearest-first fallback only inside a status. Universe-aware PUF recipients remain eligible, including explicitly receipted empty-universe tax units. | | Late producer DAG | Before any callback, all declared inputs are filled on their required scopes or carry an input-specific counted absence receipt; numeric inputs are finite. The exact derived order, readiness rows, once-only source finalizer, and bounded transfer receipts must validate. | ACS earnings-universe materialization, primary PUF/tail, 16 source producers, and 19 bounded transfer groups execute in six derived waves. | No. The refusing producer names the unfilled input and its declared producing stage. A cycle fails at import with its path. | -| Late transfer completion | Every declared PUF-clone or ASEC source-producer cell is nonnull; all complementary recipients are filled; the allowed count for both unmodeled and residual rows is zero. | Forty-four PUF and 29 source targets, with two overlaps, supply the 71-target late surface. | No. A missing producer or recipient value is terminal at this boundary. | +| Late transfer completion | Every declared PUF-clone or ASEC source-producer cell is nonnull; all complementary recipients are filled; the allowed count for both unmodeled and residual rows is zero. | Forty-five PUF and 29 source targets, with two overlaps, supply the 72-target late surface. | No. A missing producer or recipient value is terminal at this boundary. | | Fit-weight audit | Every primary and post-PUF QRF fit receipts its resolved entity weight kind, and the collected fit records pass the weights audit before a transferred checkpoint can exist. | Calibrated household weights mapped by the frame to each modeled entity. | No. A missing, inconsistent, or manually substituted weight declaration fails before checkpoint emission. | | Tail preservation | Tail manifest, support decisions, attached descendants, IDs, weights, provenance, joint vector, and non-tail QRF cells remain exact after completion, transfer, derive, seed, and simulation. | The schema-v2 tail manifest and support receipt bound during the PUF pass and projected into both terminal gates. | A support receipt cannot authorize mutation. Any byte or identity change in an attached status, any descendant for a skipped status, or any receipt change fails. | | Schedule-D derive | Both transferred parent columns are finite for every person and align to every tax unit. Bounded late-transfer groups do not write this leaf; the whole-pool tax-unit derive is its sole canonical owner. | Completed late transfer plus tail replacements. | No. A residual would fail late transfer first and derive again by name. | @@ -981,8 +981,8 @@ and valid. Neither receipt authorizes an upstream null. | Take-up seed | Every administratively seeded variable completes; transfer-owned take-up cannot use a default; only explicitly non-transfer-owned inputs may use receipted engine defaults. | Seed kernels, the complete transfer surface, and declared defaults. | Transfer-owned residuals fail. A declared default is a separate modeled state, not an insufficient-support receipt. | | SSI simulation projection | Every nullable engine input has a declared default on the disposable projection; the engine returns exactly one SSI value per person. | The persistent derived/seeded pool plus separately receipted ephemeral defaults. | A projection default can enable simulation but cannot cure the persistent pool; terminal evaluation returns to the original inputs plus SSI. | | Simulated checkpoint pair and resume | The persistent input-only frame and temporary evaluation frame must share exact assembly provenance; SSI exists only on the evaluation half. The live QBI receipt must authenticate the persistent frame at emission, durable write/load, and resume. | Derived/seeded persistent inputs plus the separately materialized SSI evaluation output. | No. A forged QBI receipt, altered persistent value, invalid SSI binding, or mismatched pair invalidates the simulated checkpoint and falls back only to an independently valid earlier stage. | -| Terminal completeness | All 135 registered targets exist; every positive-weight value is metric-valid; a null needs exact source/role authority, and post-PUF targets forbid absence authority. | The 48 early targets, 71 late targets, derived leaves, take-up inputs, and SSI output. | No. Only the canonical group-quarters rent rule reaches this gate as null; base WAGP/SEMP leaves are outside the 135-target terminal surface. | -| By-origin battery | All 135 clone-0 comparison surfaces are complete and valid before support is measured. | The terminal simulation frame, comparing ASEC and ACS native origins. | No. `insufficient_support` is assigned only after null and validity checks, so it cannot hide an upstream missing value. | +| Terminal completeness | All 136 registered targets exist; every positive-weight value is metric-valid; a null needs exact source/role authority, and post-PUF targets forbid absence authority. | The 48 early targets, 72 late targets, derived leaves, take-up inputs, and SSI output. | No. Only the canonical group-quarters rent rule reaches this gate as null; base WAGP/SEMP leaves are outside the 136-target terminal surface. | +| By-origin battery | All 136 clone-0 comparison surfaces are complete and valid before support is measured. | The terminal simulation frame, comparing ASEC and ACS native origins. | No. `insufficient_support` is assigned only after null and validity checks, so it cannot hide an upstream missing value. | | Manifest construction and canonical publication closure | Legacy and stacked builders reauthenticate QBI live output, canonical stacked authority, terminal-gate receipts, H5/diagnostics run IDs, and artifact digests before readiness can be asserted. | The validated persistent pool, immutable stage receipts, terminal gate snapshot, and atomically staged publication files. | No. Construction rejects forged or wrong-route receipts; publication begins with a non-ready tombstone, and only one fully authenticated run can replace it with a ready manifest. | The audit leaves no generic “receipted but null” path into a hard consumer. @@ -1142,7 +1142,7 @@ source ingestion and faithful schema harmonization -> derive -> seed take-up and other stochastic inputs -> simulate - -> completeness gate plus 135-target by-origin battery + -> completeness gate plus 136-target by-origin battery -> emit input-only pool, receipts, and terminal Logbook row ``` 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 9992f1c746..bd9afafcc2 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_456 +EXPECTED_AUTHORED_FIELD_COUNT = 32_464 EXPECTED_RESOLVED_BINDING_FIELD_COUNT = 9_780 -EXPECTED_CONFIGURATION_FIELD_COUNT = 42_236 +EXPECTED_CONFIGURATION_FIELD_COUNT = 42_244 class FieldUsageError(AssertionError): @@ -341,8 +341,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]: # wildcard broadening a source diff rather than an automatically accepted field. _PINS: dict[str, tuple[int, str]] = { "battery": ( - 802, - "eaf3cc45daebdba940e20e7bf2c995e7fc0bd5219935a963e7fca60c87111409", + 807, + "f35844c0d404d5fc7905d8b7ecbee1d273c0bb46a7ed656d86f1b7cb0760fb33", ), "bundle_country": ( 1, @@ -401,8 +401,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]: "bdf40812604e7cd35d68093fe14b7cd1371cb8ab8658fd6002b254610b062781", ), "imputation_family_execution": ( - 1_781, - "0e8e14ad18161ef4b871ad5f2cfbb924bb39a80c334ecdc05336a8eae6731451", + 1_787, + "aa733722f4442ae0ab22c5f1f2ffc1df2accfc5a1791702b242545e40abd26bf", ), "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_504, - "342cad7ff55198088d9d4dc4d57fe5601f7ded6081d64379109a72917e57f682", + 24_501, + "24ac69de166b5e30e4423b51fd5d36e08940080741e118539f4d0a13cdb1228b", ), "imputation_transfer_execution": ( 104, diff --git a/packages/microcosm-build/src/microcosm/build/spec_engine/imputation_semantics.py b/packages/microcosm-build/src/microcosm/build/spec_engine/imputation_semantics.py index 0763a37ba4..2cbbdacbfa 100644 --- a/packages/microcosm-build/src/microcosm/build/spec_engine/imputation_semantics.py +++ b/packages/microcosm-build/src/microcosm/build/spec_engine/imputation_semantics.py @@ -1017,19 +1017,6 @@ def _inflate_virtual_resource( ], "puf_clone_index": attachment_role["clone_index"], } - doctrines = _mapping_like(binding["doctrines"], "primary PUF doctrines") - output_universes = _mapping_like( - doctrines["whole_pool_output_universes"], - "primary PUF whole-pool output universes", - ) - s_corp = _mapping_like( - output_universes["person.s_corp_income"], - "primary PUF person.s_corp_income doctrine", - ) - s_corp["materialized_value"] = _legacy_float( # type: ignore[index] - s_corp["materialized_value"], - location="primary PUF person.s_corp_income materialized_value", - ) binding["qrf"] = qrf binding["capital_gains_tail"] = tail elif resource_kind == "late_transfer_target_bank": 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 d4b0c21056..04597ae533 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 @@ -348,24 +348,26 @@ EXPECTED_HASHES = { "acs_group_predictors": "a927bb7ecf3e84f54c93583ab79318654514ac546aefafba67da5285615fbd60", "acs_person_predictors": "878c788a6f037d7aca12b3586ea034eff04f3034ffa11935a736493042551f25", - "authority": "3b6f534db79be588396d6543a8368c6251d41ae25139153ade01bdb36ac7b1a2", + "authority": "bf681aedc859fd6398ef72da68f584069b7d25b3085c549bf99f82e8324c4eef", "early_families": "4aa9f736fd76e83955477ad1667e58f48f264783f05bdc7f0102cd32d61323bd", - "full_checkpoint": "abdffaa7d6ccf23c37b9d4e4530f0f95c2b4dd821787c813cc0c06f0ddc7932c", + "full_checkpoint": "ffb6bc3f23a2baf359fc9d34b910f0b5c8f65a043ce8d12d66eb7081dc9e1442", "gap_fill_schedule": "1c31f9868f7884347cc19cf1ff65da43f950b9114941a715bab168246db414a7", - "graph_nodes": "5e5c89a0d5e00f759566b5bb025efd46f179e11faf7de4ff663ed2488c5a669b", + "graph_nodes": "b68a7e94940b67f65aa2b029278ef0f37b927880fae143d17c2a3ec118d0fe67", "geography_assignment": "44e7f5f6cd7ceeef85d532c3d46306d03de4f4ee811376e6d29920742746b65c", - "late_families": "734080f8857f8637913a0e3ae81c59bf28b63dccc8d4bbf42009d0a80e9f1e48", - "late_resource_semantics": "abf95b217f6b8baa0fdf0bf8c46be67e3bff364f1adf6e98a178746f7f1c9d29", - "late_schedule": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0", + "late_families": "7857518a5327a816acae80d55a04f43e7445a5e47be822d3ccb747bcb375e199", + "late_resource_semantics": "51f674be7de8b738c1a9af1331f0168e7975f43a3395f1ab1bd88f376f0f01f5", + "late_schedule": "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da", "ownership": "5f64f0aac49e2313177564f71876bffc8c81b3ded4df701e70930e60e9c98356", "primary_tuples": "6655e37f15befe053f8de2583c216f97098e4c2bde526f315299c2858c97f055", + # #1258: puf_support's source bytes carry the S-corp leaf from the + # source-year rows (no zero alias); the primary chain order is unchanged. # #1239: puf_support's source bytes and the primary chain order gain the # passive partnership/S-corp leaf after s_corp_income. # #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. - "seed_map": "a07d4a871ae13279fd6034690a763f902c968053d7481df14822824b4a7c9687", - "seed_protocol": "bacc551b1d800a941c25d00048193c4c9421260a5d76d26983b603ea83835997", + "seed_map": "3f77ffa276c93b8a4cc7500c89e7f109f3d7f3630eb3e655af18fd97351ba9b1", + "seed_protocol": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418", "source_manifest": "22763ed5676fa29876951653368cbbc866cbd2425a2394a9f191ee09e448e413", "take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35", "tail": "4641e9a919a5c7719dd6e076e1eda06c17ec021d346a2b7f205fd299870a4688", @@ -425,16 +427,16 @@ "early_families": 13, "early_targets": 48, "itemization_batches": 5, - "itemization_targets": 38, + "itemization_targets": 39, "late_groups": 19, - "late_targets": 71, + "late_targets": 72, "ownership_rows": 18, "primary_effective_predictor_tuples": 66, "primary_families": 1, "primary_targets": 66, "producer_authored_outputs": 92, - "producer_compiled_outputs": 229, - "producer_inputs": 2_746, + "producer_compiled_outputs": 230, + "producer_inputs": 2_747, "producer_nodes": 38, "producer_virtual_resources": 75, "release_rungs": 5, @@ -887,7 +889,7 @@ def add( "late_split_ledger_exact", clauses={ "late group count differs": len(late) == 19, - "late target count differs": late_targets == 71, + "late target count differs": late_targets == 72, "late family digest differs": sha256_json(late) == EXPECTED_HASHES["late_families"], "legacy late schedule differs": _json_equal( @@ -903,7 +905,7 @@ def add( }, expected={ "groups": 19, - "targets": 71, + "targets": 72, "sha256": EXPECTED_HASHES["late_families"], }, ) @@ -918,8 +920,8 @@ def add( f"late/person/puf_tax_itemization__batch_{index}" for index in range(1, 6) ], - "itemization batch sizes differ": itemization_sizes == [8, 8, 8, 8, 6], - "itemization target count differs": sum(itemization_sizes) == 38, + "itemization batch sizes differ": itemization_sizes == [8, 8, 8, 8, 7], + "itemization target count differs": sum(itemization_sizes) == 39, "legacy late schedule differs": _json_equal( late_schedule, expected_late_schedule ), @@ -930,7 +932,7 @@ def add( "ids": [row["id"] for row in itemization], "batch_sizes": itemization_sizes, }, - expected={"batches": 5, "targets": 38, "batch_sizes": [8, 8, 8, 8, 6]}, + expected={"batches": 5, "targets": 39, "batch_sizes": [8, 8, 8, 8, 7]}, ) source_node_by_id = {str(row["id"]): row for row in source_nodes} @@ -1017,7 +1019,7 @@ def add( "producer_inputs_exact", clauses={ "producer input rows differ": inputs_exact, - "input row count differs": input_count == 2746, + "input row count differs": input_count == 2747, }, homes=("/imputation/producer_graph/nodes/*/inputs",), consumers=( @@ -1025,7 +1027,7 @@ def add( "compiler_ir.node_slices", ), observed={"rows": input_count}, - expected={"rows": 2746, "relation": "source rows preserved exactly"}, + expected={"rows": 2747, "relation": "source rows preserved exactly"}, ) outputs_exact = set(expected_outputs) == set(compiled_by_id) and all( _json_equal( @@ -1043,7 +1045,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 - == 229, + == 230, }, homes=( "/imputation/producer_graph/nodes/*/outputs", @@ -1059,7 +1061,7 @@ def add( }, expected={ "authored_rows": 92, - "compiled_rows": 229, + "compiled_rows": 230, "relation": "typed closure exact", }, ) diff --git a/packages/microcosm-build/src/microcosm/build/spec_engine/schema/imputation.schema.json b/packages/microcosm-build/src/microcosm/build/spec_engine/schema/imputation.schema.json index c764d0d696..f384a59a93 100644 --- a/packages/microcosm-build/src/microcosm/build/spec_engine/schema/imputation.schema.json +++ b/packages/microcosm-build/src/microcosm/build/spec_engine/schema/imputation.schema.json @@ -3226,73 +3226,11 @@ }, "require_complete_recipient_predictors": { "type": "boolean" - }, - "whole_pool_output_universes": { - "type": "object", - "additionalProperties": false, - "properties": { - "person.s_corp_income": { - "type": "object", - "additionalProperties": false, - "properties": { - "assignment": { - "type": "string" - }, - "column": { - "type": "string" - }, - "coverage_scope": { - "type": "string" - }, - "donor_precondition": { - "type": "string" - }, - "entity": { - "type": "string" - }, - "materialized_value": { - "type": "number" - }, - "native_precondition": { - "type": "string" - }, - "puf_clone_precondition": { - "type": "string" - }, - "rule_id": { - "type": "string" - }, - "schema_version": { - "type": "integer" - }, - "source_semantics": { - "type": "string" - } - }, - "required": [ - "assignment", - "column", - "coverage_scope", - "donor_precondition", - "entity", - "materialized_value", - "native_precondition", - "puf_clone_precondition", - "rule_id", - "schema_version", - "source_semantics" - ] - } - }, - "required": [ - "person.s_corp_income" - ] } }, "required": [ "absent_cells", - "require_complete_recipient_predictors", - "whole_pool_output_universes" + "require_complete_recipient_predictors" ] }, "qrf": { 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 ee39155b24..f1bd8a1e11 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":"2503fed80e11fbea6f4be566597dbbdd32402bc6ef99de8c4d6b2b181c13f338","schema_version":1,"sha256":"11beed6dd06d86ae943ecdc1a2ea2375b83decab94c65ef5c3dc47b15e1f1408","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":"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":"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.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":"d4fb9de9c0b8081474a24d0abde84ebf05eb346483fc20e3852e29abc769a501","schema_version":1,"sha256":"c6f1e936179aab0db0436e8c9620327d0a379b614f3a03523246792d2ad4b20a","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":"pool_input_surface:puf_tax_itemization","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":"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":"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"}]}} 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 3980117c3c..c0a4f35fd2 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/battery.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/battery.yaml @@ -421,6 +421,11 @@ metric_registry: column: partnership_income clone_index: 0 metric: monetary_sign_separated +- entity: person + family: puf_tax_itemization + column: s_corp_income + clone_index: 0 + metric: monetary_sign_separated - entity: person family: puf_tax_itemization column: passive_partnership_s_corp_income 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 2a80ab528d..ed2dd7756a 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/catalogs.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/catalogs.yaml @@ -1060,7 +1060,7 @@ columns: definition_period: year vintage: vintage:target_2024 nullable: false - domain: primary_puf_qrf_nontransfer + domain: puf_tax_itemization public_stability: internal unit_waiver: policyengine_us_unit_unavailable - key: person.salt_refund_income 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 b4a3fa2f42..5236df8987 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml @@ -206,11 +206,11 @@ chaining: reason: Declared production memory boundary preserving the canonical five-batch late PUF itemization partition. - family: late/person/puf_tax_itemization__batch_3 - after_target: estate_income_would_be_qualified + after_target: partnership_self_employment_net_earnings reason: Declared production memory boundary preserving the canonical five-batch late PUF itemization partition. - family: late/person/puf_tax_itemization__batch_4 - after_target: qualified_bdc_income + after_target: business_is_sstb reason: Declared production memory boundary preserving the canonical five-batch late PUF itemization partition. memory_policy: release_after_draw @@ -1660,7 +1660,7 @@ families: dtype: float period: year requires_concepts: [] - output_coverage_scope: whole_pool + output_coverage_scope: puf_clone - name: passive_partnership_s_corp_income entity: person value_kind: amount @@ -2131,24 +2131,24 @@ families: period: year requires_concepts: [] output_coverage_scope: whole_pool - - name: passive_partnership_s_corp_income + - name: s_corp_income entity: person value_kind: amount dtype: float period: year requires_concepts: [] output_coverage_scope: whole_pool - - name: partnership_self_employment_net_earnings + - name: passive_partnership_s_corp_income entity: person value_kind: amount dtype: float period: year requires_concepts: [] output_coverage_scope: whole_pool - - name: estate_income_would_be_qualified + - name: partnership_self_employment_net_earnings entity: person - value_kind: flag - dtype: bool + value_kind: amount + dtype: float period: year requires_concepts: [] output_coverage_scope: whole_pool @@ -2176,6 +2176,13 @@ families: max_targets_per_fit: 8 execution_contract: acs_transfer_default targets: + - name: estate_income_would_be_qualified + entity: person + value_kind: flag + dtype: bool + period: year + requires_concepts: [] + output_coverage_scope: whole_pool - name: farm_operations_income_would_be_qualified entity: person value_kind: flag @@ -2225,13 +2232,6 @@ families: period: year requires_concepts: [] output_coverage_scope: whole_pool - - name: qualified_bdc_income - entity: person - value_kind: amount - dtype: float - period: year - requires_concepts: [] - output_coverage_scope: whole_pool - id: late/person/puf_tax_itemization__batch_5 stage: late_producer_dag entities: @@ -2256,6 +2256,13 @@ families: max_targets_per_fit: 8 execution_contract: acs_transfer_default targets: + - name: qualified_bdc_income + entity: person + value_kind: amount + dtype: float + period: year + requires_concepts: [] + output_coverage_scope: whole_pool - name: qualified_reit_and_ptp_income entity: person value_kind: amount @@ -4455,19 +4462,6 @@ producer_graph: doctrines: require_complete_recipient_predictors: true absent_cells: preserve_nulls - whole_pool_output_universes: - person.s_corp_income: - rule_id: puf_tax_detail_s_corp_income_universe_zero_v1 - schema_version: 1 - entity: person - column: s_corp_income - coverage_scope: whole_pool - materialized_value: 0.0 - source_semantics: puf_combined_partnership_s_corp_carried_by_partnership_income - donor_precondition: finite_exact_zero - puf_clone_precondition: finite_exact_zero - native_precondition: all_null - assignment: explicit_array_assignment capital_gains_tail: enabled: true spec: @@ -19241,15 +19235,6 @@ producer_graph: producing_stage: primary_puf_qrf required_scope: puf_clone tolerated_absence_receipts: [] - - alternatives: - - - column: estate_income_would_be_qualified - entity: person - value_kind: non_null - column: estate_income_would_be_qualified - entity: person - producing_stage: primary_puf_qrf - required_scope: puf_clone - tolerated_absence_receipts: [] - alternatives: - - column: farm_income entity: person @@ -19412,6 +19397,15 @@ producer_graph: producing_stage: primary_puf_qrf required_scope: puf_clone tolerated_absence_receipts: [] + - alternatives: + - - column: s_corp_income + entity: person + value_kind: finite_numeric + column: s_corp_income + entity: person + producing_stage: primary_puf_qrf + required_scope: puf_clone + tolerated_absence_receipts: [] - alternatives: - - column: self_employed_pension_contributions_desired entity: person @@ -19648,9 +19642,9 @@ producer_graph: - farm_income - farm_rent_income - partnership_income + - s_corp_income - passive_partnership_s_corp_income - partnership_self_employment_net_earnings - - estate_income_would_be_qualified - id: transfer:person/puf_tax_itemization__batch_4 name: transfer:person/puf_tax_itemization__batch_4 kind: late_transfer @@ -20278,6 +20272,15 @@ producer_graph: producing_stage: primary_puf_qrf required_scope: puf_clone tolerated_absence_receipts: [] + - alternatives: + - - column: estate_income_would_be_qualified + entity: person + value_kind: non_null + column: estate_income_would_be_qualified + entity: person + producing_stage: primary_puf_qrf + required_scope: puf_clone + tolerated_absence_receipts: [] - alternatives: - - column: farm_operations_income_would_be_qualified entity: person @@ -20404,15 +20407,6 @@ producer_graph: producing_stage: primary_puf_qrf required_scope: whole_pool tolerated_absence_receipts: [] - - alternatives: - - - column: qualified_bdc_income - entity: person - value_kind: finite_numeric - column: qualified_bdc_income - entity: person - producing_stage: primary_puf_qrf - required_scope: puf_clone - tolerated_absence_receipts: [] - alternatives: - - column: qualified_dividend_income entity: person @@ -20671,6 +20665,7 @@ producer_graph: entity: person family: puf_tax_itemization__batch_4 ordered_targets: + - estate_income_would_be_qualified - farm_operations_income_would_be_qualified - farm_rent_income_would_be_qualified - partnership_s_corp_income_would_be_qualified @@ -20678,7 +20673,6 @@ producer_graph: - self_employment_income_would_be_qualified - sstb_self_employment_income_would_be_qualified - business_is_sstb - - qualified_bdc_income - id: transfer:person/puf_tax_itemization__batch_5 name: transfer:person/puf_tax_itemization__batch_5 kind: late_transfer @@ -21396,6 +21390,15 @@ producer_graph: producing_stage: primary_puf_qrf required_scope: whole_pool tolerated_absence_receipts: [] + - alternatives: + - - column: qualified_bdc_income + entity: person + value_kind: finite_numeric + column: qualified_bdc_income + entity: person + producing_stage: primary_puf_qrf + required_scope: puf_clone + tolerated_absence_receipts: [] - alternatives: - - column: qualified_dividend_income entity: person @@ -21681,6 +21684,7 @@ producer_graph: entity: person family: puf_tax_itemization__batch_5 ordered_targets: + - qualified_bdc_income - qualified_reit_and_ptp_income - sstb_self_employment_income_before_lsr - sstb_unadjusted_basis_qualified_property 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 fd2b484155..f03952ae9d 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 @@ -373,17 +373,14 @@ def acs_transfer_execution_contract_identity( # transfer, and post-transfer coverage audit all consume the exact same plan. _DECLARED_ACS_TRANSFER_TARGET_FAMILIES: dict[str, dict[str, tuple[str, ...]]] = { "person": { - # The buildl-era donor excluded both partnership leaves because it - # carried only combined partnership_income. The 23-stage base now - # observes partnership_self_employment_net_earnings (restored below - # via the default outputs), but s_corp_income remains an all-zero - # schema column on the certified donor — combined income still - # lives in partnership_income — so its exclusion stands until the - # base disaggregates it. + # Every PUF person output the ACS does not observe natively. Schedule E + # line 32 travels by entity: the donor carries partnership_income and + # s_corp_income as separate leaves (microcosm#1258), so neither is an + # exact-zero universe that the transfer must leave alone. "puf_tax_itemization": tuple( target for target in PUF_TAX_DETAIL_DEFAULT_PERSON_OUTPUTS - if target not in ACS_NATIVE_PERSON_INPUTS | {"s_corp_income"} + if target not in ACS_NATIVE_PERSON_INPUTS ), # The Schedule D capital-gain-distributions memo leg is deliberately # NOT a QRF target: the base derives it deterministically as a @@ -680,10 +677,11 @@ def acs_derived_transfer_expectations( _ADULT_CARE_FLAG = "is_incapable_of_self_care" _ADULT_CARE_EXPENSE = "pre_subsidy_care_expenses" -# Schedule E line 32 and its section 469 passive subset (microcosm#1239). The -# primary PUF pass places the subset on the people who carry line 32 and zeros -# it where the unit drew none; a person-grain transfer draw must keep the same -# coherence, so the post-transfer step below restores it on cells it filled. +# Schedule E line 32 by entity and its section 469 passive subset +# (microcosm#1239, #1258). The primary PUF pass places the subset on the people +# who carry line 32 and zeros it where the unit drew none; a person-grain +# transfer draw must keep the same coherence, so the post-transfer step below +# restores it on cells it filled. _PASSIVE_PARTNERSHIP_S_CORP = "passive_partnership_s_corp_income" _LINE_32_COMPONENTS = ("partnership_income", "s_corp_income") _ADULT_CARE_ROLE = "tax_unit_role_input" @@ -837,10 +835,16 @@ def reconcile_acs_passive_partnership_s_corp( lawful when nonpassive losses offset it. """ - if _LINE_32_COMPONENTS[0] not in person.columns: + missing_components = [ + component + for component in _LINE_32_COMPONENTS + if component not in person.columns + ] + if missing_components: raise ValueError( - "Passive partnership/S-corp reconciliation requires the transferred " - "line-32 total (partnership_income) on the recipient." + "Passive partnership/S-corp reconciliation requires both " + "transferred line-32 components (partnership_income and " + f"s_corp_income) on the recipient; missing {missing_components}." ) if _ADULT_CARE_UNIT not in person.columns: raise ValueError( @@ -854,10 +858,9 @@ def reconcile_acs_passive_partnership_s_corp( raw = pd.to_numeric(person[_PASSIVE_PARTNERSHIP_S_CORP], errors="coerce") person_total = pd.Series(0.0, index=person.index) for component in _LINE_32_COMPONENTS: - if component in person.columns: - person_total = person_total + pd.to_numeric( - person[component], errors="coerce" - ).fillna(0.0) + person_total = person_total + pd.to_numeric( + person[component], errors="coerce" + ).fillna(0.0) unit_total = person_total.groupby(person[_ADULT_CARE_UNIT]).transform("sum") no_line_32 = ((person_total == 0.0) | (unit_total == 0.0)).to_numpy() clear = mutable & no_line_32 & raw.fillna(0.0).ne(0.0).to_numpy() 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 e656f7a15b..cbb957ab35 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 @@ -161,6 +161,15 @@ def _us_hierarchy_seed( "estate_trust_net_loss_amount": "estate_losses", "other_income_net_income_amount": "miscellaneous_income", "other_income_net_loss_amount": "miscellaneous_losses", + # SOI Table 1.4 publishes partnership and S corporation net income and net + # loss separately from TY2021 (Chronicle's table_1_4 measure ids; losses + # are positive magnitudes). Each entity leg binds that entity's own Schedule + # E line-32 leaf, summed to the return, positive part for net income and + # negative-part magnitude for net loss (microcosm#1258). + "partnership_net_income_amount": "partnership_income", + "partnership_net_loss_amount": "partnership_losses", + "s_corporation_net_income_amount": "s_corp_income", + "s_corporation_net_loss_amount": "s_corp_losses", # SOI Table 1.4 "capital gain distributions reported on Form 1040" == # PUF E01100 == PolicyEngine-US non_sch_d_capital_gains (Form 1040 line 7 # when Schedule D is not required); concept-confirmed against pe-us source. @@ -239,6 +248,12 @@ def _us_hierarchy_seed( "estate_trust_net_loss_returns": "estate_losses", "other_income_net_income_returns": "miscellaneous_income", "other_income_net_loss_returns": "miscellaneous_losses", + # microcosm#1258: return counts paired with the Table 1.4 partnership and + # S corporation legs above. + "partnership_net_income_returns": "partnership_income", + "partnership_net_loss_returns": "partnership_losses", + "s_corporation_net_income_returns": "s_corp_income", + "s_corporation_net_loss_returns": "s_corp_losses", "capital_gain_distributions_returns": "non_sch_d_capital_gains", # Build H (microcosm#299): return count paired with the Table 2.1 home # mortgage interest amount above (indicator sum over itemizers claiming a @@ -290,6 +305,12 @@ def _us_hierarchy_seed( "ordinary_dividends": "ordinary_dividend_income", "partnership_and_s_corp_income": "tax_unit_partnership_s_corp_income", "partnership_and_s_corp_losses": "tax_unit_partnership_s_corp_income", + # microcosm#1258: Table 1.4's entity legs read each entity's own person + # leaf; the materializer sums it to the tax unit before taking the part. + "partnership_income": "partnership_income", + "partnership_losses": "partnership_income", + "s_corp_income": "s_corp_income", + "s_corp_losses": "s_corp_income", "assigned_aca_ptc": "assigned_aca_ptc", "qualified_business_income_deduction": "qualified_business_income_deduction", "qualified_dividends": "qualified_dividend_income", 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 55f3ade111..65006c5c40 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 @@ -383,7 +383,7 @@ class PoolEngineInputProjectionContract: """ POOL_REMAINING_STAGE_INPUT_MANIFEST_SHA256 = ( - "2503fed80e11fbea6f4be566597dbbdd32402bc6ef99de8c4d6b2b181c13f338" + "d4fb9de9c0b8081474a24d0abde84ebf05eb346483fc20e3852e29abc769a501" ) """Pinned content digest of all 1,059 post-transfer consumer/input rows.""" @@ -1292,6 +1292,7 @@ def surface_provision(variable: str) -> str: ) for variable in ( "partnership_income", + "s_corp_income", "estate_income", "non_qualified_dividend_income", ): @@ -1304,15 +1305,6 @@ def surface_provision(variable: str) -> str: provision=surface_provision(variable), available_by="transferred", ) - register( - "derive", - "with_us_qbi_input_reconciliation", - "person", - "s_corp_income", - execution_scope="whole_pool", - provision="primary_puf_exact_zero_universe", - available_by="transferred", - ) for variable, provision in ( ("age", "assembled_native_person_input"), ("SEMP", "assembled_raw_acs_source_authority"), diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/puf_donor_io.py b/packages/microcosm-build/src/microcosm/build/us_runtime/puf_donor_io.py index fddb1babfa..76078ceed4 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/puf_donor_io.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/puf_donor_io.py @@ -2,8 +2,8 @@ This module owns only the input boundary: it reads the root arrays from one explicit processed PUF HDF5 file, aligns them to E00100 and to Schedule E -line 32 and its passive subset from one explicit source-year PUF CSV, and -delegates donor construction to the shared runtime. +line 32 by entity and its passive subset from one explicit source-year PUF +CSV, and delegates donor construction to the shared runtime. It does not acquire data, choose a donor source, or relax the source-year alignment checks. """ diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/puf_source_schedule_e.py b/packages/microcosm-build/src/microcosm/build/us_runtime/puf_source_schedule_e.py index ef0d27c46c..ee98ac0511 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/puf_source_schedule_e.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/puf_source_schedule_e.py @@ -1,15 +1,16 @@ -"""Recover Schedule E line 32 and its passive subset for the processed PUF donor. +"""Recover Schedule E line 32 by entity, and its passive subset, for the PUF donor. PolicyEngine-US 2.2.1 reads ``partnership_income`` plus ``s_corp_income`` as Schedule E line 32, total partnership and S corporation income or (loss), and ``passive_partnership_s_corp_income`` as its section 469 passive subset (the net investment income leg of section 1411(c)(1)(A)(ii)). -The processed 2024 PUF does not carry line 32. Its ``partnership_s_corp_income`` -array is the archived pipeline's nonpassive-only sum ``(E25980 - E25960) + -(E26190 - E26180)`` in TY2015 dollars. This module therefore reads line 32 and -the passive columns from the pinned TY2015 source rows and aligns them to the -processed tax units the same way :mod:`puf_source_agi` aligns E00100. +The processed 2024 PUF does not carry line 32 or its entity split. Its +``partnership_s_corp_income`` array is the archived pipeline's nonpassive-only +sum ``(E25980 - E25960) + (E26190 - E26180)`` in TY2015 dollars. This module +therefore reads the Schedule E Part II column fields from the pinned TY2015 +source rows and aligns them to the processed tax units the same way +:mod:`puf_source_agi` aligns E00100. Field meanings come from the IRS SOI General Description Booklet for the 2014 Public Use Tax File, whose annotated Schedule E Part II maps line 28 columns to @@ -26,22 +27,36 @@ ==== ========================================== =========== =========== Line 32 (E26270) combines line 30, columns (g) plus (j), with line 31, columns -(f), (h) and (i). The passive subset is (g) minus (f), which already applies +(f), (h) and (i). Each line 28 row is one partnership or one S corporation, so +the entity shares of line 32 are the entity's own columns: + +* ``partnership_income`` = E25940 + E25980 - E25920 - E25960 - E26110; +* ``s_corp_income`` = E26170 + E26190 - E26160 - E26180 - E26100. + +The passive subset is (g) minus (f) of both entities, which already applies the section 469 limitation because column (f) is the loss *allowed*. Section 179 sits under the form's "Nonpassive Income and Loss" heading, so it belongs -to the nonpassive remainder. +to the nonpassive remainder. The entity shares and the passive/nonpassive +split are two partitions of the same ten fields, so ``partnership_income + +s_corp_income`` equals passive plus nonpassive exactly. The IRS rounds every PUF amount independently (booklet disclosure step 9), so -E26270 equals the sum of the ten column fields only to within the documented -rounding of each field. :func:`schedule_e_line_32_rounding_bound` encodes that -bound and the alignment refuses any regular record outside it. +the stored E26270 equals the sum of the ten column fields only to within the +documented rounding of each field. :func:`schedule_e_line_32_rounding_bound` +encodes that bound and the alignment refuses any regular record outside it. +The donor carries the entity shares, not E26270: no field says which entity a +rounding residual belongs to, and moving it onto either entity would put a +residual of a few dollars on returns with none of that entity's income. On the +pinned TY2015 file the stored E26270 differs from the field sum on 18.5% of +regular records, by $0.135 billion weighted in absolute value of $621.9 +billion net (microcosm#1258 evidence). The four IRS disclosure aggregate rows were replaced by synthetic records whose amount columns the archive calibrated one at a time to each row's totals. No -per-record line 32 exists for them, so each aggregate row's line-32 and passive -totals are allocated over its synthetic records in proportion to their -processed nonpassive amounts. That preserves every bucket's published totals -and each record's sign pattern. +per-record line 28 columns exist for them, so each aggregate row's partnership, +S-corporation and passive totals are allocated over its synthetic records in +proportion to their processed nonpassive amounts. That preserves every bucket's +published totals by entity and each record's combined sign pattern. """ from __future__ import annotations @@ -98,9 +113,34 @@ *PUF_SCHEDULE_E_PART_II_LEGS, ) +#: Schedule E line 28 column fields of each entity's share of line 32, as +#: (income columns, loss columns): (g) and (j) add, (f), (h) and (i) subtract. +PUF_SCHEDULE_E_PARTNERSHIP_LEGS = ( + (PUF_PARTNERSHIP_PASSIVE_INCOME, PUF_PARTNERSHIP_NONPASSIVE_INCOME), + ( + PUF_PARTNERSHIP_PASSIVE_LOSS_ALLOWED, + PUF_PARTNERSHIP_NONPASSIVE_LOSS, + PUF_PARTNERSHIP_SECTION_179, + ), +) +PUF_SCHEDULE_E_S_CORP_LEGS = ( + (PUF_S_CORP_PASSIVE_INCOME, PUF_S_CORP_NONPASSIVE_INCOME), + ( + PUF_S_CORP_PASSIVE_LOSS_ALLOWED, + PUF_S_CORP_NONPASSIVE_LOSS, + PUF_S_CORP_SECTION_179, + ), +) + #: Donor output names this module supplies, at tax-unit grain. -SCHEDULE_E_LINE_32_OUTPUT = "partnership_income" +SCHEDULE_E_PARTNERSHIP_OUTPUT = "partnership_income" +SCHEDULE_E_S_CORP_OUTPUT = "s_corp_income" SCHEDULE_E_PASSIVE_OUTPUT = "passive_partnership_s_corp_income" +SCHEDULE_E_DONOR_OUTPUTS = ( + SCHEDULE_E_PARTNERSHIP_OUTPUT, + SCHEDULE_E_S_CORP_OUTPUT, + SCHEDULE_E_PASSIVE_OUTPUT, +) def schedule_e_line_32_rounding_bound(values: Any) -> np.ndarray: @@ -129,17 +169,20 @@ def schedule_e_line_32_rounding_bound(values: Any) -> np.ndarray: def schedule_e_partnership_s_corp_columns( frame: pd.DataFrame, ) -> dict[str, np.ndarray]: - """Return line 32, its passive subset and nonpassive remainder per record. + """Return line 32 by entity, its passive subset and remainder per record. Args: frame: Source rows carrying E26270 and the ten line 28 column fields. Returns: - ``line_32`` (E26270 as stored), ``passive`` ((g) minus (f) for both - entity types), ``nonpassive`` ((j) minus (h) minus (i) for both entity - types, which is what the processed artifact's archived column omits - only by (i)), ``archived_nonpassive`` (the processed artifact's - ``(E25980 - E25960) + (E26190 - E26180)``) and ``rounding_bound``. + ``partnership`` and ``s_corp`` ((g) + (j) - (f) - (h) - (i) of each + entity's columns), ``line_32`` (E26270 as stored), ``passive`` ((g) + minus (f) for both entity types), ``nonpassive`` ((j) minus (h) minus + (i) for both entity types, which is what the processed artifact's + archived column omits only by (i)), ``archived_nonpassive`` (the + processed artifact's ``(E25980 - E25960) + (E26190 - E26180)``) and + ``rounding_bound``. ``partnership + s_corp`` and ``passive + + nonpassive`` partition the same ten fields, so they are equal. Raises: ValueError: If a field is missing or nonfinite, a line 28 column field @@ -186,13 +229,15 @@ def schedule_e_partnership_s_corp_columns( - values[PUF_PARTNERSHIP_SECTION_179] - values[PUF_S_CORP_SECTION_179] ) + partnership = _entity_share(values, PUF_SCHEDULE_E_PARTNERSHIP_LEGS) + s_corp = _entity_share(values, PUF_SCHEDULE_E_S_CORP_LEGS) line_32 = values[PUF_SCHEDULE_E_LINE_32] rounding_bound = schedule_e_line_32_rounding_bound(line_32) for column in PUF_SCHEDULE_E_PART_II_LEGS: rounding_bound = rounding_bound + schedule_e_line_32_rounding_bound( values[column] ) - outside = np.abs(line_32 - (passive + nonpassive)) > rounding_bound + outside = np.abs(line_32 - (partnership + s_corp)) > rounding_bound if outside.any(): raise ValueError( "TY2015 PUF E26270 differs from its Schedule E line 28 column " @@ -200,6 +245,8 @@ def schedule_e_partnership_s_corp_columns( f"{int(outside.sum())} record(s)." ) return { + "partnership": partnership, + "s_corp": s_corp, "line_32": line_32, "passive": passive, "nonpassive": nonpassive, @@ -208,6 +255,21 @@ def schedule_e_partnership_s_corp_columns( } +def _entity_share( + values: Mapping[str, np.ndarray], + legs: tuple[tuple[str, ...], tuple[str, ...]], +) -> np.ndarray: + """Return one entity's line-32 share: its income columns less its losses.""" + + income, losses = legs + share = np.zeros_like(values[income[0]]) + for column in income: + share = share + values[column] + for column in losses: + share = share - values[column] + return share + + def _schedule_e_source_frame( source: str | Path | pd.DataFrame | Mapping[str, Sequence[Any]], ) -> pd.DataFrame: @@ -285,7 +347,7 @@ def source_year_puf_partnership_s_corp_income( processed_nonpassive_partnership_s_corp_income: Sequence[Any], receipt: dict[str, object] | None = None, ) -> dict[str, np.ndarray]: - """Return Schedule E line 32 and its passive subset per processed tax unit. + """Return Schedule E line 32 by entity and its passive subset per tax unit. Args: source: The pinned TY2015 PUF CSV, or a table with the same columns. @@ -300,9 +362,10 @@ def source_year_puf_partnership_s_corp_income( allocation ratios. Returns: - ``partnership_income`` (Schedule E line 32) and - ``passive_partnership_s_corp_income`` (its passive subset), both in - TY2015 dollars, the dollar basis of the processed column they replace. + ``partnership_income`` and ``s_corp_income`` (each entity's share of + Schedule E line 32) and ``passive_partnership_s_corp_income`` (the + passive subset of their sum), all in TY2015 dollars, the dollar basis + of the processed column they replace. Raises: ValueError: If the layout does not align, the processed column departs @@ -338,10 +401,14 @@ def source_year_puf_partnership_s_corp_income( "cannot replace it with TY2015 Schedule E line 32." ) - line_32 = np.empty(len(weights), dtype=np.float64) - passive = np.empty(len(weights), dtype=np.float64) - line_32[:regular_count] = regular_columns["line_32"] - passive[:regular_count] = regular_columns["passive"] + leaves = { + SCHEDULE_E_PARTNERSHIP_OUTPUT: "partnership", + SCHEDULE_E_S_CORP_OUTPUT: "s_corp", + SCHEDULE_E_PASSIVE_OUTPUT: "passive", + } + aligned = {output: np.empty(len(weights), dtype=np.float64) for output in leaves} + for output, column in leaves.items(): + aligned[output][:regular_count] = regular_columns[column] aggregate_columns = schedule_e_partnership_s_corp_columns( layout.aggregate.loc[list(PUF_AGGREGATE_RECIDS)] @@ -357,8 +424,6 @@ def source_year_puf_partnership_s_corp_income( "do not preserve the aggregate-row population." ) per_return_nonpassive = float(aggregate_columns["archived_nonpassive"][index]) - per_return_line_32 = float(aggregate_columns["line_32"][index]) - per_return_passive = float(aggregate_columns["passive"][index]) bucket_nonpassive = processed_nonpassive[rows] processed_total = float(bucket_weights @ bucket_nonpassive) expected_total = population * per_return_nonpassive @@ -373,26 +438,34 @@ def source_year_puf_partnership_s_corp_income( "do not carry the aggregate row's nonpassive total, so its " "line-32 and passive totals cannot be allocated over them." ) - line_32_ratio = per_return_line_32 / per_return_nonpassive - passive_ratio = per_return_passive / per_return_nonpassive - line_32[rows] = bucket_nonpassive * line_32_ratio - passive[rows] = bucket_nonpassive * passive_ratio - synthetic_receipt[str(recid)] = { + bucket_receipt: dict[str, float] = { "records": float(rows.stop - rows.start), "population": population, - "line_32_per_return": per_return_line_32, - "passive_per_return": per_return_passive, + "line_32_per_return": float(aggregate_columns["line_32"][index]), "archived_nonpassive_per_return": per_return_nonpassive, - "line_32_to_nonpassive_ratio": line_32_ratio, - "passive_to_nonpassive_ratio": passive_ratio, } - - if not (np.isfinite(line_32).all() and np.isfinite(passive).all()): + for output, column in leaves.items(): + per_return = float(aggregate_columns[column][index]) + ratio = per_return / per_return_nonpassive + aligned[output][rows] = bucket_nonpassive * ratio + bucket_receipt[f"{column}_per_return"] = per_return + bucket_receipt[f"{column}_to_nonpassive_ratio"] = ratio + synthetic_receipt[str(recid)] = bucket_receipt + + if not all(np.isfinite(values).all() for values in aligned.values()): raise ValueError("Recovered TY2015 Schedule E values must be finite.") if receipt is not None: + partnership = aligned[SCHEDULE_E_PARTNERSHIP_OUTPUT] + s_corp = aligned[SCHEDULE_E_S_CORP_OUTPUT] + passive = aligned[SCHEDULE_E_PASSIVE_OUTPUT] + line_32 = partnership + s_corp + regular_weights = weights[:regular_count] + stored_residual = regular_columns["line_32"] - ( + regular_columns["partnership"] + regular_columns["s_corp"] + ) receipt.update( { - "source": "TY2015 PUF E26270 and Schedule E line 28 columns", + "source": "TY2015 PUF Schedule E line 28 columns f-j by entity", "dollar_basis": "TY2015 (the processed column's basis)", "weighted_line_32": float(weights @ line_32), "weighted_passive": float(weights @ passive), @@ -405,12 +478,48 @@ def source_year_puf_partnership_s_corp_income( "weighted_processed_nonpassive_nonzero_count": float( weights[processed_nonpassive != 0].sum() ), + "entities": { + output: _signed_legs(weights, aligned[output]) + for output in ( + SCHEDULE_E_PARTNERSHIP_OUTPUT, + SCHEDULE_E_S_CORP_OUTPUT, + ) + }, + "regular_stored_e26270_residual": { + "records_differing": int((stored_residual != 0).sum()), + "weighted_signed": float(regular_weights @ stored_residual), + "weighted_absolute": float( + regular_weights @ np.abs(stored_residual) + ), + "max_share_of_rounding_bound": float( + np.max( + np.abs(stored_residual) + / np.where( + regular_columns["rounding_bound"] > 0, + regular_columns["rounding_bound"], + 1.0, + ), + initial=0.0, + ) + ), + }, "synthetic_buckets": synthetic_receipt, } ) + return aligned + + +def _signed_legs(weights: np.ndarray, values: np.ndarray) -> dict[str, float]: + """Weighted net, income and loss amounts and returns of one signed leaf.""" + + positive = values > 0 + negative = values < 0 return { - SCHEDULE_E_LINE_32_OUTPUT: line_32, - SCHEDULE_E_PASSIVE_OUTPUT: passive, + "weighted_net": float(weights @ values), + "weighted_income": float(weights[positive] @ values[positive]), + "weighted_income_returns": float(weights[positive].sum()), + "weighted_loss": float(-(weights[negative] @ values[negative])), + "weighted_loss_returns": float(weights[negative].sum()), } @@ -419,9 +528,13 @@ def source_year_puf_partnership_s_corp_income( "PUF_SCHEDULE_E_LINE_32", "PUF_SCHEDULE_E_LOSS_LEGS", "PUF_SCHEDULE_E_PART_II_LEGS", + "PUF_SCHEDULE_E_PARTNERSHIP_LEGS", + "PUF_SCHEDULE_E_S_CORP_LEGS", "PUF_SOURCE_YEAR_SCHEDULE_E_REQUIRED_COLUMNS", - "SCHEDULE_E_LINE_32_OUTPUT", + "SCHEDULE_E_DONOR_OUTPUTS", + "SCHEDULE_E_PARTNERSHIP_OUTPUT", "SCHEDULE_E_PASSIVE_OUTPUT", + "SCHEDULE_E_S_CORP_OUTPUT", "schedule_e_line_32_rounding_bound", "processed_puf_tax_unit_partnership_s_corp_income", "schedule_e_partnership_s_corp_columns", 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 f15f26a6e0..b6678b1f3c 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 @@ -35,6 +35,15 @@ from microcosm.build.us_runtime.puf_interest_components import ( split_us_puf_e19200_by_agi_band, ) +from microcosm.build.us_runtime.puf_source_schedule_e import ( + PUF_PARTNERSHIP_PASSIVE_INCOME, + PUF_PARTNERSHIP_PASSIVE_LOSS_ALLOWED, + PUF_S_CORP_PASSIVE_INCOME, + PUF_S_CORP_PASSIVE_LOSS_ALLOWED, + PUF_SCHEDULE_E_PARTNERSHIP_LEGS, + PUF_SCHEDULE_E_S_CORP_LEGS, + SCHEDULE_E_DONOR_OUTPUTS, +) from microcosm.build.us_runtime.qbi_inputs import ( US_QBI_BOOLEAN_OUTPUT_COLUMNS, US_QBI_NONNEGATIVE_OUTPUT_COLUMNS, @@ -321,9 +330,8 @@ class _PredictorSourcePlan: "farm_operations_income", "farm_rent_income", "miscellaneous_income", - # Schedule E line 32 (microcosm#1239): the combined partnership and - # S-corporation total is carried by partnership_income (s_corp_income is - # an exact-zero universe), and its section 469 passive subset follows it + # Schedule E line 32 by entity (microcosm#1239, #1258): each entity's + # share is its own leaf, and their section 469 passive subset follows both # in the chain so the passive draw conditions on the drawn total. "partnership_income", "s_corp_income", @@ -1369,13 +1377,14 @@ def puf_tax_unit_donor_from_arrays( adjusted_gross_income: Explicit tax-unit-grain AGI used to select the published TY2015 SOI Table 2.1 component share for each record. Required whenever the processed PUF carries nonzero E19200. - schedule_e_partnership_s_corp: Tax-unit-grain Schedule E line 32 - (``partnership_income``) and its passive subset - (``passive_partnership_s_corp_income``) aligned to + schedule_e_partnership_s_corp: Tax-unit-grain Schedule E line 32 by + entity (``partnership_income`` and ``s_corp_income``) and their + passive subset (``passive_partnership_s_corp_income``) aligned to ``tax_unit_id``, from :func:`~microcosm.build.us_runtime.puf_source_schedule_e.source_year_puf_partnership_s_corp_income`. - The processed artifact has no line 32, so a processed donor that - requests either leaf must supply it (microcosm#1239). + The processed artifact has neither line 32 nor its entity split, + so a processed donor that requests any of these leaves must supply + it (microcosm#1239, #1258). person_outputs: Person-grain PE input variables to aggregate by tax unit. tax_unit_outputs: Tax-unit-grain PE input variables to carry or derive. @@ -1557,10 +1566,7 @@ def puf_tax_unit_donor_from_arrays( return tax_unit -_SCHEDULE_E_DONOR_OUTPUTS = ( - "partnership_income", - "passive_partnership_s_corp_income", -) +_SCHEDULE_E_DONOR_OUTPUTS = SCHEDULE_E_DONOR_OUTPUTS def _attach_schedule_e_partnership_s_corp( @@ -1569,9 +1575,9 @@ def _attach_schedule_e_partnership_s_corp( *, person_outputs: Sequence[str], ) -> None: - """Carry source-year Schedule E line 32 and its passive subset. + """Carry source-year Schedule E line 32 by entity and its passive subset. - Both leaves must be supplied together, aligned to ``tax_unit_id`` and + The three leaves must be supplied together, aligned to ``tax_unit_id`` and finite. A leaf the arrays already derived (a stored leaf or raw Schedule E fields) is a second source for the same value and is refused rather than silently overwritten. @@ -2326,7 +2332,7 @@ def _zero_passive_partnership_s_corp_without_line_32( if not totals: raise ValueError( "PUF passive partnership/S-corp draws need the line-32 total " - "(partnership_income) in the same chain." + "(partnership_income and s_corp_income) in the same chain." ) line_32 = predictions[totals].sum(axis=1) predictions.loc[line_32 == 0.0, passive] = 0.0 @@ -4521,9 +4527,12 @@ def _reconcile_puf_social_security_components( # Booklet, annotated Schedule E Part II): (g) passive income, (j) nonpassive # income, (f) passive loss allowed, (h) nonpassive loss, (i) section 179. _RAW_SCHEDULE_E_ENTITY_LEGS: Mapping[str, tuple[tuple[str, ...], tuple[str, ...]]] = { - "partnership_income": (("E25940", "E25980"), ("E25920", "E25960", "E26110")), - "s_corp_income": (("E26170", "E26190"), ("E26160", "E26180", "E26100")), - "passive_partnership_s_corp_income": (("E25940", "E26170"), ("E25920", "E26160")), + "partnership_income": PUF_SCHEDULE_E_PARTNERSHIP_LEGS, + "s_corp_income": PUF_SCHEDULE_E_S_CORP_LEGS, + "passive_partnership_s_corp_income": ( + (PUF_PARTNERSHIP_PASSIVE_INCOME, PUF_S_CORP_PASSIVE_INCOME), + (PUF_PARTNERSHIP_PASSIVE_LOSS_ALLOWED, PUF_S_CORP_PASSIVE_LOSS_ALLOWED), + ), } @@ -4577,12 +4586,10 @@ def _person_source_values( if raw_schedule_e is not None: return raw_schedule_e # The processed artifact's partnership_s_corp_income is the archived - # nonpassive-only sum, not Schedule E line 32, so it never stands for - # partnership_income; puf_tax_unit_donor_from_arrays takes line 32 from - # the source-year rows instead (microcosm#1239). Its presence still marks - # the combined-leaf convention under which s_corp_income is exactly zero. - if output == "s_corp_income" and "partnership_s_corp_income" in arrays: - return np.zeros_like(_numeric_array(arrays["partnership_s_corp_income"])) + # nonpassive-only sum of both entities, not Schedule E line 32, so it + # stands for neither partnership_income nor s_corp_income; + # puf_tax_unit_donor_from_arrays takes both entity shares from the + # source-year rows instead (microcosm#1239, #1258). if output == "partnership_self_employment_net_earnings" and ( "partnership_se_income" in arrays ): 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 56f55581b8..4418476c80 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 @@ -238,7 +238,6 @@ "STACKED_PILOT_ACS_SAMPLE_FRACTION", "STACKED_PILOT_ACS_SAMPLE_SEED", "STACKED_SPINE_MANIFEST_KEY", - "US_PUF_S_CORP_UNIVERSE_ZERO_RULE_ID", "US_LATE_PRODUCER_TRANSITION_AUTHORITY_KEY", "AbsenceProof", "GapFillAbsenceRule", @@ -266,7 +265,6 @@ "stacked_spine_authority_receipt", "transfer_stacked_post_puf_inputs", "transfer_stacked_post_puf_group", - "us_puf_s_corp_universe_zero_rule_identity", "validate_stacked_late_producer_receipt", "validate_stacked_late_producer_transition_authority", "validate_stacked_gap_fill_receipt", @@ -286,7 +284,6 @@ } STACKED_SPINE_MANIFEST_KEY = "us_stacked_spine_manifest" -US_PUF_S_CORP_UNIVERSE_ZERO_RULE_ID = "puf_tax_detail_s_corp_income_universe_zero_v1" _LEGACY_STACKED_SPINE_MANIFEST_VERSION = 1 _STACKED_SPINE_MANIFEST_VERSION = 4 _SUPPORTED_STACKED_SPINE_MANIFEST_VERSIONS = { @@ -2666,6 +2663,7 @@ def _terminal_surface_from_pool_registry() -> TargetFamilies: ("person", "puf_tax_itemization", "farm_rent_income"), ("person", "puf_tax_itemization", "miscellaneous_income"), ("person", "puf_tax_itemization", "partnership_income"), + ("person", "puf_tax_itemization", "s_corp_income"), ( "person", "puf_tax_itemization", @@ -5679,9 +5677,6 @@ def require_positive_integer(value: object, *, label: str) -> int: if doctrines != { "require_complete_recipient_predictors": True, "absent_cells": PUF_ABSENT_CELLS_PRESERVE_NULLS, - "whole_pool_output_universes": { - "person.s_corp_income": (us_puf_s_corp_universe_zero_rule_identity()), - }, }: raise ValueError(f"{boundary}: late primary-PUF doctrines changed.") if audit_sinks != { @@ -6151,9 +6146,6 @@ def _late_primary_execution_config_binding( "doctrines": { "require_complete_recipient_predictors": True, "absent_cells": PUF_ABSENT_CELLS_PRESERVE_NULLS, - "whole_pool_output_universes": { - "person.s_corp_income": (us_puf_s_corp_universe_zero_rule_identity()), - }, }, "capital_gains_tail": { "enabled": True, @@ -8987,11 +8979,11 @@ def validate_structural_absence_receipt( _surface_target_keys(_freeze_target_families(pool_transfer_target_families())) ) if ( - len(_canonical_surface_keys) != 135 - or len(set(_canonical_surface_keys)) != 135 + len(_canonical_surface_keys) != 136 + or len(set(_canonical_surface_keys)) != 136 or len(_canonical_early_transfer_keys) != 48 - or len(_canonical_late_transfer_keys) != 71 - or len(_canonical_late_puf_producer_keys) != 44 + or len(_canonical_late_transfer_keys) != 72 + or len(_canonical_late_puf_producer_keys) != 45 or len(_canonical_late_source_producer_keys) != 29 or len(_canonical_late_puf_producer_keys & _canonical_late_source_producer_keys) != 2 @@ -9000,7 +8992,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) != 119 + or len(_canonical_full_transfer_keys) != 120 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) @@ -9020,10 +9012,10 @@ def validate_structural_absence_receipt( ) ): raise RuntimeError( - "Canonical stacked authority must partition the exact 119-target " - "transfer surface into 48 early gap-fill and 71 post-PUF targets " - "inside an exact 135-target terminal surface and metric registry; " - "the late surface must be exactly covered by 44 PUF-clone and 29 " + "Canonical stacked authority must partition the exact 120-target " + "transfer surface into 48 early gap-fill and 72 post-PUF targets " + "inside an exact 136-target terminal surface and metric registry; " + "the late surface must be exactly covered by 45 PUF-clone and 29 " "ASEC-source producer targets with their declared two-target overlap." ) @@ -11656,156 +11648,6 @@ def execute( # --------------------------------------------------------------------------- -def us_puf_s_corp_universe_zero_rule_identity() -> dict[str, object]: - """Return the declared whole-pool meaning of the PUF S-corp leaf.""" - - return { - "rule_id": US_PUF_S_CORP_UNIVERSE_ZERO_RULE_ID, - "schema_version": 1, - "entity": "person", - "column": "s_corp_income", - "coverage_scope": "whole_pool", - "materialized_value": 0.0, - "source_semantics": ( - "puf_combined_partnership_s_corp_carried_by_partnership_income" - ), - "donor_precondition": "finite_exact_zero", - "puf_clone_precondition": "finite_exact_zero", - "native_precondition": "all_null", - "assignment": "explicit_array_assignment", - } - - -def _materialize_us_puf_s_corp_universe_zero( - frame: Frame, - donor_tax_units: pd.DataFrame, -) -> tuple[Frame, dict[str, object]]: - """Materialize the certified all-zero S-corp leaf over the whole pool. - - The PUF source stores combined partnership/S-corporation income in - ``partnership_income`` and exposes ``s_corp_income`` as an exact-zero - schema leaf. The QRF therefore proves the clone values, while this owner - extends that declared universe meaning to native stacked rows. Every - precondition is checked before one explicit array assignment; this is not - a missing-value fallback. - """ - - column = "s_corp_income" - if column not in donor_tax_units: - raise ValueError( - "US PUF s_corp_income universe-zero materialization requires the " - "declared donor column." - ) - donor_values = pd.to_numeric(donor_tax_units[column], errors="coerce").to_numpy( - dtype=np.float64, - na_value=np.nan, - ) - donor_nonfinite = int((~np.isfinite(donor_values)).sum()) - if donor_nonfinite: - raise ValueError( - "US PUF s_corp_income universe-zero donor precondition failed: " - f"{donor_nonfinite} nonfinite value(s)." - ) - donor_nonzero = int((donor_values != 0.0).sum()) - if donor_nonzero: - raise ValueError( - "US PUF s_corp_income universe-zero donor precondition failed: " - f"{donor_nonzero} nonzero value(s)." - ) - - person_entity = frame.schema.person_entity - person = frame.table(person_entity).copy(deep=True) - if column not in person: - raise ValueError( - "US PUF s_corp_income universe-zero materialization requires the " - "primary-QRF output column." - ) - clone_column = support_clone_index_column(person_entity) - clone_values = pd.to_numeric(person[clone_column], errors="coerce").to_numpy( - dtype=np.float64, - na_value=np.nan, - ) - if not np.isfinite(clone_values).all(): - raise ValueError( - "US PUF s_corp_income universe-zero materialization found a " - "nonfinite person clone role." - ) - native = clone_values == 0.0 - produced = clone_values > 0.0 - preexisting_native = int(person.loc[native, column].notna().sum()) - if preexisting_native: - raise ValueError( - "US PUF s_corp_income universe-zero native precondition failed: " - f"{preexisting_native} native cell(s) were already materialized." - ) - - produced_values = pd.to_numeric( - person.loc[produced, column], - errors="coerce", - ).to_numpy(dtype=np.float64, na_value=np.nan) - produced_nonfinite = int((~np.isfinite(produced_values)).sum()) - if produced_nonfinite: - raise ValueError( - "US PUF s_corp_income universe-zero clone precondition failed: " - f"{produced_nonfinite} nonfinite clone/tail value(s)." - ) - produced_nonzero = int((produced_values != 0.0).sum()) - if produced_nonzero: - raise ValueError( - "US PUF s_corp_income universe-zero clone precondition failed: " - f"{produced_nonzero} nonzero clone/tail value(s)." - ) - - output_values = pd.to_numeric(person[column], errors="coerce").to_numpy( - dtype=np.float64, - na_value=np.nan, - copy=True, - ) - output_values[native] = np.zeros(int(native.sum()), dtype=np.float64) - person[column] = output_values - output_nonfinite = int((~np.isfinite(output_values)).sum()) - output_nonzero = int((output_values != 0.0).sum()) - if output_nonfinite or output_nonzero: - raise AssertionError( - "US PUF s_corp_income universe-zero explicit assignment did not " - "produce an exact finite-zero whole-pool column." - ) - - tables = {entity: frame.table(entity) for entity in frame.entities} - tables[person_entity] = person - materialized = Frame( - tables, - frame.schema, - {entity: frame.weights_for(entity) for entity in frame.weighted_entities}, - frame.strata, - mass_log=frame.mass_log, - metadata=frame.metadata, - ) - role_counts = { - str(int(role)): int((clone_values == role).sum()) - for role in sorted(set(clone_values)) - } - receipt: dict[str, object] = { - "rule": us_puf_s_corp_universe_zero_rule_identity(), - "status": "materialized", - "donor_rows_verified": len(donor_values), - "native_rows_materialized": int(native.sum()), - "produced_rows_verified": int(produced.sum()), - "person_rows": len(person), - "person_rows_by_clone_role": role_counts, - "post_materialization_nonfinite_rows": output_nonfinite, - "post_materialization_nonzero_rows": output_nonzero, - "donor_values_sha256": _late_table_values_sha256( - donor_tax_units.loc[:, [column]] - ), - "person_values_sha256": _late_table_values_sha256( - person.loc[:, [clone_column, column]] - ), - } - receipt["sha256"] = _canonical_sha256(receipt) - return materialized, receipt - - @dataclass(frozen=True) class StackedPufPassResult: """The post-PUF stacked frame plus attachment and fit receipts.""" @@ -12199,28 +12041,6 @@ def _run_stacked_puf_pass_evaluate( tail_receipt = None tail_status = "fixture_only_skipped" - declared_person_outputs = ( - tuple(PUF_TAX_DETAIL_DEFAULT_PERSON_OUTPUTS) - if person_outputs is None - else tuple(person_outputs) - ) - s_corp_rule_requested = "s_corp_income" in declared_person_outputs - if s_corp_rule_requested and ( - apply_capital_gains_tail or person_outputs is not None - ): - output, s_corp_universe_receipt = _materialize_us_puf_s_corp_universe_zero( - output, donor_tax_units - ) - else: - s_corp_universe_receipt = { - "rule": us_puf_s_corp_universe_zero_rule_identity(), - "status": ( - "fixture_only_skipped" - if s_corp_rule_requested - else "output_not_requested" - ), - } - s_corp_universe_receipt["sha256"] = _canonical_sha256(s_corp_universe_receipt) validate_stacked_spine_frame(output, boundary="stacked PUF pass output") person = output.table("person") @@ -12236,13 +12056,9 @@ def _run_stacked_puf_pass_evaluate( "doctrines": { "require_complete_recipient_predictors": True, "absent_cells": PUF_ABSENT_CELLS_PRESERVE_NULLS, - "whole_pool_output_universes": { - "person.s_corp_income": (us_puf_s_corp_universe_zero_rule_identity()), - }, }, "primary_puf_qrf": primary_qrf_receipt, "puf_capital_gains_tail_transfer": tail_receipt, - "s_corp_income_universe_zero": s_corp_universe_receipt, "tail_status": tail_status, "recipient_person_rows_by_origin": recipients_by_origin, } 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 bf05c4cb3b..6f7acb1595 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 @@ -100,9 +100,11 @@ "us_late_producer_schedule_receipt", ] -# v16 declares person.s_corp_income as a whole-pool primary-PUF output: its -# certified combined-source semantics are carried by partnership_income, while -# the separate S-corporation leaf is an exact-zero universe. v15 content-binds +# v16 declared person.s_corp_income as a whole-pool primary-PUF output while +# the donor carried Schedule E line 32 combined in partnership_income; since +# microcosm#1258 the S-corporation share is its own donor leaf, so it is an +# ordinary PUF-clone output that the late transfer carries to native rows +# (a content change under the same registry schema). v15 content-binds # the complete late dual-producer ownership matrix and # validates that it exhausts the primary/source/transfer intersection. v14 # scopes origin-exclusive raw requirements independently of their inventory @@ -1412,11 +1414,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) != 71 + or sum(len(group.targets) for group in CANONICAL_US_LATE_TRANSFER_GROUPS) != 72 ): raise RuntimeError( "Canonical US late transfer must contain exactly 19 bounded groups " - "and 71 ordered targets." + "and 72 ordered targets." ) _canonical_late_targets = { target for group in CANONICAL_US_LATE_TRANSFER_GROUPS for target in group.targets @@ -1425,11 +1427,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) != 52 + or len(_canonical_late_targets - _BOOLEAN_LATE_TARGETS - _STRING_LATE_TARGETS) != 53 ): raise RuntimeError( - "Canonical US late target kinds must partition 71 targets into " - "52 numeric, 17 boolean, and 2 string inputs." + "Canonical US late target kinds must partition 72 targets into " + "53 numeric, 17 boolean, and 2 string inputs." ) US_LATE_TRANSFER_INPUT_INVENTORIES: Mapping[str, SourceInputInventory] = ( MappingProxyType( @@ -1615,15 +1617,7 @@ def _build_registry() -> dict[str, ProducerContract]: late_keys = _target_key_rows(late_surface) puf_keys = _target_key_rows(pool_post_puf_puf_producer_target_families()) declared_primary_outputs = tuple( - ProducerOutput( - entity, - column, - ( - _WHOLE_POOL_SCOPE - if (entity, column) == ("person", "s_corp_income") - else _PUF_CLONE_SCOPE - ), - ) + ProducerOutput(entity, column, _PUF_CLONE_SCOPE) for entity, columns in PRE_ASSEMBLY_OPERATOR_OUTPUT_FAMILIES[ "primary_puf_qrf" ].items() 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 f28f6b7e75..0e5b0343a8 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 @@ -46,7 +46,7 @@ def test_checked_in_us_lock_is_fresh_schema_valid_and_not_authored() -> None: "simulate": 992, } assert remaining["receipt"]["manifest_sha256"] == ( - "2503fed80e11fbea6f4be566597dbbdd32402bc6ef99de8c4d6b2b181c13f338" + "d4fb9de9c0b8081474a24d0abde84ebf05eb346483fc20e3852e29abc769a501" ) 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 c56fc76ea0..f60b34cdd3 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,7 +70,7 @@ 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"] == ( - "3b6f534db79be588396d6543a8368c6251d41ae25139153ade01bdb36ac7b1a2" + "bf681aedc859fd6398ef72da68f584069b7d25b3085c549bf99f82e8324c4eef" ) assert { name: component["sha256"] for name, component in projected["components"].items() @@ -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"] - == "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0" + == "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da" ) 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 23cbaa1bca..70a881417a 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 = "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0" +US_SCHEDULE_SHA256 = "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da" @pytest.fixture(scope="module") 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 1df0b76f25..bf0f3b19e2 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"] == ( - "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0" + "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da" ) assert projected["overlap_ownership"]["sha256"] == ( "5f64f0aac49e2313177564f71876bffc8c81b3ded4df701e70930e60e9c98356" 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 5216681539..b2cd0ebc76 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,10 +197,10 @@ def test_adapter_preserves_generation_zero_identity_components( imputation = legacy_payload["imputation"] assert isinstance(imputation, dict) assert legacy_payload["stacked_authority_receipt"]["sha256"] == ( - "3b6f534db79be588396d6543a8368c6251d41ae25139153ade01bdb36ac7b1a2" + "bf681aedc859fd6398ef72da68f584069b7d25b3085c549bf99f82e8324c4eef" ) assert imputation["late_producer_schedule_receipt"]["schedule_sha256"] == ( - "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0" + "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da" ) assert imputation["overlap_ownership"]["sha256"] == ( "5f64f0aac49e2313177564f71876bffc8c81b3ded4df701e70930e60e9c98356" 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 0cb6361121..e73204842c 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 @@ -12,7 +12,7 @@ def test_semantic_hash_has_golden_vector_and_surface_separation(tmp_path) -> Non # Pin the domain separator, normalization rules, schema-set receipt, and # exact normative projection as one reviewable golden vector. assert first.spec_sha256 == ( - "021cb5d9992470093619a81191fcdfb340d694010eec6c7a50d65e02dcc64d01" + "680e8951277e4bbfd47bd79e3c9008e424692d29f4da7c9a80975b1c630b0987" ) second_root = _rich_minimal(tmp_path / "xy", note="second", store="local:b") diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_acs_transfer.py b/packages/microcosm-build/tests/engine_free/us/test_us_acs_transfer.py index 971bc3a477..b47460b873 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_acs_transfer.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_acs_transfer.py @@ -751,10 +751,15 @@ def test_declared_plan_carries_the_23_stage_base_surface() -> None: person = declared_acs_transfer_target_families()["person"] itemization = set(person["puf_tax_itemization"]) # The 23-stage base observes partnership SE earnings (buildl's exclusion - # is stale there) but still carries s_corp_income as an all-zero schema - # column, so only the SE-earnings leg returns to the plan. + # is stale there), and since microcosm#1258 the donor carries Schedule E + # line 32 by entity, so both entity shares and their passive subset + # travel to the ACS spine. assert "partnership_self_employment_net_earnings" in itemization - assert "s_corp_income" not in itemization + assert { + "partnership_income", + "s_corp_income", + "passive_partnership_s_corp_income", + } <= itemization # The Schedule D capital-gain-distributions memo leg is DERIVED from its # transferred parents (route exclusivity at the packaged share), never # fitted: an independent fit would break the base's accounting identity. @@ -3130,6 +3135,55 @@ def check(rows) -> None: check() +@pytest.mark.parametrize("missing", ["partnership_income", "s_corp_income"]) +def test_passive_reconciliation_requires_both_line_32_components(missing: str) -> None: + """Line 32 is the sum of both entity leaves; one alone understates it. + + Before microcosm#1258 an absent ``s_corp_income`` read as zero, which was + harmless only while the S-corp leaf was an exact-zero universe. Now an + S-corporation-only person would look line-32-free and lose a lawful + passive amount, so the reconciliation refuses instead. + """ + + from microcosm.build.us_runtime.acs_transfer import ( + reconcile_acs_passive_partnership_s_corp, + ) + + person = _passive_people().drop(columns=[missing]) + + with pytest.raises(ValueError, match="both transferred line-32 components"): + reconcile_acs_passive_partnership_s_corp( + person, mutable_rows=np.ones(len(person), dtype=bool) + ) + + +def test_passive_reconciliation_keeps_s_corporation_only_carriers() -> None: + """A passive subset under an S-corporation-only line 32 is kept.""" + + from microcosm.build.us_runtime.acs_transfer import ( + reconcile_acs_passive_partnership_s_corp, + ) + + person = pd.DataFrame( + { + "person_tax_unit_id": [5, 6], + "partnership_income": [0.0, 0.0], + "s_corp_income": [2_000.0, 0.0], + "passive_partnership_s_corp_income": [300.0, 300.0], + } + ) + + passive, counts = reconcile_acs_passive_partnership_s_corp( + person, mutable_rows=np.ones(2, dtype=bool) + ) + + assert passive.tolist() == [300.0, 0.0] + assert counts == { + "cleared_subset_without_line_32": 1, + "remaining_nonzero_subset_rows": 1, + } + + def test_passive_reconciliation_is_bound_into_transfer_execution_identity() -> None: enabled = acs_transfer_module.acs_transfer_execution_contract_identity( targets=("partnership_income", "passive_partnership_s_corp_income"), 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 9adfe409b7..7d1c9e43e5 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 @@ -1948,6 +1948,20 @@ def test_soi_component_amounts_use_source_specific_signs() -> None: builder._signed_component(np.array([-5.0, 7.0]), "adjusted_gross_income"), np.array([-5.0, 7.0]), ) + # microcosm#1258: Table 1.4's entity legs, net income as the positive part + # and net loss as the negative-part magnitude of each entity's own leaf. + for income, loss in ( + ("partnership_income", "partnership_losses"), + ("s_corp_income", "s_corp_losses"), + ): + assert np.array_equal( + builder._signed_component(np.array([-5.0, 0.0, 7.0]), income), + np.array([0.0, 0.0, 7.0]), + ) + assert np.array_equal( + builder._signed_component(np.array([-5.0, 0.0, 7.0]), loss), + np.array([5.0, -0.0, -0.0]), + ) def test_export_target_audit_is_opt_in(monkeypatch) -> None: 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 3cd976bac3..3c8a094876 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 @@ -6523,3 +6523,83 @@ def test_conflicting_soi_chain_facts_fail_loudly() -> None: with pytest.raises(ValueError, match="Conflicting national SOI chain facts"): age_us_dollar_targets(registry, facts, target_period=2024) + + +# SOI Table 1.4 partnership and S corporation legs, as Chronicle publishes them +# from TY2021 (losses are positive magnitudes): measure id -> (concept, leaf, +# measure mode). microcosm#1258. +_TABLE_1_4_ENTITY_LEGS = { + "partnership_net_income_amount": ( + "partnership_income", + "partnership_income", + "sum", + ), + "partnership_net_income_returns": ( + "partnership_income", + "partnership_income", + "indicator_sum", + ), + "partnership_net_loss_amount": ("partnership_losses", "partnership_income", "sum"), + "partnership_net_loss_returns": ( + "partnership_losses", + "partnership_income", + "indicator_sum", + ), + "s_corporation_net_income_amount": ("s_corp_income", "s_corp_income", "sum"), + "s_corporation_net_income_returns": ( + "s_corp_income", + "s_corp_income", + "indicator_sum", + ), + "s_corporation_net_loss_amount": ("s_corp_losses", "s_corp_income", "sum"), + "s_corporation_net_loss_returns": ( + "s_corp_losses", + "s_corp_income", + "indicator_sum", + ), +} + + +def test_table_1_4_entity_legs_bind_their_own_leaves() -> None: + """Each Table 1.4 entity leg binds that entity's own line-32 leaf. + + The partnership legs read ``partnership_income`` and the S corporation + legs ``s_corp_income``; neither reads the combined + ``tax_unit_partnership_s_corp_income``. The ``_losses`` concepts take the + negative-part magnitude of the same leaf. + """ + + facts = [ + *packaged_reference_facts(), + *( + _soi_taxable_interest_fact( + 2022, + source_record_id=f"irs_soi.ty2022.table_1_4.all.{measure}", + value=487_105_000_000 if measure.endswith("_amount") else 3_311_926, + measure_id=measure, + layout_record_set_id="irs_soi.ty2022.table_1_4", + ) + for measure in _TABLE_1_4_ENTITY_LEGS + ), + ] + + registry = compile_us_fiscal_target_registry( + facts, allow_unaged_dollar_targets=True + ) + + by_id = {spec.metadata["ledger_source_record_id"]: spec for spec in registry.specs} + for measure, (concept, leaf, mode) in _TABLE_1_4_ENTITY_LEGS.items(): + spec = by_id[f"irs_soi.ty2022.table_1_4.all.{measure}"] + assert spec.family == "irs_soi" + assert spec.metadata["source_variable"] == concept, measure + assert spec.metadata["base_variable"] == leaf, measure + assert spec.metadata["measure_mode"] == mode, measure + assert { + concept: fiscal_targets.SOI_VARIABLE_MAP[concept] + for concept, _, _ in _TABLE_1_4_ENTITY_LEGS.values() + } == { + "partnership_income": "partnership_income", + "partnership_losses": "partnership_income", + "s_corp_income": "s_corp_income", + "s_corp_losses": "s_corp_income", + } diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_late_producer_dag.py b/packages/microcosm-build/tests/engine_free/us/test_us_late_producer_dag.py index 78798d44af..2c2af43514 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_late_producer_dag.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_late_producer_dag.py @@ -345,7 +345,7 @@ def test_canonical_us_late_registry_has_exact_producer_surface() -> None: assert len(registry) == 38 assert len(groups) == 19 - assert sum(len(group.targets) for group in groups) == 71 + assert sum(len(group.targets) for group in groups) == 72 assert {contract.kind for contract in registry.values()} == { "primary_puf", "acs_earnings_universe", @@ -356,9 +356,9 @@ def test_canonical_us_late_registry_has_exact_producer_surface() -> None: assert len(registry[US_LATE_PRIMARY_PUF_STAGE].inputs) == 120 primary_outputs = registry[US_LATE_PRIMARY_PUF_STAGE].outputs assert len(primary_outputs) == 101 - assert sum(output.coverage_scope == "puf_clone" for output in primary_outputs) == 65 + assert sum(output.coverage_scope == "puf_clone" for output in primary_outputs) == 66 assert ( - sum(output.coverage_scope == "whole_pool" for output in primary_outputs) == 35 + sum(output.coverage_scope == "whole_pool" for output in primary_outputs) == 34 ) assert sum(output.coverage_scope == "acs_source" for output in primary_outputs) == 1 assert { @@ -374,9 +374,19 @@ def test_canonical_us_late_registry_has_exact_producer_surface() -> None: if output.coverage_scope == "whole_pool" } >= { ("person", "person_support_clone_index", "whole_pool"), - ("person", "s_corp_income", "whole_pool"), ("frame", "@us_puf_clone_attachment_manifest", "whole_pool"), } + # microcosm#1258: the S-corp share is a PUF-clone output like the + # partnership share; the late transfer, not the primary pass, fills native + # rows. + assert { + (output.entity, output.column): output.coverage_scope + for output in primary_outputs + if output.column in {"partnership_income", "s_corp_income"} + } == { + ("person", "partnership_income"): "puf_clone", + ("person", "s_corp_income"): "puf_clone", + } assert all(contract.inputs for contract in registry.values()) assert { name @@ -437,7 +447,7 @@ def test_late_overlap_ownership_exhausts_every_permitted_dual_write() -> None: assert len(primary) == 66 assert len(source_writes) == 35 assert len(source_writes & transfer) == 29 - assert len(transfer) == 71 + assert len(transfer) == 72 assert len(recipient_owned) == 61 assert ( callback_passthroughs @@ -808,7 +818,7 @@ def test_canonical_us_late_schedule_is_import_validated_and_byte_stable() -> Non assert receipt["producer_count"] == 38 assert receipt["source_producer_count"] == 16 assert receipt["transfer_group_count"] == 19 - assert receipt["transfer_target_count"] == 71 + assert receipt["transfer_target_count"] == 72 assert receipt["order"][:2] == [ US_LATE_ACS_EARNINGS_UNIVERSE_STAGE, US_LATE_PRIMARY_PUF_STAGE, @@ -1324,7 +1334,7 @@ def test_source_numeric_input_audit_is_fully_executable() -> None: } == {"finite_numeric"} -def test_late_target_dependency_kinds_partition_52_numeric_17_boolean_2_string() -> ( +def test_late_target_dependency_kinds_partition_53_numeric_17_boolean_2_string() -> ( None ): string_targets = {"ssn_card_type", "immigration_status_str"} @@ -1361,7 +1371,7 @@ def test_late_target_dependency_kinds_partition_52_numeric_17_boolean_2_string() } numeric_targets = set(observed) - boolean_targets - string_targets assert (len(numeric_targets), len(boolean_targets), len(string_targets)) == ( - 52, + 53, 17, 2, ) 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 2eef652446..deee6f59c0 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,7 +603,7 @@ 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) == 119 + assert len(target_names) == 120 assert ( hashlib.sha256(("\n".join(target_names) + "\n").encode()).hexdigest() == "b5c3b20cbb6aefdc358774fc5104924d8d38a8888cdf2b5e54a7bcbae685f779" @@ -626,7 +626,7 @@ def keys(target_families): source_producers = keys(pool_post_puf_source_producer_target_families()) assert len(early) == 48 - assert len(late) == 71 + assert len(late) == 72 assert early.isdisjoint(late) assert early | late == full assert len(puf_producers) == 44 @@ -667,7 +667,7 @@ def test_pool_input_surface_normalizes_all_four_source_registries() -> None: provenance for entry in surface for provenance in entry.provenance ) == Counter( { - "pool_transfer_target_families": 119, + "pool_transfer_target_families": 120, "POOL_DEFERRED_TRANSFER_INPUTS": 3, "PRIMARY_QRF_TARGET_ORDER": 66, "load_take_up_contract": 17, @@ -880,21 +880,25 @@ def test_remaining_stage_manifest_covers_every_derive_read() -> None: ("person", "person_id"), }, } - s_corp = next( - entry + qbi_entries = { + entry.variable: entry for entry in derive if entry.consumer == "with_us_qbi_input_reconciliation" - and entry.variable == "s_corp_income" - ) - assert s_corp == PoolRemainingStageInput( + } + # microcosm#1258: S corporation income is an ordinary transferred pool + # input, provisioned exactly like the partnership share it sits beside; + # the exact-zero universe provision is retired. + assert qbi_entries["s_corp_income"] == PoolRemainingStageInput( stage="derive", consumer="with_us_qbi_input_reconciliation", entity="person", variable="s_corp_income", execution_scope="whole_pool", - provision="primary_puf_exact_zero_universe", + provision=qbi_entries["partnership_income"].provision, available_by="transferred", ) + assert qbi_entries["partnership_income"].provision.startswith("pool_input_surface:") + assert all(entry.provision != "primary_puf_exact_zero_universe" for entry in derive) assert set(ACS_PUMS_EARNINGS_UNIVERSE_PERSON_INPUTS).issubset( { variable @@ -1126,7 +1130,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) == 119 + assert len(targets) == 120 acs_transfer_module.assert_acs_transfer_targets_are_input_leaves( targets, require_known=True, @@ -1151,7 +1155,7 @@ def test_every_pool_transfer_family_accepts_its_produced_physical_dtype( ) ) - assert len(targets) == 119 + assert len(targets) == 120 assert len(predictors) == 32 assert len(primary_predictor_sets) == 66 primary_targets = tuple( diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_schedule_e.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_schedule_e.py index 1c3059dff1..51a5d27795 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_schedule_e.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_schedule_e.py @@ -1,6 +1,8 @@ -"""Schedule E line 32 and its passive subset on the PUF donor (microcosm#1239). +"""Schedule E line 32 by entity and its passive subset on the PUF donor. -The invariants below hold for every input the PUF can carry: +microcosm#1239 put line 32 and its passive subset on the donor; microcosm#1258 +splits line 32 into its partnership and S corporation shares. The invariants +below hold for every input the PUF can carry: 1. Line-32 identity: E26270 equals its Schedule E line 28 column fields, (g) + (j) - (f) - (h) - (i) for both entity types, to within the PUF's @@ -11,9 +13,17 @@ 3. Leg bounds: the passive amount lies between minus the loss columns and the income columns. 4. Donor alignment: every regular processed tax unit carries its source - record's E26270 exactly, every aggregate-row bucket carries that row's - weighted line-32 and passive totals, and the processed nonpassive column - must equal the archived sum before anything is replaced. + record's entity shares and passive amount exactly, every aggregate-row + bucket carries that row's weighted partnership, S-corporation and passive + totals, and the processed nonpassive column must equal the archived sum + before anything is replaced. +5. Entity partition: ``partnership + s_corp`` equals ``passive + nonpassive`` + exactly (two partitions of the same ten fields), so the passive subset is + unchanged by the split and the entity sum meets invariant 1. +6. Entity support: an entity share is zero whenever that entity's five columns + are zero, so the split never puts a rounding residual on a return with no + activity of that type, and each share lies between minus its own loss + columns and its own income columns. "passive <= total where both are positive" is deliberately not an invariant: a passive gain offset by a nonpassive loss is a lawful return whose passive @@ -37,6 +47,9 @@ PUF_SCHEDULE_E_INCOME_LEGS, PUF_SCHEDULE_E_LOSS_LEGS, PUF_SCHEDULE_E_PART_II_LEGS, + PUF_SCHEDULE_E_PARTNERSHIP_LEGS, + PUF_SCHEDULE_E_S_CORP_LEGS, + SCHEDULE_E_DONOR_OUTPUTS, processed_puf_tax_unit_partnership_s_corp_income, schedule_e_line_32_rounding_bound, schedule_e_partnership_s_corp_columns, @@ -48,6 +61,11 @@ _NONPASSIVE_INCOME = ("E25980", "E26190") _NONPASSIVE_LOSS = ("E25960", "E26180") _SECTION_179 = ("E26110", "E26100") +# Booklet roles by entity, written out independently of the module constants. +_PARTNERSHIP_INCOME = ("E25940", "E25980") +_PARTNERSHIP_LOSSES = ("E25920", "E25960", "E26110") +_S_CORP_INCOME = ("E26170", "E26190") +_S_CORP_LOSSES = ("E26160", "E26180", "E26100") # The restricted pinned inputs live in the archived pipeline's storage folder, # as for the E00100 alignment test; MICROCOSM_RESTRICTED_PUF_DIR points @@ -70,9 +88,14 @@ _REAL_SOURCE_PUF_SHA256 = ( "0a7fd643edb1acc55c507db795914b41d232922be78c149b58d111f4672499df" ) -_REAL_LINE_32_VECTOR_SHA256 = ( - "b0cb8de0955a88ae310da01a35d25d3d3a4ebfd1a260818faa99ea6c102489b4" +_REAL_PARTNERSHIP_VECTOR_SHA256 = ( + "b710efb7c1e273d75b0dc0146bd10c5265794688bd9e29ab07452fcdf4d64d37" ) +_REAL_S_CORP_VECTOR_SHA256 = ( + "d0ce9c9dc009545e4af7c1654812625e86b9caa283aca009b70684c42cf5d0c7" +) +# Unchanged from microcosm#1239: the entity split does not touch the passive +# subset, byte for byte. _REAL_PASSIVE_VECTOR_SHA256 = ( "6c76e077304567ff5b499142012aae8c7863153d95c41ddbff385b968c4eca53" ) @@ -145,6 +168,9 @@ def test_booklet_field_roles_define_line_32_and_the_passive_subset() -> None: np.testing.assert_array_equal( columns["line_32"], [1_000.0, -400.0, 4_300.0, 2_340.0] ) + # (g) + (j) - (f) - (h) - (i) of each entity's own columns. + np.testing.assert_array_equal(columns["partnership"], [1_000.0, 0.0, 0.0, 1_610.0]) + np.testing.assert_array_equal(columns["s_corp"], [0.0, -400.0, 4_300.0, 730.0]) np.testing.assert_array_equal(columns["passive"], [1_000.0, -400.0, 0.0, 330.0]) np.testing.assert_array_equal(columns["nonpassive"], [0.0, 0.0, 4_300.0, 2_010.0]) # The processed artifact's archived column omits the passive legs and @@ -273,6 +299,127 @@ def test_passive_lies_between_the_loss_and_income_columns( assert passive >= -sum(legs[field] for field in _PASSIVE_LOSS) +def test_module_entity_legs_match_the_booklet_roles() -> None: + """The entity constants name exactly the booklet's columns for each type.""" + + assert PUF_SCHEDULE_E_PARTNERSHIP_LEGS == (_PARTNERSHIP_INCOME, _PARTNERSHIP_LOSSES) + assert PUF_SCHEDULE_E_S_CORP_LEGS == (_S_CORP_INCOME, _S_CORP_LOSSES) + assert sorted( + (*_PARTNERSHIP_INCOME, *_PARTNERSHIP_LOSSES, *_S_CORP_INCOME, *_S_CORP_LOSSES) + ) == sorted(PUF_SCHEDULE_E_PART_II_LEGS) + assert SCHEDULE_E_DONOR_OUTPUTS == ( + "partnership_income", + "s_corp_income", + "passive_partnership_s_corp_income", + ) + + +@settings(max_examples=500, deadline=None) +@given(_leg_rows) +def test_entity_shares_partition_line_32_exactly(legs: dict[str, float]) -> None: + """Invariant 5: partnership + S corp == passive + nonpassive, bit for bit. + + PUF amounts are whole dollars far below 2**53, so both partitions of the + ten fields sum without rounding. + """ + + row = dict(legs) + row["E26270"] = _line_32(legs) + + columns = schedule_e_partnership_s_corp_columns(pd.DataFrame([row])) + + entity_total = columns["partnership"][0] + columns["s_corp"][0] + assert entity_total == columns["passive"][0] + columns["nonpassive"][0] + assert entity_total == _line_32(legs) + assert columns["partnership"][0] == sum( + legs[field] for field in _PARTNERSHIP_INCOME + ) - sum(legs[field] for field in _PARTNERSHIP_LOSSES) + assert columns["s_corp"][0] == sum(legs[field] for field in _S_CORP_INCOME) - sum( + legs[field] for field in _S_CORP_LOSSES + ) + + +@settings(max_examples=500, deadline=None) +@given(_leg_rows, st.sampled_from(("partnership", "s_corp"))) +def test_an_entity_without_columns_carries_nothing( + legs: dict[str, float], + silent: str, +) -> None: + """Invariant 6: no rounding residual lands on an entity with no columns. + + The stored E26270 is rounded independently of the fields, yet the entity + with five zero columns stays exactly zero, so a return reporting only S + corporation activity never becomes a partnership carrier (or vice versa). + """ + + silenced = ( + (*_PARTNERSHIP_INCOME, *_PARTNERSHIP_LOSSES) + if silent == "partnership" + else (*_S_CORP_INCOME, *_S_CORP_LOSSES) + ) + full = {field: 0.0 if field in silenced else value for field, value in legs.items()} + stored = {field: _puf_round(value) for field, value in full.items()} + stored["E26270"] = _puf_round(_line_32(full)) + + columns = schedule_e_partnership_s_corp_columns(pd.DataFrame([stored])) + + assert columns[silent][0] == 0.0 + other = "s_corp" if silent == "partnership" else "partnership" + assert abs(stored["E26270"] - columns[other][0]) <= columns["rounding_bound"][0] + + +@settings(max_examples=500, deadline=None) +@given(_leg_rows) +def test_each_entity_share_lies_between_its_own_loss_and_income_columns( + legs: dict[str, float], +) -> None: + """Invariant 6: an entity share is bounded by that entity's columns only.""" + + row = dict(legs) + row["E26270"] = _line_32(legs) + + columns = schedule_e_partnership_s_corp_columns(pd.DataFrame([row])) + + for column, income, losses in ( + ("partnership", _PARTNERSHIP_INCOME, _PARTNERSHIP_LOSSES), + ("s_corp", _S_CORP_INCOME, _S_CORP_LOSSES), + ): + share = columns[column][0] + assert share <= sum(legs[field] for field in income) + assert share >= -sum(legs[field] for field in losses) + + +@settings(max_examples=300, deadline=None) +@given(_leg_rows) +def test_raw_array_path_agrees_with_the_source_year_columns( + legs: dict[str, float], +) -> None: + """Differential: puf_support's raw-field derivation equals this module's. + + A raw PUF array (one carrying the Part II fields) derives the three leaves + inside ``puf_support``; the processed donor takes them from + :func:`schedule_e_partnership_s_corp_columns`. Both must agree exactly. + """ + + from microcosm.build.us_runtime.puf_support import ( + _raw_schedule_e_line_32_values, + ) + + row = dict(legs) + row["E26270"] = _line_32(legs) + columns = schedule_e_partnership_s_corp_columns(pd.DataFrame([row])) + arrays = {field: np.asarray([value]) for field, value in legs.items()} + + for output, column in ( + ("partnership_income", "partnership"), + ("s_corp_income", "s_corp"), + ("passive_partnership_s_corp_income", "passive"), + ): + raw = _raw_schedule_e_line_32_values(arrays, output) + assert raw is not None + np.testing.assert_array_equal(raw, columns[column]) + + @pytest.mark.parametrize("field", PUF_SCHEDULE_E_PART_II_LEGS) def test_columns_refuse_a_missing_or_negative_leg(field: str) -> None: row = _row(E25940=10.0, E25980=20.0) @@ -361,13 +508,28 @@ def _align(source: pd.DataFrame, processed: dict[str, np.ndarray], **kwargs): ) -def test_alignment_carries_literal_line_32_and_passive_on_regular_records() -> None: +def test_alignment_carries_entity_shares_and_passive_on_regular_records() -> None: source, processed = _source_and_processed() aligned = _align(source, processed) + assert tuple(aligned) == SCHEDULE_E_DONOR_OUTPUTS + expected_partnership = ( + source[list(_PARTNERSHIP_INCOME)].sum(axis=1) + - source[list(_PARTNERSHIP_LOSSES)].sum(axis=1) + ).to_numpy()[:30] + expected_s_corp = ( + source[list(_S_CORP_INCOME)].sum(axis=1) + - source[list(_S_CORP_LOSSES)].sum(axis=1) + ).to_numpy()[:30] + np.testing.assert_array_equal( + aligned["partnership_income"][:30], expected_partnership + ) + np.testing.assert_array_equal(aligned["s_corp_income"][:30], expected_s_corp) + # The fixture's E26270 is the exact field sum, so the entities meet it. np.testing.assert_array_equal( - aligned["partnership_income"][:30], source["E26270"].to_numpy()[:30] + aligned["partnership_income"][:30] + aligned["s_corp_income"][:30], + source["E26270"].to_numpy()[:30], ) expected_passive = ( source["E25940"] - source["E25920"] + source["E26170"] - source["E26160"] @@ -377,6 +539,25 @@ def test_alignment_carries_literal_line_32_and_passive_on_regular_records() -> N ) +def test_alignment_keeps_entity_shares_when_e26270_carries_a_rounding_residual() -> ( + None +): + """The donor carries the field sums, not a residual-bearing E26270.""" + + source, processed = _source_and_processed() + rounded = source.copy() + # A rounding residual inside the booklet bound on a regular record whose + # fields are untouched (so the archived nonpassive check still passes). + row = int(np.flatnonzero(rounded["E26270"].to_numpy()[:30] != 0)[0]) + rounded.loc[row, "E26270"] = rounded.loc[row, "E26270"] + 3.0 + + aligned = _align(rounded, processed) + baseline = _align(source, processed) + + for output in SCHEDULE_E_DONOR_OUTPUTS: + np.testing.assert_array_equal(aligned[output], baseline[output]) + + def test_alignment_preserves_each_aggregate_rows_weighted_totals() -> None: """Invariant 4 on the synthetic buckets: the signed totals match line 32.""" @@ -392,26 +573,51 @@ def test_alignment_preserves_each_aggregate_rows_weighted_totals() -> None: rows = slice(int(starts[index]), int(stops[index])) population = float(source["S006"].iloc[30 + index]) / 100.0 row = source.iloc[30 + index] - passive = row["E25940"] - row["E25920"] + row["E26170"] - row["E26160"] - assert float(weights[rows] @ aligned["partnership_income"][rows]) == ( - pytest.approx(population * row["E26270"], rel=1e-12) + partnership = sum(row[f] for f in _PARTNERSHIP_INCOME) - sum( + row[f] for f in _PARTNERSHIP_LOSSES ) + s_corp = sum(row[f] for f in _S_CORP_INCOME) - sum( + row[f] for f in _S_CORP_LOSSES + ) + passive = row["E25940"] - row["E25920"] + row["E26170"] - row["E26160"] + archived = row["E25980"] - row["E25960"] + row["E26190"] - row["E26180"] + for output, per_return in ( + ("partnership_income", partnership), + ("s_corp_income", s_corp), + ("passive_partnership_s_corp_income", passive), + ): + # Each bucket carries its aggregate row's weighted total by entity. + assert float(weights[rows] @ aligned[output][rows]) == pytest.approx( + population * per_return, rel=1e-12, abs=1e-6 + ) + # Each synthetic record keeps its processed sign pattern. + np.testing.assert_allclose( + aligned[output][rows], + processed["nonpassive"][rows] * (per_return / archived), + rtol=1e-12, + ) assert float( - weights[rows] @ aligned["passive_partnership_s_corp_income"][rows] - ) == pytest.approx(population * passive, rel=1e-12, abs=1e-6) - # Each synthetic record keeps its processed sign pattern. - ratio = row["E26270"] / ( - row["E25980"] - row["E25960"] + row["E26190"] - row["E26180"] + weights[rows] + @ (aligned["partnership_income"][rows] + aligned["s_corp_income"][rows]) + ) == pytest.approx(population * row["E26270"], rel=1e-12) + bucket = receipt["synthetic_buckets"][str(recid)] + assert bucket["partnership_per_return"] == partnership + assert bucket["s_corp_per_return"] == s_corp + line_32 = aligned["partnership_income"] + aligned["s_corp_income"] + assert receipt["weighted_line_32"] == pytest.approx(float(weights @ line_32)) + for output in ("partnership_income", "s_corp_income"): + legs = receipt["entities"][output] + values = aligned[output] + assert legs["weighted_net"] == pytest.approx(float(weights @ values)) + assert legs["weighted_income"] - legs["weighted_loss"] == pytest.approx( + legs["weighted_net"] ) - np.testing.assert_allclose( - aligned["partnership_income"][rows], - processed["nonpassive"][rows] * ratio, - rtol=1e-12, + assert legs["weighted_income_returns"] == pytest.approx( + float(weights[values > 0].sum()) + ) + assert legs["weighted_loss_returns"] == pytest.approx( + float(weights[values < 0].sum()) ) - assert str(recid) in receipt["synthetic_buckets"] - assert receipt["weighted_line_32"] == pytest.approx( - float(weights @ aligned["partnership_income"]) - ) def test_alignment_is_bit_deterministic() -> None: @@ -520,18 +726,35 @@ def test_alignment_matches_the_pinned_flat_array_artifact() -> None: receipt=receipt, ) - line_32 = aligned["partnership_income"] + partnership = aligned["partnership_income"] + s_corp = aligned["s_corp_income"] passive = aligned["passive_partnership_s_corp_income"] - assert len(line_32) == 211_677 - assert sha256(line_32.astype(" None: ) +_SCHEDULE_E_SUPPLEMENT = { + "partnership_income": [1_250.0, -300.0], + "s_corp_income": [-75.0, 4_100.0], + "passive_partnership_s_corp_income": [400.0, 0.0], +} + + def test_puf_tax_unit_donor_carries_source_year_line_32_on_processed_arrays() -> None: donor = puf_tax_unit_donor_from_arrays( _PROCESSED_PARTNERSHIP_ARRAYS, - schedule_e_partnership_s_corp={ - "partnership_income": [1_250.0, -300.0], - "passive_partnership_s_corp_income": [400.0, 0.0], - }, + schedule_e_partnership_s_corp=_SCHEDULE_E_SUPPLEMENT, person_outputs=_PARTNERSHIP_OUTPUTS, tax_unit_outputs=(), ) + # microcosm#1258: each entity's share is its own leaf; S corp is no longer + # an exact-zero alias of the processed column. assert donor["partnership_income"].tolist() == [1_250.0, -300.0] + assert donor["s_corp_income"].tolist() == [-75.0, 4_100.0] assert donor["passive_partnership_s_corp_income"].tolist() == [400.0, 0.0] - assert donor["s_corp_income"].tolist() == [0.0, 0.0] assert donor["partnership_self_employment_net_earnings"].tolist() == [100.0, 200.0] assert "tax_unit_partnership_s_corp_income" not in donor -def test_processed_nonpassive_column_never_stands_for_line_32() -> None: - """Without the source-year supplement the processed donor fails closed.""" +@pytest.mark.parametrize( + "outputs", + [ + _PARTNERSHIP_OUTPUTS, + ("partnership_income",), + ("s_corp_income",), + ("passive_partnership_s_corp_income",), + ], +) +def test_processed_nonpassive_column_never_stands_for_line_32( + outputs: tuple[str, ...], +) -> None: + """Without the source-year supplement the processed donor fails closed. + + The processed column is the archived nonpassive sum of both entities, so + it stands for neither entity share (microcosm#1239, #1258): before #1258 + it silently made ``s_corp_income`` an exact zero. + """ with pytest.raises(ValueError, match="cannot derive requested output"): puf_tax_unit_donor_from_arrays( _PROCESSED_PARTNERSHIP_ARRAYS, - person_outputs=_PARTNERSHIP_OUTPUTS, + person_outputs=outputs, tax_unit_outputs=(), ) @@ -1467,9 +1489,18 @@ def test_processed_nonpassive_column_never_stands_for_line_32() -> None: ("supplement", "message"), [ ({"partnership_income": [1.0, 2.0]}, "must carry exactly"), + ( + # The pre-#1258 two-leaf supplement no longer satisfies the donor. + { + "partnership_income": [1.0, 2.0], + "passive_partnership_s_corp_income": [0.0, 0.0], + }, + "must carry exactly", + ), ( { "partnership_income": [1.0, 2.0], + "s_corp_income": [0.0, 0.0], "passive_partnership_s_corp_income": [0.0, 0.0], "rental_income": [0.0, 0.0], }, @@ -1477,14 +1508,16 @@ def test_processed_nonpassive_column_never_stands_for_line_32() -> None: ), ( { - "partnership_income": [1.0], + "partnership_income": [1.0, 2.0], + "s_corp_income": [3.0], "passive_partnership_s_corp_income": [0.0, 0.0], }, "align one-for-one", ), ( { - "partnership_income": [1.0, np.nan], + "partnership_income": [1.0, 2.0], + "s_corp_income": [3.0, np.inf], "passive_partnership_s_corp_income": [0.0, 0.0], }, "must be finite", @@ -1503,18 +1536,16 @@ def test_schedule_e_supplement_is_validated( ) -def test_schedule_e_supplement_refuses_a_second_source() -> None: +@pytest.mark.parametrize("stored", ["partnership_income", "s_corp_income"]) +def test_schedule_e_supplement_refuses_a_second_source(stored: str) -> None: arrays = { **_PROCESSED_PARTNERSHIP_ARRAYS, - "partnership_income": [5.0, 6.0], + stored: [5.0, 6.0], } with pytest.raises(ValueError, match="second source"): puf_tax_unit_donor_from_arrays( arrays, - schedule_e_partnership_s_corp={ - "partnership_income": [1.0, 2.0], - "passive_partnership_s_corp_income": [0.0, 0.0], - }, + schedule_e_partnership_s_corp=_SCHEDULE_E_SUPPLEMENT, person_outputs=_PARTNERSHIP_OUTPUTS, tax_unit_outputs=(), ) @@ -1524,7 +1555,8 @@ def test_schedule_e_supplement_refuses_a_second_source() -> None: @given( st.lists( st.tuples( - st.sampled_from([0.0, 0.0, 0.0, -5_000.0, 120.0, 9_000.0]), + st.sampled_from([0.0, 0.0, 0.0, -5_000.0, 120.0, 5_000.0]), + st.sampled_from([0.0, 0.0, 0.0, -5_000.0, 75.0, 5_000.0]), st.floats(-1e6, 1e6, allow_nan=False), ), min_size=1, @@ -1532,19 +1564,21 @@ def test_schedule_e_supplement_refuses_a_second_source() -> None: ) ) def test_passive_draw_is_zero_wherever_the_unit_drew_no_line_32( - draws: list[tuple[float, float]], + draws: list[tuple[float, float, float]], ) -> None: """Coherence on the frame: no passive amount without line-32 activity. - Units with a nonzero total keep their passive draw in full, whatever its - sign or size relative to the total. + Line 32 is the sum of both entity leaves (microcosm#1258), so a unit whose + partnership and S-corporation draws cancel has none. Units with a nonzero + total keep their passive draw in full, whatever its sign or size relative + to the total, and whichever entity carries it. """ predictions = pd.DataFrame( { - "partnership_income": [total for total, _ in draws], - "s_corp_income": 0.0, - "passive_partnership_s_corp_income": [passive for _, passive in draws], + "partnership_income": [partnership for partnership, _, _ in draws], + "s_corp_income": [s_corp for _, s_corp, _ in draws], + "passive_partnership_s_corp_income": [passive for _, _, passive in draws], } ) before = predictions["passive_partnership_s_corp_income"].copy() @@ -1565,23 +1599,24 @@ def test_passive_draw_coherence_requires_the_line_32_total() -> None: @pytest.mark.parametrize("line_32", [6_000.0, -6_000.0]) +@pytest.mark.parametrize("s_corp_share", [0.0, 0.25, 1.0]) def test_finalize_places_passive_with_its_line_32_total( monkeypatch: pytest.MonkeyPatch, line_32: float, + s_corp_share: float, ) -> None: """The passive subset lands on the people who carry the line-32 total. A line-32 loss is placed the same way: the passive amount follows the magnitudes of the people's own totals rather than falling to the unit's - first person. + first person. Line 32 is split across both entity leaves in any proportion + (microcosm#1258), including wholly S corporation. """ - # As in production, s_corp_income rides the chain as an exact-zero leaf, - # so the line-32 total sits wholly in partnership_income. draws = pd.DataFrame( { - "partnership_income": [line_32, 0.0], - "s_corp_income": [0.0, 0.0], + "partnership_income": [line_32 * (1.0 - s_corp_share), 0.0], + "s_corp_income": [line_32 * s_corp_share, 0.0], "passive_partnership_s_corp_income": [1_500.0, 800.0], } ) @@ -1608,8 +1643,8 @@ def predict( donor = pd.DataFrame( { "filing_status_code": [1.0, 2.0], - "partnership_income": [line_32, 0.0], - "s_corp_income": [0.0, 0.0], + "partnership_income": [line_32 * (1.0 - s_corp_share), 0.0], + "s_corp_income": [line_32 * s_corp_share, 0.0], "passive_partnership_s_corp_income": [1_500.0, 0.0], "weight": [1.0, 1.0], } @@ -1629,15 +1664,20 @@ def predict( puf = person[ person[support_channel_column("person")] == PUF_TAX_DETAIL_SUPPORT_CHANNEL ] + puf = puf.assign(line_32=puf["partnership_income"] + puf["s_corp_income"]) by_unit = puf.groupby("person_tax_unit_id", sort=True) - totals = by_unit["partnership_income"].sum() + totals = by_unit["line_32"].sum() passive = by_unit["passive_partnership_s_corp_income"].sum() # The zero-total unit keeps no passive amount. assert passive.iloc[1] == 0.0 assert totals.iloc[1] == 0.0 + # Each entity keeps its drawn unit total. + np.testing.assert_allclose( + by_unit["s_corp_income"].sum().iloc[0], line_32 * s_corp_share + ) # Within the two-person unit the passive amount follows the line-32 shares. first_unit = puf[puf["person_tax_unit_id"] == totals.index[0]] - share_total = first_unit["partnership_income"] / totals.iloc[0] + share_total = first_unit["line_32"] / totals.iloc[0] share_passive = first_unit["passive_partnership_s_corp_income"] / passive.iloc[0] np.testing.assert_allclose(share_passive.to_numpy(), share_total.to_numpy()) assert passive.iloc[0] > 0.0 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 219b17466b..32cf28a71b 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 @@ -142,11 +142,11 @@ def test_constant_derived_domain_counts_are_complete( assert len(compiled_schedule["waves"]) == 6 assert ( compiled_schedule["schedule_sha256"] - == "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0" + == "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da" ) assert ( compiled_schedule["payload_sha256"] - == "8961be79cc5706e79093c143781c2cf28a74ce7d410ee27cd7da36fc82684b37" + == "76a79c9d05cfde1ec1c812de530b5080e6bc212f9c9e693eba628711d6f553e1" ) assert len(take_up["programs"]) == 17 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 3be18469ad..bc7fe08cb1 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 @@ -410,86 +410,24 @@ def test_selection_digest_uses_raw_spine_ids_under_collision_remap() -> None: ) -def test_s_corp_universe_zero_materializes_native_rows_with_exact_receipt() -> None: - frame = _s_corp_universe_fixture() - input_person = frame.table("person").copy(deep=True) - donor = pd.DataFrame({"s_corp_income": [0.0, -0.0, 0.0]}) - - materialized, receipt = ( - stacked_spine_module._materialize_us_puf_s_corp_universe_zero(frame, donor) - ) - - clone_column = support_clone_index_column("person") - clone_index = input_person[clone_column] - native = clone_index.eq(0) - assert input_person.loc[native, "s_corp_income"].isna().all() - assert materialized.table("person")["s_corp_income"].eq(0.0).all() - assert receipt["rule"] == ( - stacked_spine_module.us_puf_s_corp_universe_zero_rule_identity() - ) - assert receipt["status"] == "materialized" - assert receipt["donor_rows_verified"] == 3 - assert receipt["native_rows_materialized"] == int(native.sum()) - assert receipt["produced_rows_verified"] == int((clone_index > 0).sum()) - assert receipt["person_rows"] == len(input_person) - assert receipt["person_rows_by_clone_role"] == { - str(role): int(clone_index.eq(role).sum()) for role in (0, 1, 2) - } - assert receipt["post_materialization_nonfinite_rows"] == 0 - assert receipt["post_materialization_nonzero_rows"] == 0 - assert len(receipt["donor_values_sha256"]) == 64 - assert len(receipt["person_values_sha256"]) == 64 - assert receipt["sha256"] == stacked_spine_module._canonical_sha256( - {key: value for key, value in receipt.items() if key != "sha256"} - ) - - -@pytest.mark.parametrize( - ("mutation", "match"), - ( - ("donor_nonfinite", r"donor precondition failed: 1 nonfinite"), - ("donor_nonzero", r"donor precondition failed: 1 nonzero"), - ("native_preexisting", r"native precondition failed: 1 native cell"), - ("clone_nonfinite", r"clone precondition failed: 1 nonfinite"), - ("tail_nonzero", r"clone precondition failed: 1 nonzero"), - ), -) -def test_s_corp_universe_zero_fails_closed( - mutation: str, - match: str, -) -> None: - frame = _s_corp_universe_fixture() - donor = pd.DataFrame({"s_corp_income": [0.0, 0.0]}) - person = frame.table("person") - clone_index = person[support_clone_index_column("person")] - if mutation == "donor_nonfinite": - donor.loc[0, "s_corp_income"] = np.nan - elif mutation == "donor_nonzero": - donor.loc[0, "s_corp_income"] = 1.0 - elif mutation == "native_preexisting": - person.loc[person.index[clone_index.eq(0)][0], "s_corp_income"] = 0.0 - elif mutation == "clone_nonfinite": - person.loc[person.index[clone_index.eq(1)][0], "s_corp_income"] = np.nan - else: - person.loc[person.index[clone_index.eq(2)][0], "s_corp_income"] = 1.0 - - with pytest.raises(ValueError, match=match): - stacked_spine_module._materialize_us_puf_s_corp_universe_zero(frame, donor) - - -def test_stacked_primary_applies_s_corp_universe_rule_after_qrf( +def test_stacked_primary_leaves_native_s_corp_rows_to_the_late_transfer( monkeypatch: pytest.MonkeyPatch, ) -> None: - events: list[str] = [] + """microcosm#1258 retired the whole-pool S-corp universe-zero rule. + + The donor carries the S-corporation share of Schedule E line 32 as its own + leaf, so the primary pass treats ``s_corp_income`` like + ``partnership_income``: clone rows keep their drawn values and native rows + stay null for the late transfer to fill. Nothing assigns zero. + """ def impute(frame: Frame, *_args: object, **kwargs: object) -> Frame: - events.append("primary_qrf") receipts = kwargs["predictor_universe_receipts"] assert isinstance(receipts, list) receipts.append({"fixture": "recipient-universe"}) person = frame.table("person").copy(deep=True) clone_index = person[support_clone_index_column("person")] - person["s_corp_income"] = np.where(clone_index.eq(0), np.nan, 0.0) + person["s_corp_income"] = np.where(clone_index.eq(0), np.nan, -250.0) tables = {entity: frame.table(entity) for entity in frame.entities} tables["person"] = person return Frame( @@ -501,29 +439,15 @@ def impute(frame: Frame, *_args: object, **kwargs: object) -> Frame: metadata=frame.metadata, ) - materialize = stacked_spine_module._materialize_us_puf_s_corp_universe_zero - - def materialize_after_qrf( - frame: Frame, - donor: pd.DataFrame, - ) -> tuple[Frame, dict[str, object]]: - events.append("s_corp_universe_zero") - return materialize(frame, donor) - monkeypatch.setattr( stacked_spine_module, "impute_us_puf_tax_detail_support", impute, ) - monkeypatch.setattr( - stacked_spine_module, - "_materialize_us_puf_s_corp_universe_zero", - materialize_after_qrf, - ) result = stacked_spine_module._run_stacked_puf_pass_without_tail_for_test( _late_primary_entry(_stacked_gap_fixture()), - pd.DataFrame({"s_corp_income": [0.0, 0.0]}), + pd.DataFrame({"s_corp_income": [1_000.0, -400.0]}), clone_attachment_fraction=1.0, clone_attachment_seed=578, predictors=(), @@ -531,14 +455,21 @@ def materialize_after_qrf( tax_unit_outputs=(), ) - assert events == ["primary_qrf", "s_corp_universe_zero"] - assert result.frame.table("person")["s_corp_income"].eq(0.0).all() - assert result.receipt["s_corp_income_universe_zero"]["status"] == "materialized" - assert result.receipt["doctrines"]["whole_pool_output_universes"] == { - "person.s_corp_income": ( - stacked_spine_module.us_puf_s_corp_universe_zero_rule_identity() - ) + person = result.frame.table("person") + clone_index = person[support_clone_index_column("person")] + assert person.loc[clone_index.eq(0), "s_corp_income"].isna().all() + assert person.loc[clone_index.gt(0), "s_corp_income"].eq(-250.0).all() + assert "s_corp_income_universe_zero" not in result.receipt + assert result.receipt["doctrines"] == { + "require_complete_recipient_predictors": True, + "absent_cells": stacked_spine_module.PUF_ABSENT_CELLS_PRESERVE_NULLS, } + for retired in ( + "US_PUF_S_CORP_UNIVERSE_ZERO_RULE_ID", + "us_puf_s_corp_universe_zero_rule_identity", + "_materialize_us_puf_s_corp_universe_zero", + ): + assert not hasattr(stacked_spine_module, retired) def test_finalize_preserve_nulls_keeps_unowned_cells_null() -> None: @@ -1205,7 +1136,7 @@ def test_canonical_authority_objects_are_deeply_immutable() -> None: calibration["scope"]["reference"] = "forged" -def test_canonical_metric_registry_covers_the_declared_135_target_split() -> None: +def test_canonical_metric_registry_covers_the_declared_136_target_split() -> None: surface = stacked_spine_module.CANONICAL_STACKED_DECLARED_SURFACE registry = stacked_spine_module.CANONICAL_ORIGIN_BATTERY_METRIC_REGISTRY surface_targets = { @@ -1215,9 +1146,9 @@ def test_canonical_metric_registry_covers_the_declared_135_target_split() -> Non for target in targets } - assert len(surface_targets) == 135 + assert len(surface_targets) == 136 assert Counter(entity for entity, _family, _target, _clone in surface_targets) == { - "person": 115, + "person": 116, "tax_unit": 12, "spm_unit": 8, } @@ -1233,7 +1164,7 @@ def test_canonical_metric_registry_covers_the_declared_135_target_split() -> Non ) assert set(registry) == surface_targets assert Counter(registry.values()) == { - "monetary_sign_separated": 80, + "monetary_sign_separated": 81, "boolean_incidence": 51, "categorical_tvd": 4, } @@ -1274,13 +1205,13 @@ def test_canonical_metric_registry_covers_the_declared_135_target_split() -> Non for target in targets } assert len(gap_targets) == 48 - assert len(post_puf_targets) == 71 - assert len(puf_producer_targets) == 44 + assert len(post_puf_targets) == 72 + assert len(puf_producer_targets) == 45 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) == 119 + assert len(gap_targets | post_puf_targets) == 120 assert gap_targets | post_puf_targets < surface_targets assert not { "bank_account_assets", @@ -1304,7 +1235,7 @@ 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": 80, + "monetary_sign_separated": 81, "boolean_incidence": 51, "categorical_tvd": 4, } @@ -1472,7 +1403,7 @@ def test_registry_drives_every_late_callback_dtype_family_check() -> None: (entity, column): metric for (entity, _family, column, _clone_index), metric in registry.items() } - assert len(by_column) == len(registry) == 135 + assert len(by_column) == len(registry) == 136 representative = { "monetary_sign_separated": pd.Series([1.0, pd.NA], dtype="Float64"), @@ -4191,23 +4122,35 @@ def test_late_primary_resources_bind_donor_content_and_execution_config( assert execution["qrf"]["tail_bound_quantiles"] == { "non_sch_d_capital_gains": 0.999 } - assert execution["doctrines"]["whole_pool_output_universes"] == { + # microcosm#1258: the S-corp universe-zero doctrine is retired. + assert execution["doctrines"] == { + "require_complete_recipient_predictors": True, + "absent_cells": "preserve_nulls", + } + # A receipt written before the retirement still declares the doctrine; the + # exact doctrine check refuses it rather than reading it as current. + legacy = copy.deepcopy(execution) + legacy["doctrines"]["whole_pool_output_universes"] = { "person.s_corp_income": { "rule_id": "puf_tax_detail_s_corp_income_universe_zero_v1", - "schema_version": 1, - "entity": "person", - "column": "s_corp_income", - "coverage_scope": "whole_pool", "materialized_value": 0.0, - "source_semantics": ( - "puf_combined_partnership_s_corp_carried_by_partnership_income" - ), - "donor_precondition": "finite_exact_zero", - "puf_clone_precondition": "finite_exact_zero", - "native_precondition": "all_null", - "assignment": "explicit_array_assignment", } } + stacked_spine_module._validate_late_resource_binding( + execution, + producer="primary_puf_qrf", + entity="tax_unit", + column="@primary_puf_execution_config", + boundary="current receipt", + ) + with pytest.raises(ValueError, match="late primary-PUF doctrines changed"): + stacked_spine_module._validate_late_resource_binding( + legacy, + producer="primary_puf_qrf", + entity="tax_unit", + column="@primary_puf_execution_config", + boundary="pre-#1258 receipt", + ) worker = execution["qrf"]["worker_execution"] assert set(worker) == { "schema_version", @@ -7773,7 +7716,7 @@ def test_completeness_receipts_bind_live_authority_per_target() -> None: ) canonical = stacked_completeness_gate(frame) assert canonical.passed, canonical.failures - assert canonical.details["declared_targets"] == 135 + assert canonical.details["declared_targets"] == 136 authority = canonical.details["authority"] assert authority["authority_form"] == "CANONICAL" assert authority["canonical"] is True @@ -8261,7 +8204,7 @@ def test_fresh_gate_result_cannot_graft_canonical_authority_onto_test_surface() with pytest.raises( ValueError, - match="must declare exactly 135 targets.*manifest emission is forbidden", + match="must declare exactly 136 targets.*manifest emission is forbidden", ): GateReport((grafted,)).to_manifest() @@ -8396,7 +8339,7 @@ def test_fresh_battery_result_cannot_forge_canonical_coverage_receipts() -> None with pytest.raises( ValueError, - match="coverage receipt must bind all 135 targets.*emission is forbidden", + match="coverage receipt must bind all 136 targets.*emission is forbidden", ): GateReport((forged,)).to_manifest() @@ -8810,7 +8753,7 @@ def test_battery_taxable_interest_metric_cannot_be_relabelled_rare_incidence() - assert not result.passed assert result.details["tested_comparisons"] == 0 metric_receipt = result.details["authority"]["components"]["metric_registry"] - assert metric_receipt["target_count"] == 135 + assert metric_receipt["target_count"] == 136 assert any( "person/puf_tax_itemization/taxable_interest_income[clone_0]" in failure and "authoritative metric 'monetary_sign_separated'" in failure diff --git a/packages/microcosm-calibrate/src/microcosm/calibrate/variable_labels.py b/packages/microcosm-calibrate/src/microcosm/calibrate/variable_labels.py index 32a1425bdf..5e0449377c 100644 --- a/packages/microcosm-calibrate/src/microcosm/calibrate/variable_labels.py +++ b/packages/microcosm-calibrate/src/microcosm/calibrate/variable_labels.py @@ -119,6 +119,8 @@ def _immutable_registry( "non_sch_d_capital_gains": "Non-Schedule D capital gains", "ordinary_dividend_income": "Ordinary dividend income", "partnership_and_s_corp_income": "Partnership and S corporation income", + "partnership_income": "Partnership income", + "partnership_losses": "Partnership losses", "qualified_dividends": "Qualified dividends", "qualified_business_income_deduction": ( "Qualified business income deduction" @@ -126,6 +128,8 @@ def _immutable_registry( "real_estate_taxes": "Real estate taxes", "refundable_ctc": "Refundable CTC", "rent_and_royalty_net_income": "Rent and royalty net income", + "s_corp_income": "S corporation income", + "s_corp_losses": "S corporation losses", "salt_deduction": "SALT deduction", "tax_exempt_interest_income": "Tax-exempt interest income", "taxable_income": "Taxable income", 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 98172bd3da..3a063d64dc 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":"2503fed80e11fbea6f4be566597dbbdd32402bc6ef99de8c4d6b2b181c13f338","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_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":"d4fb9de9c0b8081474a24d0abde84ebf05eb346483fc20e3852e29abc769a501","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"}]} diff --git a/test_support/microcosm_build/us_stacked_spine.py b/test_support/microcosm_build/us_stacked_spine.py index 1737ef40d9..6228e5e493 100644 --- a/test_support/microcosm_build/us_stacked_spine.py +++ b/test_support/microcosm_build/us_stacked_spine.py @@ -255,26 +255,6 @@ def _finalize_fixture_predictions( return predictions, donor -def _s_corp_universe_fixture() -> Frame: - cloned = _cloned_stacked_fixture() - person = cloned.table("person").copy(deep=True) - clone_column = support_clone_index_column("person") - clone_index = person[clone_column] - person["s_corp_income"] = np.where(clone_index.eq(0), np.nan, 0.0) - first_clone = person.index[clone_index.eq(1)][0] - person.loc[first_clone, clone_column] = 2 - tables = {entity: cloned.table(entity) for entity in cloned.entities} - tables["person"] = person - return Frame( - tables, - cloned.schema, - {entity: cloned.weights_for(entity) for entity in cloned.weighted_entities}, - cloned.strata, - mass_log=cloned.mass_log, - metadata=cloned.metadata, - ) - - def _cloned_acs_earnings_universe_fixture() -> Frame: """Apply receipted zeros to multi-child mixed and all-child ACS units.""" diff --git a/tools/build_us_fiscal_refresh_release.py b/tools/build_us_fiscal_refresh_release.py index 6b64ce7059..d03b869b18 100644 --- a/tools/build_us_fiscal_refresh_release.py +++ b/tools/build_us_fiscal_refresh_release.py @@ -926,10 +926,6 @@ def _automatic_gc_suspended(): "sources; see the archived-derivation evidence in the parity gap " "register (PolicyEngine/microcosm#312)." ), - "s_corp_income": ( - "Combined partnership/S-corp income is carried in partnership_income " - "in pre-PUF-support bases; the S-corp leaf is constant zero there." - ), "strike_benefits": ( "No respondent in the pinned public ASEC files reports strike benefits: " "OI_OFF code 12 ('strike benefits', ASEC 2024 public use data " diff --git a/tools/build_us_puf_support_base.py b/tools/build_us_puf_support_base.py index 5a722282ae..8bb574b8aa 100644 --- a/tools/build_us_puf_support_base.py +++ b/tools/build_us_puf_support_base.py @@ -3513,7 +3513,7 @@ def _source_year_puf_partnership_s_corp_income( *, receipt: dict[str, object] | None = None, ) -> dict[str, np.ndarray]: - """Load Schedule E line 32 through the same narrow source-year seam.""" + """Load Schedule E line 32 by entity through the same narrow seam.""" return source_year_puf_partnership_s_corp_income( source_puf_csv, diff --git a/tools/spec_engine_coverage.py b/tools/spec_engine_coverage.py index 6faf75e29d..18f7bac496 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 = ( - "c24ff270339983afb6de73ea22113f83431ef03d0b44e207dd63453a2f62e1e5" + "b2f798c1b86814bb71b39759dc0d693c0b4348d5298aee71443989c28946a3ef" ) DEFAULT_REPORT_PATH = ( Path(__file__).resolve().parents[1] diff --git a/tools/us_bundle_generation/imputation.py b/tools/us_bundle_generation/imputation.py index 04f3275e93..87334c831e 100644 --- a/tools/us_bundle_generation/imputation.py +++ b/tools/us_bundle_generation/imputation.py @@ -457,10 +457,9 @@ def _canonical_output_coverage_scope( Family targets own modeled columns, while graph nodes own structural and virtual outputs. Coverage is the one modeled-output fact that is not - otherwise present on a target (notably ``person.s_corp_income`` is a - whole-pool primary output while the other primary targets are clone-only), - so the migration tool transfers it onto the target before dropping the - duplicate graph row. + otherwise present on a target (primary-PUF targets are clone-only while + source and transfer targets cover their own roles), so the migration tool + transfers it onto the target before dropping the duplicate graph row. """ canonical = json.loads(CANONICAL_US_LATE_PRODUCER_SCHEDULE.canonical_json) @@ -2026,8 +2025,8 @@ def _split_after() -> list[dict[str, object]]: if group.entity == "person" and group.family.startswith("puf_tax_itemization__batch_") ] - if [len(group.targets) for group in late_batches] != [8, 8, 8, 8, 6]: - raise RuntimeError("Late PUF itemization is no longer the reviewed 5x38 split.") + if [len(group.targets) for group in late_batches] != [8, 8, 8, 8, 7]: + raise RuntimeError("Late PUF itemization is no longer the reviewed 5x39 split.") result = [ { "family": f"late/{group.entity}/{group.family}", @@ -2075,12 +2074,12 @@ def _assert_invariants( expected = { "gap_fill_stacked_spine": (13, 48), "primary_puf_qrf": (1, 66), - "late_producer_dag": (19, 71), + "late_producer_dag": (19, 72), } expected_dtypes = { "gap_fill_stacked_spine": {"bool": 20, "float": 27, "int": 1}, "primary_puf_qrf": {"bool": 8, "float": 56, "int": 2}, - "late_producer_dag": {"bool": 17, "float": 51, "int": 1, "str": 2}, + "late_producer_dag": {"bool": 17, "float": 52, "int": 1, "str": 2}, } for stage, (family_count, target_count) in expected.items(): rows = by_stage.get(stage, []) @@ -2134,7 +2133,7 @@ def _assert_invariants( late_authored_output_count, len(tolerated_receipts), ) - expected_graph_counts = (2746, 92, 229, 35, 0, 214) + expected_graph_counts = (2747, 92, 230, 35, 0, 214) if graph_counts != expected_graph_counts: raise RuntimeError( "US producer graph input/output/absence counts changed: " From e000e04fcce4c9201db82d9af093ade61eb3ad36 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 08:10:37 -0400 Subject: [PATCH 03/17] Regenerate spec-engine coverage evidence; pin the new US spec digest (#1258) tools/spec_engine_coverage.py --check: 42244/42244 configuration fields, 41/41 inventory checks. The field-usage pointer inventory digest, the engine-workflow multispine-pool tool's spec_sha256 and the loader golden vector follow the regenerated bundle. Adds a Hypothesis property test that each Table 1.4 entity's net-income and net-loss legs partition its signed leaf (income - loss == leaf; the return indicators partition nonzero units). Co-Authored-By: Claude Opus 5.5 --- docs/evidence/spec-engine/us-f0-coverage.json | 98 +++++++++---------- .../us/test_us_fiscal_refresh_builder.py | 47 +++++++++ .../us/test_us_multispine_pool_tool.py | 2 +- 3 files changed, 97 insertions(+), 50 deletions(-) diff --git a/docs/evidence/spec-engine/us-f0-coverage.json b/docs/evidence/spec-engine/us-f0-coverage.json index 710cf1b3d3..ccd965c21f 100644 --- a/docs/evidence/spec-engine/us-f0-coverage.json +++ b/docs/evidence/spec-engine/us-f0-coverage.json @@ -6,7 +6,7 @@ "country": "us", "documentation_sha256": "0931cbd3aae2abcd8c072b78eba40c1c006b1bf7fa23c6a6681f9a895e47070e", "field_usage": { - "authored_normative_field_count": 32456, + "authored_normative_field_count": 32464, "claim_count": 49, "claims": [ { @@ -33,8 +33,8 @@ ], "mode": "legacy_behavior", "pointer_class": "all", - "pointer_count": 802, - "pointer_sha256": "eaf3cc45daebdba940e20e7bf2c995e7fc0bd5219935a963e7fca60c87111409", + "pointer_count": 807, + "pointer_sha256": "f35844c0d404d5fc7905d8b7ecbee1d273c0bb46a7ed656d86f1b7cb0760fb33", "rationale": null, "relative_sink_prefix": "/battery_contract", "source_prefix": "/authored/spec~1battery.yaml", @@ -274,8 +274,8 @@ ], "mode": "compiler_semantic", "pointer_class": "all", - "pointer_count": 24504, - "pointer_sha256": "342cad7ff55198088d9d4dc4d57fe5601f7ded6081d64379109a72917e57f682", + "pointer_count": 24501, + "pointer_sha256": "24ac69de166b5e30e4423b51fd5d36e08940080741e118539f4d0a13cdb1228b", "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": 1781, - "pointer_sha256": "0e8e14ad18161ef4b871ad5f2cfbb924bb39a80c334ecdc05336a8eae6731451", + "pointer_count": 1787, + "pointer_sha256": "aa733722f4442ae0ab22c5f1f2ffc1df2accfc5a1791702b242545e40abd26bf", "rationale": null, "relative_sink_prefix": null, "source_prefix": "/authored/spec~1imputation.yaml/families", @@ -772,20 +772,20 @@ "verifier": "vintages" } ], - "configuration_field_count": 42236, - "consumed_field_count": 42236, + "configuration_field_count": 42244, + "consumed_field_count": 42244, "generation0_effect_counts": { - "legacy_behavior": 38540, + "legacy_behavior": 38548, "no_generation0_effect": 3696 }, "mode_counts": { - "compiler_semantic": 27743, + "compiler_semantic": 27740, "front_end_validation": 354, "identity_only": 103, - "legacy_behavior": 14036 + "legacy_behavior": 14047 }, "multiple_primary_use_field_count": 0, - "pointer_inventory_sha256": "c24ff270339983afb6de73ea22113f83431ef03d0b44e207dd63453a2f62e1e5", + "pointer_inventory_sha256": "b2f798c1b86814bb71b39759dc0d693c0b4348d5298aee71443989c28946a3ef", "resolved_binding_field_count": 9780, "unused_field_count": 0 }, @@ -801,16 +801,16 @@ "early_families": 13, "early_targets": 48, "itemization_batches": 5, - "itemization_targets": 38, + "itemization_targets": 39, "late_groups": 19, - "late_targets": 71, + "late_targets": 72, "ownership_rows": 18, "primary_effective_predictor_tuples": 66, "primary_families": 1, "primary_targets": 66, "producer_authored_outputs": 92, - "producer_compiled_outputs": 229, - "producer_inputs": 2746, + "producer_compiled_outputs": 230, + "producer_inputs": 2747, "producer_nodes": 38, "producer_virtual_resources": 75, "release_rungs": 5, @@ -1036,10 +1036,10 @@ 8, 8, 8, - 6 + 7 ], "batches": 5, - "targets": 38 + "targets": 39 }, "failures": [], "observed": { @@ -1048,7 +1048,7 @@ 8, 8, 8, - 6 + 7 ], "ids": [ "late/person/puf_tax_itemization__batch_1", @@ -1074,11 +1074,11 @@ "legacy_adapter.stacked_checkpoint_static_components" ], "expected": { - "schedule_sha256": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0" + "schedule_sha256": "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da" }, "failures": [], "observed": { - "schedule_sha256": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0" + "schedule_sha256": "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da" }, "status": "covered" }, @@ -1096,14 +1096,14 @@ ], "expected": { "groups": 19, - "sha256": "734080f8857f8637913a0e3ae81c59bf28b63dccc8d4bbf42009d0a80e9f1e48", - "targets": 71 + "sha256": "7857518a5327a816acae80d55a04f43e7445a5e47be822d3ccb747bcb375e199", + "targets": 72 }, "failures": [], "observed": { "groups": 19, - "sha256": "734080f8857f8637913a0e3ae81c59bf28b63dccc8d4bbf42009d0a80e9f1e48", - "targets": 71 + "sha256": "7857518a5327a816acae80d55a04f43e7445a5e47be822d3ccb747bcb375e199", + "targets": 72 }, "status": "covered" }, @@ -1250,14 +1250,14 @@ "expected": { "edges": 71, "nodes": 38, - "schedule_sha256": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0", + "schedule_sha256": "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da", "waves": 6 }, "failures": [], "observed": { "edges": 71, "nodes": 38, - "schedule_sha256": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0", + "schedule_sha256": "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da", "waves": 6 }, "status": "covered" @@ -1275,11 +1275,11 @@ ], "expected": { "relation": "source rows preserved exactly", - "rows": 2746 + "rows": 2747 }, "failures": [], "observed": { - "rows": 2746 + "rows": 2747 }, "status": "covered" }, @@ -1298,13 +1298,13 @@ ], "expected": { "authored_rows": 92, - "compiled_rows": 229, + "compiled_rows": 230, "relation": "typed closure exact" }, "failures": [], "observed": { "authored_rows": 92, - "compiled_rows": 229 + "compiled_rows": 230 }, "status": "covered" }, @@ -1338,12 +1338,12 @@ ], "expected": { "nodes": 38, - "sha256": "5e5c89a0d5e00f759566b5bb025efd46f179e11faf7de4ff663ed2488c5a669b" + "sha256": "b68a7e94940b67f65aa2b029278ef0f37b927880fae143d17c2a3ec118d0fe67" }, "failures": [], "observed": { "nodes": 38, - "sha256": "5e5c89a0d5e00f759566b5bb025efd46f179e11faf7de4ff663ed2488c5a669b" + "sha256": "b68a7e94940b67f65aa2b029278ef0f37b927880fae143d17c2a3ec118d0fe67" }, "status": "covered" }, @@ -1361,12 +1361,12 @@ ], "expected": { "producer_count": 38, - "sha256": "abf95b217f6b8baa0fdf0bf8c46be67e3bff364f1adf6e98a178746f7f1c9d29" + "sha256": "51f674be7de8b738c1a9af1331f0168e7975f43a3395f1ab1bd88f376f0f01f5" }, "failures": [], "observed": { "producer_count": 38, - "sha256": "abf95b217f6b8baa0fdf0bf8c46be67e3bff364f1adf6e98a178746f7f1c9d29" + "sha256": "51f674be7de8b738c1a9af1331f0168e7975f43a3395f1ab1bd88f376f0f01f5" }, "status": "covered" }, @@ -1656,13 +1656,13 @@ "compiler_ir.node_slices" ], "expected": { - "map_sha256": "a07d4a871ae13279fd6034690a763f902c968053d7481df14822824b4a7c9687", - "protocol_sha256": "bacc551b1d800a941c25d00048193c4c9421260a5d76d26983b603ea83835997" + "map_sha256": "3f77ffa276c93b8a4cc7500c89e7f109f3d7f3630eb3e655af18fd97351ba9b1", + "protocol_sha256": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418" }, "failures": [], "observed": { - "map_sha256": "a07d4a871ae13279fd6034690a763f902c968053d7481df14822824b4a7c9687", - "protocol_sha256": "bacc551b1d800a941c25d00048193c4c9421260a5d76d26983b603ea83835997" + "map_sha256": "3f77ffa276c93b8a4cc7500c89e7f109f3d7f3630eb3e655af18fd97351ba9b1", + "protocol_sha256": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418" }, "status": "covered" }, @@ -1677,7 +1677,7 @@ "compiler_ir.seed_stream_map" ], "expected": { - "implementation_sha256": "bacc551b1d800a941c25d00048193c4c9421260a5d76d26983b603ea83835997", + "implementation_sha256": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1698,7 +1698,7 @@ }, "failures": [], "observed": { - "implementation_sha256": "bacc551b1d800a941c25d00048193c4c9421260a5d76d26983b603ea83835997", + "implementation_sha256": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1840,11 +1840,11 @@ "legacy_adapter.stacked_checkpoint_static_components" ], "expected": { - "sha256": "3b6f534db79be588396d6543a8368c6251d41ae25139153ade01bdb36ac7b1a2" + "sha256": "bf681aedc859fd6398ef72da68f584069b7d25b3085c549bf99f82e8324c4eef" }, "failures": [], "observed": { - "sha256": "3b6f534db79be588396d6543a8368c6251d41ae25139153ade01bdb36ac7b1a2" + "sha256": "bf681aedc859fd6398ef72da68f584069b7d25b3085c549bf99f82e8324c4eef" }, "status": "covered" }, @@ -1887,7 +1887,7 @@ "alpha", "zeta" ], - "sha256": "abdffaa7d6ccf23c37b9d4e4530f0f95c2b4dd821787c813cc0c06f0ddc7932c" + "sha256": "ffb6bc3f23a2baf359fc9d34b910f0b5c8f65a043ce8d12d66eb7081dc9e1442" }, "failures": [], "observed": { @@ -1911,7 +1911,7 @@ "alpha", "zeta" ], - "sha256": "abdffaa7d6ccf23c37b9d4e4530f0f95c2b4dd821787c813cc0c06f0ddc7932c" + "sha256": "ffb6bc3f23a2baf359fc9d34b910f0b5c8f65a043ce8d12d66eb7081dc9e1442" }, "status": "covered" }, @@ -1975,7 +1975,7 @@ "take_up_contract", "us_qbi_reconciliation_contract" ], - "sha256": "b7add235aa4adca81e89a1db14df71f0caab04936252143bf89e04996f17040a" + "sha256": "98fc211eb4bdfb7792b21b6196034b96719bbac9bc19d8fb3ddda156aeefe149" }, "status": "covered" }, @@ -2599,7 +2599,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "e38e234b5f314200f38184c8396cb499a5630df38626cde5365df6a11d6ede59" + "spec_sha256": "b82cab5d6f5d3ed973117612346c04b08a9c6b932e86563e31b206336b5ff4ee" } }, "report_schema_version": 3, @@ -2609,7 +2609,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "e38e234b5f314200f38184c8396cb499a5630df38626cde5365df6a11d6ede59" + "spec_sha256": "b82cab5d6f5d3ed973117612346c04b08a9c6b932e86563e31b206336b5ff4ee" }, "status": "pass" } 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 7d1c9e43e5..a8aa657361 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 @@ -1964,6 +1964,53 @@ def test_soi_component_amounts_use_source_specific_signs() -> None: ) +def test_table_1_4_entity_legs_partition_each_signed_leaf() -> None: + """Invariant (microcosm#1258): each entity's legs partition its leaf. + + For every tax-unit vector of a signed entity leaf, the net-income leg less + the net-loss leg is the leaf itself, both legs are nonnegative, no unit + sits in both, and the two return-count indicators partition the units + with a nonzero amount. Hypothesis is a workspace dependency; the wheels + job installs no test extras, so it skips there. + """ + + pytest.importorskip("hypothesis") + from hypothesis import given, settings + from hypothesis import strategies as st + + builder = _load_builder_module() + + @settings(max_examples=300, deadline=None) + @given( + st.lists( + st.one_of( + st.just(0.0), + st.floats(-1e10, 1e10, allow_nan=False, allow_infinity=False), + ), + min_size=1, + max_size=60, + ) + ) + def check(values: list[float]) -> None: + leaf = np.asarray(values, dtype=np.float64) + for income, loss in ( + ("partnership_income", "partnership_losses"), + ("s_corp_income", "s_corp_losses"), + ): + income_leg = builder._signed_component(leaf, income) + loss_leg = builder._signed_component(leaf, loss) + assert (income_leg >= 0.0).all() and (loss_leg >= 0.0).all() + assert not ((income_leg > 0.0) & (loss_leg > 0.0)).any() + np.testing.assert_array_equal(income_leg - loss_leg, leaf) + income_returns = builder._soi_component_row(leaf, income, indicator=True) + loss_returns = builder._soi_component_row(leaf, loss, indicator=True) + np.testing.assert_array_equal( + income_returns + loss_returns, (leaf != 0.0).astype(np.float64) + ) + + check() + + def test_export_target_audit_is_opt_in(monkeypatch) -> None: builder = _load_builder_module() 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 f9d4acbecc..564522b443 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 @@ -338,7 +338,7 @@ def capture_equality(expected: object, actual: object) -> None: "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "e38e234b5f314200f38184c8396cb499a5630df38626cde5365df6a11d6ede59", + "spec_sha256": "b82cab5d6f5d3ed973117612346c04b08a9c6b932e86563e31b206336b5ff4ee", }, } From aa47a3f3c8add79303f6ba558f11362872dced5f Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 08:20:32 -0400 Subject: [PATCH 04/17] Note the #1258 transfer-target counts in the spec-engine ruling doc Co-Authored-By: Claude Opus 5.5 --- docs/spec-engine.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/spec-engine.md b/docs/spec-engine.md index 78442dedf7..33da8b2e36 100644 --- a/docs/spec-engine.md +++ b/docs/spec-engine.md @@ -33,7 +33,8 @@ Review provenance: - v2 factual errors corrected here: `puf_tax_itemization` is **five** batches / **37** targets (19 bounded groups / 70 targets across the registry), not 4/32 (counts as of this ruling; #1239 later added the - passive partnership/S-corp leaf, making them 38 and 71); `wic` and `social_security` are not contract + passive partnership/S-corp leaf, making them 38 and 71, and #1258 the + late S-corp transfer target, making them 39 and 72); `wic` and `social_security` are not contract programs; `takes_up_eitc`/`takes_up_dc_ptc` break the suffix naming rule (column mapping must come from an engine ABI projection). @@ -338,7 +339,7 @@ ownership matrix**). The v3 contract: **The frozen split ledger, corrected**: at the flip, the entire current ordered split structure — **19 bounded groups / 70 targets overall; five batches / 37 targets for `puf_tax_itemization`** (71 and 38 since -#1239) — is declared +#1239; 72 and 39 since #1258) — is declared explicitly with a reason per split, compiled back against both greedy splitter implementations and every literal batch-name consumer (ownership constants included), after which the two splitters and From d9f180852d1c9125e44e0d1bc2ef6680776da376 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 09:15:17 -0400 Subject: [PATCH 05/17] Bound snapped outputs on their grid; give finalize callers a sink; repin - Snapped (sparse) outputs are bounded on their snap-grid donor values. A slice inside one grid value now caps at that value exactly; computing on unrounded values clipped every draw at an aged statutory maximum to the grid value below (1,163 qualified-tuition rows per seed in the sweep). - Every test that finalizes amount outputs passes a tail-bound diagnostics sink, now required because the recipient-share bound is always active. - Regenerated imputation.yaml (primary execution config schema 6), field usage counts and claim digest, inventory digests (seed protocol and map, producer registry, resource semantics, full checkpoint identity), the pointer inventory digest, coverage evidence, the pool-tool spec sha and the loader golden vector. Co-Authored-By: Claude Opus 5.5 --- docs/evidence/spec-engine/us-f0-coverage.json | 46 +++++++++---------- .../build/spec_engine/field_usage.py | 8 ++-- .../build/spec_engine/inventory_coverage.py | 13 +++--- .../microcosm/build/us/spec/imputation.yaml | 14 +++++- .../microcosm/build/us_runtime/puf_support.py | 34 ++++++++------ .../us/test_us_stacked_spine.py | 1 + .../shared/test_spec_engine_loader.py | 2 +- .../engine_free/us/test_puf_qrf_chain.py | 25 +++++++--- .../us/test_us_education_inputs.py | 1 + .../tests/engine_free/us/test_us_form_4952.py | 1 + .../us/test_us_puf_income_rank_predictors.py | 3 ++ .../us/test_us_puf_recipient_share_bound.py | 32 +++++++++++-- .../us/test_us_puf_social_security.py | 2 + .../engine_free/us/test_us_puf_support.py | 10 ++++ .../us/test_us_salt_refund_income.py | 1 + .../engine_free/us/test_us_stacked_spine.py | 6 +++ .../us/test_us_educator_expenses.py | 1 + .../us/test_us_multispine_pool_tool.py | 2 +- .../us_farm_business_income.py | 1 + .../microcosm_build/us_puf_support.py | 3 ++ tools/spec_engine_coverage.py | 2 +- 21 files changed, 148 insertions(+), 60 deletions(-) diff --git a/docs/evidence/spec-engine/us-f0-coverage.json b/docs/evidence/spec-engine/us-f0-coverage.json index bbced0b031..8649930da3 100644 --- a/docs/evidence/spec-engine/us-f0-coverage.json +++ b/docs/evidence/spec-engine/us-f0-coverage.json @@ -6,7 +6,7 @@ "country": "us", "documentation_sha256": "0931cbd3aae2abcd8c072b78eba40c1c006b1bf7fa23c6a6681f9a895e47070e", "field_usage": { - "authored_normative_field_count": 32404, + "authored_normative_field_count": 32414, "claim_count": 49, "claims": [ { @@ -274,8 +274,8 @@ ], "mode": "compiler_semantic", "pointer_class": "all", - "pointer_count": 24488, - "pointer_sha256": "6382a3ed07016414c31462b8bedb24590d92b792405a89c927d85fa1bd2a8347", + "pointer_count": 24498, + "pointer_sha256": "92968ea779967b45e7ea5b60722a253239947806de05bf46437cf386b2ae6d23", "rationale": null, "relative_sink_prefix": null, "source_prefix": "/authored/spec~1imputation.yaml/producer_graph", @@ -772,20 +772,20 @@ "verifier": "vintages" } ], - "configuration_field_count": 42184, - "consumed_field_count": 42184, + "configuration_field_count": 42194, + "consumed_field_count": 42194, "generation0_effect_counts": { - "legacy_behavior": 38498, + "legacy_behavior": 38508, "no_generation0_effect": 3686 }, "mode_counts": { - "compiler_semantic": 27717, + "compiler_semantic": 27727, "front_end_validation": 354, "identity_only": 103, "legacy_behavior": 14010 }, "multiple_primary_use_field_count": 0, - "pointer_inventory_sha256": "8f655670b9794adae905ede64bdceba6395eeb8d642b6c5896d5c516f1f6a6a7", + "pointer_inventory_sha256": "4523cb2c2ccca11f484b6fdd1efb860652b1fb1622a4e39675ba652b9136f4f6", "resolved_binding_field_count": 9780, "unused_field_count": 0 }, @@ -1338,12 +1338,12 @@ ], "expected": { "nodes": 38, - "sha256": "40cd51ffdfe2e9d9d08d48c08e8ded9de1e4b134783bab05c4abc6ad5c72ca1e" + "sha256": "e74fb1e6017cf77397708cbf2ad6e323dffd6be89425bc6544b5679e883cb674" }, "failures": [], "observed": { "nodes": 38, - "sha256": "40cd51ffdfe2e9d9d08d48c08e8ded9de1e4b134783bab05c4abc6ad5c72ca1e" + "sha256": "e74fb1e6017cf77397708cbf2ad6e323dffd6be89425bc6544b5679e883cb674" }, "status": "covered" }, @@ -1361,12 +1361,12 @@ ], "expected": { "producer_count": 38, - "sha256": "cc34ba11288d01145fc2dc1a669df3f7c4ef2019d73afb02dd8eeee852b16d20" + "sha256": "b2580f8725297ea535191416d37b77ccf891003b76db8e30d3c949e986b5cef6" }, "failures": [], "observed": { "producer_count": 38, - "sha256": "cc34ba11288d01145fc2dc1a669df3f7c4ef2019d73afb02dd8eeee852b16d20" + "sha256": "b2580f8725297ea535191416d37b77ccf891003b76db8e30d3c949e986b5cef6" }, "status": "covered" }, @@ -1656,13 +1656,13 @@ "compiler_ir.node_slices" ], "expected": { - "map_sha256": "41a64b8820bf161e316c49e3f2b666a247b58f6f6d50dd4395b89c8f5b1399f6", - "protocol_sha256": "0e4c8a4ace5e10747065669a009691d0eee9179ca42b344f8912c5ca239ebde6" + "map_sha256": "2eaa714e90df4c8b261741de9b24028a7f1074780d5d177ef74619e2944db63b", + "protocol_sha256": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d" }, "failures": [], "observed": { - "map_sha256": "41a64b8820bf161e316c49e3f2b666a247b58f6f6d50dd4395b89c8f5b1399f6", - "protocol_sha256": "0e4c8a4ace5e10747065669a009691d0eee9179ca42b344f8912c5ca239ebde6" + "map_sha256": "2eaa714e90df4c8b261741de9b24028a7f1074780d5d177ef74619e2944db63b", + "protocol_sha256": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d" }, "status": "covered" }, @@ -1677,7 +1677,7 @@ "compiler_ir.seed_stream_map" ], "expected": { - "implementation_sha256": "0e4c8a4ace5e10747065669a009691d0eee9179ca42b344f8912c5ca239ebde6", + "implementation_sha256": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1698,7 +1698,7 @@ }, "failures": [], "observed": { - "implementation_sha256": "0e4c8a4ace5e10747065669a009691d0eee9179ca42b344f8912c5ca239ebde6", + "implementation_sha256": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1887,7 +1887,7 @@ "alpha", "zeta" ], - "sha256": "3db095ce2d1ef89028d3862f0edc827d704f099c5b3323f9b115642a3c27e007" + "sha256": "d7b84ec565db19067d984e0596ca1805110038c38bec6b5d02ac89fde7f261cf" }, "failures": [], "observed": { @@ -1911,7 +1911,7 @@ "alpha", "zeta" ], - "sha256": "3db095ce2d1ef89028d3862f0edc827d704f099c5b3323f9b115642a3c27e007" + "sha256": "d7b84ec565db19067d984e0596ca1805110038c38bec6b5d02ac89fde7f261cf" }, "status": "covered" }, @@ -1975,7 +1975,7 @@ "take_up_contract", "us_qbi_reconciliation_contract" ], - "sha256": "61a5484eab9fae1d6651b3ae15f1793d4934ea2f6ed2c08d05716b745c221014" + "sha256": "fcb03fb129f808ee52a27c742a7d9a4f0f1fd9f1729f4be68dcfd7b8fdaca372" }, "status": "covered" }, @@ -2599,7 +2599,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "3080fe938df62216dc4853c1163639817de3c537e0e932309642fbd3f7d8f266" + "spec_sha256": "f56dd06c602f065546c659c353114d2c9a4f6a7cd7e13daadfec14f48b53152a" } }, "report_schema_version": 3, @@ -2609,7 +2609,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "3080fe938df62216dc4853c1163639817de3c537e0e932309642fbd3f7d8f266" + "spec_sha256": "f56dd06c602f065546c659c353114d2c9a4f6a7cd7e13daadfec14f48b53152a" }, "status": "pass" } 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 56f39195cf..cf9deac40e 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_AUTHORED_FIELD_COUNT = 32_414 EXPECTED_RESOLVED_BINDING_FIELD_COUNT = 9_780 -EXPECTED_CONFIGURATION_FIELD_COUNT = 42_184 +EXPECTED_CONFIGURATION_FIELD_COUNT = 42_194 class FieldUsageError(AssertionError): @@ -421,8 +421,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]: "e1dd7dc5123ab0f39d08ea4939d98dd09a6fdb8e7449a7ca3125fb1ddbd5b4e9", ), "imputation_producer_graph": ( - 24_488, - "6382a3ed07016414c31462b8bedb24590d92b792405a89c927d85fa1bd2a8347", + 24_498, + "92968ea779967b45e7ea5b60722a253239947806de05bf46437cf386b2ae6d23", ), "imputation_transfer_execution": ( 97, 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 b68874986d..93238e87bd 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 @@ -350,20 +350,21 @@ "acs_person_predictors": "878c788a6f037d7aca12b3586ea034eff04f3034ffa11935a736493042551f25", "authority": "9d4a9672a0f03039b1fe874b9fe21ed575be0d29f14afc396d03cdf5c809bdd2", "early_families": "4aa9f736fd76e83955477ad1667e58f48f264783f05bdc7f0102cd32d61323bd", - "full_checkpoint": "3db095ce2d1ef89028d3862f0edc827d704f099c5b3323f9b115642a3c27e007", + "full_checkpoint": "d7b84ec565db19067d984e0596ca1805110038c38bec6b5d02ac89fde7f261cf", "gap_fill_schedule": "1c31f9868f7884347cc19cf1ff65da43f950b9114941a715bab168246db414a7", - "graph_nodes": "40cd51ffdfe2e9d9d08d48c08e8ded9de1e4b134783bab05c4abc6ad5c72ca1e", + "graph_nodes": "e74fb1e6017cf77397708cbf2ad6e323dffd6be89425bc6544b5679e883cb674", "geography_assignment": "44e7f5f6cd7ceeef85d532c3d46306d03de4f4ee811376e6d29920742746b65c", "late_families": "d91f9ff0eb52f43e7b6eed3d5c58c37abe1620c3a11021da15dae9c10e16d382", - "late_resource_semantics": "cc34ba11288d01145fc2dc1a669df3f7c4ef2019d73afb02dd8eeee852b16d20", + "late_resource_semantics": "b2580f8725297ea535191416d37b77ccf891003b76db8e30d3c949e986b5cef6", "late_schedule": "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f", "ownership": "5f64f0aac49e2313177564f71876bffc8c81b3ded4df701e70930e60e9c98356", "primary_tuples": "fdf23da429f8c501e198a2f5b719763d523a41565c2153fdf17b0344f21bcd7c", # #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. - "seed_map": "41a64b8820bf161e316c49e3f2b666a247b58f6f6d50dd4395b89c8f5b1399f6", - "seed_protocol": "0e4c8a4ace5e10747065669a009691d0eee9179ca42b344f8912c5ca239ebde6", + # both again: the protocol attests microcosm.calibrate.solve. The + # recipient-share bound in puf_support moves both again (#1259). + "seed_map": "2eaa714e90df4c8b261741de9b24028a7f1074780d5d177ef74619e2944db63b", + "seed_protocol": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d", "source_manifest": "f4f8bfeb79268a4043a843b47cec1d1c0e58e9f5dd6bc23417ada95446dd7b8e", "take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35", "tail": "ac92829c88a1a4fb6460d61190918d5d99c6c377fc8dd8f62f02b332d09bf59c", 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 7676bdc8fe..445d7cf5b6 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml @@ -4397,7 +4397,7 @@ producer_graph: resolution: static_exact binding: resource_kind: primary_puf_execution_config - schema_version: 5 + schema_version: 6 qrf: invocation_mode: predictors: canonical_default @@ -4405,6 +4405,18 @@ producer_graph: tax_unit_outputs: canonical_default tail_bound_quantiles: non_sch_d_capital_gains: 0.999 + recipient_share_bound: + rule: recipient_share_slice_mass + schema_version: 1 + scope: every_amount_output_of_the_invocation + excluded_output_classes: + - boolean_person_outputs + - discrete_tax_unit_outputs + recipient_share: household_design_weight_over_puf_recipient_total + cap: top_slice_positive_mass_per_slice_weight + floor: bottom_slice_negative_mass_per_slice_weight + snapped_outputs: bounded_on_snap_grid_values_cap_lowered_onto_grid + seam: raw_tax_unit_draws_after_tail_bound_quantiles worker_execution: surface: execution_profile resolve_as: worker_execution 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 acbb94376e..2a2a85ed15 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 @@ -425,7 +425,7 @@ def puf_tax_detail_recipient_share_bound_identity() -> dict[str, object]: "recipient_share": "household_design_weight_over_puf_recipient_total", "cap": "top_slice_positive_mass_per_slice_weight", "floor": "bottom_slice_negative_mass_per_slice_weight", - "snapped_outputs": "cap_lowered_to_largest_snap_grid_value", + "snapped_outputs": "bounded_on_snap_grid_values_cap_lowered_onto_grid", "seam": "raw_tax_unit_draws_after_tail_bound_quantiles", } @@ -2083,22 +2083,24 @@ def finalize_us_puf_tax_detail_predictions( frame, recipient_tax_unit_ids, ) - resolved_share_bounds = { - output: _recipient_share_slice_bounds( - donor[output], donor["weight"], recipient_weights - ) - for output in share_bound_outputs - } snapped_outputs = ( _PUF_TAX_DETAIL_SPARSE_PERSON_OUTPUTS | _PUF_TAX_DETAIL_SPARSE_TAX_UNIT_OUTPUTS ) + resolved_share_bounds: dict[str, tuple[np.ndarray, np.ndarray]] = {} for output in share_bound_outputs: if output in snapped_outputs: - floor, cap = resolved_share_bounds[output] - resolved_share_bounds[output] = ( - floor, - _largest_grid_values_within(cap, _observed_snap_grid(donor[output])), + # A snapped output lives on its snap grid, so it is bounded on the + # donor's grid values: a slice inside one grid value caps at that + # value exactly, and the cap is then lowered onto the grid. + floor, cap = _recipient_share_slice_bounds( + _snap_grid_values(donor[output]), donor["weight"], recipient_weights ) + cap = _largest_grid_values_within(cap, _observed_snap_grid(donor[output])) + else: + floor, cap = _recipient_share_slice_bounds( + donor[output], donor["weight"], recipient_weights + ) + resolved_share_bounds[output] = (floor, cap) if resolved_tail_bounds: for output, (quantile, bound) in resolved_tail_bounds.items(): values = predictions[output].to_numpy(dtype=np.float64, copy=False) @@ -3793,11 +3795,17 @@ def _ensure_boolean_output_column(table: pd.DataFrame, column: str) -> None: ) +def _snap_grid_values(observed: Sequence[Any]) -> np.ndarray: + """Each donor value as :func:`_snap_to_observed_values` places it on its grid.""" + + observed_values = pd.to_numeric(pd.Series(observed), errors="coerce").fillna(0.0) + return np.rint(observed_values.to_numpy(dtype=np.float64)).clip(min=0.0) + + def _observed_snap_grid(observed: Sequence[Any]) -> np.ndarray: """The sorted donor values :func:`_snap_to_observed_values` snaps onto.""" - observed_values = pd.to_numeric(pd.Series(observed), errors="coerce").fillna(0.0) - return np.unique(np.rint(observed_values.to_numpy(dtype=np.float64)).clip(min=0.0)) + return np.unique(_snap_grid_values(observed)) def _snap_to_observed_values( diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_stacked_spine.py b/packages/microcosm-build/tests/engine_contract/us/test_us_stacked_spine.py index 632aaf756a..c525d799f6 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_stacked_spine.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_stacked_spine.py @@ -36,6 +36,7 @@ def test_puf_finalize_masks_earnings_allocation_to_age_15_plus() -> None: person_outputs=tuple(predictions.columns), tax_unit_outputs=(), absent_cells=PUF_ABSENT_CELLS_PRESERVE_NULLS, + tail_bound_diagnostics=[], ) finalized_person = finalized.table("person") acs = finalized_person[support_channel_column("person")].eq("acs") 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 070bbc6d23..48ac736ec4 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 @@ -12,7 +12,7 @@ def test_semantic_hash_has_golden_vector_and_surface_separation(tmp_path) -> Non # Pin the domain separator, normalization rules, schema-set receipt, and # exact normative projection as one reviewable golden vector. assert first.spec_sha256 == ( - "0c0c8eea8f5d350f3a73867aebfcb82450cb606124dc85cc3772cc2eae971ddb" + "b635bb5527ac9e9fef469e4de9a7ff5478354f3ece7119a7b88be51124c50e23" ) second_root = _rich_minimal(tmp_path / "xy", note="second", store="local:b") diff --git a/packages/microcosm-build/tests/engine_free/us/test_puf_qrf_chain.py b/packages/microcosm-build/tests/engine_free/us/test_puf_qrf_chain.py index 924212e93a..a261779dd1 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_puf_qrf_chain.py +++ b/packages/microcosm-build/tests/engine_free/us/test_puf_qrf_chain.py @@ -328,7 +328,9 @@ def test_primary_qrf_legacy_object_bank_loads_without_rewrite_or_identity_failur assert live.table("tax_unit")[support_channel].dtype == CANONICAL_STRING_DTYPE for target_index in range(len((*_PERSON_OUTPUTS, *_TAX_UNIT_OUTPUTS))): run_primary_puf_qrf_target(checkpoint_dir, target_index) - _finalized, weight_kind = finalize_primary_puf_qrf_chain(live, checkpoint_dir) + _finalized, weight_kind = finalize_primary_puf_qrf_chain( + live, checkpoint_dir, tail_bound_diagnostics=[] + ) assert weight_kind == "design" assert { @@ -476,8 +478,11 @@ def test_target_subprocess_chain_matches_monolith_raw_bits_and_final_frame( monolith_raw.copy(), person_outputs=_PERSON_OUTPUTS, tax_unit_outputs=_TAX_UNIT_OUTPUTS, + tail_bound_diagnostics=[], + ) + actual, weight_kind = finalize_primary_puf_qrf_chain( + frame, checkpoint_dir, tail_bound_diagnostics=[] ) - actual, weight_kind = finalize_primary_puf_qrf_chain(frame, checkpoint_dir) assert weight_kind == "design" _assert_frames_bit_exact(actual, expected) @@ -487,7 +492,7 @@ def test_target_subprocess_chain_matches_monolith_raw_bits_and_final_frame( original_source_id = tax_unit.loc[first_puf_row, "tax_unit_source_id"] tax_unit.loc[first_puf_row, "tax_unit_source_id"] = original_source_id + 1 with pytest.raises(ValueError, match="changed PUF recipient identity"): - finalize_primary_puf_qrf_chain(frame, checkpoint_dir) + finalize_primary_puf_qrf_chain(frame, checkpoint_dir, tail_bound_diagnostics=[]) tax_unit.loc[first_puf_row, "tax_unit_source_id"] = original_source_id # Finalization must not rewrite raw target checkpoints. A second supervisor @@ -554,7 +559,9 @@ def test_resumed_earnings_chain_keeps_children_out_of_allocation( run_primary_puf_qrf_chain(checkpoint_dir) assert completed_target.read_bytes() == completed_bytes assert pending_target.is_file() - resumed, weight_kind = finalize_primary_puf_qrf_chain(frame, checkpoint_dir) + resumed, weight_kind = finalize_primary_puf_qrf_chain( + frame, checkpoint_dir, tail_bound_diagnostics=[] + ) assert weight_kind == "design" resumed_person = resumed.table("person") @@ -656,7 +663,9 @@ def test_primary_qrf_chain_stacked_finalization_preserves_unowned_nulls( for target_index in range(len((*_PERSON_OUTPUTS, *_TAX_UNIT_OUTPUTS))): run_primary_puf_qrf_target(checkpoint_dir, target_index) - finalized, weight_kind = finalize_primary_puf_qrf_chain(frame, checkpoint_dir) + finalized, weight_kind = finalize_primary_puf_qrf_chain( + frame, checkpoint_dir, tail_bound_diagnostics=[] + ) assert weight_kind == "design" person = finalized.table("person") @@ -703,7 +712,9 @@ def test_primary_qrf_chain_legacy_doctrine_defaults_remain_loadable( for target_index in range(len((*_PERSON_OUTPUTS, *_TAX_UNIT_OUTPUTS))): run_primary_puf_qrf_target(checkpoint_dir, target_index) - finalized, _weight_kind = finalize_primary_puf_qrf_chain(frame, checkpoint_dir) + finalized, _weight_kind = finalize_primary_puf_qrf_chain( + frame, checkpoint_dir, tail_bound_diagnostics=[] + ) person = finalized.table("person") native = person["person_support_clone_index"].eq(0) @@ -768,7 +779,7 @@ def test_primary_qrf_finalization_rejects_changed_recipient_features( ValueError, match="changed the PUF recipient predictor source universe or feature values", ): - finalize_primary_puf_qrf_chain(frame, checkpoint_dir) + finalize_primary_puf_qrf_chain(frame, checkpoint_dir, tail_bound_diagnostics=[]) @pytest.mark.parametrize("stale_version", (1, 2, 3, 4, 5)) diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_education_inputs.py b/packages/microcosm-build/tests/engine_free/us/test_us_education_inputs.py index 7a6124b034..aff3eb4008 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_education_inputs.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_education_inputs.py @@ -401,6 +401,7 @@ def test_puf_support_to_education_stage_preserves_real_source_signal( tax_unit_outputs=(), seed=0, n_estimators=20, + tail_bound_diagnostics=[], ) person = imputed.table("person") channel = person[support_channel_column("person")] diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_form_4952.py b/packages/microcosm-build/tests/engine_free/us/test_us_form_4952.py index 18818f190c..21eb193dfc 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_form_4952.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_form_4952.py @@ -141,6 +141,7 @@ def test_puf_imputation_preserves_tax_unit_total_without_inventing_split() -> No tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) person = imputed.table("person") channel = support_channel_column("person") diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_income_rank_predictors.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_income_rank_predictors.py index 6b5d5a98b7..27ee44e2de 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_income_rank_predictors.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_income_rank_predictors.py @@ -272,6 +272,7 @@ def test_donor_without_person_roles_leaves_demographic_predictors_absent() -> No tax_unit_outputs=(), n_estimators=2, seed=0, + tail_bound_diagnostics=[], ) @@ -444,6 +445,7 @@ def test_strict_recipient_surface_names_a_tax_unit_without_a_head() -> None: seed=0, require_complete_recipient_predictors=True, absent_cells=puf_support.PUF_ABSENT_CELLS_PRESERVE_NULLS, + tail_bound_diagnostics=[], ) @@ -487,6 +489,7 @@ def _imputed_puf_wages( tax_unit_outputs=(), n_estimators=8, seed=0, + tail_bound_diagnostics=[], ) person = imputed.table("person") detail = person[support_channel_column("person")].eq(PUF_TAX_DETAIL_SUPPORT_CHANNEL) diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py index 9b0600730a..010ccbeaf6 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py @@ -609,9 +609,13 @@ def test_snapped_outputs_stay_on_observed_values_within_the_bound() -> None: finalized = _finalize(frame, donor, {_SNAPPED: raw}, diagnostics=[]) - _, cap = _bounds(donor[_SNAPPED], donor["weight"], _recipient_weights(frame)) - actual = _puf_values(finalized, _SNAPPED) grid = puf_support_module._observed_snap_grid(donor[_SNAPPED]) + _, cap = _bounds( + puf_support_module._snap_grid_values(donor[_SNAPPED]), + donor["weight"], + _recipient_weights(frame), + ) + actual = _puf_values(finalized, _SNAPPED) assert (actual <= cap).all() assert np.isin(actual, grid).all() assert actual[1] < raw[1] @@ -620,6 +624,26 @@ def test_snapped_outputs_stay_on_observed_values_within_the_bound() -> None: assert actual[1] == grid[grid <= cap[1]].max() +def test_draws_at_a_tied_maximum_on_the_snap_grid_are_not_clipped() -> None: + # Statutory caps aged by a factor leave the donor's maximum off the integer + # grid (4,504.8 here) yet tied across many returns. The bound is computed + # on the grid the column snaps to, so draws at that maximum snap to it + # unmoved instead of being clipped to the grid value below. + frame = _recipient_frame([20.0, 400.0, 600.0, 980.0]) + donor = pd.DataFrame( + {_SNAPPED: [4_504.8, 1_000.4, 0.0], "weight": [500.0, 400.0, 100.0]} + ) + raw = np.asarray([4_504.8, 4_504.8, 4_504.8, 0.0]) + diagnostics: list[dict[str, object]] = [] + + finalized = _finalize(frame, donor, {_SNAPPED: raw}, diagnostics=diagnostics) + + assert diagnostics[0]["clipped_row_count"] == 0 + np.testing.assert_array_equal( + _puf_values(finalized, _SNAPPED), [4_505.0, 4_505.0, 4_505.0, 0.0] + ) + + def test_sparsification_rescales_bounded_draws_by_one_common_factor() -> None: # Every recipient draws positive while the donor is 90.9% positive, so the # donor-rate sparsification zeroes the smallest draw and rescales the rest @@ -632,7 +656,9 @@ def test_sparsification_rescales_bounded_draws_by_one_common_factor() -> None: finalized = _finalize(frame, donor, {_SNAPPED: raw}, diagnostics=[]) weights = _recipient_weights(frame) - floor, cap = _bounds(donor[_SNAPPED], donor["weight"], weights) + floor, cap = _bounds( + puf_support_module._snap_grid_values(donor[_SNAPPED]), donor["weight"], weights + ) grid = puf_support_module._observed_snap_grid(donor[_SNAPPED]) lowered = puf_support_module._largest_grid_values_within(cap, grid) before = puf_support_module._snap_to_observed_values( diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_social_security.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_social_security.py index fdb0b9aa1a..d4d2e7ddc5 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_social_security.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_social_security.py @@ -60,6 +60,7 @@ def _finalize( person_outputs=components, tax_unit_outputs=(), absent_cells=absent_cells, + tail_bound_diagnostics=[], ) @@ -218,6 +219,7 @@ def predict( n_estimators=1, seed=0, raw_predictions_callback=lambda draw: raw_draws.append(draw.copy(deep=True)), + tail_bound_diagnostics=[], ) assert len(raw_draws) == 1 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 72ff0c8e72..205e2e43a6 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 @@ -708,6 +708,7 @@ def test_puf_tax_detail_refuses_formula_owned_outputs() -> None: tax_unit_outputs=("interest_deduction",), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) @@ -1101,6 +1102,7 @@ def test_cps_carried_derivations_unblock_default_puf_predictors() -> None: tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) puf_people = imputed.table("person")[ @@ -1171,6 +1173,7 @@ def predict( tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) puf_people = imputed.table("person")[ @@ -1241,6 +1244,7 @@ def predict( tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) person = imputed.table("person") @@ -1444,6 +1448,7 @@ def test_puf_tax_detail_imputation_writes_only_puf_channel() -> None: tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) person = imputed.table("person") @@ -1505,6 +1510,7 @@ def test_puf_tax_detail_imputation_distributes_contributions_by_earnings() -> No tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) person = imputed.table("person") @@ -1601,6 +1607,7 @@ def predict( tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) person = imputed.table("person") @@ -1679,6 +1686,7 @@ def predict( ), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) puf_tax_units = imputed.table("tax_unit")[ @@ -1769,6 +1777,7 @@ def predict( tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) final_pos, final_neg = _puf_channel_person_legs(imputed, column) @@ -1849,6 +1858,7 @@ def _features(rng: np.random.Generator, n: int) -> tuple[np.ndarray, np.ndarray] raw_predictions_callback=lambda predictions: raw_holder.__setitem__( "raw", predictions[column].to_numpy().copy() ), + tail_bound_diagnostics=[], ) # Recover the recipient tax-unit weights to score the raw draw's national net. diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_salt_refund_income.py b/packages/microcosm-build/tests/engine_free/us/test_us_salt_refund_income.py index b4d2332ef0..4a525fcddb 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_salt_refund_income.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_salt_refund_income.py @@ -128,6 +128,7 @@ def test_puf_imputation_preserves_tax_unit_total_without_inventing_split() -> No tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) person = imputed.table("person") channel = support_channel_column("person") 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 c1b3fb6553..5c5ecdde8c 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 @@ -553,6 +553,7 @@ def test_finalize_preserve_nulls_keeps_unowned_cells_null() -> None: person_outputs=("taxable_interest_income",), tax_unit_outputs=("health_savings_account_ald",), absent_cells=PUF_ABSENT_CELLS_PRESERVE_NULLS, + tail_bound_diagnostics=[], ) person = finalized.table("person") @@ -609,6 +610,7 @@ def test_finalize_preserve_nulls_materializes_registry_boolean_outputs() -> None person_outputs=boolean_outputs, tax_unit_outputs=(), absent_cells=PUF_ABSENT_CELLS_PRESERVE_NULLS, + tail_bound_diagnostics=[], ) person = finalized.table("person") @@ -649,6 +651,7 @@ def test_finalize_preserve_nulls_rejects_numeric_boolean_materialization() -> No person_outputs=(column,), tax_unit_outputs=(), absent_cells=PUF_ABSENT_CELLS_PRESERVE_NULLS, + tail_bound_diagnostics=[], ) @@ -664,6 +667,7 @@ def test_finalize_legacy_zero_fill_reproduces_the_audited_defect() -> None: predictions.copy(), person_outputs=("taxable_interest_income",), tax_unit_outputs=("health_savings_account_ald",), + tail_bound_diagnostics=[], ) person = finalized.table("person") @@ -689,6 +693,7 @@ def test_finalize_legacy_zero_fill_matches_run_7_protocol_5_byte_pin() -> None: predictions.copy(), person_outputs=("taxable_interest_income",), tax_unit_outputs=("health_savings_account_ald",), + tail_bound_diagnostics=[], ) actual = ( @@ -717,6 +722,7 @@ def test_preserve_nulls_sparsification_never_rewrites_native_rows() -> None: person_outputs=("taxable_interest_income",), tax_unit_outputs=("health_savings_account_ald",), absent_cells=PUF_ABSENT_CELLS_PRESERVE_NULLS, + tail_bound_diagnostics=[], ) person = finalized.table("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 3c9576a99d..c79a27d1fc 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 @@ -79,6 +79,7 @@ def predict( tax_unit_outputs=(), n_estimators=4, seed=9, + tail_bound_diagnostics=[], ) person = imputed.table("person") 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 799d806d36..dfbb127429 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 @@ -338,7 +338,7 @@ def capture_equality(expected: object, actual: object) -> None: "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "3080fe938df62216dc4853c1163639817de3c537e0e932309642fbd3f7d8f266", + "spec_sha256": "f56dd06c602f065546c659c353114d2c9a4f6a7cd7e13daadfec14f48b53152a", }, } diff --git a/test_support/microcosm_build/us_farm_business_income.py b/test_support/microcosm_build/us_farm_business_income.py index d835aca228..a73315a8e8 100644 --- a/test_support/microcosm_build/us_farm_business_income.py +++ b/test_support/microcosm_build/us_farm_business_income.py @@ -133,6 +133,7 @@ def fit( person_outputs=US_FARM_BUSINESS_INCOME_OUTPUT_COLUMNS, tax_unit_outputs=(), seed=11, + tail_bound_diagnostics=[], ) diff --git a/test_support/microcosm_build/us_puf_support.py b/test_support/microcosm_build/us_puf_support.py index 502744f568..b8bbeb5943 100644 --- a/test_support/microcosm_build/us_puf_support.py +++ b/test_support/microcosm_build/us_puf_support.py @@ -276,6 +276,7 @@ def _impute(self, fit_records): n_estimators=4, seed=0, fit_records=fit_records, + tail_bound_diagnostics=[], ) def test_production_fit_records_design_weight_kind(self) -> None: @@ -326,6 +327,7 @@ def test_records_are_only_emitted_when_a_sink_is_provided(self) -> None: tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) assert imputed.table("person") is not None @@ -367,6 +369,7 @@ def test_production_fit_records_design_kind_under_installed_metadata(self) -> No n_estimators=4, seed=0, fit_records=fit_records, + tail_bound_diagnostics=[], ) assert fit_records == [FitWeightRecord(US_PUF_SUPPORT_FIT_NAME, "design")] diff --git a/tools/spec_engine_coverage.py b/tools/spec_engine_coverage.py index c066d573ce..0322601492 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" + "4523cb2c2ccca11f484b6fdd1efb860652b1fb1622a4e39675ba652b9136f4f6" ) DEFAULT_REPORT_PATH = ( Path(__file__).resolve().parents[1] From 37be49066e32d5528c53ebcf2e8e8c1b2e8a847d Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 09:22:11 -0400 Subject: [PATCH 06/17] Give the base-builder weights-audit tests a tail-bound sink Co-Authored-By: Claude Opus 5.5 --- .../tests/engine_free/us/test_us_puf_support_base_builder.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_support_base_builder.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_support_base_builder.py index e6944adaae..cf41dc000f 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_support_base_builder.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_support_base_builder.py @@ -423,6 +423,7 @@ def test_base_build_records_design_weight_kind_in_the_summary(self) -> None: _imputed, weights_audit = builder.impute_and_audit_us_puf_support( clone_us_frame_for_puf_support(_minimal_us_puf_support_frame()), _support_donor(), + tail_bound_diagnostics=[], **_SUPPORT_FIT_KWARGS, ) @@ -439,6 +440,7 @@ def test_base_build_summary_json_carries_the_audit(self) -> None: _imputed, weights_audit = builder.impute_and_audit_us_puf_support( clone_us_frame_for_puf_support(_minimal_us_puf_support_frame()), _support_donor(), + tail_bound_diagnostics=[], **_SUPPORT_FIT_KWARGS, ) round_tripped = json.loads(json.dumps({"weights_audit": weights_audit})) From 8e54ef72b284ea44706e7add21348f5a5eaed4d5 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 09:56:29 -0400 Subject: [PATCH 07/17] Address review r1: shared config schema, interim label, edge cases, tests - Stacked publication and the pool loader required execution-config schema 5 while the builder wrote 6, so no current stacked pool could publish or load. All four sites now read PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION. - The comment and docstrings now call the bound an interim censor that limits a record to its slice (not a fix for concentration the slice has), name the root fixes (#958/#964, #481), and record the loosened links across columns, the rung dependence and the Social Security re-split. - Slices use positive-weight donors only; non-finite bounded draws are refused before any write; quantile records carry a rule discriminator. - Tests: zero weights on both sides; an LP optimality check replaces the tautological mass test; production-geometry differential test; tax-unit outputs, Social Security total, and per-leg calibration factors through finalization; the identity is pinned to a literal. - Re-pinned the seed protocol and map, coverage evidence, pool-tool spec sha and loader golden. Co-Authored-By: Claude Opus 5.5 --- docs/evidence/spec-engine/us-f0-coverage.json | 16 +- .../build/spec_engine/inventory_coverage.py | 4 +- .../src/microcosm/build/us_runtime/h5_io.py | 8 +- .../microcosm/build/us_runtime/puf_support.py | 47 ++- .../build/us_runtime/stacked_spine.py | 10 +- .../shared/test_spec_engine_loader.py | 2 +- .../us/test_us_puf_recipient_share_bound.py | 287 +++++++++++++++--- .../engine_free/us/test_us_puf_tail_bound.py | 1 + .../us/test_us_multispine_pool_tool.py | 2 +- tools/build_us_multispine_pool.py | 5 +- 10 files changed, 310 insertions(+), 72 deletions(-) diff --git a/docs/evidence/spec-engine/us-f0-coverage.json b/docs/evidence/spec-engine/us-f0-coverage.json index 8649930da3..ebe6027ee5 100644 --- a/docs/evidence/spec-engine/us-f0-coverage.json +++ b/docs/evidence/spec-engine/us-f0-coverage.json @@ -1656,13 +1656,13 @@ "compiler_ir.node_slices" ], "expected": { - "map_sha256": "2eaa714e90df4c8b261741de9b24028a7f1074780d5d177ef74619e2944db63b", - "protocol_sha256": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d" + "map_sha256": "1d7cc2ee599758e256d830640ecf01ce49fe35e4970c07cb6cdcfb009f9e2ee4", + "protocol_sha256": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1" }, "failures": [], "observed": { - "map_sha256": "2eaa714e90df4c8b261741de9b24028a7f1074780d5d177ef74619e2944db63b", - "protocol_sha256": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d" + "map_sha256": "1d7cc2ee599758e256d830640ecf01ce49fe35e4970c07cb6cdcfb009f9e2ee4", + "protocol_sha256": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1" }, "status": "covered" }, @@ -1677,7 +1677,7 @@ "compiler_ir.seed_stream_map" ], "expected": { - "implementation_sha256": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d", + "implementation_sha256": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1698,7 +1698,7 @@ }, "failures": [], "observed": { - "implementation_sha256": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d", + "implementation_sha256": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1", "protocol": "legacy-v1", "streams": [ "build_model", @@ -2599,7 +2599,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "f56dd06c602f065546c659c353114d2c9a4f6a7cd7e13daadfec14f48b53152a" + "spec_sha256": "c1ac73b48d1468d91812dc49343db45a257fb9f68a176c8203295cc5967f7bff" } }, "report_schema_version": 3, @@ -2609,7 +2609,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "f56dd06c602f065546c659c353114d2c9a4f6a7cd7e13daadfec14f48b53152a" + "spec_sha256": "c1ac73b48d1468d91812dc49343db45a257fb9f68a176c8203295cc5967f7bff" }, "status": "pass" } 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 93238e87bd..2eccf1a70d 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 @@ -363,8 +363,8 @@ # RNG rules and the ordered QRF targets are unchanged. microcosm#104 moves # both again: the protocol attests microcosm.calibrate.solve. The # recipient-share bound in puf_support moves both again (#1259). - "seed_map": "2eaa714e90df4c8b261741de9b24028a7f1074780d5d177ef74619e2944db63b", - "seed_protocol": "f114fcb7f01afa54f3bf5ca65dc96342cdd69f5756774f1196ae32e9a71aad3d", + "seed_map": "1d7cc2ee599758e256d830640ecf01ce49fe35e4970c07cb6cdcfb009f9e2ee4", + "seed_protocol": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1", "source_manifest": "f4f8bfeb79268a4043a843b47cec1d1c0e58e9f5dd6bc23417ada95446dd7b8e", "take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35", "tail": "ac92829c88a1a4fb6460d61190918d5d99c6c377fc8dd8f62f02b332d09bf59c", diff --git a/packages/microcosm-build/src/microcosm/build/us_runtime/h5_io.py b/packages/microcosm-build/src/microcosm/build/us_runtime/h5_io.py index a22eb4835f..ea03a02978 100644 --- a/packages/microcosm-build/src/microcosm/build/us_runtime/h5_io.py +++ b/packages/microcosm-build/src/microcosm/build/us_runtime/h5_io.py @@ -1050,10 +1050,14 @@ def _current_worker_execution_authentication( ) -> dict[str, object]: """Derive current authentication evidence from the signed nested worker.""" + from microcosm.build.us_runtime.stacked_spine import ( + PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION, + ) + config, worker = _stacked_primary_execution_config( manifest, manifest_path=manifest_path ) - if config.get("schema_version") != 5: + if config.get("schema_version") != PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION: raise ValueError( f"US stacked pool manifest {manifest_path} primary execution-config " "version changed." @@ -1061,7 +1065,7 @@ def _current_worker_execution_authentication( return worker_identity_runtime.current_worker_execution_authentication_receipt( worker, manifest_schema_version=US_MULTISPINE_POOL_MANIFEST_SCHEMA_VERSION, - execution_config_schema_version=5, + execution_config_schema_version=PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION, boundary=f"US stacked pool manifest {manifest_path} primary-QRF worker", ) 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 2a2a85ed15..b97bda4128 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 @@ -403,10 +403,18 @@ def puf_tax_detail_tail_bound_quantiles_identity() -> dict[str, float]: # carries it. The bound caps each raw amount draw at the positive mass, per # unit of slice weight, of the donor's top slice of the recipient's own share # (and floors losses from the bottom slice), so no record carries more mass -# than the most extreme slice of the population it could stand for. Tail -# support below pool resolution is the pool's job (DESIGN.md); this keeps the -# fit from delivering it. Discrete and boolean outputs are not amounts and -# are left alone. +# than the most extreme slice of the population it could stand for. It limits +# a record to its slice; it does not remove concentration the slice itself +# has, and the mass it clips from passthrough columns is dropped. It is an +# interim censor at the finalize seam, like the quantile map above: tail +# support below pool resolution is the pool's job (DESIGN.md), and the root +# fix is a tail stratum carrying PUF donors at their own weights (#958, #964), +# with weight-aware draws (#481) as a complement. Each column is bounded on +# its own, so a clipped record's links to other columns (mortgage balance and +# interest, gains and their subsets) loosen further. Shares depend on the +# recipient population, so a smaller sample rung, whose records stand for +# more of it, is bounded more tightly. Discrete and boolean outputs are not +# amounts and are left alone. PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_RULE = "recipient_share_slice_mass" _PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_SCHEMA_VERSION = 1 @@ -1979,11 +1987,13 @@ def finalize_us_puf_tax_detail_predictions( explicit ``recipient_share_bound_outputs`` narrows it for tests and must name amount outputs of this invocation. It writes one diagnostics record per bounded output, including outputs it leaves unchanged. It holds on the - raw tax-unit draws and, for snapped outputs, after snapping. Two later - steps rescale a whole column to the donor instrument and so lift every - kept value by one common factor: the donor-rate sparsification of sparse - outputs restores the column's mass after zeroing carriers, and the - signed-mass calibration scales each leg of its outputs. + raw tax-unit draws and, for snapped outputs, after snapping. Three later + steps move bounded values without adding mass. The donor-rate + sparsification of sparse outputs restores the column's mass after zeroing + carriers, and the signed-mass calibration scales each leg of its outputs; + both lift every kept value of the column or leg by one common factor. The + Social Security reconciliation re-splits the four components' bounded + total by the CPS shares, keeping the total. ``absent_cells`` selects the finalization policy for cells outside the PUF clone arm (microcosm#578 audit item 1). The legacy default reproduces the @@ -2088,6 +2098,10 @@ def finalize_us_puf_tax_detail_predictions( ) resolved_share_bounds: dict[str, tuple[np.ndarray, np.ndarray]] = {} for output in share_bound_outputs: + if not np.isfinite(predictions[output].to_numpy(dtype=np.float64)).all(): + raise ValueError( + f"PUF raw predictions for bounded output {output!r} must be finite." + ) if output in snapped_outputs: # A snapped output lives on its snap grid, so it is bounded on the # donor's grid values: a slice inside one grid value caps at that @@ -2118,6 +2132,7 @@ def finalize_us_puf_tax_detail_predictions( tail_bound_diagnostics.append( { "output": output, + "rule": "weighted_positive_donor_quantile", "quantile": quantile, "bound_value": bound, "clipped_row_count": int(clipped.sum()), @@ -2846,9 +2861,11 @@ def _recipient_share_slice_bounds( share ``s`` of donor weight at the top of the column, so a positive value is capped at that mass per unit of slice weight; losses are floored the same way from the bottom slice. Within the positive donors the cap is the - slice's weighted mean, and it falls as the share grows. A side is infinite - only when the donor has no value of that sign. Shares make the bound - independent of either population's weight scale. + slice's weighted mean, and it falls as the share grows. Only donors with + positive weight count. A side is infinite only when no such donor has a + value of that sign, and a zero-weight recipient's cap is the largest + weighted donor value, which binds nothing a weighted draw can reach. + Shares make the bound independent of either population's weight scale. """ values = pd.to_numeric(pd.Series(donor_values), errors="coerce").to_numpy( @@ -2878,6 +2895,12 @@ def _recipient_share_slice_bounds( if donor_total <= 0.0 or recipient_total <= 0.0: raise ValueError("Recipient-share bound weights must have positive mass.") slice_weights = recipients / recipient_total * donor_total + # Only donors with weight stand for anyone, and a zero-weight donor cannot + # be drawn (the forests resample by weight), so slices and the largest + # value come from the weighted donors alone. + weighted = weights > 0.0 + values = values[weighted] + weights = weights[weighted] # Ordering by the positive part orders the top slice exactly as the values # do; donors at or below zero tie at zero and add no positive mass. top = _top_slice_means(np.maximum(values, 0.0), weights, slice_weights) 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 340700bff6..a907cb1622 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 @@ -5395,6 +5395,12 @@ def _late_virtual_resource_kind(column: str) -> str: ) from exc +#: The primary PUF execution config's payload schema. Schema 6 adds the +#: recipient-share bound (#1259). The builder, the late-resource validator, +#: stacked publication and the pool loader all read this one value. +PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION = 6 + + def _late_resource_binding_schema_version( column: str, *, @@ -5407,7 +5413,7 @@ def _late_resource_binding_schema_version( kind = _late_virtual_resource_kind(column) versions = { "acs_pums_earnings_universe_execution_config": 2, - "primary_puf_execution_config": 6, + "primary_puf_execution_config": PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION, "post_clone_source_execution_config": 3, "source_finalizer_execution_config": 2, "late_transfer_model_config": 3, @@ -6122,7 +6128,7 @@ def _late_primary_execution_config_binding( ) return { "resource_kind": "primary_puf_execution_config", - "schema_version": 6, + "schema_version": PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION, "clone_attachment": { "fraction": float(clone_attachment_fraction), "seed": clone_attachment_seed, 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 48ac736ec4..0031c67a99 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 @@ -12,7 +12,7 @@ def test_semantic_hash_has_golden_vector_and_surface_separation(tmp_path) -> Non # Pin the domain separator, normalization rules, schema-set receipt, and # exact normative projection as one reviewable golden vector. assert first.spec_sha256 == ( - "b635bb5527ac9e9fef469e4de9a7ff5478354f3ece7119a7b88be51124c50e23" + "7d1a8e72fd13abb09596f88438b5d56e9d667178b37db9d1b10e086675ecd8ef" ) second_root = _rich_minimal(tmp_path / "xy", note="second", store="local:b") diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py index 010ccbeaf6..62801f97a5 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py @@ -2,8 +2,9 @@ A PUF-clone recipient whose weight is the share ``s`` of the recipient population stands for ``s`` of the population. The bound limits its raw draw -to the weighted mean of the donor slice holding the same share at that end of -the distribution, so ``w_r * value <= (W_r / W_d) * mass(slice)``. +to the same-sign mass, per unit of slice weight, of the donor slice holding the +same share at that end of the distribution, so +``w_r * value <= (W_r / W_d) * mass(slice)``. """ from __future__ import annotations @@ -31,18 +32,28 @@ _positive_weights = st.floats( min_value=1e-3, max_value=1e4, allow_nan=False, allow_infinity=False ) +# Zero weights occur on both sides: the donor fill is fillna(0.0), and a +# recipient household can carry no weight. +_weights = st.one_of(st.just(0.0), _positive_weights) + + +def _with_positive_mass(weights: list[float]) -> np.ndarray: + array = np.asarray(weights, dtype=np.float64) + if not (array > 0.0).any(): + array[0] = 1.0 + return array @st.composite def _donor_and_recipients(draw: st.DrawFn) -> tuple[np.ndarray, ...]: donors = draw(st.integers(min_value=1, max_value=40)) values = np.asarray(draw(st.lists(_amounts, min_size=donors, max_size=donors))) - weights = np.asarray( - draw(st.lists(_positive_weights, min_size=donors, max_size=donors)) + weights = _with_positive_mass( + draw(st.lists(_weights, min_size=donors, max_size=donors)) ) recipients = draw(st.integers(min_value=1, max_value=25)) - recipient_weights = np.asarray( - draw(st.lists(_positive_weights, min_size=recipients, max_size=recipients)) + recipient_weights = _with_positive_mass( + draw(st.lists(_weights, min_size=recipients, max_size=recipients)) ) return values, weights, recipient_weights @@ -52,7 +63,12 @@ def _reference_slice_mean( ) -> float: """One slice's same-sign mass per unit weight, donor by donor.""" - order = sorted(range(len(values)), key=lambda i: -values[i] if top else values[i]) + weighted = [i for i in range(len(values)) if weights[i] > 0.0] + order = sorted(weighted, key=lambda i: -values[i] if top else values[i]) + if take <= 0.0: + # An empty slice reads the most extreme weighted value on its side. + extreme = values[order[0]] + return max(extreme, 0.0) if top else min(extreme, 0.0) remaining = take mass = 0.0 for index in order: @@ -91,6 +107,8 @@ def _close(actual: np.ndarray, expected: np.ndarray) -> None: def _top_slice_edge(values: np.ndarray, weights: np.ndarray, take: float) -> float: """The value at the inner edge of the top slice holding ``take`` weight.""" + weighted = weights > 0.0 + values, weights = values[weighted], weights[weighted] order = np.argsort(-values, kind="stable") cumulative = np.cumsum(weights[order]) edge = min(int(np.searchsorted(cumulative, take, side="left")), len(values) - 1) @@ -98,7 +116,8 @@ def _top_slice_edge(values: np.ndarray, weights: np.ndarray, take: float) -> flo def test_bound_is_the_slice_mean_on_a_worked_example() -> None: - # Donor population of weight 1,000: 990 at 10, 9 at 1,000, 1 at 100,000. + # Donor population of weight 1,000: 980 at 10, 9 at 1,000, 1 at 100,000 + # and 10 at -50. values = np.asarray([10.0, 1_000.0, 100_000.0, -50.0]) weights = np.asarray([980.0, 9.0, 1.0, 10.0]) # Recipients of share 0.001, 0.01 and 0.989 of their own population. @@ -201,11 +220,17 @@ def test_vectorized_bound_matches_the_donor_by_donor_reference( _close(floor, expected_floor) -@_PROPERTY_SETTINGS +@settings(max_examples=150, deadline=None, suppress_health_check=[HealthCheck.too_slow]) @given(_donor_and_recipients()) -def test_one_record_never_carries_more_than_its_slice_mass( +def test_cap_mass_is_the_most_any_donor_subpopulation_of_that_size_holds( case: tuple[np.ndarray, ...], ) -> None: + # Independent of the slice construction: a linear program picks any + # fractional subpopulation of donor weight `take` (0 <= x_d <= w_d) to + # maximize its positive mass (or minimize its negative mass). The bound's + # mass, w_r * cap scaled to donor weight, must equal that optimum. + from scipy.optimize import linprog + values, weights, recipient_weights = case donor_total = weights.sum() recipient_total = recipient_weights.sum() @@ -214,13 +239,25 @@ def test_one_record_never_carries_more_than_its_slice_mass( for index, weight in enumerate(recipient_weights): take = weight / recipient_total * donor_total - scale = recipient_total / donor_total - if np.isfinite(cap[index]): - top_mass = take * _reference_slice_mean(values, weights, take, top=True) - assert weight * cap[index] == pytest.approx(scale * top_mass, rel=1e-9) - if np.isfinite(floor[index]): - bottom_mass = take * _reference_slice_mean(values, weights, take, top=False) - assert weight * floor[index] == pytest.approx(scale * bottom_mass, rel=1e-9) + if take <= 0.0: + continue + for side, bound in ((1.0, cap[index]), (-1.0, floor[index])): + part = np.maximum(side * values, 0.0) + if not (part[weights > 0.0] > 0.0).any(): + assert np.isinf(bound) + continue + result = linprog( + -part, + A_eq=np.ones((1, len(values))), + b_eq=[take], + bounds=[(0.0, w) for w in weights], + method="highs", + ) + assert result.success + best_mass = -result.fun + assert side * bound * take == pytest.approx( + best_mass, rel=1e-7, abs=1e-6 * max(1.0, best_mass) + ) @_PROPERTY_SETTINGS @@ -236,13 +273,14 @@ def test_bound_stays_inside_the_donor_support_and_slice( for index, weight in enumerate(recipient_weights): take = weight / recipient_total * donor_total + weighted_values = values[weights > 0.0] if np.isfinite(cap[index]): - assert 0.0 < cap[index] <= values.max() + assert 0.0 < cap[index] <= weighted_values.max() # The mean of the slice is at least its inner edge, exactly. edge = _top_slice_edge(values, weights, take) assert cap[index] >= edge if np.isfinite(floor[index]): - assert values.min() <= floor[index] < 0.0 + assert weighted_values.min() <= floor[index] < 0.0 edge = -_top_slice_edge(-values, weights, take) assert floor[index] <= edge @@ -262,10 +300,11 @@ def test_heavier_recipients_get_tighter_bounds(case: tuple[np.ndarray, ...]) -> assert (np.diff(ordered_floor[np.isfinite(ordered_floor)]) >= -tolerance).all() # A side applies to every recipient or to none: it is infinite only when # the donor has no value of that sign. - assert np.isfinite(cap).all() == bool((values > 0.0).any()) - assert np.isinf(cap).all() == (not (values > 0.0).any()) - assert np.isfinite(floor).all() == bool((values < 0.0).any()) - assert np.isinf(floor).all() == (not (values < 0.0).any()) + weighted_values = values[weights > 0.0] + assert np.isfinite(cap).all() == bool((weighted_values > 0.0).any()) + assert np.isinf(cap).all() == (not (weighted_values > 0.0).any()) + assert np.isfinite(floor).all() == bool((weighted_values < 0.0).any()) + assert np.isinf(floor).all() == (not (weighted_values < 0.0).any()) @_PROPERTY_SETTINGS @@ -445,12 +484,14 @@ def _finalize( raw: dict[str, np.ndarray], *, diagnostics: list[dict[str, object]] | None, + tax_unit_raw: dict[str, np.ndarray] | None = None, **kwargs: object, ) -> Frame: + tax_unit_raw = tax_unit_raw or {} predictions = pd.DataFrame( { column: np.asarray(values, dtype=np.float64) - for column, values in raw.items() + for column, values in {**raw, **tax_unit_raw}.items() }, index=_recipient_index(frame), ) @@ -459,12 +500,20 @@ def _finalize( donor, predictions, person_outputs=tuple(raw), - tax_unit_outputs=(), + tax_unit_outputs=tuple(tax_unit_raw), tail_bound_diagnostics=diagnostics, **kwargs, ) +def _puf_tax_unit_values(frame: Frame, column: str) -> np.ndarray: + tax_unit = frame.table("tax_unit") + puf = tax_unit[ + tax_unit[support_channel_column("tax_unit")] == PUF_TAX_DETAIL_SUPPORT_CHANNEL + ].sort_values(support_source_id_column("tax_unit")) + return puf[column].to_numpy(dtype=np.float64) + + def _heavy_tail_donor(column: str, *, losses: bool = True) -> pd.DataFrame: # 1,000 donor units: most small, nine large, one extreme record of weight # 0.13 (the Forbes-tail synthetic records' weight), and a loss tail. @@ -675,7 +724,7 @@ def test_sparsification_rescales_bounded_draws_by_one_common_factor() -> None: ) -def test_signed_mass_calibration_still_pins_both_legs_after_the_bound() -> None: +def test_signed_mass_calibration_rescales_each_bounded_leg_by_one_factor() -> None: frame = _recipient_frame([20.0, 400.0, 600.0, 980.0, 300.0]) donor = _heavy_tail_donor(_CALIBRATED) raw = np.asarray([150.0, 2.0e8, -40_000.0, 4_000.0, -100.0]) @@ -683,10 +732,20 @@ def test_signed_mass_calibration_still_pins_both_legs_after_the_bound() -> None: finalized = _finalize(frame, donor, {_CALIBRATED: raw}, diagnostics=[]) weights = _recipient_weights(frame) + floor, cap = _bounds(donor[_CALIBRATED], donor["weight"], weights) + bounded = np.minimum(np.maximum(raw, floor), cap) + assert bounded[1] < raw[1] actual = _puf_values(finalized, _CALIBRATED) values = donor[_CALIBRATED].to_numpy() donor_weights = donor["weight"].to_numpy() - for leg, donor_leg in ((actual > 0.0, values > 0.0), (actual < 0.0, values < 0.0)): + for leg, donor_leg in ( + (bounded > 0.0, values > 0.0), + (bounded < 0.0, values < 0.0), + ): + # Each leg is the bounded draws times one factor ... + factors = actual[leg] / bounded[leg] + np.testing.assert_allclose(factors, factors[0], rtol=1e-12) + # ... chosen so the leg's mass per unit weight is the donor's. assert float((actual[leg] * weights[leg]).sum()) / weights.sum() == ( pytest.approx( float((values[donor_leg] * donor_weights[donor_leg]).sum()) @@ -694,11 +753,6 @@ def test_signed_mass_calibration_still_pins_both_legs_after_the_bound() -> None: rel=1e-9, ) ) - # The calibration rescales whole legs, so the bound's effect survives it: - # the extreme draw no longer holds nearly all of the positive leg. - positive = actual > 0.0 - leg_mass = actual[positive] * weights[positive] - assert leg_mass.max() < 0.99 * leg_mass.sum() def test_boolean_outputs_are_not_bounded() -> None: @@ -748,19 +802,168 @@ def test_explicit_narrowing_is_validated_and_can_empty_the_bound() -> None: ) -def test_bound_identity_is_exact_and_names_its_rule() -> None: - identity = puf_support_module.puf_tax_detail_recipient_share_bound_identity() - assert identity["rule"] == ( - puf_support_module.PUF_TAX_DETAIL_RECIPIENT_SHARE_BOUND_RULE - ) - assert ( - identity == puf_support_module.puf_tax_detail_recipient_share_bound_identity() - ) +def test_bound_identity_is_pinned() -> None: + assert puf_support_module.puf_tax_detail_recipient_share_bound_identity() == { + "rule": "recipient_share_slice_mass", + "schema_version": 1, + "scope": "every_amount_output_of_the_invocation", + "excluded_output_classes": [ + "boolean_person_outputs", + "discrete_tax_unit_outputs", + ], + "recipient_share": "household_design_weight_over_puf_recipient_total", + "cap": "top_slice_positive_mass_per_slice_weight", + "floor": "bottom_slice_negative_mass_per_slice_weight", + "snapped_outputs": "bounded_on_snap_grid_values_cap_lowered_onto_grid", + "seam": "raw_tax_unit_draws_after_tail_bound_quantiles", + } + + +def test_every_canonical_amount_output_is_bounded_and_nothing_else() -> None: canonical = ( *puf_support_module.PUF_TAX_DETAIL_DEFAULT_PERSON_OUTPUTS, *puf_support_module.PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS, ) bounded = puf_support_module._recipient_share_bound_amount_outputs(canonical) + excluded = set(canonical) - set(bounded) + assert excluded == set(puf_support_module.US_QBI_BOOLEAN_OUTPUT_COLUMNS) | { + "first_home_mortgage_origination_year", + "second_home_mortgage_origination_year", + } assert "partnership_income" in bounded - assert "first_home_mortgage_origination_year" not in bounded - assert not set(bounded) & set(puf_support_module.US_QBI_BOOLEAN_OUTPUT_COLUMNS) + assert "first_home_mortgage_balance" in bounded + assert list(bounded) == [output for output in canonical if output in bounded] + + +def test_realistic_weight_ratios_cap_a_forbes_tail_draw() -> None: + # The production geometry: ~10^5 donors including 3,900 synthetic records + # of weight 0.13 with Pareto values, and recipients of weight ~600 among + # ~9e7 of recipient weight. Vectorized bounds match the donor-by-donor + # reference, and a 218.9M draw on a weight-644.7 unit is capped at the + # mass of the slice it stands for. + rng = np.random.default_rng(1259) + regular = 100_000 + values = np.concatenate( + [ + np.where( + rng.random(regular) < 0.06, rng.lognormal(10.0, 2.0, regular), 0.0 + ), + (rng.pareto(1.2, 3_900) + 1.0) * 2.0e6, + ] + ) + values[-1] = 2.189e8 + weights = np.concatenate( + [rng.uniform(200.0, 2_400.0, regular), np.full(3_900, 0.13)] + ) + recipient_weights = np.concatenate( + [rng.uniform(300.0, 1_000.0, 4_000), [644.7], [8.97e7]] + ) + + floor, cap = _bounds(values, weights, recipient_weights) + + probe = np.r_[np.arange(0, 4_000, 400), 4_000, 4_001] + reference_cap = np.asarray( + [ + _reference_slice_mean( + values, + weights, + recipient_weights[i] / recipient_weights.sum() * weights.sum(), + top=True, + ) + for i in probe + ] + ) + np.testing.assert_allclose(cap[probe], reference_cap, rtol=1e-9) + assert np.isinf(floor).all() + heavy = 4_000 + assert cap[heavy] < 2.189e8 + take = recipient_weights[heavy] / recipient_weights.sum() * weights.sum() + assert recipient_weights[heavy] * cap[heavy] == pytest.approx( + recipient_weights.sum() / weights.sum() * take * reference_cap[-2], rel=1e-9 + ) + + +def test_non_finite_bounded_draws_are_refused_before_any_write() -> None: + frame = _recipient_frame([20.0, 400.0]) + raw = np.asarray([np.nan, 1.0]) + predictions_before = raw.copy() + with pytest.raises(ValueError, match="must be finite"): + _finalize( + frame, + _heavy_tail_donor(_PASSTHROUGH), + {_PASSTHROUGH: raw}, + diagnostics=[], + ) + np.testing.assert_array_equal(raw, predictions_before) + + +def test_tax_unit_amount_outputs_are_bounded_on_the_tax_unit_table() -> None: + # A passthrough tax-unit amount (mortgage balance) and a snapped, + # sparsified one (domestic production ALD) through the tax-unit write path. + frame = _recipient_frame([20.0, 400.0, 600.0, 980.0]) + balance = "first_home_mortgage_balance" + dpad = "domestic_production_ald" + donor = pd.DataFrame( + { + balance: [200_000.0, 900_000.0, 5.0e7, 0.0], + dpad: [0.0, 1_000.0, 3.0e6, 0.0], + "weight": [900.0, 9.0, 0.13, 90.87], + } + ) + raw_balance = np.asarray([150_000.0, 5.0e7, 0.0, 300_000.0]) + raw_dpad = np.asarray([0.0, 3.0e6, 0.0, 0.0]) + diagnostics: list[dict[str, object]] = [] + + finalized = _finalize( + frame, + donor, + {}, + tax_unit_raw={balance: raw_balance, dpad: raw_dpad}, + diagnostics=diagnostics, + ) + + weights = _recipient_weights(frame) + _, balance_cap = _bounds(donor[balance], donor["weight"], weights) + actual_balance = _puf_tax_unit_values(finalized, balance) + np.testing.assert_array_equal(actual_balance, np.minimum(raw_balance, balance_cap)) + assert actual_balance[1] < raw_balance[1] + _, dpad_cap = _bounds( + puf_support_module._snap_grid_values(donor[dpad]), donor["weight"], weights + ) + actual_dpad = _puf_tax_unit_values(finalized, dpad) + assert actual_dpad[1] < raw_dpad[1] + assert actual_dpad[1] <= dpad_cap[1] + assert [record["output"] for record in diagnostics] == [balance, dpad] + + +def test_social_security_reconciliation_keeps_the_bounded_total() -> None: + # The four components are re-split by CPS shares after the bound, so a + # component can move, but each unit's total is the bounded draws' total. + frame = _recipient_frame([20.0, 980.0, 300.0]) + components = puf_support_module.PUF_TAX_DETAIL_SOCIAL_SECURITY_COMPONENT_OUTPUTS + donor = pd.DataFrame( + { + "social_security_retirement": [20_000.0, 60_000.0, 4.0e6, 0.0], + "social_security_disability": [0.0, 15_000.0, 0.0, 0.0], + "social_security_dependents": [0.0, 0.0, 0.0, 0.0], + "social_security_survivors": [0.0, 0.0, 0.0, 0.0], + "weight": [600.0, 300.0, 0.13, 99.87], + } + ) + raw = { + "social_security_retirement": np.asarray([20_000.0, 4.0e6, 60_000.0]), + "social_security_disability": np.asarray([0.0, 15_000.0, 0.0]), + "social_security_dependents": np.zeros(3), + "social_security_survivors": np.zeros(3), + } + + finalized = _finalize(frame, donor, raw, diagnostics=[]) + + weights = _recipient_weights(frame) + bounded_total = np.zeros(3) + for component in components: + floor, cap = _bounds(donor[component], donor["weight"], weights) + bounded_total += np.minimum(np.maximum(raw[component], floor), cap) + finalized_total = sum(_puf_values(finalized, component) for component in components) + np.testing.assert_allclose(finalized_total, bounded_total, rtol=1e-12) + assert finalized_total[1] < 4.0e6 + 15_000.0 diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_tail_bound.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_tail_bound.py index d1919c2009..fae4e7dd62 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_tail_bound.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_tail_bound.py @@ -154,6 +154,7 @@ def test_finalizer_clips_tail_without_changing_participation_or_lower_bits() -> np.testing.assert_array_equal(actual[:2].view(np.uint64), raw[:2].view(np.uint64)) assert diagnostics[0] == { "output": _TARGET, + "rule": "weighted_positive_donor_quantile", "quantile": 0.999, "bound_value": 100.0, "clipped_row_count": 2, 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 dfbb127429..b38fb180d5 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 @@ -338,7 +338,7 @@ def capture_equality(expected: object, actual: object) -> None: "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "f56dd06c602f065546c659c353114d2c9a4f6a7cd7e13daadfec14f48b53152a", + "spec_sha256": "c1ac73b48d1468d91812dc49343db45a257fb9f68a176c8203295cc5967f7bff", }, } diff --git a/tools/build_us_multispine_pool.py b/tools/build_us_multispine_pool.py index 8c852c985b..68abde6c13 100644 --- a/tools/build_us_multispine_pool.py +++ b/tools/build_us_multispine_pool.py @@ -199,6 +199,7 @@ CANONICAL_STACKED_GAP_FILL_SURFACE, CANONICAL_STACKED_POST_PUF_TRANSFER_SURFACE, DEFAULT_STACKED_HOUSEHOLD_MASS_SHARES, + PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION, assemble_stacked_spine, assert_stacked_tail_cells_preserved, by_origin_battery, @@ -4221,14 +4222,14 @@ def _stacked_worker_execution_authentication( qrf = config.get("qrf") if isinstance(config, Mapping) else None if ( not isinstance(config, Mapping) - or config.get("schema_version") != 5 + or config.get("schema_version") != PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION or not isinstance(qrf, Mapping) ): raise ValueError("Stacked publication primary execution config changed.") return current_worker_execution_authentication_receipt( qrf.get("worker_execution"), manifest_schema_version=POOL_MANIFEST_SCHEMA_VERSION, - execution_config_schema_version=5, + execution_config_schema_version=PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION, boundary="stacked publication primary-QRF worker", ) From ba4dfa98b7edf6c9746ca332ee314369c956ca44 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 10:23:16 -0400 Subject: [PATCH 08/17] Require both line-32 components for the primary passive placement; finish re-pins (#1258) Review round 1, finding 2: the primary pass accepted a passive output with only one of partnership_income and s_corp_income in the same pass, and the draw-coherence step summed whichever was present. That was harmless while the S-corp leaf was an exact zero; now an S-corporation-only unit would look line-32-free and lose its passive amount. Both now refuse a partial basis, matching the late transfer's reconciliation, with tests for each missing component. Pins that move with this commit or the previous ones: - seed protocol and seed map (puf_support's attested bytes), the loader golden vector and the US spec digest c74b09ea...; - spec-engine coverage evidence (42244/42244 fields, 41/41 checks); - counts that move with the 72nd late-transfer target in the shared spec-engine, head-to-head battery (136 scalar targets, 380 metric legs, 81 sign-separated), spec-bundle and completion-receipt fixtures; - the legacy pool-tool publication manifest golden (identity only; pool_h5 and agreement goldens unchanged). Co-Authored-By: Claude Opus 5.5 --- docs/evidence/spec-engine/us-f0-coverage.json | 16 +++++------ .../build/spec_engine/inventory_coverage.py | 4 +-- .../microcosm/build/us_runtime/puf_support.py | 27 ++++++++++--------- .../build/us_runtime/stacked_spine.py | 2 +- .../test_spec_engine_battery_semantics.py | 6 ++--- .../shared/test_spec_engine_compiler_ir.py | 2 +- .../shared/test_spec_engine_field_usage.py | 12 ++++----- .../shared/test_spec_engine_loader.py | 2 +- .../us/test_us_multispine_pool_h5_io.py | 2 +- .../us/test_us_multispine_pool_tool.py | 5 +++- .../engine_free/us/test_us_puf_support.py | 27 +++++++++++++++++-- .../us/test_us_release_head_to_head_scorer.py | 12 ++++----- .../engine_free/us/test_us_spec_bundle.py | 4 +-- .../us/test_us_multispine_pool_tool.py | 4 +-- .../us_multispine_pool_tool.py | 2 +- 15 files changed, 77 insertions(+), 50 deletions(-) diff --git a/docs/evidence/spec-engine/us-f0-coverage.json b/docs/evidence/spec-engine/us-f0-coverage.json index ccd965c21f..722e6104af 100644 --- a/docs/evidence/spec-engine/us-f0-coverage.json +++ b/docs/evidence/spec-engine/us-f0-coverage.json @@ -1656,13 +1656,13 @@ "compiler_ir.node_slices" ], "expected": { - "map_sha256": "3f77ffa276c93b8a4cc7500c89e7f109f3d7f3630eb3e655af18fd97351ba9b1", - "protocol_sha256": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418" + "map_sha256": "dd75edaaacecc52a6e0d99df6c8ab7f684091162bd60dc413afdd0fde0a7c6fb", + "protocol_sha256": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986" }, "failures": [], "observed": { - "map_sha256": "3f77ffa276c93b8a4cc7500c89e7f109f3d7f3630eb3e655af18fd97351ba9b1", - "protocol_sha256": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418" + "map_sha256": "dd75edaaacecc52a6e0d99df6c8ab7f684091162bd60dc413afdd0fde0a7c6fb", + "protocol_sha256": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986" }, "status": "covered" }, @@ -1677,7 +1677,7 @@ "compiler_ir.seed_stream_map" ], "expected": { - "implementation_sha256": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418", + "implementation_sha256": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1698,7 +1698,7 @@ }, "failures": [], "observed": { - "implementation_sha256": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418", + "implementation_sha256": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986", "protocol": "legacy-v1", "streams": [ "build_model", @@ -2599,7 +2599,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "b82cab5d6f5d3ed973117612346c04b08a9c6b932e86563e31b206336b5ff4ee" + "spec_sha256": "c74b09ea715071f20496c1c97f20b0158ae3944fe238acda0ad73cbbd9748ffb" } }, "report_schema_version": 3, @@ -2609,7 +2609,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "b82cab5d6f5d3ed973117612346c04b08a9c6b932e86563e31b206336b5ff4ee" + "spec_sha256": "c74b09ea715071f20496c1c97f20b0158ae3944fe238acda0ad73cbbd9748ffb" }, "status": "pass" } 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 04597ae533..a1ea24db54 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 @@ -366,8 +366,8 @@ # #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. - "seed_map": "3f77ffa276c93b8a4cc7500c89e7f109f3d7f3630eb3e655af18fd97351ba9b1", - "seed_protocol": "509517b62dbf3fb536a546571666daa56d6265d1d1f721ebfca1760542f28418", + "seed_map": "dd75edaaacecc52a6e0d99df6c8ab7f684091162bd60dc413afdd0fde0a7c6fb", + "seed_protocol": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986", "source_manifest": "22763ed5676fa29876951653368cbbc866cbd2425a2394a9f191ee09e448e413", "take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35", "tail": "4641e9a919a5c7719dd6e076e1eda06c17ec021d346a2b7f205fd299870a4688", 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 b6678b1f3c..cd8ac2cc89 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 @@ -2280,9 +2280,11 @@ def _require_signed_subset_outputs_after_their_basis( """Refuse a placement order that would split a subset by a stale basis. A signed-subset output is placed by its basis columns as the person table - holds them when its turn comes, so each basis column it is imputed with - must be placed first. Without one in the same pass, the placement would - read whatever the frame carried before the imputation. + holds them when its turn comes, so every basis column must be imputed in + the same pass and placed first. A missing one would leave the placement + reading whatever the frame carried before the imputation; for the passive + subset that is half of line 32 now that the S-corporation share is its + own leaf (microcosm#1258). """ position = {column: index for index, column in enumerate(person_outputs)} @@ -2290,12 +2292,13 @@ def _require_signed_subset_outputs_after_their_basis( if column not in _PERSON_OUTPUT_SIGNED_SUBSET_DISTRIBUTION_OUTPUTS: continue basis = _PERSON_OUTPUT_DISTRIBUTION_BASIS[column] - imputed_basis = [name for name in basis if name in position] - if not imputed_basis: + missing = [name for name in basis if name not in position] + if missing: raise ValueError( f"PUF output {column!r} is a subset of {list(basis)!r}; impute " - "at least one of them in the same pass." + f"all of them in the same pass (missing {missing!r})." ) + imputed_basis = list(basis) late = [name for name in imputed_basis if position[name] > position[column]] if late: raise ValueError( @@ -2324,15 +2327,13 @@ def _zero_passive_partnership_s_corp_without_line_32( passive = "passive_partnership_s_corp_income" if passive not in predictions: return - totals = [ - column - for column in ("partnership_income", "s_corp_income") - if column in predictions - ] - if not totals: + totals = ["partnership_income", "s_corp_income"] + missing = [column for column in totals if column not in predictions] + if missing: raise ValueError( "PUF passive partnership/S-corp draws need the line-32 total " - "(partnership_income and s_corp_income) in the same chain." + "(partnership_income and s_corp_income) in the same chain; " + f"missing {missing!r}." ) line_32 = predictions[totals].sum(axis=1) predictions.loc[line_32 == 0.0, passive] = 0.0 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 4418476c80..1cd3f9544b 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 @@ -5096,7 +5096,7 @@ def validate_stacked_post_puf_transfer_receipt( ) # The counts come from the canonical partition and surface checked above. # Their sizes are pinned once, at import: 19 groups in - # us_late_producer_registry and 71 targets in this module's surface check. + # us_late_producer_registry and 72 targets in this module's surface check. completion = receipt.get("completion") if completion != { "status": "complete", 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 d998a760e8..a6d0589784 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 @@ -52,12 +52,12 @@ def test_battery_registry_views_match_live_registry( ) -> None: views = derive_battery_registry_views(battery) assert views["declared_surface"] == _json_ready(CANONICAL_STACKED_DECLARED_SURFACE) - assert views["required_scalar_targets"] == 135 + assert views["required_scalar_targets"] == 136 assert views["required_joint_targets"] == 1 assert views["metric_counts"] == { "boolean_incidence": 51, "categorical_tvd": 4, - "monetary_sign_separated": 80, + "monetary_sign_separated": 81, } @@ -129,7 +129,7 @@ def test_battery_legacy_projection_survives_resolved_normalization( assert projected["gates"][1]["metric"]["params"] == { **battery["gates"][1]["metric"]["params"], "required_joint_targets": 1, - "required_scalar_targets": 135, + "required_scalar_targets": 136, } 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 70a881417a..f7f65710dd 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 @@ -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 == 229 + assert graph.compiled_output_count == 230 assert graph.schedule_sha256 == US_SCHEDULE_SHA256 assert sha256_json(graph.schedule_wire()) == US_SCHEDULE_SHA256 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 cd71345f4f..340de2f15f 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_236 + assert len(field_ledger.fields) == EXPECTED_CONFIGURATION_FIELD_COUNT == 42_244 assert field_ledger.source_counts == { - "authored": 32_456, + "authored": 32_464, "resolved_bindings": 9_780, } assert field_ledger.mode_counts == { - "legacy_behavior": 14_036, - "compiler_semantic": 27_743, + "legacy_behavior": 14_047, + "compiler_semantic": 27_740, "front_end_validation": 354, "identity_only": 103, } assert field_ledger.generation0_effect_counts == { - "legacy_behavior": 38_540, + "legacy_behavior": 38_548, "no_generation0_effect": 3_696, } - assert len({field.pointer for field in field_ledger.fields}) == 42_236 + assert len({field.pointer for field in field_ledger.fields}) == 42_244 def test_eligibility_concepts_are_validation_not_generation0_behavior( 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 e73204842c..f028f05c22 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 @@ -12,7 +12,7 @@ def test_semantic_hash_has_golden_vector_and_surface_separation(tmp_path) -> Non # Pin the domain separator, normalization rules, schema-set receipt, and # exact normative projection as one reviewable golden vector. assert first.spec_sha256 == ( - "680e8951277e4bbfd47bd79e3c9008e424692d29f4da7c9a80975b1c630b0987" + "2b4b6f592dfd2715a3c3e0ed8322ef5dc50a5ebf5cacb1253390e3bfc0b2862b" ) second_root = _rich_minimal(tmp_path / "xy", note="second", store="local:b") 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 3ba24c2e05..1b65d7a9ff 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": 71, + "target_count": 72, "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 4256212e5d..5403902555 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": "2ebe97b4ac73d5e7bc44dec2f6c48483dc60641b08c017ae3ab10808a911ca76", + # microcosm#1258 moves the identity again (the late schedule and the + # remaining-stage manifest gain the S-corp transfer target); pool_h5 + # and agreement stay unchanged. + "manifest": "bfaa7ffc709b68dbb7d05ee8f4c7e0600612f22ef21f3329784b782a9f59e812", } 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 f9b8e939ac..2450f318e7 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 @@ -1591,8 +1591,21 @@ def test_passive_draw_is_zero_wherever_the_unit_drew_no_line_32( pd.testing.assert_series_equal(after[total != 0.0], before[total != 0.0]) -def test_passive_draw_coherence_requires_the_line_32_total() -> None: - predictions = pd.DataFrame({"passive_partnership_s_corp_income": [1.0]}) +@pytest.mark.parametrize( + "present", + [(), ("partnership_income",), ("s_corp_income",)], +) +def test_passive_draw_coherence_requires_the_line_32_total( + present: tuple[str, ...], +) -> None: + """Both entity shares make up line 32; one alone is refused (#1258).""" + + predictions = pd.DataFrame( + { + "passive_partnership_s_corp_income": [1.0], + **{column: [0.0] for column in present}, + } + ) with pytest.raises(ValueError, match="line-32 total"): _zero_passive_partnership_s_corp_without_line_32(predictions) @@ -1761,6 +1774,16 @@ def test_passive_placement_ignores_values_the_column_already_holds() -> None: "must come before it", ), (("passive_partnership_s_corp_income",), "same pass"), + # microcosm#1258: half a line-32 basis is a stale basis too. Without + # s_corp_income an S-corporation-only unit would look line-32-free. + ( + ("partnership_income", "passive_partnership_s_corp_income"), + r"same pass \(missing \['s_corp_income'\]\)", + ), + ( + ("s_corp_income", "passive_partnership_s_corp_income"), + r"same pass \(missing \['partnership_income'\]\)", + ), ], ) def test_passive_placement_refuses_a_stale_line_32_basis( 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 4299ade222..b9af195866 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 @@ -701,13 +701,13 @@ def test_canonical_battery_contract_matches_production_registries() -> None: single = len(module.CANONICAL_ORIGIN_BATTERY_METRIC_REGISTRY) joint = len(module.CANONICAL_ORIGIN_BATTERY_JOINT_METRIC_REGISTRY) - assert single == 135 + assert single == 136 assert joint == 1 assert len(contract) == single + joint - assert sum(len(row["metric_legs"]) for row in contract.values()) == 376 + assert sum(len(row["metric_legs"]) for row in contract.values()) == 380 assert ( sum(row["metric"] == "monetary_sign_separated" for row in contract.values()) - == 80 + == 81 ) assert sum(row["metric"] == "boolean_incidence" for row in contract.values()) == 51 assert sum(row["metric"] == "categorical_tvd" for row in contract.values()) == 5 @@ -758,10 +758,10 @@ 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"] == 376 - assert both_origins["scalar_leg_status_counts"] == {"computed": 376} + assert both_origins["metric_leg_count"] == 380 + assert both_origins["scalar_leg_status_counts"] == {"computed": 380} for payload in (no_columns, asec_only): - assert payload["comparison_count"] == 136 + assert payload["comparison_count"] == 137 assert all( row["status"] == "inapplicable" for row in payload["comparisons"].values() ) 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 32cf28a71b..6204cf5b4b 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 @@ -72,14 +72,14 @@ def test_constant_derived_domain_counts_are_complete( assert target_counts == { "gap_fill_stacked_spine": 48, "primary_puf_qrf": 66, - "late_producer_dag": 71, + "late_producer_dag": 72, } assert "primary_effective_predictor_tuples" not in imputation["chaining"] assert len(derive_primary_effective_predictor_tuples(imputation)) == 66 itemization_batches = [ family for family in families if "puf_tax_itemization__batch_" in family["id"] ] - assert [len(family["targets"]) for family in itemization_batches] == [8, 8, 8, 8, 6] + assert [len(family["targets"]) for family in itemization_batches] == [8, 8, 8, 8, 7] modeled_output_scopes = { stage: Counter( target["output_coverage_scope"] 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 564522b443..e3fe12d614 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": 71, + "target_count": 72, "residual_null_rows": 0, } calibrated = [ @@ -338,7 +338,7 @@ def capture_equality(expected: object, actual: object) -> None: "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "b82cab5d6f5d3ed973117612346c04b08a9c6b932e86563e31b206336b5ff4ee", + "spec_sha256": "c74b09ea715071f20496c1c97f20b0158ae3944fe238acda0ad73cbbd9748ffb", }, } diff --git a/test_support/microcosm_build/us_multispine_pool_tool.py b/test_support/microcosm_build/us_multispine_pool_tool.py index 89cb8d5e49..3d87c63629 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": 71, + "target_count": 72, "residual_null_rows": 0, }, } From 635ae0a11e3e007c9a539b0c4f5724ad5730dc3b Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 10:23:19 -0400 Subject: [PATCH 09/17] Address review r2: spec-bundle schema assert, claims, tests, diagnostics - test_us_spec_bundle asserted execution-config schema 5; it now reads the shared constant. The operator-ordering doc and a pass-through fixture said 5 too. - Share-bound diagnostics records carry the recipient and donor weight totals, so rungs can be compared. - Tests: the non-finite check is shown to stop before the quantile cap's write; the LP oracle is scaled to a unit objective so solver tolerance cannot flake; a restated assertion is removed; the base-builder fake record carries the rule field. - Changelog: interim label; schema-5 stacked pools are no longer loadable. - Re-pinned the seed protocol and map, coverage evidence, pool-tool spec sha and loader golden. Co-Authored-By: Claude Opus 5.5 --- .../us-puf-recipient-share-bound.fixed.md | 2 +- docs/evidence/spec-engine/us-f0-coverage.json | 16 ++--- docs/us-multispine-operator-ordering.md | 3 +- .../build/spec_engine/inventory_coverage.py | 4 +- .../microcosm/build/us_runtime/puf_support.py | 4 ++ .../engine_contract/us/test_us_spec_bundle.py | 7 ++- .../shared/test_spec_engine_loader.py | 2 +- .../us/test_us_fiscal_refresh_builder.py | 2 +- .../us/test_us_puf_recipient_share_bound.py | 62 ++++++++++++------- .../us/test_us_puf_support_base_builder.py | 1 + .../us/test_us_multispine_pool_tool.py | 2 +- 11 files changed, 68 insertions(+), 37 deletions(-) diff --git a/changelog.d/us-puf-recipient-share-bound.fixed.md b/changelog.d/us-puf-recipient-share-bound.fixed.md index 404d224e6e..58487e144f 100644 --- a/changelog.d/us-puf-recipient-share-bound.fixed.md +++ b/changelog.d/us-puf-recipient-share-bound.fixed.md @@ -1 +1 @@ -A single PUF-channel QRF draw can no longer carry more mass than the population slice its recipient stands for. The #982 income-rank predictor sends the top-ranked survey tax units, each standing for several hundred units, onto the PUF's top-ranked returns, which stand for one return or less: the synthetic Forbes-tail records weigh about 0.13 each. One such draw put $141B of line-32 mass on a single weight-644 unit in the #1251 rebuild. QRF finalization now caps each raw amount draw at the positive mass, per unit of slice weight, of the donor's top slice of the recipient's own weight share, and floors losses from the bottom slice, on every amount output (booleans and origination years excepted). The rule is bound into the primary PUF execution config, which moves to schema 6; every bounded output writes a tail-bound diagnostics record. +A single PUF-channel QRF draw can no longer carry more mass than the population slice its recipient stands for. The #982 income-rank predictor sends the top-ranked survey tax units, each standing for several hundred units, onto the PUF's top-ranked returns, which stand for one return or less: the synthetic Forbes-tail records weigh about 0.13 each. One such draw put $141B of line-32 mass on a single weight-644 unit in the #1251 rebuild. As an interim censor, until a tail stratum carries those donors at their own weights (#958, #964), QRF finalization now caps each raw amount draw at the positive mass, per unit of slice weight, of the donor's top slice of the recipient's own weight share, and floors losses from the bottom slice, on every amount output (booleans and origination years excepted). The cap limits a record to the mass of its slice; it does not remove concentration the slice itself has. The rule is bound into the primary PUF execution config, which moves to schema 6, and stacked pools recorded at schema 5 are no longer loadable. Every bounded output writes a tail-bound diagnostics record. diff --git a/docs/evidence/spec-engine/us-f0-coverage.json b/docs/evidence/spec-engine/us-f0-coverage.json index ebe6027ee5..0f53c9af47 100644 --- a/docs/evidence/spec-engine/us-f0-coverage.json +++ b/docs/evidence/spec-engine/us-f0-coverage.json @@ -1656,13 +1656,13 @@ "compiler_ir.node_slices" ], "expected": { - "map_sha256": "1d7cc2ee599758e256d830640ecf01ce49fe35e4970c07cb6cdcfb009f9e2ee4", - "protocol_sha256": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1" + "map_sha256": "06356affd52a29c92def0549db758e3ac4cb40eb3aa04e5040d1ac10951859e0", + "protocol_sha256": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608" }, "failures": [], "observed": { - "map_sha256": "1d7cc2ee599758e256d830640ecf01ce49fe35e4970c07cb6cdcfb009f9e2ee4", - "protocol_sha256": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1" + "map_sha256": "06356affd52a29c92def0549db758e3ac4cb40eb3aa04e5040d1ac10951859e0", + "protocol_sha256": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608" }, "status": "covered" }, @@ -1677,7 +1677,7 @@ "compiler_ir.seed_stream_map" ], "expected": { - "implementation_sha256": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1", + "implementation_sha256": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1698,7 +1698,7 @@ }, "failures": [], "observed": { - "implementation_sha256": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1", + "implementation_sha256": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608", "protocol": "legacy-v1", "streams": [ "build_model", @@ -2599,7 +2599,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "c1ac73b48d1468d91812dc49343db45a257fb9f68a176c8203295cc5967f7bff" + "spec_sha256": "60b8228598fdf52431e6535a69947bad4f4cb5148f898e275586023780ef850f" } }, "report_schema_version": 3, @@ -2609,7 +2609,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "c1ac73b48d1468d91812dc49343db45a257fb9f68a176c8203295cc5967f7bff" + "spec_sha256": "60b8228598fdf52431e6535a69947bad4f4cb5148f898e275586023780ef850f" }, "status": "pass" } diff --git a/docs/us-multispine-operator-ordering.md b/docs/us-multispine-operator-ordering.md index f3f62e66aa..058b4e887f 100644 --- a/docs/us-multispine-operator-ordering.md +++ b/docs/us-multispine-operator-ordering.md @@ -252,7 +252,8 @@ by_origin_battery QBI reconciliation contracts, the tail schema and support contract, and late-producer registry schema version 17, including execution-receipt contract 4, transition authority 2, and resource-semantics receipt 2. The - primary execution config is version 5, its portable worker identity is + primary execution config is version 6 (it binds the recipient-share bound, + #1259), its portable worker identity is version 1, and its checkpoint input sidecar is version 2. The companion pool manifest uses schema version 10. Older outer authority or materializer payloads are stale; primary-QRF 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 2eccf1a70d..719a7f4dc0 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 @@ -363,8 +363,8 @@ # RNG rules and the ordered QRF targets are unchanged. microcosm#104 moves # both again: the protocol attests microcosm.calibrate.solve. The # recipient-share bound in puf_support moves both again (#1259). - "seed_map": "1d7cc2ee599758e256d830640ecf01ce49fe35e4970c07cb6cdcfb009f9e2ee4", - "seed_protocol": "d2d2d7e4994f8970d4803c1e5506d2d8af2a4a606db2a04860ff7db498a7ffd1", + "seed_map": "06356affd52a29c92def0549db758e3ac4cb40eb3aa04e5040d1ac10951859e0", + "seed_protocol": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608", "source_manifest": "f4f8bfeb79268a4043a843b47cec1d1c0e58e9f5dd6bc23417ada95446dd7b8e", "take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35", "tail": "ac92829c88a1a4fb6460d61190918d5d99c6c377fc8dd8f62f02b332d09bf59c", 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 b97bda4128..d9ca972877 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 @@ -2164,6 +2164,10 @@ def finalize_us_puf_tax_detail_predictions( ), "largest_weighted_draw_before": float(weighted_before.max(initial=0.0)), "largest_weighted_draw_after": float(weighted_after.max(initial=0.0)), + "recipient_weight_total": float(recipient_weights.sum()), + "donor_weight_total": float( + pd.to_numeric(donor["weight"], errors="coerce").fillna(0.0).sum() + ), } ) diff --git a/packages/microcosm-build/tests/engine_contract/us/test_us_spec_bundle.py b/packages/microcosm-build/tests/engine_contract/us/test_us_spec_bundle.py index 01b2e92023..4ea8a8e3cc 100644 --- a/packages/microcosm-build/tests/engine_contract/us/test_us_spec_bundle.py +++ b/packages/microcosm-build/tests/engine_contract/us/test_us_spec_bundle.py @@ -1,6 +1,9 @@ """Tests split from packages/microcosm-build/tests/test_us_spec_bundle.py.""" # ruff: noqa: F403, F405 +from microcosm.build.us_runtime.stacked_spine import ( + PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION, +) from test_support.microcosm_build.us_spec_bundle import * @@ -291,7 +294,9 @@ def collect_sha256(value: object, path: tuple[str, ...] = ()) -> None: assert graph["execution_receipt_contract"]["version"] == 4 assert graph["execution_receipt_contract"]["transition_authority"]["version"] == 2 assert graph["resource_semantics"]["schema_version"] == 2 - assert primary_binding["schema_version"] == 5 + assert primary_binding["schema_version"] == ( + PRIMARY_PUF_EXECUTION_CONFIG_SCHEMA_VERSION + ) assert primary_binding["qrf"]["worker_execution"] == { "surface": "execution_profile", "resolve_as": "worker_execution", 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 0031c67a99..38207c32d6 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 @@ -12,7 +12,7 @@ def test_semantic_hash_has_golden_vector_and_surface_separation(tmp_path) -> Non # Pin the domain separator, normalization rules, schema-set receipt, and # exact normative projection as one reviewable golden vector. assert first.spec_sha256 == ( - "7d1a8e72fd13abb09596f88438b5d56e9d667178b37db9d1b10e086675ecd8ef" + "be3c6e2381c43dd51573391fee122d15cde2168733e8adb0b8fa938f2be5a706" ) second_root = _rich_minimal(tmp_path / "xy", note="second", store="local:b") 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 a1d494147c..be179e136d 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 @@ -12264,7 +12264,7 @@ def test_exact_k_receipt_carries_current_worker_authentication() -> None: inputs = _gate_failed_exact_k_inputs(builder) worker_authentication = { "manifest_schema_version": 10, - "execution_config_schema_version": 5, + "execution_config_schema_version": 6, "worker_execution_schema_version": 1, "semantic_identity_sha256": "6" * 64, "audit_aliases": { diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py index 62801f97a5..96b3629323 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py @@ -226,14 +226,17 @@ def test_cap_mass_is_the_most_any_donor_subpopulation_of_that_size_holds( case: tuple[np.ndarray, ...], ) -> None: # Independent of the slice construction: a linear program picks any - # fractional subpopulation of donor weight `take` (0 <= x_d <= w_d) to - # maximize its positive mass (or minimize its negative mass). The bound's - # mass, w_r * cap scaled to donor weight, must equal that optimum. + # fractional subpopulation of donor weight `take` to maximize its positive + # mass (or minimize its negative mass). The problem is scaled to unit + # weight and unit value (y_d = x_d / take, values / max |value|), so the + # solver's tolerances apply to an objective in [0, 1]. The bound per unit + # of slice weight must equal the optimum. from scipy.optimize import linprog values, weights, recipient_weights = case donor_total = weights.sum() recipient_total = recipient_weights.sum() + scale = max(float(np.abs(values).max()), 1.0) floor, cap = _bounds(values, weights, recipient_weights) @@ -242,22 +245,19 @@ def test_cap_mass_is_the_most_any_donor_subpopulation_of_that_size_holds( if take <= 0.0: continue for side, bound in ((1.0, cap[index]), (-1.0, floor[index])): - part = np.maximum(side * values, 0.0) + part = np.maximum(side * values, 0.0) / scale if not (part[weights > 0.0] > 0.0).any(): assert np.isinf(bound) continue result = linprog( -part, A_eq=np.ones((1, len(values))), - b_eq=[take], - bounds=[(0.0, w) for w in weights], + b_eq=[1.0], + bounds=[(0.0, w / take) for w in weights], method="highs", ) assert result.success - best_mass = -result.fun - assert side * bound * take == pytest.approx( - best_mass, rel=1e-7, abs=1e-6 * max(1.0, best_mass) - ) + assert side * bound / scale == pytest.approx(-result.fun, abs=1e-6) @_PROPERTY_SETTINGS @@ -552,6 +552,8 @@ def test_one_extreme_draw_is_bounded_by_its_slice_and_recorded() -> None: "clipped_mass_after": float(expected[1] * weights[1]), "largest_weighted_draw_before": float(np.abs(raw * weights).max()), "largest_weighted_draw_after": float(np.abs(expected * weights).max()), + "recipient_weight_total": float(weights.sum()), + "donor_weight_total": float(donor["weight"].sum()), } ] @@ -877,24 +879,42 @@ def test_realistic_weight_ratios_cap_a_forbes_tail_draw() -> None: assert np.isinf(floor).all() heavy = 4_000 assert cap[heavy] < 2.189e8 - take = recipient_weights[heavy] / recipient_weights.sum() * weights.sum() - assert recipient_weights[heavy] * cap[heavy] == pytest.approx( - recipient_weights.sum() / weights.sum() * take * reference_cap[-2], rel=1e-9 - ) def test_non_finite_bounded_draws_are_refused_before_any_write() -> None: + # non_sch_d_capital_gains has the q0.999 quantile cap, whose write runs + # before the recipient-share bound; a NaN in another bounded output must + # stop finalization before that write or any other. frame = _recipient_frame([20.0, 400.0]) - raw = np.asarray([np.nan, 1.0]) - predictions_before = raw.copy() + donor = pd.DataFrame( + { + "non_sch_d_capital_gains": [100.0, 200.0, 300.0], + _PASSTHROUGH: [100.0, 5_000.0, -10.0], + "weight": [999.0, 0.5, 0.5], + } + ) + predictions = pd.DataFrame( + { + "non_sch_d_capital_gains": [50.0, 400.0], + _PASSTHROUGH: [np.nan, 1.0], + }, + index=_recipient_index(frame), + ) + before = predictions.copy(deep=True) + diagnostics: list[dict[str, object]] = [] + with pytest.raises(ValueError, match="must be finite"): - _finalize( + puf_support_module.finalize_us_puf_tax_detail_predictions( frame, - _heavy_tail_donor(_PASSTHROUGH), - {_PASSTHROUGH: raw}, - diagnostics=[], + donor, + predictions, + person_outputs=("non_sch_d_capital_gains", _PASSTHROUGH), + tax_unit_outputs=(), + tail_bound_diagnostics=diagnostics, ) - np.testing.assert_array_equal(raw, predictions_before) + + pd.testing.assert_frame_equal(predictions, before, check_exact=True) + assert diagnostics == [] def test_tax_unit_amount_outputs_are_bounded_on_the_tax_unit_table() -> None: diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_support_base_builder.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_support_base_builder.py index cf41dc000f..bbe8d2d00a 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_support_base_builder.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_support_base_builder.py @@ -457,6 +457,7 @@ def test_qrf_finalization_stage_records_tail_bound_diagnostics( builder = _load_support_builder_module() record = { "output": "non_sch_d_capital_gains", + "rule": "weighted_positive_donor_quantile", "quantile": 0.999, "bound_value": 100.0, "clipped_row_count": 2, 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 b38fb180d5..e64843fb6b 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 @@ -338,7 +338,7 @@ def capture_equality(expected: object, actual: object) -> None: "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "c1ac73b48d1468d91812dc49343db45a257fb9f68a176c8203295cc5967f7bff", + "spec_sha256": "60b8228598fdf52431e6535a69947bad4f4cb5148f898e275586023780ef850f", }, } From a3d61e9e8ab7c22c60fbeb1275057c4d2fa4d335 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 10:37:49 -0400 Subject: [PATCH 10/17] Keep the LP oracle well conditioned: no share exceeds one (review r3) Co-Authored-By: Claude Opus 5.5 --- .../tests/engine_free/us/test_us_puf_recipient_share_bound.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py index 96b3629323..c9a9f02718 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py @@ -253,7 +253,9 @@ def test_cap_mass_is_the_most_any_donor_subpopulation_of_that_size_holds( -part, A_eq=np.ones((1, len(values))), b_eq=[1.0], - bounds=[(0.0, w / take) for w in weights], + # The shares sum to one, so no share exceeds one; capping the + # bound there keeps the problem well conditioned. + bounds=[(0.0, min(1.0, w / take)) for w in weights], method="highs", ) assert result.success From 48046ebfa1b9048f3adf8aedf4dfaf936a4f1c01 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 11:33:00 -0400 Subject: [PATCH 11/17] Refuse a partial passive basis before the QRF fit; re-pin seeds (#1258) Review round 2, finding 4: both PUF entry points (in-process imputation and the chained-worker preparation) now run the signed-subset basis check up front, so a partial or misordered line-32 basis fails before any fit rather than at finalization after the QRF has run. The test now proves no fit runs. Re-derived: seed protocol and seed map (puf_support's attested bytes), the loader golden vector, the US spec digest 02c4227f..., and the spec-engine coverage evidence (42244/42244 fields, 41/41 checks). Co-Authored-By: Claude Opus 5.5 --- docs/evidence/spec-engine/us-f0-coverage.json | 16 ++++++------- .../build/spec_engine/inventory_coverage.py | 4 ++-- .../microcosm/build/us_runtime/puf_support.py | 6 +++++ .../shared/test_spec_engine_loader.py | 2 +- .../engine_free/us/test_us_puf_support.py | 24 ++++++++++++++++--- .../us/test_us_multispine_pool_tool.py | 2 +- 6 files changed, 39 insertions(+), 15 deletions(-) diff --git a/docs/evidence/spec-engine/us-f0-coverage.json b/docs/evidence/spec-engine/us-f0-coverage.json index 722e6104af..eae66e15cd 100644 --- a/docs/evidence/spec-engine/us-f0-coverage.json +++ b/docs/evidence/spec-engine/us-f0-coverage.json @@ -1656,13 +1656,13 @@ "compiler_ir.node_slices" ], "expected": { - "map_sha256": "dd75edaaacecc52a6e0d99df6c8ab7f684091162bd60dc413afdd0fde0a7c6fb", - "protocol_sha256": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986" + "map_sha256": "ee4c4d50a035cff1e30fa491270b4cda92b0e3b808cd3e3eb14bcea09f0e0e01", + "protocol_sha256": "8c8ae60101279c322eba1044bf1f617c5dfd9c1ddb2029947d5985857b4c9f51" }, "failures": [], "observed": { - "map_sha256": "dd75edaaacecc52a6e0d99df6c8ab7f684091162bd60dc413afdd0fde0a7c6fb", - "protocol_sha256": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986" + "map_sha256": "ee4c4d50a035cff1e30fa491270b4cda92b0e3b808cd3e3eb14bcea09f0e0e01", + "protocol_sha256": "8c8ae60101279c322eba1044bf1f617c5dfd9c1ddb2029947d5985857b4c9f51" }, "status": "covered" }, @@ -1677,7 +1677,7 @@ "compiler_ir.seed_stream_map" ], "expected": { - "implementation_sha256": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986", + "implementation_sha256": "8c8ae60101279c322eba1044bf1f617c5dfd9c1ddb2029947d5985857b4c9f51", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1698,7 +1698,7 @@ }, "failures": [], "observed": { - "implementation_sha256": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986", + "implementation_sha256": "8c8ae60101279c322eba1044bf1f617c5dfd9c1ddb2029947d5985857b4c9f51", "protocol": "legacy-v1", "streams": [ "build_model", @@ -2599,7 +2599,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "c74b09ea715071f20496c1c97f20b0158ae3944fe238acda0ad73cbbd9748ffb" + "spec_sha256": "02c4227f8cc9744a5f3e612c31d454d2e8038956737515b97ebcedac9be2b662" } }, "report_schema_version": 3, @@ -2609,7 +2609,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "c74b09ea715071f20496c1c97f20b0158ae3944fe238acda0ad73cbbd9748ffb" + "spec_sha256": "02c4227f8cc9744a5f3e612c31d454d2e8038956737515b97ebcedac9be2b662" }, "status": "pass" } 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 a1ea24db54..92e51be62d 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 @@ -366,8 +366,8 @@ # #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. - "seed_map": "dd75edaaacecc52a6e0d99df6c8ab7f684091162bd60dc413afdd0fde0a7c6fb", - "seed_protocol": "b07d4192207c167bd3deb02aa550e6a0d84e17980549f18631c5063ad081d986", + "seed_map": "ee4c4d50a035cff1e30fa491270b4cda92b0e3b808cd3e3eb14bcea09f0e0e01", + "seed_protocol": "8c8ae60101279c322eba1044bf1f617c5dfd9c1ddb2029947d5985857b4c9f51", "source_manifest": "22763ed5676fa29876951653368cbbc866cbd2425a2394a9f191ee09e448e413", "take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35", "tail": "4641e9a919a5c7719dd6e076e1eda06c17ec021d346a2b7f205fd299870a4688", 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 cd8ac2cc89..de19e0e914 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 @@ -1821,6 +1821,9 @@ def impute_us_puf_tax_detail_support( predictors = tuple(predictors) person_outputs = tuple(person_outputs) tax_unit_outputs = tuple(tax_unit_outputs) + # Refuse a partial or misordered signed-subset basis before any fit, not + # only at finalization after the QRF has run (review of microcosm#1261). + _require_signed_subset_outputs_after_their_basis(person_outputs) outputs = (*person_outputs, *tax_unit_outputs) puf_mask = puf_tax_detail_clone_mask( frame.table("tax_unit"), @@ -1929,6 +1932,9 @@ def prepare_us_puf_tax_detail_chain_inputs( predictors = tuple(predictors) person_outputs = tuple(person_outputs) tax_unit_outputs = tuple(tax_unit_outputs) + # Refuse a partial or misordered signed-subset basis before any fit, not + # only at finalization after the QRF has run (review of microcosm#1261). + _require_signed_subset_outputs_after_their_basis(person_outputs) outputs = (*person_outputs, *tax_unit_outputs) puf_mask = puf_tax_detail_clone_mask( frame.table("tax_unit"), 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 f028f05c22..d3567ad1c1 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 @@ -12,7 +12,7 @@ def test_semantic_hash_has_golden_vector_and_surface_separation(tmp_path) -> Non # Pin the domain separator, normalization rules, schema-set receipt, and # exact normative projection as one reviewable golden vector. assert first.spec_sha256 == ( - "2b4b6f592dfd2715a3c3e0ed8322ef5dc50a5ebf5cacb1253390e3bfc0b2862b" + "77e4095b747c632fc47bec95c978df41212fd011c042c46633ae341781547a14" ) second_root = _rich_minimal(tmp_path / "xy", note="second", store="local:b") 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 2450f318e7..95ff215285 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 @@ -1800,23 +1800,33 @@ def test_passive_placement_refuses_a_stale_line_32_basis( ) +@pytest.mark.parametrize( + "columns", + [ + ("partnership_income", "passive_partnership_s_corp_income", "s_corp_income"), + ("partnership_income", "passive_partnership_s_corp_income"), + ], +) def test_finalize_refuses_passive_placed_before_its_line_32( monkeypatch: pytest.MonkeyPatch, + columns: tuple[str, ...], ) -> None: + """A misordered or partial line-32 basis is refused before any QRF fit.""" + draws = pd.DataFrame( { "partnership_income": [6_000.0, 0.0], "passive_partnership_s_corp_income": [1_500.0, 0.0], "s_corp_income": [0.0, 0.0], } - ) + ).loc[:, list(columns)] class FixedQRF: def __init__(self, *, n_estimators: int, seed: int) -> None: pass def fit(self, frame, predictors, outputs, *, weights) -> "FixedQRF": - return self + raise AssertionError("the basis check must run before any fit") @property def weight_kind(self) -> str: @@ -1836,7 +1846,7 @@ def predict( } ) - with pytest.raises(ValueError, match="must come before it"): + with pytest.raises(ValueError, match="must come before it|same pass"): impute_us_puf_tax_detail_support( clone_us_frame_for_puf_support(_minimal_us_frame()), donor, @@ -1846,6 +1856,14 @@ def predict( n_estimators=4, seed=0, ) + with pytest.raises(ValueError, match="must come before it|same pass"): + puf_support_module.prepare_us_puf_tax_detail_chain_inputs( + clone_us_frame_for_puf_support(_minimal_us_frame()), + donor, + predictors=("puf_predictor_filing_status_code",), + person_outputs=tuple(draws.columns), + tax_unit_outputs=(), + ) def test_passive_placement_refuses_without_any_line_32_column() -> None: 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 e3fe12d614..2b2e09ab78 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 @@ -338,7 +338,7 @@ def capture_equality(expected: object, actual: object) -> None: "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "c74b09ea715071f20496c1c97f20b0158ae3944fe238acda0ad73cbbd9748ffb", + "spec_sha256": "02c4227f8cc9744a5f3e612c31d454d2e8038956737515b97ebcedac9be2b662", }, } From f33302900d3ca26cb48d0b8124f6798fda63c1f0 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 12:12:55 -0400 Subject: [PATCH 12/17] Finish the count and digest re-pins the S-corp transfer target moves (#1258) Found by running the files CI stops in at its first failure: - engine-free: the late-callback occurrence counts (167 registered, 92 unique; s_corp_income is newly in the battery registry and has a primary and a transfer output), the sorted transfer-target digest, 45 PUF producers and 123 transfer-plus-deferred inputs. - engine-contract: the stacked-authority component digests (declared surface, late schedule, metric registry, post-PUF surface), the lineage dashboard counts (186 imputed variables, 135 amounts), the coverage-tool field and mode counts, and 230 compiled outputs. Review round 3: the pre-fit refusal test is renamed and now also proves the basis check runs ahead of donor validation. Co-Authored-By: Claude Opus 5.5 --- .../us/test_imputation_lineage_spec.py | 8 ++++---- .../us/test_spec_engine_coverage_tool.py | 14 +++++++------- ...t_spec_engine_stacked_authority_semantics.py | 8 ++++---- .../us/test_spec_engine_typed_closure.py | 2 +- .../engine_free/us/test_us_multispine_pool.py | 6 +++--- .../tests/engine_free/us/test_us_puf_support.py | 17 ++++++++--------- .../engine_free/us/test_us_stacked_spine.py | 8 ++++---- 7 files changed, 31 insertions(+), 32 deletions(-) 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 882a9f4254..9a7946b5df 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 @@ -134,7 +134,7 @@ def test_complete_bundle_family_inventory(spec: dict[str, object]) -> None: assert targets == { "gap_fill_stacked_spine": 48, "primary_puf_qrf": 66, - "late_producer_dag": 71, + "late_producer_dag": 72, } 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": 185, + "imputed_variables": 186, "families": 33, "computed_producers": 38, "boolean": 45, - "amount": 134, + "amount": 135, "categorical": 5, - "value_kinds": {"amount": 134, "category": 5, "count": 1, "flag": 45}, + "value_kinds": {"amount": 135, "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 99a62162ca..a08cc30198 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,21 +82,21 @@ 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_236 - assert fields["authored_normative_field_count"] == 32_456 + assert fields["configuration_field_count"] == 42_244 + assert fields["authored_normative_field_count"] == 32_464 assert fields["resolved_binding_field_count"] == 9_780 - assert fields["consumed_field_count"] == 42_236 + assert fields["consumed_field_count"] == 42_244 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_036, - "compiler_semantic": 27_743, + "legacy_behavior": 14_047, + "compiler_semantic": 27_740, "front_end_validation": 354, "identity_only": 103, } assert fields["generation0_effect_counts"] == { - "legacy_behavior": 38_540, + "legacy_behavior": 38_548, "no_generation0_effect": 3_696, } @@ -105,7 +105,7 @@ 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_746 + assert inventory["counts"]["producer_inputs"] == 2_747 assert inventory["counts"]["ownership_rows"] == 18 assert inventory["counts"]["tail_control_fields"] == 935 assert inventory["counts"]["seed_owner_bindings"] == 112 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 f60b34cdd3..31a263a057 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 @@ -76,7 +76,7 @@ def test_authority_projection_is_field_and_byte_identical_to_live_generation_zer name: component["sha256"] for name, component in projected["components"].items() } == { "declared_surface": ( - "cac089496f92c43799ff3218ba21377ccead7b9df7849f46c1412bd55f4846c5" + "36cddcc06b6307ce1ccfa8aeaf502a7769d72f70dd4ac969fc5e9a45be2d6178" ), "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": ( - "d6f141c0824c6cbb0640dfa3020902e655e60ddd4a5f516341f139467939044f" + "80321bdcd6b2278da993ac6156b97b5b7532ed671e19caddc6cea19f1ace8816" ), "metric_registry": ( - "368d758579172c3f81be12810343102dabbdc317d97585ab77b1479cdaf0947a" + "832245589a8ec5a33fc151e60662a245d411a636ef62debb884d65abcad3024a" ), "post_puf_transfer_surface": ( - "4cd00185059bf89c3448bf96bcae6a22336b709729888c30e44006fe4d28b26d" + "ce501bf1978a164d71338cfa46fb3ec354cb1afa4809cf05f280afdf12cbb27e" ), "post_transfer_calibration": ( "141519684c72ab84a077ae0f5716a0416f1e19da57262948e459633cbe560576" 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 5a8a819ed8..4820de61d2 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 @@ -63,7 +63,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()) == 229 + assert sum(len(rows) for rows in compiled_outputs.values()) == 230 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_free/us/test_us_multispine_pool.py b/packages/microcosm-build/tests/engine_free/us/test_us_multispine_pool.py index deee6f59c0..e53afbc40a 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 @@ -606,7 +606,7 @@ def test_pool_transfer_plan_extends_legacy_except_receipted_asset_deferrals() -> assert len(target_names) == 120 assert ( hashlib.sha256(("\n".join(target_names) + "\n").encode()).hexdigest() - == "b5c3b20cbb6aefdc358774fc5104924d8d38a8888cdf2b5e54a7bcbae685f779" + == "8b234f9ad808407d2fc6ff889f7f43be371f4df07c21c65f63f85205f31003e9" ) @@ -629,7 +629,7 @@ def keys(target_families): assert len(late) == 72 assert early.isdisjoint(late) assert early | late == full - assert len(puf_producers) == 44 + assert len(puf_producers) == 45 assert len(source_producers) == 29 assert len(puf_producers & source_producers) == 2 assert puf_producers | source_producers == late @@ -1172,7 +1172,7 @@ def test_every_pool_transfer_family_accepts_its_produced_physical_dtype( assert len(primary_predictor_sets[0][1]) == 8 assert len(primary_predictor_sets[-1][1]) == 73 assert len(POOL_DEFERRED_TRANSFER_INPUTS) == 3 - assert len(targets) + len(POOL_DEFERRED_TRANSFER_INPUTS) == 122 + assert len(targets) + len(POOL_DEFERRED_TRANSFER_INPUTS) == 123 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_puf_support.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_support.py index 95ff215285..39736f4fad 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 @@ -1807,11 +1807,16 @@ def test_passive_placement_refuses_a_stale_line_32_basis( ("partnership_income", "passive_partnership_s_corp_income"), ], ) -def test_finalize_refuses_passive_placed_before_its_line_32( +def test_entry_points_refuse_a_stale_line_32_basis_before_any_other_work( monkeypatch: pytest.MonkeyPatch, columns: tuple[str, ...], ) -> None: - """A misordered or partial line-32 basis is refused before any QRF fit.""" + """A misordered or partial line-32 basis is refused first, before any fit. + + The fit raises if it is ever reached, and the donor deliberately lacks + every requested output: were the basis check to drift below donor + validation, the missing-donor-column error would surface instead. + """ draws = pd.DataFrame( { @@ -1838,13 +1843,7 @@ def predict( return draws.set_axis(features.index) monkeypatch.setattr(puf_support_module, "QRF", FixedQRF) - donor = pd.DataFrame( - { - "filing_status_code": [1.0, 2.0], - **{column: draws[column].to_numpy() for column in draws}, - "weight": [1.0, 1.0], - } - ) + donor = pd.DataFrame({"filing_status_code": [1.0, 2.0], "weight": [1.0, 1.0]}) with pytest.raises(ValueError, match="must come before it|same pass"): impute_us_puf_tax_detail_support( 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 bc7fe08cb1..46e4c152cc 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 @@ -1445,11 +1445,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) == 165 + assert len(registered_occurrences) == 167 assert Counter( metric for _producer, _entity, _column, metric in registered_occurrences ) == { - "monetary_sign_separated": 122, + "monetary_sign_separated": 124, "boolean_incidence": 37, "categorical_tvd": 6, } @@ -1457,9 +1457,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) == 91 + assert len(unique_late_targets) == 92 assert Counter(unique_late_targets.values()) == { - "monetary_sign_separated": 68, + "monetary_sign_separated": 69, "boolean_incidence": 20, "categorical_tvd": 3, } From 0260d6404fbb23791495af3dc939bff497c66a72 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 12:15:30 -0400 Subject: [PATCH 13/17] Never zero a snapped carrier; fix tests the Modal CI run exposed GitHub's runner queue for the repository was stalled, so the engine-free and engine-us suites were run on Modal against this branch. They found: - For a snapped output the cap was lowered to the largest grid value within it, which could be zero: a carrier whose slice mass sits below the smallest positive donor value was erased. The cap is now lowered onto the positive grid only, so the bound moves no draw to zero; how many records carry a sparse output stays the donor-rate sparsification's job. - Two tests pinned the old field counts as literals. - Non-production stacked passes that ask for no diagnostics now hand finalization a discarded sink; production still requires one. - Four tests that isolate another mechanism on two- to twenty-unit frames (snapping control column, educator sparsification, farm signed-mass calibration, Social Security preservation) narrow the bound explicitly, through a new test-only passthrough on impute_us_puf_tax_detail_support. - Share-bound diagnostics records carry the recipient count, which is what differs between sample rungs. - Re-pinned the regenerated bundle and every digest derived from it. Co-Authored-By: Claude Opus 5.5 --- docs/evidence/spec-engine/us-f0-coverage.json | 30 +++++------ .../build/spec_engine/inventory_coverage.py | 10 ++-- .../microcosm/build/us/spec/imputation.yaml | 2 +- .../microcosm/build/us_runtime/puf_support.py | 28 +++++++--- .../build/us_runtime/stacked_spine.py | 11 +++- .../us/test_spec_engine_coverage_tool.py | 10 ++-- .../shared/test_spec_engine_field_usage.py | 10 ++-- .../shared/test_spec_engine_loader.py | 2 +- .../us/test_us_puf_recipient_share_bound.py | 51 ++++++++++++++++--- .../us/test_us_puf_social_security.py | 6 ++- .../engine_free/us/test_us_puf_support.py | 11 +++- .../us/test_us_multispine_pool_tool.py | 2 +- .../us_farm_business_income.py | 6 ++- 13 files changed, 126 insertions(+), 53 deletions(-) diff --git a/docs/evidence/spec-engine/us-f0-coverage.json b/docs/evidence/spec-engine/us-f0-coverage.json index 0f53c9af47..bc7c7805bc 100644 --- a/docs/evidence/spec-engine/us-f0-coverage.json +++ b/docs/evidence/spec-engine/us-f0-coverage.json @@ -1338,12 +1338,12 @@ ], "expected": { "nodes": 38, - "sha256": "e74fb1e6017cf77397708cbf2ad6e323dffd6be89425bc6544b5679e883cb674" + "sha256": "4e0b91fe9010f9cbb54648c024fce2808b1cd4b283005bf9e04d626f4281f878" }, "failures": [], "observed": { "nodes": 38, - "sha256": "e74fb1e6017cf77397708cbf2ad6e323dffd6be89425bc6544b5679e883cb674" + "sha256": "4e0b91fe9010f9cbb54648c024fce2808b1cd4b283005bf9e04d626f4281f878" }, "status": "covered" }, @@ -1361,12 +1361,12 @@ ], "expected": { "producer_count": 38, - "sha256": "b2580f8725297ea535191416d37b77ccf891003b76db8e30d3c949e986b5cef6" + "sha256": "7bc8373a649e36eacfa8e1f0fe5e57179979913c0ad2ebba2c4b29e4bd81684a" }, "failures": [], "observed": { "producer_count": 38, - "sha256": "b2580f8725297ea535191416d37b77ccf891003b76db8e30d3c949e986b5cef6" + "sha256": "7bc8373a649e36eacfa8e1f0fe5e57179979913c0ad2ebba2c4b29e4bd81684a" }, "status": "covered" }, @@ -1656,13 +1656,13 @@ "compiler_ir.node_slices" ], "expected": { - "map_sha256": "06356affd52a29c92def0549db758e3ac4cb40eb3aa04e5040d1ac10951859e0", - "protocol_sha256": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608" + "map_sha256": "96ed99b8bebef1561727af392082e2f4ec52fb3d466bfaa1a298bd1697d103ae", + "protocol_sha256": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7" }, "failures": [], "observed": { - "map_sha256": "06356affd52a29c92def0549db758e3ac4cb40eb3aa04e5040d1ac10951859e0", - "protocol_sha256": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608" + "map_sha256": "96ed99b8bebef1561727af392082e2f4ec52fb3d466bfaa1a298bd1697d103ae", + "protocol_sha256": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7" }, "status": "covered" }, @@ -1677,7 +1677,7 @@ "compiler_ir.seed_stream_map" ], "expected": { - "implementation_sha256": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608", + "implementation_sha256": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1698,7 +1698,7 @@ }, "failures": [], "observed": { - "implementation_sha256": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608", + "implementation_sha256": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1887,7 +1887,7 @@ "alpha", "zeta" ], - "sha256": "d7b84ec565db19067d984e0596ca1805110038c38bec6b5d02ac89fde7f261cf" + "sha256": "5d06e498c2167a4b008db07bca3f82294f494fe071ab8de874094aaf6c59643f" }, "failures": [], "observed": { @@ -1911,7 +1911,7 @@ "alpha", "zeta" ], - "sha256": "d7b84ec565db19067d984e0596ca1805110038c38bec6b5d02ac89fde7f261cf" + "sha256": "5d06e498c2167a4b008db07bca3f82294f494fe071ab8de874094aaf6c59643f" }, "status": "covered" }, @@ -1975,7 +1975,7 @@ "take_up_contract", "us_qbi_reconciliation_contract" ], - "sha256": "fcb03fb129f808ee52a27c742a7d9a4f0f1fd9f1729f4be68dcfd7b8fdaca372" + "sha256": "f02a16ff1365b1797ad34725980ec73155f613f72ce45f7a8cc8fd2a259615d0" }, "status": "covered" }, @@ -2599,7 +2599,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "60b8228598fdf52431e6535a69947bad4f4cb5148f898e275586023780ef850f" + "spec_sha256": "6feff01e7b35a1846e81663d6aca8ae7c34d25d24d8b1bcf259ff87731c9d655" } }, "report_schema_version": 3, @@ -2609,7 +2609,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "60b8228598fdf52431e6535a69947bad4f4cb5148f898e275586023780ef850f" + "spec_sha256": "6feff01e7b35a1846e81663d6aca8ae7c34d25d24d8b1bcf259ff87731c9d655" }, "status": "pass" } 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 719a7f4dc0..0b52af0cc9 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 @@ -350,12 +350,12 @@ "acs_person_predictors": "878c788a6f037d7aca12b3586ea034eff04f3034ffa11935a736493042551f25", "authority": "9d4a9672a0f03039b1fe874b9fe21ed575be0d29f14afc396d03cdf5c809bdd2", "early_families": "4aa9f736fd76e83955477ad1667e58f48f264783f05bdc7f0102cd32d61323bd", - "full_checkpoint": "d7b84ec565db19067d984e0596ca1805110038c38bec6b5d02ac89fde7f261cf", + "full_checkpoint": "5d06e498c2167a4b008db07bca3f82294f494fe071ab8de874094aaf6c59643f", "gap_fill_schedule": "1c31f9868f7884347cc19cf1ff65da43f950b9114941a715bab168246db414a7", - "graph_nodes": "e74fb1e6017cf77397708cbf2ad6e323dffd6be89425bc6544b5679e883cb674", + "graph_nodes": "4e0b91fe9010f9cbb54648c024fce2808b1cd4b283005bf9e04d626f4281f878", "geography_assignment": "44e7f5f6cd7ceeef85d532c3d46306d03de4f4ee811376e6d29920742746b65c", "late_families": "d91f9ff0eb52f43e7b6eed3d5c58c37abe1620c3a11021da15dae9c10e16d382", - "late_resource_semantics": "b2580f8725297ea535191416d37b77ccf891003b76db8e30d3c949e986b5cef6", + "late_resource_semantics": "7bc8373a649e36eacfa8e1f0fe5e57179979913c0ad2ebba2c4b29e4bd81684a", "late_schedule": "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f", "ownership": "5f64f0aac49e2313177564f71876bffc8c81b3ded4df701e70930e60e9c98356", "primary_tuples": "fdf23da429f8c501e198a2f5b719763d523a41565c2153fdf17b0344f21bcd7c", @@ -363,8 +363,8 @@ # RNG rules and the ordered QRF targets are unchanged. microcosm#104 moves # both again: the protocol attests microcosm.calibrate.solve. The # recipient-share bound in puf_support moves both again (#1259). - "seed_map": "06356affd52a29c92def0549db758e3ac4cb40eb3aa04e5040d1ac10951859e0", - "seed_protocol": "027c075e17c872780fad2dc6fb349d70a2bf9ec3e98811f09a460f070f6bc608", + "seed_map": "96ed99b8bebef1561727af392082e2f4ec52fb3d466bfaa1a298bd1697d103ae", + "seed_protocol": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7", "source_manifest": "f4f8bfeb79268a4043a843b47cec1d1c0e58e9f5dd6bc23417ada95446dd7b8e", "take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35", "tail": "ac92829c88a1a4fb6460d61190918d5d99c6c377fc8dd8f62f02b332d09bf59c", 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 445d7cf5b6..62df128c83 100644 --- a/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml +++ b/packages/microcosm-build/src/microcosm/build/us/spec/imputation.yaml @@ -4415,7 +4415,7 @@ producer_graph: recipient_share: household_design_weight_over_puf_recipient_total cap: top_slice_positive_mass_per_slice_weight floor: bottom_slice_negative_mass_per_slice_weight - snapped_outputs: bounded_on_snap_grid_values_cap_lowered_onto_grid + snapped_outputs: bounded_on_snap_grid_values_cap_lowered_onto_positive_grid seam: raw_tax_unit_draws_after_tail_bound_quantiles worker_execution: surface: execution_profile 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 d9ca972877..eae23b7353 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 @@ -433,7 +433,7 @@ def puf_tax_detail_recipient_share_bound_identity() -> dict[str, object]: "recipient_share": "household_design_weight_over_puf_recipient_total", "cap": "top_slice_positive_mass_per_slice_weight", "floor": "bottom_slice_negative_mass_per_slice_weight", - "snapped_outputs": "bounded_on_snap_grid_values_cap_lowered_onto_grid", + "snapped_outputs": "bounded_on_snap_grid_values_cap_lowered_onto_positive_grid", "seam": "raw_tax_unit_draws_after_tail_bound_quantiles", } @@ -1735,6 +1735,7 @@ def impute_us_puf_tax_detail_support( raw_predictions_callback: Callable[[pd.DataFrame], None] | None = None, tail_bound_diagnostics: list[dict[str, object]] | None = None, tail_bound_quantiles: Mapping[str, float] | None = None, + recipient_share_bound_outputs: Sequence[str] | None = None, predictor_universe_receipts: list[dict[str, object]] | None = None, require_complete_recipient_predictors: bool = False, absent_cells: str = PUF_ABSENT_CELLS_LEGACY_ZERO_FILL, @@ -1766,6 +1767,10 @@ def impute_us_puf_tax_detail_support( tail_bound_diagnostics: Optional output sink for the per-target tail-bound records produced during finalization. Build callers publish these records with the QRF-finalization telemetry. + recipient_share_bound_outputs: Test-only narrowing of the + recipient-share bound (see + :func:`finalize_us_puf_tax_detail_predictions`). Production callers + leave it unset, which bounds every amount output. predictor_universe_receipts: Optional output sink for the exact recipient predictor source-universe receipt. Stacked callers bind this receipt into the PUF-pass provenance; legacy callers omit it. @@ -1863,6 +1868,7 @@ def impute_us_puf_tax_detail_support( tax_unit_outputs=tax_unit_outputs, tail_bound_diagnostics=tail_bound_diagnostics, tail_bound_quantiles=tail_bound_quantiles, + recipient_share_bound_outputs=recipient_share_bound_outputs, absent_cells=absent_cells, ) @@ -1987,7 +1993,9 @@ def finalize_us_puf_tax_detail_predictions( explicit ``recipient_share_bound_outputs`` narrows it for tests and must name amount outputs of this invocation. It writes one diagnostics record per bounded output, including outputs it leaves unchanged. It holds on the - raw tax-unit draws and, for snapped outputs, after snapping. Three later + raw tax-unit draws and, for snapped outputs, after snapping; a snapped + output's cap is never below its smallest positive donor value, so the + bound moves no draw to zero. Three later steps move bounded values without adding mass. The donor-rate sparsification of sparse outputs restores the column's mass after zeroing carriers, and the signed-mass calibration scales each leg of its outputs; @@ -2164,6 +2172,7 @@ def finalize_us_puf_tax_detail_predictions( ), "largest_weighted_draw_before": float(weighted_before.max(initial=0.0)), "largest_weighted_draw_after": float(weighted_after.max(initial=0.0)), + "recipient_count": int(len(recipient_weights)), "recipient_weight_total": float(recipient_weights.sum()), "donor_weight_total": float( pd.to_numeric(donor["weight"], errors="coerce").fillna(0.0).sum() @@ -2915,20 +2924,23 @@ def _recipient_share_slice_bounds( def _largest_grid_values_within(caps: np.ndarray, grid: np.ndarray) -> np.ndarray: - """Lower each finite cap to the largest ``grid`` value not above it. + """Lower each finite cap to the largest positive ``grid`` value not above it. A capped value that is itself a grid value snaps to itself, and every value at or below it snaps to a grid value at or below it, so snapping after the - bound cannot carry a value past it. ``grid`` is sorted and starts at its - smallest value; a cap below it keeps that smallest value. + bound cannot carry a value past it. Only positive grid values are used: a + cap below the smallest of them keeps that smallest value, so the bound + never turns a positive draw into a zero. How many records carry a sparse + output is the donor-rate sparsification's job, not this bound's. """ lowered = np.array(caps, dtype=np.float64, copy=True) + positive_grid = grid[grid > 0.0] finite = np.isfinite(lowered) - if not finite.any(): + if not finite.any() or len(positive_grid) == 0: return lowered - position = np.searchsorted(grid, lowered[finite], side="right") - 1 - lowered[finite] = grid[np.maximum(position, 0)] + position = np.searchsorted(positive_grid, lowered[finite], side="right") - 1 + lowered[finite] = positive_grid[np.maximum(position, 0)] return lowered 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 a907cb1622..1ef69708c9 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 @@ -11936,6 +11936,13 @@ def _run_stacked_puf_pass_evaluate( if person_outputs is None and tax_unit_outputs is None else None ) + # Finalization always needs a sink, because the recipient-share bound acts + # on every amount output. Production has supplied one (checked above); a + # non-production pass that asked for no diagnostics discards the records, + # and its execution config still records the sink as disabled. + finalization_diagnostics: list[dict[str, object]] = ( + [] if tail_bound_diagnostics is None else tail_bound_diagnostics + ) tail_spec, tail_agi_bands = resolve_puf_capital_gains_tail_execution_inputs() validate_stacked_spine_frame(frame, boundary="stacked PUF pass entry") person_clone = frame.table("person")[support_clone_index_column("person")] @@ -12000,7 +12007,7 @@ def _run_stacked_puf_pass_evaluate( seed=seed, n_estimators=n_estimators, fit_records=fit_records, - tail_bound_diagnostics=tail_bound_diagnostics, + tail_bound_diagnostics=finalization_diagnostics, tail_bound_quantiles=canonical_tail_bounds, predictor_universe_receipts=predictor_universe_receipts, require_complete_recipient_predictors=True, @@ -12143,7 +12150,7 @@ def _run_stacked_puf_pass_evaluate( imputed, weight_kind = finalize_primary_puf_qrf_chain( cloned, checkpoint_dir, - tail_bound_diagnostics=tail_bound_diagnostics, + tail_bound_diagnostics=finalization_diagnostics, tail_bound_quantiles=canonical_tail_bounds, ) if fit_records is not None: 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 7be8062b02..29f0a62c85 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,21 +82,21 @@ 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["configuration_field_count"] == 42_194 + assert fields["authored_normative_field_count"] == 32_414 assert fields["resolved_binding_field_count"] == 9_780 - assert fields["consumed_field_count"] == 42_184 + assert fields["consumed_field_count"] == 42_194 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, + "compiler_semantic": 27_727, "front_end_validation": 354, "identity_only": 103, } assert fields["generation0_effect_counts"] == { - "legacy_behavior": 38_498, + "legacy_behavior": 38_508, "no_generation0_effect": 3_686, } 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 c5ec18bb51..7475c214c0 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 == 42_194 assert field_ledger.source_counts == { - "authored": 32_404, + "authored": 32_414, "resolved_bindings": 9_780, } assert field_ledger.mode_counts == { "legacy_behavior": 14_010, - "compiler_semantic": 27_717, + "compiler_semantic": 27_727, "front_end_validation": 354, "identity_only": 103, } assert field_ledger.generation0_effect_counts == { - "legacy_behavior": 38_498, + "legacy_behavior": 38_508, "no_generation0_effect": 3_686, } - assert len({field.pointer for field in field_ledger.fields}) == 42_184 + assert len({field.pointer for field in field_ledger.fields}) == 42_194 def test_eligibility_concepts_are_validation_not_generation0_behavior( 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 38207c32d6..b7ab6474bf 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 @@ -12,7 +12,7 @@ def test_semantic_hash_has_golden_vector_and_surface_separation(tmp_path) -> Non # Pin the domain separator, normalization rules, schema-set receipt, and # exact normative projection as one reviewable golden vector. assert first.spec_sha256 == ( - "be3c6e2381c43dd51573391fee122d15cde2168733e8adb0b8fa938f2be5a706" + "aa3257d7f377122660229e1db0ddfad8a2ed2807e703dd2f0ebf6b12fdb1fa88" ) second_root = _rich_minimal(tmp_path / "xy", note="second", store="local:b") diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py index c9a9f02718..08d211f6f5 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_recipient_share_bound.py @@ -385,21 +385,34 @@ def test_snapping_after_the_lowered_cap_never_crosses_it( observed: list[float], draws: list[float], cap: float ) -> None: grid = np.unique(np.rint(np.asarray(observed, dtype=np.float64)).clip(min=0.0)) + positive_grid = grid[grid > 0.0] caps = np.full(len(draws), cap) lowered = _grid_within(caps, grid) - bounded = np.minimum(np.asarray(draws, dtype=np.float64), lowered) + raw = np.asarray(draws, dtype=np.float64) + bounded = np.minimum(raw, lowered) snapped = _snap(bounded, observed) - - assert (lowered <= np.maximum(cap, grid[0])).all() - assert np.isin(lowered, grid).all() + unbounded = _snap(raw, observed) + + if len(positive_grid) == 0: + # Nothing positive to snap onto: the cap is left alone and every draw + # snaps to zero with or without it. + np.testing.assert_array_equal(lowered, caps) + assert (snapped == 0.0).all() + return + # The lowered cap is a positive grid value: the largest within the cap, or + # the smallest positive one when the cap is below them all. + assert np.isin(lowered, positive_grid).all() + assert (lowered <= np.maximum(cap, positive_grid[0])).all() assert (snapped <= lowered).all() + # The bound never turns a draw that would have snapped positive into zero. + assert (snapped[unbounded > 0.0] > 0.0).all() -def test_lowering_keeps_infinite_caps_infinite() -> None: +def test_lowering_keeps_infinite_caps_infinite_and_stays_positive() -> None: grid = np.asarray([0.0, 5.0, 10.0]) lowered = _grid_within(np.asarray([np.inf, 7.0, 10.0, 3.0]), grid) - np.testing.assert_array_equal(lowered, [np.inf, 5.0, 10.0, 0.0]) + np.testing.assert_array_equal(lowered, [np.inf, 5.0, 10.0, 5.0]) # --------------------------------------------------------------------------- # @@ -554,6 +567,7 @@ def test_one_extreme_draw_is_bounded_by_its_slice_and_recorded() -> None: "clipped_mass_after": float(expected[1] * weights[1]), "largest_weighted_draw_before": float(np.abs(raw * weights).max()), "largest_weighted_draw_after": float(np.abs(expected * weights).max()), + "recipient_count": 4, "recipient_weight_total": float(weights.sum()), "donor_weight_total": float(donor["weight"].sum()), } @@ -677,6 +691,29 @@ def test_snapped_outputs_stay_on_observed_values_within_the_bound() -> None: assert actual[1] == grid[grid <= cap[1]].max() +def test_the_bound_never_zeroes_a_carrier_of_a_snapped_output() -> None: + # Half the donor holds 10 and half holds nothing, so a recipient standing + # for two thirds of the population has a slice mass of 7.5 per unit, below + # the only positive donor value. Lowering that cap to the grid value 0 + # would erase the carrier; the cap stays at the smallest positive value and + # the carrier count is left to the donor-rate sparsification. + frame = _recipient_frame([20.0, 40.0]) + donor = pd.DataFrame({_SNAPPED: [0.0, 10.0], "weight": [1.0, 1.0]}) + raw = np.asarray([0.25, 9.6]) + diagnostics: list[dict[str, object]] = [] + + finalized = _finalize(frame, donor, {_SNAPPED: raw}, diagnostics=diagnostics) + + _, cap = _bounds( + puf_support_module._snap_grid_values(donor[_SNAPPED]), + donor["weight"], + _recipient_weights(frame), + ) + assert cap[1] < 10.0 + np.testing.assert_array_equal(_puf_values(finalized, _SNAPPED), [0.0, 10.0]) + assert diagnostics[0]["clipped_row_count"] == 0 + + def test_draws_at_a_tied_maximum_on_the_snap_grid_are_not_clipped() -> None: # Statutory caps aged by a factor leave the donor's maximum off the integer # grid (4,504.8 here) yet tied across many returns. The bound is computed @@ -818,7 +855,7 @@ def test_bound_identity_is_pinned() -> None: "recipient_share": "household_design_weight_over_puf_recipient_total", "cap": "top_slice_positive_mass_per_slice_weight", "floor": "bottom_slice_negative_mass_per_slice_weight", - "snapped_outputs": "bounded_on_snap_grid_values_cap_lowered_onto_grid", + "snapped_outputs": "bounded_on_snap_grid_values_cap_lowered_onto_positive_grid", "seam": "raw_tax_unit_draws_after_tail_bound_quantiles", } diff --git a/packages/microcosm-build/tests/engine_free/us/test_us_puf_social_security.py b/packages/microcosm-build/tests/engine_free/us/test_us_puf_social_security.py index d4d2e7ddc5..815a92d8e9 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_us_puf_social_security.py +++ b/packages/microcosm-build/tests/engine_free/us/test_us_puf_social_security.py @@ -60,7 +60,11 @@ def _finalize( person_outputs=components, tax_unit_outputs=(), absent_cells=absent_cells, - tail_bound_diagnostics=[], + # These tests isolate CPS Social Security preservation on two-unit + # frames, where every draw exceeds its recipient's slice. The + # recipient-share bound is covered, with this reconciliation, in + # test_us_puf_recipient_share_bound.py. + recipient_share_bound_outputs=(), ) 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 205e2e43a6..c10b59c96c 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 @@ -1174,6 +1174,10 @@ def predict( n_estimators=4, seed=0, tail_bound_diagnostics=[], + # The snapped column keeps the recipient-share bound, which must not + # zero its carrier. The dividends column is this test's untouched + # passthrough control, and on a two-unit frame the bound would cap it. + recipient_share_bound_outputs=("taxable_interest_income",), ) puf_people = imputed.table("person")[ @@ -1244,7 +1248,12 @@ def predict( tax_unit_outputs=(), n_estimators=4, seed=0, - tail_bound_diagnostics=[], + # Isolates the donor-rate sparsification and the earnings allocation on + # a two-unit frame, where a unit standing for a quarter of the + # population would have its 300 draw bounded to 200. The bound and + # the sparsification together are covered in + # test_us_puf_recipient_share_bound.py. + recipient_share_bound_outputs=(), ) person = imputed.table("person") 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 e64843fb6b..0735f98d19 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 @@ -338,7 +338,7 @@ def capture_equality(expected: object, actual: object) -> None: "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "60b8228598fdf52431e6535a69947bad4f4cb5148f898e275586023780ef850f", + "spec_sha256": "6feff01e7b35a1846e81663d6aca8ae7c34d25d24d8b1bcf259ff87731c9d655", }, } diff --git a/test_support/microcosm_build/us_farm_business_income.py b/test_support/microcosm_build/us_farm_business_income.py index a73315a8e8..005fc325b8 100644 --- a/test_support/microcosm_build/us_farm_business_income.py +++ b/test_support/microcosm_build/us_farm_business_income.py @@ -133,7 +133,11 @@ def fit( person_outputs=US_FARM_BUSINESS_INCOME_OUTPUT_COLUMNS, tax_unit_outputs=(), seed=11, - tail_bound_diagnostics=[], + # The fake draws (hundreds) lie far outside this donor's support (at + # most 30), which the recipient-share bound would cap. These tests + # isolate placement and the signed-mass calibration; the bound with + # that calibration is covered in test_us_puf_recipient_share_bound.py. + recipient_share_bound_outputs=(), ) From e95316734053271d827c30e5df9bcf0e1853d59b Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 13:34:53 -0400 Subject: [PATCH 14/17] Fix three count pins CI found; two are inherited from #1251 (#1258) - test_support/spec_engine_inventory_coverage.py: the engine-contract inventory counts follow the S-corp transfer target (late targets 72, itemization targets 39, producer inputs 2747, compiled outputs 230). - Inherited from #1251, whose own CI is red on them at 45a5b9891: - test_puf_qrf_chain.py locked the primary target order at 65; #1239's passive leaf made it 66 (the order digest was already current). - engine_workflow test_us_post_export_scoring.py pinned 18 smoke baseline keys; #1239's NIIT passive probe made it 19. Co-Authored-By: Claude Opus 5.5 --- .../tests/engine_free/us/test_puf_qrf_chain.py | 2 +- .../engine_workflow/us/test_us_post_export_scoring.py | 2 +- .../microcosm_build/spec_engine_inventory_coverage.py | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/microcosm-build/tests/engine_free/us/test_puf_qrf_chain.py b/packages/microcosm-build/tests/engine_free/us/test_puf_qrf_chain.py index 924212e93a..f8be5118d7 100644 --- a/packages/microcosm-build/tests/engine_free/us/test_puf_qrf_chain.py +++ b/packages/microcosm-build/tests/engine_free/us/test_puf_qrf_chain.py @@ -167,7 +167,7 @@ def test_primary_qrf_production_target_order_is_locked() -> None: *PUF_TAX_DETAIL_DEFAULT_TAX_UNIT_OUTPUTS, ) assert PRIMARY_QRF_TARGET_ORDER == expected - assert len(PRIMARY_QRF_TARGET_ORDER) == 65 + assert len(PRIMARY_QRF_TARGET_ORDER) == 66 assert "investment_interest_expense" in PRIMARY_QRF_TARGET_ORDER digest = hashlib.sha256( json.dumps(list(PRIMARY_QRF_TARGET_ORDER), separators=(",", ":")).encode() diff --git a/packages/microcosm-build/tests/engine_workflow/us/test_us_post_export_scoring.py b/packages/microcosm-build/tests/engine_workflow/us/test_us_post_export_scoring.py index 45f7c2c958..08c7ab2714 100644 --- a/packages/microcosm-build/tests/engine_workflow/us/test_us_post_export_scoring.py +++ b/packages/microcosm-build/tests/engine_workflow/us/test_us_post_export_scoring.py @@ -277,7 +277,7 @@ def test_shipped_baseline_plans_match_whole_file_policyengine_us( path = _write_engine_h5(builder, tmp_path, _GUARD_HOUSEHOLDS) plans, _, counts = sweep._record_requests(builder) assert counts["baseline_keys"] == { - "reform_coverage_smoke": 18, + "reform_coverage_smoke": 19, "reform_validation": 75, "demographics": 1, } diff --git a/test_support/microcosm_build/spec_engine_inventory_coverage.py b/test_support/microcosm_build/spec_engine_inventory_coverage.py index f144787b08..bf150e8f9b 100644 --- a/test_support/microcosm_build/spec_engine_inventory_coverage.py +++ b/test_support/microcosm_build/spec_engine_inventory_coverage.py @@ -110,16 +110,16 @@ def binding() -> dict[str, object]: "early_families": 13, "early_targets": 48, "itemization_batches": 5, - "itemization_targets": 38, + "itemization_targets": 39, "late_groups": 19, - "late_targets": 71, + "late_targets": 72, "ownership_rows": 18, "primary_effective_predictor_tuples": 66, "primary_families": 1, "primary_targets": 66, "producer_authored_outputs": 92, - "producer_compiled_outputs": 229, - "producer_inputs": 2_746, + "producer_compiled_outputs": 230, + "producer_inputs": 2_747, "producer_nodes": 38, "producer_virtual_resources": 75, "release_rungs": 5, From 683b644289838c3528fe498085f4ba4bad9fb128 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 13:49:21 -0400 Subject: [PATCH 15/17] State the snapped-output exception beside the bound's guarantee (review r4) A snapped output is bounded by the larger of its slice cap and its smallest positive donor value, so the bound never erases a carrier. The module comment promised the slice-mass bound without that exception. Comment only; re-pinned the seed protocol and map, coverage evidence, pool-tool spec sha and loader golden, which attest puf_support.py's bytes. Co-Authored-By: Claude Opus 5.5 --- docs/evidence/spec-engine/us-f0-coverage.json | 16 ++++++++-------- .../build/spec_engine/inventory_coverage.py | 4 ++-- .../microcosm/build/us_runtime/puf_support.py | 4 +++- .../shared/test_spec_engine_loader.py | 2 +- .../us/test_us_multispine_pool_tool.py | 2 +- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/docs/evidence/spec-engine/us-f0-coverage.json b/docs/evidence/spec-engine/us-f0-coverage.json index bc7c7805bc..6d498ecca6 100644 --- a/docs/evidence/spec-engine/us-f0-coverage.json +++ b/docs/evidence/spec-engine/us-f0-coverage.json @@ -1656,13 +1656,13 @@ "compiler_ir.node_slices" ], "expected": { - "map_sha256": "96ed99b8bebef1561727af392082e2f4ec52fb3d466bfaa1a298bd1697d103ae", - "protocol_sha256": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7" + "map_sha256": "1cf6f86c3c7541bf2f8dd8909a9f42a5b4d2a2cf09bd72c0fe330ff8be12fa3d", + "protocol_sha256": "d56ecc1e77ccca082f76a06dafb8e2e83d1467a5883ab74d8e75d4265e3586a9" }, "failures": [], "observed": { - "map_sha256": "96ed99b8bebef1561727af392082e2f4ec52fb3d466bfaa1a298bd1697d103ae", - "protocol_sha256": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7" + "map_sha256": "1cf6f86c3c7541bf2f8dd8909a9f42a5b4d2a2cf09bd72c0fe330ff8be12fa3d", + "protocol_sha256": "d56ecc1e77ccca082f76a06dafb8e2e83d1467a5883ab74d8e75d4265e3586a9" }, "status": "covered" }, @@ -1677,7 +1677,7 @@ "compiler_ir.seed_stream_map" ], "expected": { - "implementation_sha256": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7", + "implementation_sha256": "d56ecc1e77ccca082f76a06dafb8e2e83d1467a5883ab74d8e75d4265e3586a9", "protocol": "legacy-v1", "streams": [ "build_model", @@ -1698,7 +1698,7 @@ }, "failures": [], "observed": { - "implementation_sha256": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7", + "implementation_sha256": "d56ecc1e77ccca082f76a06dafb8e2e83d1467a5883ab74d8e75d4265e3586a9", "protocol": "legacy-v1", "streams": [ "build_model", @@ -2599,7 +2599,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "6feff01e7b35a1846e81663d6aca8ae7c34d25d24d8b1bcf259ff87731c9d655" + "spec_sha256": "fb7990d69e72cc1d333e7589e744e43eea7e938e16e99447819b3a4d1a96c4c8" } }, "report_schema_version": 3, @@ -2609,7 +2609,7 @@ "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "6feff01e7b35a1846e81663d6aca8ae7c34d25d24d8b1bcf259ff87731c9d655" + "spec_sha256": "fb7990d69e72cc1d333e7589e744e43eea7e938e16e99447819b3a4d1a96c4c8" }, "status": "pass" } 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 0b52af0cc9..687cafa80a 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 @@ -363,8 +363,8 @@ # RNG rules and the ordered QRF targets are unchanged. microcosm#104 moves # both again: the protocol attests microcosm.calibrate.solve. The # recipient-share bound in puf_support moves both again (#1259). - "seed_map": "96ed99b8bebef1561727af392082e2f4ec52fb3d466bfaa1a298bd1697d103ae", - "seed_protocol": "57a75eba1a98e3006732122441f6e59c897201cb48e7dbdcc401ea48a1ef89d7", + "seed_map": "1cf6f86c3c7541bf2f8dd8909a9f42a5b4d2a2cf09bd72c0fe330ff8be12fa3d", + "seed_protocol": "d56ecc1e77ccca082f76a06dafb8e2e83d1467a5883ab74d8e75d4265e3586a9", "source_manifest": "f4f8bfeb79268a4043a843b47cec1d1c0e58e9f5dd6bc23417ada95446dd7b8e", "take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35", "tail": "ac92829c88a1a4fb6460d61190918d5d99c6c377fc8dd8f62f02b332d09bf59c", 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 eae23b7353..12270c682d 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 @@ -403,7 +403,9 @@ def puf_tax_detail_tail_bound_quantiles_identity() -> dict[str, float]: # carries it. The bound caps each raw amount draw at the positive mass, per # unit of slice weight, of the donor's top slice of the recipient's own share # (and floors losses from the bottom slice), so no record carries more mass -# than the most extreme slice of the population it could stand for. It limits +# than the most extreme slice of the population it could stand for. One +# exception: a snapped output is bounded by the larger of that cap and its +# smallest positive donor value, so the bound never erases a carrier. It limits # a record to its slice; it does not remove concentration the slice itself # has, and the mass it clips from passthrough columns is dropped. It is an # interim censor at the finalize seam, like the quantile map above: tail 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 b7ab6474bf..0a1b1f79f8 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 @@ -12,7 +12,7 @@ def test_semantic_hash_has_golden_vector_and_surface_separation(tmp_path) -> Non # Pin the domain separator, normalization rules, schema-set receipt, and # exact normative projection as one reviewable golden vector. assert first.spec_sha256 == ( - "aa3257d7f377122660229e1db0ddfad8a2ed2807e703dd2f0ebf6b12fdb1fa88" + "a87331c733b013ff6fa8a53e0474e8e98a6f27e53322fa35afff6291635a3897" ) second_root = _rich_minimal(tmp_path / "xy", note="second", store="local:b") 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 0735f98d19..f6e52b3f2b 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 @@ -338,7 +338,7 @@ def capture_equality(expected: object, actual: object) -> None: "country": "us", "schema_id": "country_spec", "schema_version": 1, - "spec_sha256": "6feff01e7b35a1846e81663d6aca8ae7c34d25d24d8b1bcf259ff87731c9d655", + "spec_sha256": "fb7990d69e72cc1d333e7589e744e43eea7e938e16e99447819b3a4d1a96c4c8", }, } From 2126a5ac8ba8f2ffa92ecb5966834d8022e72e28 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Tue, 13 Oct 2026 14:34:55 -0400 Subject: [PATCH 16/17] Re-pin the spec-bundle coverage-scope and battery counts (#1258) test_constant_derived_domain_counts_are_complete: primary-PUF targets are all PUF-clone scoped now (66, no whole-pool S-corp), the late DAG covers 72 targets, and the battery registry holds 136 targets (81 sign-separated). Co-Authored-By: Claude Opus 5.5 --- .../tests/engine_free/us/test_us_spec_bundle.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 6204cf5b4b..dc816db364 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 @@ -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": 65, "whole_pool": 1}, - "late_producer_dag": {"whole_pool": 71}, + "primary_puf_qrf": {"puf_clone": 66}, + "late_producer_dag": {"whole_pool": 72}, } assert all( "output_coverage_scope" not in target @@ -199,7 +199,7 @@ def test_constant_derived_domain_counts_are_complete( for step in local_steps ) assert all(step["kernel"].startswith("kernel:") for step in take_up_steps) - assert len(battery["metric_registry"]) == 135 + assert len(battery["metric_registry"]) == 136 assert len(battery["joint_metric_registry"]) == 1 assert "metric_counts" not in battery assert "declared_surface" not in battery @@ -208,7 +208,7 @@ def test_constant_derived_domain_counts_are_complete( assert battery_views["metric_counts"] == { "boolean_incidence": 51, "categorical_tvd": 4, - "monetary_sign_separated": 80, + "monetary_sign_separated": 81, } assert set(calibration["targets"]) == { "cd_policy", From 3c3d3e01468539cd1a3d4c1ae8c3c40b8793666a Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sat, 31 Oct 2026 10:31:30 -0400 Subject: [PATCH 17/17] Give #1251's passive tests the diagnostics sink #1259 requires #1259 refuses a tail-bound finalize with no sink, and #1251's two passive tests landed on main without one, so neither PR's own CI saw the clash. Co-Authored-By: Claude Opus 5.5 --- .../microcosm-build/tests/engine_free/us/test_us_puf_support.py | 2 ++ 1 file changed, 2 insertions(+) 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 95ed4249dd..ae19a88cf2 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 @@ -1636,6 +1636,7 @@ def predict( tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], ) person = imputed.table("person") @@ -1795,6 +1796,7 @@ def predict( tax_unit_outputs=(), n_estimators=4, seed=0, + tail_bound_diagnostics=[], )