{
  "artifact_sha256": {
    "spm_calculator/data/current/acs_2021_normalization_receipt.json": "36a4320d7d1a382cc8b71d2c6b5074dc4d002998fa068461565258507fa4a80d",
    "spm_calculator/data/current/acs_code_identity_adaptation.json": "b0bfbb6d87702ec06a96841b178c5645c755a042e01c3d5cabd8bad69e520396",
    "spm_calculator/data/current/acs_normalized_products.json": "49b12d772d209f4d3f806769a30576f1ffeea52716561874e382e3b4600e1be5",
    "spm_calculator/data/current/acs_rolling_forecast.json": "47ed3e6a6924994079fa2f1f5698021b3fab795d78b36a331de5b3ba067d1a78",
    "spm_calculator/data/current/ce_replication_2019_2025.json": "d04e2a61552795f9d90e282045610774a4ff68f67b97067677358741f58a289c",
    "spm_calculator/data/current/ce_rolling_forecast.json": "26b863a3e5ea3e23fb4fcd547ccd497e25625d55542b8711a4825239aebb4e21",
    "spm_calculator/data/current/rolling_forecast_2026_09_09.json": "cc06784feb81f8c7935d4494cea0a9821a79af868ac50383da8be37c6dc14b99"
  },
  "audit_script": {
    "path": "scripts/verify_provenance_equivalence.py",
    "sha256": "871b7fae47117a5709b230f2b6fbac98b4008d1a231d578e48b610ca4a20c044"
  },
  "baseline_artifact": {
    "assumption_sha256": "f4a92d547d1a5039701680a57fb02e368438aa5dd1a11e952351020450132983",
    "content_sha256": "b9dbf5ae49697e3bf3abee2fa22b7429703412cb1e58478938a682a0dfddc821",
    "path": "web/public/data/canonical/rolling-forecast-76ab8435f087f167ad01b8495ebd016415ba8086f32bfbd3dab961dcc8976c0a.json",
    "sha256": "76ab8435f087f167ad01b8495ebd016415ba8086f32bfbd3dab961dcc8976c0a"
  },
  "baseline_content_sha256": "b9dbf5ae49697e3bf3abee2fa22b7429703412cb1e58478938a682a0dfddc821",
  "final_assumption_sha256": "d81cf3b1a131fb386941e2e5c30792545f7dc965f6ba4c4dfb13e8ca95a3992d",
  "final_content_sha256": "3d86d5c4c0423480e6b69b75d222ffa4a7a2639e4094df5ba2504af01be17173",
  "kind": "equivalent_code_adaptation_verification",
  "normalized_cache_identity": {
    "2021": {
      "cache_path": "normalized/2021-11f0a6d4cbff51bf377f61e34b07184118a5ecf620868a48c96b0720971849e5.npz",
      "columns": [
        "record_id",
        "source_vintage",
        "cohort_year",
        "source_year",
        "puma_geoid",
        "rent",
        "weight",
        "raw_gross_rent",
        "adjhsg",
        "projected",
        "top_rent",
        "top_electricity",
        "top_gas",
        "top_fuel",
        "top_water",
        "rent_lower_bound"
      ],
      "normalization_logic_sha256": "2c02fb82bba6992f4fa0db844781a4d7bb610cb6f3680b03d188daa1a49936ba",
      "sha256": "f407c8677c70baa37d22fdc4b0780f459ac4db46f405868836f052f62d774041",
      "source_sha256": [
        "7a0f6d2d86990343bce760a2b679d26f19272a7518399a03ca7e19bf74e92b19"
      ],
      "topcodes_sha256": "71711e030f56a187e0787795de04e077f0cce91ac21d41ab28b7aa3ff7c231e4",
      "valid_pumas_sha256": "3b81a64caf404041aa44811a7076ad0cae1f300588423227b1b089d37058da3b"
    },
    "2022": {
      "cache_path": "normalized/2022-0db3a6b05c8dfc26ff84c1feaab1e8a1c66c9f1a69eb2a8bbd640b2efc97d92b.npz",
      "columns": [
        "record_id",
        "source_vintage",
        "cohort_year",
        "source_year",
        "puma_geoid",
        "rent",
        "weight",
        "raw_gross_rent",
        "adjhsg",
        "projected",
        "top_rent",
        "top_electricity",
        "top_gas",
        "top_fuel",
        "top_water",
        "rent_lower_bound"
      ],
      "normalization_logic_sha256": "ff5fa220fa295f464d29fe682823433980ebd19059e2bab0260eec923575ecf5",
      "sha256": "0aebe418e3bd70342cc4b2e72bcb883e3cea565906c1cafaa9bd21f452bd9a8f",
      "source_sha256": [
        "45e08155e78bbfff1e251d99d911070700baf615f0690c97e67790333728add5",
        "b325a63784d834def25c07959777dd0c1602a0767c27ac1877718ae3f2376d41"
      ],
      "topcodes_sha256": "eacb03b68d083bc9431300bda7e76e897a9356bde9d508c1d38db205260875cd",
      "valid_pumas_sha256": "e5849a3366acf7a25f7ac90dfb148c5b8352a1f365da6db07d53a4d786f81ce6"
    },
    "2023": {
      "cache_path": "normalized/2023-3f41887ef77588d83d620202cdf4e6d77eef2e45a50e309fd1d990da9afb8e37.npz",
      "columns": [
        "record_id",
        "source_vintage",
        "cohort_year",
        "source_year",
        "puma_geoid",
        "rent",
        "weight",
        "raw_gross_rent",
        "adjhsg",
        "projected",
        "top_rent",
        "top_electricity",
        "top_gas",
        "top_fuel",
        "top_water",
        "rent_lower_bound"
      ],
      "normalization_logic_sha256": "ff5fa220fa295f464d29fe682823433980ebd19059e2bab0260eec923575ecf5",
      "sha256": "85db2bb76d0da444b985f91c487908373369b670d8e9f28b31d8f8583cce5adc",
      "source_sha256": [
        "2380c0ae7f062a42c016b494a26084ca0e24b75d07927a19ed1afc4529da0bf8"
      ],
      "topcodes_sha256": "eacb03b68d083bc9431300bda7e76e897a9356bde9d508c1d38db205260875cd",
      "valid_pumas_sha256": "e5849a3366acf7a25f7ac90dfb148c5b8352a1f365da6db07d53a4d786f81ce6"
    },
    "2024": {
      "cache_path": "normalized/2024-64f4bcc2d2db1cce3cbd87ee01b2acd1fe13b9c323c24075f25543019015ee0c.npz",
      "columns": [
        "record_id",
        "source_vintage",
        "cohort_year",
        "source_year",
        "puma_geoid",
        "rent",
        "weight",
        "raw_gross_rent",
        "adjhsg",
        "projected",
        "top_rent",
        "top_electricity",
        "top_gas",
        "top_fuel",
        "top_water",
        "rent_lower_bound"
      ],
      "normalization_logic_sha256": "ff5fa220fa295f464d29fe682823433980ebd19059e2bab0260eec923575ecf5",
      "sha256": "c4f146414d4b438cfc9b64dabd09d43334fe5b1235c4cca3aa5ca53822902996",
      "source_sha256": [
        "f3ff4545eab3da1cf4cbc5b245a926b67eb055fe95ac87fa2d5f1dd9ba95c23c"
      ],
      "topcodes_sha256": "eacb03b68d083bc9431300bda7e76e897a9356bde9d508c1d38db205260875cd",
      "valid_pumas_sha256": "e5849a3366acf7a25f7ac90dfb148c5b8352a1f365da6db07d53a4d786f81ce6"
    }
  },
  "previous_scientific_refresh": {
    "path": "spm_calculator/data/provenance/ast-portability-2026-09-09/scientific_refresh_receipt.json",
    "sha256": "ea431cf183c80c8c0446f614ba355bddc6a30714906460bf1e8df54cd332af54"
  },
  "provenance_adaptation": {
    "path": "spm_calculator/data/current/acs_code_identity_adaptation.json",
    "sha256": "b0bfbb6d87702ec06a96841b178c5645c755a042e01c3d5cabd8bad69e520396"
  },
  "raw_source_reparse_performed": false,
  "schema_version": 1,
  "scientific_component_rebuild_performed": false,
  "scientific_equivalence": {
    "allowed_provenance_changes": [
      "content_sha256",
      "assumption_sha256",
      "code_sha256/spm_calculator/acs_forecast_sources.py",
      "assumptions/acs/generator_identity/spm_calculator/acs_forecast_sources.py",
      "component_sha256/spm_calculator/data/current/acs_rolling_forecast.json",
      "component_sha256/spm_calculator/data/current/acs_normalized_products.json",
      "assumptions/acs/provenance_adaptation",
      "sources/id=acs-code-identity-adaptation",
      "sources/id=acs-normalized-products/sha256"
    ],
    "amount_comparison": {
      "all_result_fields_equal_except": [
        "forecast_sha256"
      ],
      "area_counts": {
        "ce_trend/2022": 349,
        "ce_trend/2023": 349,
        "ce_trend/2024": 349,
        "ce_trend/2025": 349,
        "ce_trend/2026": 349,
        "ce_trend/2027": 349,
        "ce_trend/2028": 349,
        "ce_trend/2029": 349,
        "ce_trend/2030": 349,
        "ce_trend/2031": 349,
        "ce_trend/2032": 349,
        "ce_trend/2033": 349,
        "ce_trend/2034": 349,
        "ce_trend/2035": 349,
        "zero_real/2022": 349,
        "zero_real/2023": 349,
        "zero_real/2024": 349,
        "zero_real/2025": 349,
        "zero_real/2026": 349,
        "zero_real/2027": 349,
        "zero_real/2028": 349,
        "zero_real/2029": 349,
        "zero_real/2030": 349,
        "zero_real/2031": 349,
        "zero_real/2032": 349,
        "zero_real/2033": 349,
        "zero_real/2034": 349,
        "zero_real/2035": 349
      },
      "calculations": 2110752,
      "composition_grid": {
        "adults": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "children": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ]
      },
      "current_sha256_big_endian_float64": "aaf2d3d4f68f3d12fdf252165d547d8cf6a19c74a34475d6def6a99a1bd5d5a3",
      "exact_field_comparisons": 10553760,
      "fields": [
        "threshold",
        "housing_portion",
        "reference_threshold",
        "unadjusted_threshold",
        "geographic_factor"
      ],
      "max_absolute_difference": 0,
      "ordering": "scenario, year, area, tenure, adults, children ascending; fields in recorded order",
      "original_sha256_big_endian_float64": "aaf2d3d4f68f3d12fdf252165d547d8cf6a19c74a34475d6def6a99a1bd5d5a3",
      "resources": 40000,
      "scenario_count": 2,
      "years": [
        2022,
        2023,
        2024,
        2025,
        2026,
        2027,
        2028,
        2029,
        2030,
        2031,
        2032,
        2033,
        2034,
        2035
      ]
    },
    "calculation_grid_executed": true,
    "complete_scenarios_sha256": "d5e542944d26a51418b2246b77b00d4e0814574b0f676a693e1475703eb041be",
    "current_content_sha256": "3d86d5c4c0423480e6b69b75d222ffa4a7a2639e4094df5ba2504af01be17173",
    "original_content_sha256": "b9dbf5ae49697e3bf3abee2fa22b7429703412cb1e58478938a682a0dfddc821",
    "scientific_fields_exactly_equal": true,
    "status": "all_exact_equality_checks_passed"
  },
  "status": "all_exact_equality_checks_passed"
}
