Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
744 changes: 744 additions & 0 deletions data/external/group_category_schemes_v1.json

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions data/external/lifetime_measure_sources.provenance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
{
"schema_version": "external_source_provenance_set.v1",
"source": "Social Security Administration",
"retrieval_date": "2026-10-01T22:31:33Z",
"fetch_method": "Direct HTTPS GET of the live ssa.gov page with curl -A 'Wget/1.21.4' on 2026-10-01 (HTTP 200, content-type text/html; charset=UTF-8; response Date header Thu, 01 Oct 2026 22:31:33-34 GMT). The body is committed byte for byte. A per-request Akamai mPulse script in <head> changes between fetches; an earlier fetch the same day parsed to the identical tables.",
"acquired_by": "Claude Code (Opus 5.5), NASI follow-up package G2 (branch nasi/g2-lifetime-measures)",
"sources": {
"trust_fund_interest_rates": {
"committed_source_file": "data/external/ssa_trust_fund_interest_rates_2026.source.html",
"source_url": "https://www.ssa.gov/oact/ProgData/annualinterestrates.html",
"document": "Average and Effective Interest Rates",
"source_sha256": "7c11df685faaf0602dd77c5e4e124d64709e8cffd58e463d938f35e7254a0d18",
"source_length_bytes": 41498,
"locator": "table caption: Average annual special-issue interest rates on new issues and effective annual interest rates (percent); Year row; Average and Effective columns; definition paragraphs above the table",
"acquisition": "Direct HTTPS GET of the live ssa.gov page with curl -A 'Wget/1.21.4' on 2026-10-01 (HTTP 200, content-type text/html; charset=UTF-8; response Date header Thu, 01 Oct 2026 22:31:33-34 GMT). The body is committed byte for byte. A per-request Akamai mPulse script in <head> changes between fetches; an earlier fetch the same day parsed to the identical tables."
},
"effective_rates_1980_on": {
"committed_source_file": "data/external/ssa_effective_interest_rates_1980_2025.source.html",
"source_url": "https://www.ssa.gov/oact/ProgData/effectiveRates.html",
"document": "Effective Interest Rates",
"source_sha256": "eaa8870898da2907bbc39da55d6a4c14f349e38c518aefb0ff87be2ddae09322",
"source_length_bytes": 39756,
"locator": "table caption: Effective Interest Rates Earned By the Invested Assets of the OASI and DI Trust Funds [Percent]; Calendar year row; OASI, DI and OASDI columns",
"acquisition": "Direct HTTPS GET of the live ssa.gov page with curl -A 'Wget/1.21.4' on 2026-10-01 (HTTP 200, content-type text/html; charset=UTF-8; response Date header Thu, 01 Oct 2026 22:31:33-34 GMT). The body is committed byte for byte. A per-request Akamai mPulse script in <head> changes between fetches; an earlier fetch the same day parsed to the identical tables."
},
"effective_rates_1940_1979": {
"committed_source_file": "data/external/ssa_effective_interest_rates_1940_1979.source.html",
"source_url": "https://www.ssa.gov/oact/ProgData/effectiveRts1940-79.html",
"document": "Effective Interest Rates, 1940-79 (historical document)",
"source_sha256": "fb16fdaff44b3427eec2216740734792aab3b94e2851acde57c26e4057094e3d",
"source_length_bytes": 19037,
"locator": "table caption: Estimated Effective Interest Rates Earned By the Assets of the OASI and DI Trust Funds, 1940-79[Percent]; Calendar year row in either panel; OASI, DI and OASDI columns",
"acquisition": "Direct HTTPS GET of the live ssa.gov page with curl -A 'Wget/1.21.4' on 2026-10-01 (HTTP 200, content-type text/html; charset=UTF-8; response Date header Thu, 01 Oct 2026 22:31:33-34 GMT). The body is committed byte for byte. A per-request Akamai mPulse script in <head> changes between fetches; an earlier fetch the same day parsed to the identical tables."
},
"oasdi_tax_rates": {
"committed_source_file": "data/external/ssa_oasdi_tax_rates_2026.source.html",
"source_url": "https://www.ssa.gov/oact/ProgData/oasdiRates.html",
"document": "Social Security Tax Rates",
"source_sha256": "7aad3e899ab2ee4e2dfd91c2dc9208c79e40bf4cb7f3315867a11ba7efd8a9a4",
"source_length_bytes": 41837,
"locator": "table summary: Tax rate table for Social Security trust funds; Calendar years period row; OASI, DI and Total columns under employee/employer-each and self-employed headers; footnote anchors fna-fnd",
"acquisition": "Direct HTTPS GET of the live ssa.gov page with curl -A 'Wget/1.21.4' on 2026-10-01 (HTTP 200, content-type text/html; charset=UTF-8; response Date header Thu, 01 Oct 2026 22:31:33-34 GMT). The body is committed byte for byte. A per-request Akamai mPulse script in <head> changes between fetches; an earlier fetch the same day parsed to the identical tables."
},
"mint8_user_guide": {
"committed_source_file": "data/external/mint8_table_user_guide.source.html",
"source_url": "https://www.ssa.gov/policy/docs/projections/user-guide.html",
"document": "MINT8 Table User Guide",
"source_sha256": "8d5bc3f0de17831c2ed07383003257a63bb657df179d0c54868fda052f23f100",
"source_length_bytes": 73967,
"locator": "meta DCTERMS:dateCertified; paragraphs id=AIME, lifetime-tax, lifetime-tax-shared and taxes; other paragraphs identified by the exact sentences in MINT8_PARAGRAPHS",
"acquisition": "Direct HTTPS GET of the live ssa.gov page with curl -A 'Wget/1.21.4' on 2026-10-01 (HTTP 200, content-type text/html; charset=UTF-8; response Date header Thu, 01 Oct 2026 22:31:33-34 GMT). The body is committed byte for byte. A per-request Akamai mPulse script in <head> changes between fetches; an earlier fetch the same day parsed to the identical tables."
},
"mint8_table_row_labels": {
"committed_source_file": "data/external/mint8_row_categories.json",
"source_url": "https://www.ssa.gov/policy/docs/projections/policy-options/increase-payroll-tax-rate.html",
"document": "MINT8 payroll-tax option table labels (labels only)",
"source_sha256": "23fbfbc8dbc14b06144a83bf0583ea0a6c89505638f3f7dc5fd6b34a3a4ac650",
"source_length_bytes": 37524,
"locator": "label-only JSON: dateCertified; tables.13 through tables.20; groups whose group is Current-law initial AIME quintile, Lifetime payroll tax quintile or Lifetime payroll tax quintile (shared); their labels arrays",
"acquisition": "Copied byte for byte from the cleared MINT-categories lane's followup/inputs/mint/mint8_row_categories.json; label-only extraction of the archived source named in MINT8_TABLE_LABEL_PROVENANCE, never a table body."
}
},
"consumed_by": {
"scripts/extract_lifetime_measure_sources.py": [
"data/external/ssa_trust_fund_interest_rates_2026.json",
"data/external/ssa_oasdi_tax_rates_2026.json",
"data/external/mint8_lifetime_quintile_definitions.json"
]
},
"reproducible": "parsed deterministically from the committed, sha256-verified HTML bodies; no network or wall-clock timestamp is used"
}
70 changes: 70 additions & 0 deletions data/external/mint8_lifetime_quintile_definitions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"schema_version": "mint8_lifetime_quintile_definitions.v1",
"document": "MINT8 Table User Guide",
"date_certified": "2026-04-01",
"definitions": {
"initial_aime_quintile": {
"element_id": "AIME",
"text": "Current-Law Initial AIME Quintile: Represents an individual's average indexed monthly earnings (AIME) under current law at age 62, the earliest eligibility age for retired-worker benefits. We calculate the AIME quintiles for each birth cohort. The dollar ranges are available upon request."
},
"lifetime_payroll_tax_quintile": {
"element_id": "lifetime-tax",
"text": "Lifetime Payroll Tax Quintile: Represents the present value of an individual's current-law payroll taxes at age 62. We calculate the payroll tax quintiles for each birth cohort. The dollar ranges are available upon request."
},
"lifetime_payroll_tax_quintile_shared": {
"element_id": "lifetime-tax-shared",
"text": "Lifetime Payroll Tax Quintile (Shared): Represents the present value of an individual's current-law payroll taxes at age 62. For married couples, the payroll taxes paid while married are shared equally between them. For never-married individuals, this is the same as the lifetime payroll tax. In any year where an individual is not married, we count only their individual payroll taxes. We calculate the quintiles for each birth cohort. The dollar ranges are available upon request."
},
"current_law_payroll_taxes_quintile": {
"element_id": "taxes",
"text": "Current-Law Payroll Taxes Quintile: Represents an individual's annual Social Security payroll taxes under current law. We calculate the payroll tax quintiles for each analysis year's population of payroll taxpayers aged 31 or older."
},
"present_value_convention": {
"contains": "We use the Social Security Trust Fund interest rate to adjust benefits and taxes to their present values at age 62.",
"text": "The present value of benefits includes all Social Security benefits the individual received, regardless of earnings record or type of benefit. The present value of payroll taxes includes all the payroll taxes that the individual paid over a lifetime. We use the Social Security Trust Fund interest rate to adjust benefits and taxes to their present values at age 62."
},
"ten_year_birth_cohorts": {
"contains": "We use 10-year birth cohorts to increase the sample size",
"text": "We use 10-year birth cohorts to increase the sample size to a point where the characteristic subgroups could be examined."
},
"household_income_quintile_assignment": {
"contains": "determine the dollar thresholds for each income quintile",
"text": "We calculate the income quintiles for each year (e.g., 2030, 2050, or 2070) for the population analyzed, determine the dollar thresholds for each income quintile, and assign each beneficiary to the appropriate quintile. The dollar ranges are available upon request."
},
"sample_size_restriction": {
"contains": "suppress an entire characteristic subgroup",
"text": "To maintain the privacy of survey respondents, our tables have built-in disclosure avoidance protections that suppress an entire characteristic subgroup if the sample size for any row in that subgroup is less than 100 individuals. This minimum sample size protects privacy so that we can show the 10th and 90th percentiles based on a sample size of at least 10."
}
},
"cohort_table_row_groups": {
"initial_aime_quintile": "Current-law initial AIME quintile",
"lifetime_payroll_tax_quintile": "Lifetime payroll tax quintile",
"lifetime_payroll_tax_quintile_shared": "Lifetime payroll tax quintile (shared)"
},
"quintile_labels_high_to_low": [
"Highest",
"Second highest",
"Middle",
"Second lowest",
"Lowest"
],
"cohort_table_label_provenance": {
"source_url": "https://www.ssa.gov/policy/docs/projections/policy-options/increase-payroll-tax-rate.html",
"retrieved_via": "http://web.archive.org/web/20260519190449id_/https://www.ssa.gov/policy/docs/projections/policy-options/increase-payroll-tax-rate.html",
"raw_sha256": "3cfb6eb636cad6d062eb22734c533fb349a0bc4761014eee8f2ccb0eb6e28d8c",
"date_certified": "2026-04-01",
"label_file": "mint8_row_categories.json (MINT-categories lane)",
"label_file_sha256": "23fbfbc8dbc14b06144a83bf0583ea0a6c89505638f3f7dc5fd6b34a3a4ac650",
"committed_label_file": "data/external/mint8_row_categories.json",
"tables": "13-20 (benefit/tax ratios and initial replacement rates)",
"note": "Labels only. The lane's parser emitted th, caption and heading text and no data cell; the option table itself is not committed and supplies no input to this package."
},
"build": {
"built_by": "scripts/extract_lifetime_measure_sources.py",
"sources": [
"mint8_user_guide",
"mint8_table_row_labels"
],
"provenance_file": "data/external/lifetime_measure_sources.provenance.json"
}
}
Loading
Loading