From 82b644dc74ce7451d76caefb04208da9175b403d Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Sun, 11 Oct 2026 15:02:20 -0400 Subject: [PATCH] Add 2015-2023 Medicare IRMAA brackets and 2015-2020 Part B premiums The Part B and Part D income-related monthly adjustment schedules started in 2024, so the backdating floor applied 2024 thresholds and amounts to benefit years 2015-2023, and the standard Part B premium applied its 2021 value to 2015-2020. Encode each year's schedule from the Federal Register Part B premium notices and CMS's Part D income-related adjustment releases: thresholds frozen through 2017, the MACRA brackets for 2018, the 85% tier from 2019 and CPI-U indexing from 2020, with the shorter married-filing-separately schedule (a single tier in 2018). Add YAML tests for every tier boundary in 2015-2023 and property tests for the statutory structure (ordering, joint and separate schedules, Part B adjustments relative to the standard premium, Part D tier proportions). Co-Authored-By: Claude Opus 5.5 --- .../irmaa-historical-brackets.fixed.md | 1 + .../gov/hhs/medicare/part_b/base_premium.yaml | 18 + .../part_b/irmaa/head_of_household.yaml | 116 + .../gov/hhs/medicare/part_b/irmaa/joint.yaml | 116 + .../hhs/medicare/part_b/irmaa/separate.yaml | 66 + .../gov/hhs/medicare/part_b/irmaa/single.yaml | 117 +- .../part_b/irmaa/surviving_spouse.yaml | 116 + .../part_d/irmaa/head_of_household.yaml | 114 + .../gov/hhs/medicare/part_d/irmaa/joint.yaml | 114 + .../hhs/medicare/part_d/irmaa/separate.yaml | 64 + .../gov/hhs/medicare/part_d/irmaa/single.yaml | 114 + .../part_d/irmaa/surviving_spouse.yaml | 114 + .../eligibility/base_part_b_premium.yaml | 48 + .../gross_medicare_part_b_premium.yaml | 1776 +++++++++++++++ ...ome_adjusted_part_d_premium_surcharge.yaml | 1975 +++++++++++++++++ .../test_irmaa_schedule_properties.py | 193 ++ 16 files changed, 5061 insertions(+), 1 deletion(-) create mode 100644 changelog.d/irmaa-historical-brackets.fixed.md create mode 100644 policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/gross_medicare_part_b_premium.yaml create mode 100644 policyengine_us/tests/policy/baseline/gov/hhs/medicare/test_irmaa_schedule_properties.py diff --git a/changelog.d/irmaa-historical-brackets.fixed.md b/changelog.d/irmaa-historical-brackets.fixed.md new file mode 100644 index 00000000000..6bf32d20b93 --- /dev/null +++ b/changelog.d/irmaa-historical-brackets.fixed.md @@ -0,0 +1 @@ +Add the Medicare Part B and Part D income-related monthly adjustment brackets for 2015-2023 and the standard Part B premium for 2015-2020, which had been backdated from their 2024 and 2021 values. diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml index 3f456752c45..12fae64f7de 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_b/base_premium.yaml @@ -4,6 +4,18 @@ metadata: period: month label: Medicare Part B base premium reference: + - title: Medicare Part B premium rates beginning January 1, 2015 (79 FR 61314) + href: https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-24248.pdf#page=1 + - title: Medicare Part B premium rates beginning January 1, 2016 (80 FR 70811) + href: https://www.govinfo.gov/content/pkg/FR-2015-11-16/pdf/2015-29181.pdf#page=1 + - title: Medicare Part B premium rates beginning January 1, 2017 (81 FR 80063) + href: https://www.govinfo.gov/content/pkg/FR-2016-11-15/pdf/2016-27425.pdf#page=1 + - title: Medicare Part B premium rates beginning January 1, 2018 (82 FR 55370) + href: https://www.govinfo.gov/content/pkg/FR-2017-11-21/pdf/2017-24877.pdf#page=1 + - title: Medicare Part B premium rates beginning January 1, 2019 (83 FR 52462) + href: https://www.govinfo.gov/content/pkg/FR-2018-10-17/pdf/2018-22530.pdf#page=2 + - title: Medicare Part B premium rates beginning January 1, 2020 (84 FR 61625) + href: https://www.govinfo.gov/content/pkg/FR-2019-11-13/pdf/2019-24440.pdf#page=1 - title: 2021 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/press-releases/2021-medicare-part-b-premiums-remain-steady - title: 2022 Medicare Parts A & B Premiums and Deductibles @@ -17,6 +29,12 @@ metadata: - title: 2026 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles values: + 2015-01-01: 104.90 + 2016-01-01: 121.80 + 2017-01-01: 134.00 + 2018-01-01: 134.00 + 2019-01-01: 135.50 + 2020-01-01: 144.60 2021-01-01: 148.50 2022-01-01: 170.1 2023-01-01: 164.9 diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml index 3592b9a0e87..ecd4b77df95 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/head_of_household.yaml @@ -6,6 +6,28 @@ metadata: period: month label: Medicare Part B income brackets for head of household filers reference: + - title: 42 U.S.C. § 1395r(i) + href: https://www.law.cornell.edu/uscode/text/42/1395r#i + - title: Medicare Part B premium rates beginning January 1, 2015 (79 FR 61314) + href: https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-24248.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2016 (80 FR 70811) + href: https://www.govinfo.gov/content/pkg/FR-2015-11-16/pdf/2015-29181.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2017 (81 FR 80063) + href: https://www.govinfo.gov/content/pkg/FR-2016-11-15/pdf/2016-27425.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2018 (82 FR 55370) + href: https://www.govinfo.gov/content/pkg/FR-2017-11-21/pdf/2017-24877.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2019 (83 FR 52462) + href: https://www.govinfo.gov/content/pkg/FR-2018-10-17/pdf/2018-22530.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2020 (84 FR 61625) + href: https://www.govinfo.gov/content/pkg/FR-2019-11-13/pdf/2019-24440.pdf#page=3 + - title: "Medicare Part B premium rates beginning January 1, 2021 (85 FR 71904) #page 3-4" + href: https://www.govinfo.gov/content/pkg/FR-2020-11-12/pdf/2020-25029.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2022 (86 FR 64205) + href: https://www.govinfo.gov/content/pkg/FR-2021-11-17/pdf/2021-25050.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2023 (87 FR 59080) + href: https://www.govinfo.gov/content/pkg/FR-2022-09-29/pdf/2022-21090.pdf#page=4 + - title: 2026 Medicare Trustees Report, Table V.E3 + href: https://www.cms.gov/oact/tr/2026#page=215 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -14,50 +36,144 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + 2015-01-01: 85_001 + 2016-01-01: 85_001 + 2017-01-01: 85_001 + 2018-01-01: 85_001 + 2019-01-01: 85_001 + 2020-01-01: 87_001 + 2021-01-01: 88_001 + 2022-01-01: 91_001 + 2023-01-01: 97_001 2024-01-01: 103_001 2025-01-01: 106_001 2026-01-01: 109_001 amount: + 2015-01-01: 42.00 + 2016-01-01: 48.70 + 2017-01-01: 53.50 + 2018-01-01: 53.50 + 2019-01-01: 54.10 + 2020-01-01: 57.80 + 2021-01-01: 59.40 + 2022-01-01: 68.00 + 2023-01-01: 65.90 2024-01-01: 69.90 2025-01-01: 74 2026-01-01: 81.20 - threshold: + 2015-01-01: 107_001 + 2016-01-01: 107_001 + 2017-01-01: 107_001 + 2018-01-01: 107_001 + 2019-01-01: 107_001 + 2020-01-01: 109_001 + 2021-01-01: 111_001 + 2022-01-01: 114_001 + 2023-01-01: 123_001 2024-01-01: 129_001 2025-01-01: 133_001 2026-01-01: 137_001 amount: + 2015-01-01: 104.90 + 2016-01-01: 121.80 + 2017-01-01: 133.90 + 2018-01-01: 133.90 + 2019-01-01: 135.40 + 2020-01-01: 144.60 + 2021-01-01: 148.50 + 2022-01-01: 170.10 + 2023-01-01: 164.80 2024-01-01: 174.70 2025-01-01: 185 2026-01-01: 202.90 - threshold: + 2015-01-01: 160_001 + 2016-01-01: 160_001 + 2017-01-01: 160_001 + 2018-01-01: 133_501 + 2019-01-01: 133_501 + 2020-01-01: 136_001 + 2021-01-01: 138_001 + 2022-01-01: 142_001 + 2023-01-01: 153_001 2024-01-01: 161_001 2025-01-01: 167_001 2026-01-01: 171_001 amount: + 2015-01-01: 167.80 + 2016-01-01: 194.90 + 2017-01-01: 214.30 + 2018-01-01: 214.30 + 2019-01-01: 216.70 + 2020-01-01: 231.40 + 2021-01-01: 237.60 + 2022-01-01: 272.20 + 2023-01-01: 263.70 2024-01-01: 279.50 2025-01-01: 295.9 2026-01-01: 324.60 - threshold: + 2015-01-01: 214_001 + 2016-01-01: 214_001 + 2017-01-01: 214_001 + 2018-01-01: 160_001 + 2019-01-01: 160_001 + 2020-01-01: 163_001 + 2021-01-01: 165_001 + 2022-01-01: 170_001 + 2023-01-01: 183_001 2024-01-01: 193_001 2025-01-01: 200_001 2026-01-01: 205_001 amount: + 2015-01-01: 230.80 + 2016-01-01: 268.00 + 2017-01-01: 294.60 + 2018-01-01: 294.60 + 2019-01-01: 297.90 + 2020-01-01: 318.10 + 2021-01-01: 326.70 + 2022-01-01: 374.20 + 2023-01-01: 362.60 2024-01-01: 384.30 2025-01-01: 406.9 2026-01-01: 446.30 - threshold: + # The 85% tier begins in 2019 (Bipartisan Budget Act of 2018, section 53114). + 2015-01-01: .inf + 2016-01-01: .inf + 2017-01-01: .inf + 2018-01-01: .inf + 2019-01-01: 500_000 + 2020-01-01: 500_000 + 2021-01-01: 500_000 + 2022-01-01: 500_000 + 2023-01-01: 500_000 2024-01-01: 500_000 2025-01-01: 500_000 2026-01-01: 500_000 amount: + # Before 2019 the threshold is unreachable and the amount repeats the 80% tier. + 2015-01-01: 230.80 + 2016-01-01: 268.00 + 2017-01-01: 294.60 + 2018-01-01: 294.60 + 2019-01-01: 325.00 + 2020-01-01: 347.00 + 2021-01-01: 356.40 + 2022-01-01: 408.20 + 2023-01-01: 395.60 2024-01-01: 419.30 2025-01-01: 443.9 2026-01-01: 487 diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml index ae22ca67c2e..e104c9cc426 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/joint.yaml @@ -6,6 +6,28 @@ metadata: type: single_amount label: Medicare Part B income brackets for joint filers reference: + - title: 42 U.S.C. § 1395r(i) + href: https://www.law.cornell.edu/uscode/text/42/1395r#i + - title: Medicare Part B premium rates beginning January 1, 2015 (79 FR 61314) + href: https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-24248.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2016 (80 FR 70811) + href: https://www.govinfo.gov/content/pkg/FR-2015-11-16/pdf/2015-29181.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2017 (81 FR 80063) + href: https://www.govinfo.gov/content/pkg/FR-2016-11-15/pdf/2016-27425.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2018 (82 FR 55370) + href: https://www.govinfo.gov/content/pkg/FR-2017-11-21/pdf/2017-24877.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2019 (83 FR 52462) + href: https://www.govinfo.gov/content/pkg/FR-2018-10-17/pdf/2018-22530.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2020 (84 FR 61625) + href: https://www.govinfo.gov/content/pkg/FR-2019-11-13/pdf/2019-24440.pdf#page=3 + - title: "Medicare Part B premium rates beginning January 1, 2021 (85 FR 71904) #page 3-4" + href: https://www.govinfo.gov/content/pkg/FR-2020-11-12/pdf/2020-25029.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2022 (86 FR 64205) + href: https://www.govinfo.gov/content/pkg/FR-2021-11-17/pdf/2021-25050.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2023 (87 FR 59080) + href: https://www.govinfo.gov/content/pkg/FR-2022-09-29/pdf/2022-21090.pdf#page=4 + - title: 2026 Medicare Trustees Report, Table V.E3 + href: https://www.cms.gov/oact/tr/2026#page=215 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -14,50 +36,144 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + 2015-01-01: 170_001 + 2016-01-01: 170_001 + 2017-01-01: 170_001 + 2018-01-01: 170_001 + 2019-01-01: 170_001 + 2020-01-01: 174_001 + 2021-01-01: 176_001 + 2022-01-01: 182_001 + 2023-01-01: 194_001 2024-01-01: 206_001 2025-01-01: 212_001 2026-01-01: 218_001 amount: + 2015-01-01: 42.00 + 2016-01-01: 48.70 + 2017-01-01: 53.50 + 2018-01-01: 53.50 + 2019-01-01: 54.10 + 2020-01-01: 57.80 + 2021-01-01: 59.40 + 2022-01-01: 68.00 + 2023-01-01: 65.90 2024-01-01: 69.90 2025-01-01: 74 2026-01-01: 81.20 - threshold: + 2015-01-01: 214_001 + 2016-01-01: 214_001 + 2017-01-01: 214_001 + 2018-01-01: 214_001 + 2019-01-01: 214_001 + 2020-01-01: 218_001 + 2021-01-01: 222_001 + 2022-01-01: 228_001 + 2023-01-01: 246_001 2024-01-01: 258_001 2025-01-01: 266_001 2026-01-01: 274_001 amount: + 2015-01-01: 104.90 + 2016-01-01: 121.80 + 2017-01-01: 133.90 + 2018-01-01: 133.90 + 2019-01-01: 135.40 + 2020-01-01: 144.60 + 2021-01-01: 148.50 + 2022-01-01: 170.10 + 2023-01-01: 164.80 2024-01-01: 174.70 2025-01-01: 185 2026-01-01: 202.90 - threshold: + 2015-01-01: 320_001 + 2016-01-01: 320_001 + 2017-01-01: 320_001 + 2018-01-01: 267_001 + 2019-01-01: 267_001 + 2020-01-01: 272_001 + 2021-01-01: 276_001 + 2022-01-01: 284_001 + 2023-01-01: 306_001 2024-01-01: 322_001 2025-01-01: 334_001 2026-01-01: 342_001 amount: + 2015-01-01: 167.80 + 2016-01-01: 194.90 + 2017-01-01: 214.30 + 2018-01-01: 214.30 + 2019-01-01: 216.70 + 2020-01-01: 231.40 + 2021-01-01: 237.60 + 2022-01-01: 272.20 + 2023-01-01: 263.70 2024-01-01: 279.50 2025-01-01: 295.9 2026-01-01: 324.60 - threshold: + 2015-01-01: 428_001 + 2016-01-01: 428_001 + 2017-01-01: 428_001 + 2018-01-01: 320_001 + 2019-01-01: 320_001 + 2020-01-01: 326_001 + 2021-01-01: 330_001 + 2022-01-01: 340_001 + 2023-01-01: 366_001 2024-01-01: 386_001 2025-01-01: 400_001 2026-01-01: 410_001 amount: + 2015-01-01: 230.80 + 2016-01-01: 268.00 + 2017-01-01: 294.60 + 2018-01-01: 294.60 + 2019-01-01: 297.90 + 2020-01-01: 318.10 + 2021-01-01: 326.70 + 2022-01-01: 374.20 + 2023-01-01: 362.60 2024-01-01: 384.30 2025-01-01: 406.9 2026-01-01: 446.30 - threshold: + # The 85% tier begins in 2019 (Bipartisan Budget Act of 2018, section 53114). + 2015-01-01: .inf + 2016-01-01: .inf + 2017-01-01: .inf + 2018-01-01: .inf + 2019-01-01: 750_000 + 2020-01-01: 750_000 + 2021-01-01: 750_000 + 2022-01-01: 750_000 + 2023-01-01: 750_000 2024-01-01: 750_000 2025-01-01: 750_000 2026-01-01: 750_000 amount: + # Before 2019 the threshold is unreachable and the amount repeats the 80% tier. + 2015-01-01: 230.80 + 2016-01-01: 268.00 + 2017-01-01: 294.60 + 2018-01-01: 294.60 + 2019-01-01: 325.00 + 2020-01-01: 347.00 + 2021-01-01: 356.40 + 2022-01-01: 408.20 + 2023-01-01: 395.60 2024-01-01: 419.30 2025-01-01: 443.9 2026-01-01: 487 diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml index 00640fac5b1..f55bdbe9585 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/separate.yaml @@ -6,6 +6,28 @@ metadata: type: single_amount label: Medicare Part B income brackets for married filing separately reference: + - title: 42 U.S.C. § 1395r(i) + href: https://www.law.cornell.edu/uscode/text/42/1395r#i + - title: Medicare Part B premium rates beginning January 1, 2015 (79 FR 61314) + href: https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-24248.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2016 (80 FR 70811) + href: https://www.govinfo.gov/content/pkg/FR-2015-11-16/pdf/2015-29181.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2017 (81 FR 80063) + href: https://www.govinfo.gov/content/pkg/FR-2016-11-15/pdf/2016-27425.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2018 (82 FR 55370) + href: https://www.govinfo.gov/content/pkg/FR-2017-11-21/pdf/2017-24877.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2019 (83 FR 52462) + href: https://www.govinfo.gov/content/pkg/FR-2018-10-17/pdf/2018-22530.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2020 (84 FR 61625) + href: https://www.govinfo.gov/content/pkg/FR-2019-11-13/pdf/2019-24440.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2021 (85 FR 71904) + href: https://www.govinfo.gov/content/pkg/FR-2020-11-12/pdf/2020-25029.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2022 (86 FR 64205) + href: https://www.govinfo.gov/content/pkg/FR-2021-11-17/pdf/2021-25050.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2023 (87 FR 59080) + href: https://www.govinfo.gov/content/pkg/FR-2022-09-29/pdf/2022-21090.pdf#page=5 + - title: 2026 Medicare Trustees Report, Table V.E3 + href: https://www.cms.gov/oact/tr/2026#page=215 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -14,26 +36,70 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + # The 65% tier before 2018 and the 80% tier from 2018. + 2015-01-01: 85_001 + 2016-01-01: 85_001 + 2017-01-01: 85_001 + 2018-01-01: 85_001 + 2019-01-01: 85_001 + 2020-01-01: 87_001 + 2021-01-01: 88_001 + 2022-01-01: 91_001 + 2023-01-01: 97_001 2024-01-01: 103_001 2025-01-01: 106_001 2026-01-01: 109_001 amount: + 2015-01-01: 167.80 + 2016-01-01: 194.90 + 2017-01-01: 214.30 + 2018-01-01: 294.60 + 2019-01-01: 297.90 + 2020-01-01: 318.10 + 2021-01-01: 326.70 + 2022-01-01: 374.20 + 2023-01-01: 362.60 2024-01-01: 384.30 2025-01-01: 406.9 2026-01-01: 446.30 - threshold: + # The 80% tier before 2018 and the 85% tier from 2019. Married filing + # separately reduces each individual dollar amount by the $85,000 + # threshold (42 U.S.C. 1395r(i)(3)(C)(iii)); in 2018 the 65% tier then + # ended at $75,000, below the threshold, so only the 80% tier applied. + 2015-01-01: 129_001 + 2016-01-01: 129_001 + 2017-01-01: 129_001 + 2018-01-01: .inf + 2019-01-01: 415_000 + 2020-01-01: 413_000 + 2021-01-01: 412_000 + 2022-01-01: 409_000 + 2023-01-01: 403_000 2024-01-01: 397_000 2025-01-01: 394_000 2026-01-01: 391_000 amount: + # 2018 repeats the 80% tier amount; its threshold is unreachable. + 2015-01-01: 230.80 + 2016-01-01: 268.00 + 2017-01-01: 294.60 + 2018-01-01: 294.60 + 2019-01-01: 325.00 + 2020-01-01: 347.00 + 2021-01-01: 356.40 + 2022-01-01: 408.20 + 2023-01-01: 395.60 2024-01-01: 419.30 2025-01-01: 443.9 2026-01-01: 487 diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml index ee4af575421..92358f02b03 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/single.yaml @@ -6,6 +6,28 @@ metadata: type: single_amount label: Medicare Part B income brackets for single filers reference: + - title: 42 U.S.C. § 1395r(i) + href: https://www.law.cornell.edu/uscode/text/42/1395r#i + - title: Medicare Part B premium rates beginning January 1, 2015 (79 FR 61314) + href: https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-24248.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2016 (80 FR 70811) + href: https://www.govinfo.gov/content/pkg/FR-2015-11-16/pdf/2015-29181.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2017 (81 FR 80063) + href: https://www.govinfo.gov/content/pkg/FR-2016-11-15/pdf/2016-27425.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2018 (82 FR 55370) + href: https://www.govinfo.gov/content/pkg/FR-2017-11-21/pdf/2017-24877.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2019 (83 FR 52462) + href: https://www.govinfo.gov/content/pkg/FR-2018-10-17/pdf/2018-22530.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2020 (84 FR 61625) + href: https://www.govinfo.gov/content/pkg/FR-2019-11-13/pdf/2019-24440.pdf#page=3 + - title: "Medicare Part B premium rates beginning January 1, 2021 (85 FR 71904) #page 3-4" + href: https://www.govinfo.gov/content/pkg/FR-2020-11-12/pdf/2020-25029.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2022 (86 FR 64205) + href: https://www.govinfo.gov/content/pkg/FR-2021-11-17/pdf/2021-25050.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2023 (87 FR 59080) + href: https://www.govinfo.gov/content/pkg/FR-2022-09-29/pdf/2022-21090.pdf#page=4 + - title: 2026 Medicare Trustees Report, Table V.E3 + href: https://www.cms.gov/oact/tr/2026#page=215 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -14,51 +36,144 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + 2015-01-01: 85_001 + 2016-01-01: 85_001 + 2017-01-01: 85_001 + 2018-01-01: 85_001 + 2019-01-01: 85_001 + 2020-01-01: 87_001 + 2021-01-01: 88_001 + 2022-01-01: 91_001 + 2023-01-01: 97_001 2024-01-01: 103_001 2025-01-01: 106_001 2026-01-01: 109_001 amount: + 2015-01-01: 42.00 + 2016-01-01: 48.70 + 2017-01-01: 53.50 + 2018-01-01: 53.50 + 2019-01-01: 54.10 + 2020-01-01: 57.80 + 2021-01-01: 59.40 + 2022-01-01: 68.00 + 2023-01-01: 65.90 2024-01-01: 69.90 2025-01-01: 74 2026-01-01: 81.20 - threshold: + 2015-01-01: 107_001 + 2016-01-01: 107_001 + 2017-01-01: 107_001 + 2018-01-01: 107_001 + 2019-01-01: 107_001 + 2020-01-01: 109_001 + 2021-01-01: 111_001 + 2022-01-01: 114_001 + 2023-01-01: 123_001 2024-01-01: 129_001 2025-01-01: 133_001 2026-01-01: 137_001 amount: + 2015-01-01: 104.90 + 2016-01-01: 121.80 + 2017-01-01: 133.90 + 2018-01-01: 133.90 + 2019-01-01: 135.40 + 2020-01-01: 144.60 + 2021-01-01: 148.50 + 2022-01-01: 170.10 + 2023-01-01: 164.80 2024-01-01: 174.70 2025-01-01: 185 2026-01-01: 202.90 - threshold: + 2015-01-01: 160_001 + 2016-01-01: 160_001 + 2017-01-01: 160_001 + 2018-01-01: 133_501 + 2019-01-01: 133_501 + 2020-01-01: 136_001 + 2021-01-01: 138_001 + 2022-01-01: 142_001 + 2023-01-01: 153_001 2024-01-01: 161_001 2025-01-01: 167_001 2026-01-01: 171_001 amount: + 2015-01-01: 167.80 + 2016-01-01: 194.90 + 2017-01-01: 214.30 + 2018-01-01: 214.30 + 2019-01-01: 216.70 + 2020-01-01: 231.40 + 2021-01-01: 237.60 + 2022-01-01: 272.20 + 2023-01-01: 263.70 2024-01-01: 279.50 2025-01-01: 295.9 2026-01-01: 324.60 - threshold: + 2015-01-01: 214_001 + 2016-01-01: 214_001 + 2017-01-01: 214_001 + 2018-01-01: 160_001 + 2019-01-01: 160_001 + 2020-01-01: 163_001 + 2021-01-01: 165_001 + 2022-01-01: 170_001 + 2023-01-01: 183_001 2024-01-01: 193_001 2025-01-01: 200_001 2026-01-01: 205_001 amount: + 2015-01-01: 230.80 + 2016-01-01: 268.00 + 2017-01-01: 294.60 + 2018-01-01: 294.60 + 2019-01-01: 297.90 + 2020-01-01: 318.10 + 2021-01-01: 326.70 + 2022-01-01: 374.20 + 2023-01-01: 362.60 2024-01-01: 384.30 2025-01-01: 406.9 2026-01-01: 446.30 - threshold: + # The 85% tier begins in 2019 (Bipartisan Budget Act of 2018, section 53114). + 2015-01-01: .inf + 2016-01-01: .inf + 2017-01-01: .inf + 2018-01-01: .inf + 2019-01-01: 500_000 + 2020-01-01: 500_000 + 2021-01-01: 500_000 + 2022-01-01: 500_000 + 2023-01-01: 500_000 2024-01-01: 500_000 2025-01-01: 500_000 2026-01-01: 500_000 amount: + # Before 2019 the threshold is unreachable and the amount repeats the 80% tier. + 2015-01-01: 230.80 + 2016-01-01: 268.00 + 2017-01-01: 294.60 + 2018-01-01: 294.60 + 2019-01-01: 325.00 + 2020-01-01: 347.00 + 2021-01-01: 356.40 + 2022-01-01: 408.20 + 2023-01-01: 395.60 2024-01-01: 419.30 2025-01-01: 443.9 2026-01-01: 487 - diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml index 25e1f04734c..9470bb04a95 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_b/irmaa/surviving_spouse.yaml @@ -6,6 +6,28 @@ metadata: period: month label: Medicare Part B income brackets for surviving spouse filers reference: + - title: 42 U.S.C. § 1395r(i) + href: https://www.law.cornell.edu/uscode/text/42/1395r#i + - title: Medicare Part B premium rates beginning January 1, 2015 (79 FR 61314) + href: https://www.govinfo.gov/content/pkg/FR-2014-10-10/pdf/2014-24248.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2016 (80 FR 70811) + href: https://www.govinfo.gov/content/pkg/FR-2015-11-16/pdf/2015-29181.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2017 (81 FR 80063) + href: https://www.govinfo.gov/content/pkg/FR-2016-11-15/pdf/2016-27425.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2018 (82 FR 55370) + href: https://www.govinfo.gov/content/pkg/FR-2017-11-21/pdf/2017-24877.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2019 (83 FR 52462) + href: https://www.govinfo.gov/content/pkg/FR-2018-10-17/pdf/2018-22530.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2020 (84 FR 61625) + href: https://www.govinfo.gov/content/pkg/FR-2019-11-13/pdf/2019-24440.pdf#page=3 + - title: "Medicare Part B premium rates beginning January 1, 2021 (85 FR 71904) #page 3-4" + href: https://www.govinfo.gov/content/pkg/FR-2020-11-12/pdf/2020-25029.pdf#page=3 + - title: Medicare Part B premium rates beginning January 1, 2022 (86 FR 64205) + href: https://www.govinfo.gov/content/pkg/FR-2021-11-17/pdf/2021-25050.pdf#page=4 + - title: Medicare Part B premium rates beginning January 1, 2023 (87 FR 59080) + href: https://www.govinfo.gov/content/pkg/FR-2022-09-29/pdf/2022-21090.pdf#page=4 + - title: 2026 Medicare Trustees Report, Table V.E3 + href: https://www.cms.gov/oact/tr/2026#page=215 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -14,50 +36,144 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + 2015-01-01: 85_001 + 2016-01-01: 85_001 + 2017-01-01: 85_001 + 2018-01-01: 85_001 + 2019-01-01: 85_001 + 2020-01-01: 87_001 + 2021-01-01: 88_001 + 2022-01-01: 91_001 + 2023-01-01: 97_001 2024-01-01: 103_001 2025-01-01: 106_001 2026-01-01: 109_001 amount: + 2015-01-01: 42.00 + 2016-01-01: 48.70 + 2017-01-01: 53.50 + 2018-01-01: 53.50 + 2019-01-01: 54.10 + 2020-01-01: 57.80 + 2021-01-01: 59.40 + 2022-01-01: 68.00 + 2023-01-01: 65.90 2024-01-01: 69.90 2025-01-01: 74 2026-01-01: 81.20 - threshold: + 2015-01-01: 107_001 + 2016-01-01: 107_001 + 2017-01-01: 107_001 + 2018-01-01: 107_001 + 2019-01-01: 107_001 + 2020-01-01: 109_001 + 2021-01-01: 111_001 + 2022-01-01: 114_001 + 2023-01-01: 123_001 2024-01-01: 129_001 2025-01-01: 133_001 2026-01-01: 137_001 amount: + 2015-01-01: 104.90 + 2016-01-01: 121.80 + 2017-01-01: 133.90 + 2018-01-01: 133.90 + 2019-01-01: 135.40 + 2020-01-01: 144.60 + 2021-01-01: 148.50 + 2022-01-01: 170.10 + 2023-01-01: 164.80 2024-01-01: 174.70 2025-01-01: 185 2026-01-01: 202.90 - threshold: + 2015-01-01: 160_001 + 2016-01-01: 160_001 + 2017-01-01: 160_001 + 2018-01-01: 133_501 + 2019-01-01: 133_501 + 2020-01-01: 136_001 + 2021-01-01: 138_001 + 2022-01-01: 142_001 + 2023-01-01: 153_001 2024-01-01: 161_001 2025-01-01: 167_001 2026-01-01: 171_001 amount: + 2015-01-01: 167.80 + 2016-01-01: 194.90 + 2017-01-01: 214.30 + 2018-01-01: 214.30 + 2019-01-01: 216.70 + 2020-01-01: 231.40 + 2021-01-01: 237.60 + 2022-01-01: 272.20 + 2023-01-01: 263.70 2024-01-01: 279.50 2025-01-01: 295.9 2026-01-01: 324.60 - threshold: + 2015-01-01: 214_001 + 2016-01-01: 214_001 + 2017-01-01: 214_001 + 2018-01-01: 160_001 + 2019-01-01: 160_001 + 2020-01-01: 163_001 + 2021-01-01: 165_001 + 2022-01-01: 170_001 + 2023-01-01: 183_001 2024-01-01: 193_001 2025-01-01: 200_001 2026-01-01: 205_001 amount: + 2015-01-01: 230.80 + 2016-01-01: 268.00 + 2017-01-01: 294.60 + 2018-01-01: 294.60 + 2019-01-01: 297.90 + 2020-01-01: 318.10 + 2021-01-01: 326.70 + 2022-01-01: 374.20 + 2023-01-01: 362.60 2024-01-01: 384.30 2025-01-01: 406.9 2026-01-01: 446.30 - threshold: + # The 85% tier begins in 2019 (Bipartisan Budget Act of 2018, section 53114). + 2015-01-01: .inf + 2016-01-01: .inf + 2017-01-01: .inf + 2018-01-01: .inf + 2019-01-01: 500_000 + 2020-01-01: 500_000 + 2021-01-01: 500_000 + 2022-01-01: 500_000 + 2023-01-01: 500_000 2024-01-01: 500_000 2025-01-01: 500_000 2026-01-01: 500_000 amount: + # Before 2019 the threshold is unreachable and the amount repeats the 80% tier. + 2015-01-01: 230.80 + 2016-01-01: 268.00 + 2017-01-01: 294.60 + 2018-01-01: 294.60 + 2019-01-01: 325.00 + 2020-01-01: 347.00 + 2021-01-01: 356.40 + 2022-01-01: 408.20 + 2023-01-01: 395.60 2024-01-01: 419.30 2025-01-01: 443.9 2026-01-01: 487 diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/head_of_household.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/head_of_household.yaml index c9c5403a23c..13b4b8a0e84 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/head_of_household.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/head_of_household.yaml @@ -12,6 +12,26 @@ metadata: href: https://www.law.cornell.edu/uscode/text/42/1395r#i - title: 42 CFR § 423.286(d)(4) - Part D IRMAA paid in addition to the Part D premium. href: https://www.law.cornell.edu/cfr/text/42/423.286#d_4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 31, 2014) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2015.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 29, 2015) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2016.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 29, 2016) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2017.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2017) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2018.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2018) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2019.pdf#page=4 + - title: CMS Office of the Actuary, 2020 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/Medicare/Health-Plans/MedicareAdvtgSpecRateStats/Downloads/PartDIRMAA2020.pdf#page=2 + - title: CMS Office of the Actuary, 2021 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/files/document/2021-part-d-income-related-monthly-premium-adjustment.pdf#page=2 + - title: 2022 Medicare Parts A & B Premiums and Deductibles and 2022 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2022-medicare-parts-b-premiums-deductibles-2022-medicare-part-d-income-related-monthly-adjustment + - title: 2023 Medicare Parts A & B Premiums and Deductibles and 2023 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2023-medicare-parts-b-premiums-and-deductibles-2023-medicare-part-d-income-related-monthly + - title: 2026 Medicare Trustees Report, Table V.E4 + href: https://www.cms.gov/oact/tr/2026#page=218 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -20,50 +40,144 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + 2015-01-01: 85_001 + 2016-01-01: 85_001 + 2017-01-01: 85_001 + 2018-01-01: 85_001 + 2019-01-01: 85_001 + 2020-01-01: 87_001 + 2021-01-01: 88_001 + 2022-01-01: 91_001 + 2023-01-01: 97_001 2024-01-01: 103_001 2025-01-01: 106_001 2026-01-01: 109_001 amount: + 2015-01-01: 12.30 + 2016-01-01: 12.70 + 2017-01-01: 13.30 + 2018-01-01: 13.00 + 2019-01-01: 12.40 + 2020-01-01: 12.20 + 2021-01-01: 12.30 + 2022-01-01: 12.40 + 2023-01-01: 12.20 2024-01-01: 12.90 2025-01-01: 13.70 2026-01-01: 14.50 - threshold: + 2015-01-01: 107_001 + 2016-01-01: 107_001 + 2017-01-01: 107_001 + 2018-01-01: 107_001 + 2019-01-01: 107_001 + 2020-01-01: 109_001 + 2021-01-01: 111_001 + 2022-01-01: 114_001 + 2023-01-01: 123_001 2024-01-01: 129_001 2025-01-01: 133_001 2026-01-01: 137_001 amount: + 2015-01-01: 31.80 + 2016-01-01: 32.80 + 2017-01-01: 34.20 + 2018-01-01: 33.60 + 2019-01-01: 31.90 + 2020-01-01: 31.50 + 2021-01-01: 31.80 + 2022-01-01: 32.10 + 2023-01-01: 31.50 2024-01-01: 33.30 2025-01-01: 35.30 2026-01-01: 37.50 - threshold: + 2015-01-01: 160_001 + 2016-01-01: 160_001 + 2017-01-01: 160_001 + 2018-01-01: 133_501 + 2019-01-01: 133_501 + 2020-01-01: 136_001 + 2021-01-01: 138_001 + 2022-01-01: 142_001 + 2023-01-01: 153_001 2024-01-01: 161_001 2025-01-01: 167_001 2026-01-01: 171_001 amount: + 2015-01-01: 51.30 + 2016-01-01: 52.80 + 2017-01-01: 55.20 + 2018-01-01: 54.20 + 2019-01-01: 51.40 + 2020-01-01: 50.70 + 2021-01-01: 51.20 + 2022-01-01: 51.70 + 2023-01-01: 50.70 2024-01-01: 53.80 2025-01-01: 57.00 2026-01-01: 60.40 - threshold: + 2015-01-01: 214_001 + 2016-01-01: 214_001 + 2017-01-01: 214_001 + 2018-01-01: 160_001 + 2019-01-01: 160_001 + 2020-01-01: 163_001 + 2021-01-01: 165_001 + 2022-01-01: 170_001 + 2023-01-01: 183_001 2024-01-01: 193_001 2025-01-01: 200_001 2026-01-01: 205_001 amount: + 2015-01-01: 70.80 + 2016-01-01: 72.90 + 2017-01-01: 76.20 + 2018-01-01: 74.80 + 2019-01-01: 70.90 + 2020-01-01: 70.00 + 2021-01-01: 70.70 + 2022-01-01: 71.30 + 2023-01-01: 70.00 2024-01-01: 74.20 2025-01-01: 78.60 2026-01-01: 83.30 - threshold: + # The 85% tier begins in 2019 (Bipartisan Budget Act of 2018, section 53114). + 2015-01-01: .inf + 2016-01-01: .inf + 2017-01-01: .inf + 2018-01-01: .inf + 2019-01-01: 500_000 + 2020-01-01: 500_000 + 2021-01-01: 500_000 + 2022-01-01: 500_000 + 2023-01-01: 500_000 2024-01-01: 500_000 2025-01-01: 500_000 2026-01-01: 500_000 amount: + # Before 2019 the threshold is unreachable and the amount repeats the 80% tier. + 2015-01-01: 70.80 + 2016-01-01: 72.90 + 2017-01-01: 76.20 + 2018-01-01: 74.80 + 2019-01-01: 77.40 + 2020-01-01: 76.40 + 2021-01-01: 77.10 + 2022-01-01: 77.90 + 2023-01-01: 76.40 2024-01-01: 81.00 2025-01-01: 85.80 2026-01-01: 91 diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/joint.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/joint.yaml index 4837285dfdb..11c2e7d00e0 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/joint.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/joint.yaml @@ -12,6 +12,26 @@ metadata: href: https://www.law.cornell.edu/uscode/text/42/1395r#i - title: 42 CFR § 423.286(d)(4) - Part D IRMAA paid in addition to the Part D premium. href: https://www.law.cornell.edu/cfr/text/42/423.286#d_4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 31, 2014) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2015.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 29, 2015) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2016.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 29, 2016) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2017.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2017) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2018.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2018) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2019.pdf#page=4 + - title: CMS Office of the Actuary, 2020 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/Medicare/Health-Plans/MedicareAdvtgSpecRateStats/Downloads/PartDIRMAA2020.pdf#page=2 + - title: CMS Office of the Actuary, 2021 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/files/document/2021-part-d-income-related-monthly-premium-adjustment.pdf#page=2 + - title: 2022 Medicare Parts A & B Premiums and Deductibles and 2022 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2022-medicare-parts-b-premiums-deductibles-2022-medicare-part-d-income-related-monthly-adjustment + - title: 2023 Medicare Parts A & B Premiums and Deductibles and 2023 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2023-medicare-parts-b-premiums-and-deductibles-2023-medicare-part-d-income-related-monthly + - title: 2026 Medicare Trustees Report, Table V.E4 + href: https://www.cms.gov/oact/tr/2026#page=218 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -20,50 +40,144 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + 2015-01-01: 170_001 + 2016-01-01: 170_001 + 2017-01-01: 170_001 + 2018-01-01: 170_001 + 2019-01-01: 170_001 + 2020-01-01: 174_001 + 2021-01-01: 176_001 + 2022-01-01: 182_001 + 2023-01-01: 194_001 2024-01-01: 206_001 2025-01-01: 212_001 2026-01-01: 218_001 amount: + 2015-01-01: 12.30 + 2016-01-01: 12.70 + 2017-01-01: 13.30 + 2018-01-01: 13.00 + 2019-01-01: 12.40 + 2020-01-01: 12.20 + 2021-01-01: 12.30 + 2022-01-01: 12.40 + 2023-01-01: 12.20 2024-01-01: 12.90 2025-01-01: 13.70 2026-01-01: 14.50 - threshold: + 2015-01-01: 214_001 + 2016-01-01: 214_001 + 2017-01-01: 214_001 + 2018-01-01: 214_001 + 2019-01-01: 214_001 + 2020-01-01: 218_001 + 2021-01-01: 222_001 + 2022-01-01: 228_001 + 2023-01-01: 246_001 2024-01-01: 258_001 2025-01-01: 266_001 2026-01-01: 274_001 amount: + 2015-01-01: 31.80 + 2016-01-01: 32.80 + 2017-01-01: 34.20 + 2018-01-01: 33.60 + 2019-01-01: 31.90 + 2020-01-01: 31.50 + 2021-01-01: 31.80 + 2022-01-01: 32.10 + 2023-01-01: 31.50 2024-01-01: 33.30 2025-01-01: 35.30 2026-01-01: 37.50 - threshold: + 2015-01-01: 320_001 + 2016-01-01: 320_001 + 2017-01-01: 320_001 + 2018-01-01: 267_001 + 2019-01-01: 267_001 + 2020-01-01: 272_001 + 2021-01-01: 276_001 + 2022-01-01: 284_001 + 2023-01-01: 306_001 2024-01-01: 322_001 2025-01-01: 334_001 2026-01-01: 342_001 amount: + 2015-01-01: 51.30 + 2016-01-01: 52.80 + 2017-01-01: 55.20 + 2018-01-01: 54.20 + 2019-01-01: 51.40 + 2020-01-01: 50.70 + 2021-01-01: 51.20 + 2022-01-01: 51.70 + 2023-01-01: 50.70 2024-01-01: 53.80 2025-01-01: 57.00 2026-01-01: 60.40 - threshold: + 2015-01-01: 428_001 + 2016-01-01: 428_001 + 2017-01-01: 428_001 + 2018-01-01: 320_001 + 2019-01-01: 320_001 + 2020-01-01: 326_001 + 2021-01-01: 330_001 + 2022-01-01: 340_001 + 2023-01-01: 366_001 2024-01-01: 386_001 2025-01-01: 400_001 2026-01-01: 410_001 amount: + 2015-01-01: 70.80 + 2016-01-01: 72.90 + 2017-01-01: 76.20 + 2018-01-01: 74.80 + 2019-01-01: 70.90 + 2020-01-01: 70.00 + 2021-01-01: 70.70 + 2022-01-01: 71.30 + 2023-01-01: 70.00 2024-01-01: 74.20 2025-01-01: 78.60 2026-01-01: 83.30 - threshold: + # The 85% tier begins in 2019 (Bipartisan Budget Act of 2018, section 53114). + 2015-01-01: .inf + 2016-01-01: .inf + 2017-01-01: .inf + 2018-01-01: .inf + 2019-01-01: 750_000 + 2020-01-01: 750_000 + 2021-01-01: 750_000 + 2022-01-01: 750_000 + 2023-01-01: 750_000 2024-01-01: 750_000 2025-01-01: 750_000 2026-01-01: 750_000 amount: + # Before 2019 the threshold is unreachable and the amount repeats the 80% tier. + 2015-01-01: 70.80 + 2016-01-01: 72.90 + 2017-01-01: 76.20 + 2018-01-01: 74.80 + 2019-01-01: 77.40 + 2020-01-01: 76.40 + 2021-01-01: 77.10 + 2022-01-01: 77.90 + 2023-01-01: 76.40 2024-01-01: 81.00 2025-01-01: 85.80 2026-01-01: 91 diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/separate.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/separate.yaml index dfb4259c3c4..17a78465e1d 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/separate.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/separate.yaml @@ -12,6 +12,26 @@ metadata: href: https://www.law.cornell.edu/uscode/text/42/1395r#i - title: 42 CFR § 423.286(d)(4) - Part D IRMAA paid in addition to the Part D premium. href: https://www.law.cornell.edu/cfr/text/42/423.286#d_4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 31, 2014) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2015.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 29, 2015) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2016.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 29, 2016) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2017.pdf#page=5 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2017) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2018.pdf#page=5 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2018) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2019.pdf#page=5 + - title: CMS Office of the Actuary, 2020 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/Medicare/Health-Plans/MedicareAdvtgSpecRateStats/Downloads/PartDIRMAA2020.pdf#page=3 + - title: CMS Office of the Actuary, 2021 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/files/document/2021-part-d-income-related-monthly-premium-adjustment.pdf#page=3 + - title: 2022 Medicare Parts A & B Premiums and Deductibles and 2022 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2022-medicare-parts-b-premiums-deductibles-2022-medicare-part-d-income-related-monthly-adjustment + - title: 2023 Medicare Parts A & B Premiums and Deductibles and 2023 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2023-medicare-parts-b-premiums-and-deductibles-2023-medicare-part-d-income-related-monthly + - title: 2026 Medicare Trustees Report, Table V.E4 + href: https://www.cms.gov/oact/tr/2026#page=218 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -20,26 +40,70 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + # The 65% tier before 2018 and the 80% tier from 2018. + 2015-01-01: 85_001 + 2016-01-01: 85_001 + 2017-01-01: 85_001 + 2018-01-01: 85_001 + 2019-01-01: 85_001 + 2020-01-01: 87_001 + 2021-01-01: 88_001 + 2022-01-01: 91_001 + 2023-01-01: 97_001 2024-01-01: 103_001 2025-01-01: 106_001 2026-01-01: 109_001 amount: + 2015-01-01: 51.30 + 2016-01-01: 52.80 + 2017-01-01: 55.20 + 2018-01-01: 74.80 + 2019-01-01: 70.90 + 2020-01-01: 70.00 + 2021-01-01: 70.70 + 2022-01-01: 71.30 + 2023-01-01: 70.00 2024-01-01: 74.20 2025-01-01: 78.60 2026-01-01: 83.30 - threshold: + # The 80% tier before 2018 and the 85% tier from 2019. Married filing + # separately reduces each individual dollar amount by the $85,000 + # threshold (42 U.S.C. 1395r(i)(3)(C)(iii)); in 2018 the 65% tier then + # ended at $75,000, below the threshold, so only the 80% tier applied. + 2015-01-01: 129_001 + 2016-01-01: 129_001 + 2017-01-01: 129_001 + 2018-01-01: .inf + 2019-01-01: 415_000 + 2020-01-01: 413_000 + 2021-01-01: 412_000 + 2022-01-01: 409_000 + 2023-01-01: 403_000 2024-01-01: 397_000 2025-01-01: 394_000 2026-01-01: 391_000 amount: + # 2018 repeats the 80% tier amount; its threshold is unreachable. + 2015-01-01: 70.80 + 2016-01-01: 72.90 + 2017-01-01: 76.20 + 2018-01-01: 74.80 + 2019-01-01: 77.40 + 2020-01-01: 76.40 + 2021-01-01: 77.10 + 2022-01-01: 77.90 + 2023-01-01: 76.40 2024-01-01: 81.00 2025-01-01: 85.80 2026-01-01: 91 diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/single.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/single.yaml index 7c79e99ee12..569aed99af4 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/single.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/single.yaml @@ -12,6 +12,26 @@ metadata: href: https://www.law.cornell.edu/uscode/text/42/1395r#i - title: 42 CFR § 423.286(d)(4) - Part D IRMAA paid in addition to the Part D premium. href: https://www.law.cornell.edu/cfr/text/42/423.286#d_4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 31, 2014) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2015.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 29, 2015) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2016.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 29, 2016) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2017.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2017) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2018.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2018) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2019.pdf#page=4 + - title: CMS Office of the Actuary, 2020 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/Medicare/Health-Plans/MedicareAdvtgSpecRateStats/Downloads/PartDIRMAA2020.pdf#page=2 + - title: CMS Office of the Actuary, 2021 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/files/document/2021-part-d-income-related-monthly-premium-adjustment.pdf#page=2 + - title: 2022 Medicare Parts A & B Premiums and Deductibles and 2022 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2022-medicare-parts-b-premiums-deductibles-2022-medicare-part-d-income-related-monthly-adjustment + - title: 2023 Medicare Parts A & B Premiums and Deductibles and 2023 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2023-medicare-parts-b-premiums-and-deductibles-2023-medicare-part-d-income-related-monthly + - title: 2026 Medicare Trustees Report, Table V.E4 + href: https://www.cms.gov/oact/tr/2026#page=218 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -20,50 +40,144 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + 2015-01-01: 85_001 + 2016-01-01: 85_001 + 2017-01-01: 85_001 + 2018-01-01: 85_001 + 2019-01-01: 85_001 + 2020-01-01: 87_001 + 2021-01-01: 88_001 + 2022-01-01: 91_001 + 2023-01-01: 97_001 2024-01-01: 103_001 2025-01-01: 106_001 2026-01-01: 109_001 amount: + 2015-01-01: 12.30 + 2016-01-01: 12.70 + 2017-01-01: 13.30 + 2018-01-01: 13.00 + 2019-01-01: 12.40 + 2020-01-01: 12.20 + 2021-01-01: 12.30 + 2022-01-01: 12.40 + 2023-01-01: 12.20 2024-01-01: 12.90 2025-01-01: 13.70 2026-01-01: 14.50 - threshold: + 2015-01-01: 107_001 + 2016-01-01: 107_001 + 2017-01-01: 107_001 + 2018-01-01: 107_001 + 2019-01-01: 107_001 + 2020-01-01: 109_001 + 2021-01-01: 111_001 + 2022-01-01: 114_001 + 2023-01-01: 123_001 2024-01-01: 129_001 2025-01-01: 133_001 2026-01-01: 137_001 amount: + 2015-01-01: 31.80 + 2016-01-01: 32.80 + 2017-01-01: 34.20 + 2018-01-01: 33.60 + 2019-01-01: 31.90 + 2020-01-01: 31.50 + 2021-01-01: 31.80 + 2022-01-01: 32.10 + 2023-01-01: 31.50 2024-01-01: 33.30 2025-01-01: 35.30 2026-01-01: 37.50 - threshold: + 2015-01-01: 160_001 + 2016-01-01: 160_001 + 2017-01-01: 160_001 + 2018-01-01: 133_501 + 2019-01-01: 133_501 + 2020-01-01: 136_001 + 2021-01-01: 138_001 + 2022-01-01: 142_001 + 2023-01-01: 153_001 2024-01-01: 161_001 2025-01-01: 167_001 2026-01-01: 171_001 amount: + 2015-01-01: 51.30 + 2016-01-01: 52.80 + 2017-01-01: 55.20 + 2018-01-01: 54.20 + 2019-01-01: 51.40 + 2020-01-01: 50.70 + 2021-01-01: 51.20 + 2022-01-01: 51.70 + 2023-01-01: 50.70 2024-01-01: 53.80 2025-01-01: 57.00 2026-01-01: 60.40 - threshold: + 2015-01-01: 214_001 + 2016-01-01: 214_001 + 2017-01-01: 214_001 + 2018-01-01: 160_001 + 2019-01-01: 160_001 + 2020-01-01: 163_001 + 2021-01-01: 165_001 + 2022-01-01: 170_001 + 2023-01-01: 183_001 2024-01-01: 193_001 2025-01-01: 200_001 2026-01-01: 205_001 amount: + 2015-01-01: 70.80 + 2016-01-01: 72.90 + 2017-01-01: 76.20 + 2018-01-01: 74.80 + 2019-01-01: 70.90 + 2020-01-01: 70.00 + 2021-01-01: 70.70 + 2022-01-01: 71.30 + 2023-01-01: 70.00 2024-01-01: 74.20 2025-01-01: 78.60 2026-01-01: 83.30 - threshold: + # The 85% tier begins in 2019 (Bipartisan Budget Act of 2018, section 53114). + 2015-01-01: .inf + 2016-01-01: .inf + 2017-01-01: .inf + 2018-01-01: .inf + 2019-01-01: 500_000 + 2020-01-01: 500_000 + 2021-01-01: 500_000 + 2022-01-01: 500_000 + 2023-01-01: 500_000 2024-01-01: 500_000 2025-01-01: 500_000 2026-01-01: 500_000 amount: + # Before 2019 the threshold is unreachable and the amount repeats the 80% tier. + 2015-01-01: 70.80 + 2016-01-01: 72.90 + 2017-01-01: 76.20 + 2018-01-01: 74.80 + 2019-01-01: 77.40 + 2020-01-01: 76.40 + 2021-01-01: 77.10 + 2022-01-01: 77.90 + 2023-01-01: 76.40 2024-01-01: 81.00 2025-01-01: 85.80 2026-01-01: 91 diff --git a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/surviving_spouse.yaml b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/surviving_spouse.yaml index 749583c717b..c7c0c496c44 100644 --- a/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/surviving_spouse.yaml +++ b/policyengine_us/parameters/gov/hhs/medicare/part_d/irmaa/surviving_spouse.yaml @@ -12,6 +12,26 @@ metadata: href: https://www.law.cornell.edu/uscode/text/42/1395r#i - title: 42 CFR § 423.286(d)(4) - Part D IRMAA paid in addition to the Part D premium. href: https://www.law.cornell.edu/cfr/text/42/423.286#d_4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 31, 2014) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2015.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and other Part C & D Bid Information (July 29, 2015) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2016.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 29, 2016) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2017.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2017) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2018.pdf#page=4 + - title: CMS, Annual Release of Part D National Average Bid Amount and Other Part C & D Bid Information (July 31, 2018) + href: https://www.cms.gov/medicare/health-plans/medicareadvtgspecratestats/downloads/partdandmabenchmarks2019.pdf#page=4 + - title: CMS Office of the Actuary, 2020 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/Medicare/Health-Plans/MedicareAdvtgSpecRateStats/Downloads/PartDIRMAA2020.pdf#page=2 + - title: CMS Office of the Actuary, 2021 Part D Income-Related Monthly Premium Adjustment + href: https://www.cms.gov/files/document/2021-part-d-income-related-monthly-premium-adjustment.pdf#page=2 + - title: 2022 Medicare Parts A & B Premiums and Deductibles and 2022 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2022-medicare-parts-b-premiums-deductibles-2022-medicare-part-d-income-related-monthly-adjustment + - title: 2023 Medicare Parts A & B Premiums and Deductibles and 2023 Medicare Part D Income-Related Monthly Adjustment Amounts + href: https://www.cms.gov/newsroom/fact-sheets/2023-medicare-parts-b-premiums-and-deductibles-2023-medicare-part-d-income-related-monthly + - title: 2026 Medicare Trustees Report, Table V.E4 + href: https://www.cms.gov/oact/tr/2026#page=218 - title: 2024 Medicare Parts A & B Premiums and Deductibles href: https://www.cms.gov/newsroom/fact-sheets/2024-medicare-parts-b-premiums-and-deductibles - title: 2025 Medicare Parts A & B Premiums and Deductibles @@ -20,50 +40,144 @@ metadata: href: https://www.cms.gov/newsroom/fact-sheets/2026-medicare-parts-b-premiums-deductibles brackets: - threshold: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 amount: + 2015-01-01: 0 2024-01-01: 0 2025-01-01: 0 2026-01-01: 0 - threshold: + 2015-01-01: 85_001 + 2016-01-01: 85_001 + 2017-01-01: 85_001 + 2018-01-01: 85_001 + 2019-01-01: 85_001 + 2020-01-01: 87_001 + 2021-01-01: 88_001 + 2022-01-01: 91_001 + 2023-01-01: 97_001 2024-01-01: 103_001 2025-01-01: 106_001 2026-01-01: 109_001 amount: + 2015-01-01: 12.30 + 2016-01-01: 12.70 + 2017-01-01: 13.30 + 2018-01-01: 13.00 + 2019-01-01: 12.40 + 2020-01-01: 12.20 + 2021-01-01: 12.30 + 2022-01-01: 12.40 + 2023-01-01: 12.20 2024-01-01: 12.90 2025-01-01: 13.70 2026-01-01: 14.50 - threshold: + 2015-01-01: 107_001 + 2016-01-01: 107_001 + 2017-01-01: 107_001 + 2018-01-01: 107_001 + 2019-01-01: 107_001 + 2020-01-01: 109_001 + 2021-01-01: 111_001 + 2022-01-01: 114_001 + 2023-01-01: 123_001 2024-01-01: 129_001 2025-01-01: 133_001 2026-01-01: 137_001 amount: + 2015-01-01: 31.80 + 2016-01-01: 32.80 + 2017-01-01: 34.20 + 2018-01-01: 33.60 + 2019-01-01: 31.90 + 2020-01-01: 31.50 + 2021-01-01: 31.80 + 2022-01-01: 32.10 + 2023-01-01: 31.50 2024-01-01: 33.30 2025-01-01: 35.30 2026-01-01: 37.50 - threshold: + 2015-01-01: 160_001 + 2016-01-01: 160_001 + 2017-01-01: 160_001 + 2018-01-01: 133_501 + 2019-01-01: 133_501 + 2020-01-01: 136_001 + 2021-01-01: 138_001 + 2022-01-01: 142_001 + 2023-01-01: 153_001 2024-01-01: 161_001 2025-01-01: 167_001 2026-01-01: 171_001 amount: + 2015-01-01: 51.30 + 2016-01-01: 52.80 + 2017-01-01: 55.20 + 2018-01-01: 54.20 + 2019-01-01: 51.40 + 2020-01-01: 50.70 + 2021-01-01: 51.20 + 2022-01-01: 51.70 + 2023-01-01: 50.70 2024-01-01: 53.80 2025-01-01: 57.00 2026-01-01: 60.40 - threshold: + 2015-01-01: 214_001 + 2016-01-01: 214_001 + 2017-01-01: 214_001 + 2018-01-01: 160_001 + 2019-01-01: 160_001 + 2020-01-01: 163_001 + 2021-01-01: 165_001 + 2022-01-01: 170_001 + 2023-01-01: 183_001 2024-01-01: 193_001 2025-01-01: 200_001 2026-01-01: 205_001 amount: + 2015-01-01: 70.80 + 2016-01-01: 72.90 + 2017-01-01: 76.20 + 2018-01-01: 74.80 + 2019-01-01: 70.90 + 2020-01-01: 70.00 + 2021-01-01: 70.70 + 2022-01-01: 71.30 + 2023-01-01: 70.00 2024-01-01: 74.20 2025-01-01: 78.60 2026-01-01: 83.30 - threshold: + # The 85% tier begins in 2019 (Bipartisan Budget Act of 2018, section 53114). + 2015-01-01: .inf + 2016-01-01: .inf + 2017-01-01: .inf + 2018-01-01: .inf + 2019-01-01: 500_000 + 2020-01-01: 500_000 + 2021-01-01: 500_000 + 2022-01-01: 500_000 + 2023-01-01: 500_000 2024-01-01: 500_000 2025-01-01: 500_000 2026-01-01: 500_000 amount: + # Before 2019 the threshold is unreachable and the amount repeats the 80% tier. + 2015-01-01: 70.80 + 2016-01-01: 72.90 + 2017-01-01: 76.20 + 2018-01-01: 74.80 + 2019-01-01: 77.40 + 2020-01-01: 76.40 + 2021-01-01: 77.10 + 2022-01-01: 77.90 + 2023-01-01: 76.40 2024-01-01: 81.00 2025-01-01: 85.80 2026-01-01: 91 diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml index 0711fd86c9f..ed996b9221b 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/base_part_b_premium.yaml @@ -37,3 +37,51 @@ is_medicare_eligible: true output: base_part_b_premium: 2_434.80 # $202.90 * 12 months + +- name: Standard premium in 2015. + period: 2015 + input: + age: 65 + is_medicare_eligible: true + output: + base_part_b_premium: 1_258.8 # $104.90 * 12 months + +- name: Standard premium in 2016. + period: 2016 + input: + age: 65 + is_medicare_eligible: true + output: + base_part_b_premium: 1_461.6 # $121.80 * 12 months + +- name: Standard premium in 2017. + period: 2017 + input: + age: 65 + is_medicare_eligible: true + output: + base_part_b_premium: 1_608 # $134.00 * 12 months + +- name: Standard premium in 2018. + period: 2018 + input: + age: 65 + is_medicare_eligible: true + output: + base_part_b_premium: 1_608 # $134.00 * 12 months + +- name: Standard premium in 2019. + period: 2019 + input: + age: 65 + is_medicare_eligible: true + output: + base_part_b_premium: 1_626 # $135.50 * 12 months + +- name: Standard premium in 2020. + period: 2020 + input: + age: 65 + is_medicare_eligible: true + output: + base_part_b_premium: 1_735.2 # $144.60 * 12 months diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/gross_medicare_part_b_premium.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/gross_medicare_part_b_premium.yaml new file mode 100644 index 00000000000..ff7d4aa6188 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/gross_medicare_part_b_premium.yaml @@ -0,0 +1,1776 @@ +# Part B premiums for 2015-2023, from the Federal Register notices of the +# Part B premium rates for each year: the standard premium plus the +# income-related monthly adjustment amount for the tier, times 12. Each person +# is a separate tax unit with MAGI from two years prior provided directly. +# Thresholds are "more than $X" for the first four tiers and "at least $X" for +# the 85% tier, which the Bipartisan Budget Act of 2018 added for 2019. + +- name: 2015 single filers across the Part B premium tiers. + period: 2015 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $104.90 a month + # MAGI 85,001, lowest income in the 35% tier: $146.90 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $209.80 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $272.70 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $335.70 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $335.70 (80%) a month + gross_medicare_part_b_premium: [1_258.8, 1_762.8, 2_517.6, 3_272.4, 4_028.4, 4_028.4] + +- name: 2015 joint filers across the Part B premium tiers. + period: 2015 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 428_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 170,000, at the threshold: $104.90 a month + # MAGI 170,001, lowest income in the 35% tier: $146.90 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $209.80 (50%) a month + # MAGI 320,001, lowest income in the 65% tier: $272.70 (65%) a month + # MAGI 428,001, lowest income in the 80% tier: $335.70 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $335.70 (80%) a month + gross_medicare_part_b_premium: [1_258.8, 1_762.8, 2_517.6, 3_272.4, 4_028.4, 4_028.4] + +- name: 2015 married filing separately filers across the Part B premium tiers. + period: 2015 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_000 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_001 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 85,000, at the threshold: $104.90 a month + # MAGI 85,001, just above it: $272.70 (65%) a month + # MAGI 129,000, at the second threshold: $272.70 (65%) a month + # MAGI 129,001, just above it: $335.70 (80%) a month + # MAGI 2,000,000, far above every threshold: $335.70 (80%) a month + gross_medicare_part_b_premium: [1_258.8, 3_272.4, 3_272.4, 4_028.4, 4_028.4] + +- name: 2016 single filers across the Part B premium tiers. + period: 2016 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $121.80 a month + # MAGI 85,001, lowest income in the 35% tier: $170.50 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $243.60 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $316.70 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $389.80 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $389.80 (80%) a month + gross_medicare_part_b_premium: [1_461.6, 2_046, 2_923.2, 3_800.4, 4_677.6, 4_677.6] + +- name: 2016 head of household filers across the Part B premium tiers. + period: 2016 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $121.80 a month + # MAGI 85,001, lowest income in the 35% tier: $170.50 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $243.60 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $316.70 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $389.80 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $389.80 (80%) a month + gross_medicare_part_b_premium: [1_461.6, 2_046, 2_923.2, 3_800.4, 4_677.6, 4_677.6] + +- name: 2016 surviving spouse filers across the Part B premium tiers. + period: 2016 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $121.80 a month + # MAGI 85,001, lowest income in the 35% tier: $170.50 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $243.60 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $316.70 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $389.80 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $389.80 (80%) a month + gross_medicare_part_b_premium: [1_461.6, 2_046, 2_923.2, 3_800.4, 4_677.6, 4_677.6] + +- name: 2016 joint filers across the Part B premium tiers. + period: 2016 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 428_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 170,000, at the threshold: $121.80 a month + # MAGI 170,001, lowest income in the 35% tier: $170.50 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $243.60 (50%) a month + # MAGI 320,001, lowest income in the 65% tier: $316.70 (65%) a month + # MAGI 428,001, lowest income in the 80% tier: $389.80 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $389.80 (80%) a month + gross_medicare_part_b_premium: [1_461.6, 2_046, 2_923.2, 3_800.4, 4_677.6, 4_677.6] + +- name: 2016 married filing separately filers across the Part B premium tiers. + period: 2016 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_000 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_001 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 85,000, at the threshold: $121.80 a month + # MAGI 85,001, just above it: $316.70 (65%) a month + # MAGI 129,000, at the second threshold: $316.70 (65%) a month + # MAGI 129,001, just above it: $389.80 (80%) a month + # MAGI 2,000,000, far above every threshold: $389.80 (80%) a month + gross_medicare_part_b_premium: [1_461.6, 3_800.4, 3_800.4, 4_677.6, 4_677.6] + +- name: 2017 single filers across the Part B premium tiers. + period: 2017 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $134.00 a month + # MAGI 85,001, lowest income in the 35% tier: $187.50 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $267.90 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $348.30 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $428.60 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $428.60 (80%) a month + gross_medicare_part_b_premium: [1_608, 2_250, 3_214.8, 4_179.6, 5_143.2, 5_143.2] + +- name: 2017 joint filers across the Part B premium tiers. + period: 2017 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 428_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 170,000, at the threshold: $134.00 a month + # MAGI 170,001, lowest income in the 35% tier: $187.50 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $267.90 (50%) a month + # MAGI 320,001, lowest income in the 65% tier: $348.30 (65%) a month + # MAGI 428,001, lowest income in the 80% tier: $428.60 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $428.60 (80%) a month + gross_medicare_part_b_premium: [1_608, 2_250, 3_214.8, 4_179.6, 5_143.2, 5_143.2] + +- name: 2017 married filing separately filers across the Part B premium tiers. + period: 2017 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_000 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_001 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 85,000, at the threshold: $134.00 a month + # MAGI 85,001, just above it: $348.30 (65%) a month + # MAGI 129,000, at the second threshold: $348.30 (65%) a month + # MAGI 129,001, just above it: $428.60 (80%) a month + # MAGI 2,000,000, far above every threshold: $428.60 (80%) a month + gross_medicare_part_b_premium: [1_608, 4_179.6, 4_179.6, 5_143.2, 5_143.2] + +- name: 2018 single filers across the Part B premium tiers. + period: 2018 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 133_501 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $134.00 a month + # MAGI 85,001, lowest income in the 35% tier: $187.50 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $267.90 (50%) a month + # MAGI 133,501, lowest income in the 65% tier: $348.30 (65%) a month + # MAGI 160,001, lowest income in the 80% tier: $428.60 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $428.60 (80%) a month + gross_medicare_part_b_premium: [1_608, 2_250, 3_214.8, 4_179.6, 5_143.2, 5_143.2] + +- name: 2018 joint filers across the Part B premium tiers. + period: 2018 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 267_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 170,000, at the threshold: $134.00 a month + # MAGI 170,001, lowest income in the 35% tier: $187.50 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $267.90 (50%) a month + # MAGI 267,001, lowest income in the 65% tier: $348.30 (65%) a month + # MAGI 320,001, lowest income in the 80% tier: $428.60 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $428.60 (80%) a month + gross_medicare_part_b_premium: [1_608, 2_250, 3_214.8, 4_179.6, 5_143.2, 5_143.2] + +- name: 2018 married filing separately filers across the Part B premium tiers. + period: 2018 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3] + output: + # MAGI 85,000, at the threshold: $134.00 a month + # MAGI 85,001, just above it: $428.60 (80%) a month + # MAGI 2,000,000, far above every threshold: $428.60 (80%) a month + gross_medicare_part_b_premium: [1_608, 5_143.2, 5_143.2] + +- name: 2019 single filers across the Part B premium tiers. + period: 2019 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 133_501 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 85,000, at the threshold: $135.50 a month + # MAGI 85,001, lowest income in the 35% tier: $189.60 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $270.90 (50%) a month + # MAGI 133,501, lowest income in the 65% tier: $352.20 (65%) a month + # MAGI 160,001, lowest income in the 80% tier: $433.40 (80%) a month + # MAGI 499,999, just below the 85% tier: $433.40 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $460.50 (85%) a month + gross_medicare_part_b_premium: [1_626, 2_275.2, 3_250.8, 4_226.4, 5_200.8, 5_200.8, 5_526] + +- name: 2019 head of household filers across the Part B premium tiers. + period: 2019 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 133_501 + tax_unit5: + members: [person5] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit6: + members: [person6] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 85,000, at the threshold: $135.50 a month + # MAGI 85,001, lowest income in the 35% tier: $189.60 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $270.90 (50%) a month + # MAGI 133,501, lowest income in the 65% tier: $352.20 (65%) a month + # MAGI 160,001, lowest income in the 80% tier: $433.40 (80%) a month + # MAGI 499,999, just below the 85% tier: $433.40 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $460.50 (85%) a month + gross_medicare_part_b_premium: [1_626, 2_275.2, 3_250.8, 4_226.4, 5_200.8, 5_200.8, 5_526] + +- name: 2019 surviving spouse filers across the Part B premium tiers. + period: 2019 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 133_501 + tax_unit5: + members: [person5] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit6: + members: [person6] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 85,000, at the threshold: $135.50 a month + # MAGI 85,001, lowest income in the 35% tier: $189.60 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $270.90 (50%) a month + # MAGI 133,501, lowest income in the 65% tier: $352.20 (65%) a month + # MAGI 160,001, lowest income in the 80% tier: $433.40 (80%) a month + # MAGI 499,999, just below the 85% tier: $433.40 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $460.50 (85%) a month + gross_medicare_part_b_premium: [1_626, 2_275.2, 3_250.8, 4_226.4, 5_200.8, 5_200.8, 5_526] + +- name: 2019 joint filers across the Part B premium tiers. + period: 2019 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 267_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 170,000, at the threshold: $135.50 a month + # MAGI 170,001, lowest income in the 35% tier: $189.60 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $270.90 (50%) a month + # MAGI 267,001, lowest income in the 65% tier: $352.20 (65%) a month + # MAGI 320,001, lowest income in the 80% tier: $433.40 (80%) a month + # MAGI 749,999, just below the 85% tier: $433.40 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $460.50 (85%) a month + gross_medicare_part_b_premium: [1_626, 2_275.2, 3_250.8, 4_226.4, 5_200.8, 5_200.8, 5_526] + +- name: 2019 married filing separately filers across the Part B premium tiers. + period: 2019 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 414_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 415_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 85,000, at the threshold: $135.50 a month + # MAGI 85,001, just above it: $433.40 (80%) a month + # MAGI 414,999, just below the top tier: $433.40 (80%) a month + # MAGI 415,000, at the top tier: $460.50 (85%) a month + # MAGI 2,000,000, far above every threshold: $460.50 (85%) a month + gross_medicare_part_b_premium: [1_626, 5_200.8, 5_200.8, 5_526, 5_526] + +- name: 2020 single filers across the Part B premium tiers. + period: 2020 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 87_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 87_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 109_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 136_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 163_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 87,000, at the threshold: $144.60 a month + # MAGI 87,001, lowest income in the 35% tier: $202.40 (35%) a month + # MAGI 109,001, lowest income in the 50% tier: $289.20 (50%) a month + # MAGI 136,001, lowest income in the 65% tier: $376.00 (65%) a month + # MAGI 163,001, lowest income in the 80% tier: $462.70 (80%) a month + # MAGI 499,999, just below the 85% tier: $462.70 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $491.60 (85%) a month + gross_medicare_part_b_premium: [1_735.2, 2_428.8, 3_470.4, 4_512, 5_552.4, 5_552.4, 5_899.2] + +- name: 2020 joint filers across the Part B premium tiers. + period: 2020 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 174_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 174_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 218_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 272_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 326_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 174,000, at the threshold: $144.60 a month + # MAGI 174,001, lowest income in the 35% tier: $202.40 (35%) a month + # MAGI 218,001, lowest income in the 50% tier: $289.20 (50%) a month + # MAGI 272,001, lowest income in the 65% tier: $376.00 (65%) a month + # MAGI 326,001, lowest income in the 80% tier: $462.70 (80%) a month + # MAGI 749,999, just below the 85% tier: $462.70 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $491.60 (85%) a month + gross_medicare_part_b_premium: [1_735.2, 2_428.8, 3_470.4, 4_512, 5_552.4, 5_552.4, 5_899.2] + +- name: 2020 married filing separately filers across the Part B premium tiers. + period: 2020 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 87_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 87_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 412_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 413_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 87,000, at the threshold: $144.60 a month + # MAGI 87,001, just above it: $462.70 (80%) a month + # MAGI 412,999, just below the top tier: $462.70 (80%) a month + # MAGI 413,000, at the top tier: $491.60 (85%) a month + # MAGI 2,000,000, far above every threshold: $491.60 (85%) a month + gross_medicare_part_b_premium: [1_735.2, 5_552.4, 5_552.4, 5_899.2, 5_899.2] + +- name: 2021 single filers across the Part B premium tiers. + period: 2021 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 88_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 88_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 111_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 138_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 165_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 88,000, at the threshold: $148.50 a month + # MAGI 88,001, lowest income in the 35% tier: $207.90 (35%) a month + # MAGI 111,001, lowest income in the 50% tier: $297.00 (50%) a month + # MAGI 138,001, lowest income in the 65% tier: $386.10 (65%) a month + # MAGI 165,001, lowest income in the 80% tier: $475.20 (80%) a month + # MAGI 499,999, just below the 85% tier: $475.20 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $504.90 (85%) a month + gross_medicare_part_b_premium: [1_782, 2_494.8, 3_564, 4_633.2, 5_702.4, 5_702.4, 6_058.8] + +- name: 2021 head of household filers across the Part B premium tiers. + period: 2021 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 88_000 + tax_unit2: + members: [person2] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 88_001 + tax_unit3: + members: [person3] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 111_001 + tax_unit4: + members: [person4] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 138_001 + tax_unit5: + members: [person5] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 165_001 + tax_unit6: + members: [person6] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 88,000, at the threshold: $148.50 a month + # MAGI 88,001, lowest income in the 35% tier: $207.90 (35%) a month + # MAGI 111,001, lowest income in the 50% tier: $297.00 (50%) a month + # MAGI 138,001, lowest income in the 65% tier: $386.10 (65%) a month + # MAGI 165,001, lowest income in the 80% tier: $475.20 (80%) a month + # MAGI 499,999, just below the 85% tier: $475.20 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $504.90 (85%) a month + gross_medicare_part_b_premium: [1_782, 2_494.8, 3_564, 4_633.2, 5_702.4, 5_702.4, 6_058.8] + +- name: 2021 surviving spouse filers across the Part B premium tiers. + period: 2021 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 88_000 + tax_unit2: + members: [person2] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 88_001 + tax_unit3: + members: [person3] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 111_001 + tax_unit4: + members: [person4] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 138_001 + tax_unit5: + members: [person5] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 165_001 + tax_unit6: + members: [person6] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 88,000, at the threshold: $148.50 a month + # MAGI 88,001, lowest income in the 35% tier: $207.90 (35%) a month + # MAGI 111,001, lowest income in the 50% tier: $297.00 (50%) a month + # MAGI 138,001, lowest income in the 65% tier: $386.10 (65%) a month + # MAGI 165,001, lowest income in the 80% tier: $475.20 (80%) a month + # MAGI 499,999, just below the 85% tier: $475.20 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $504.90 (85%) a month + gross_medicare_part_b_premium: [1_782, 2_494.8, 3_564, 4_633.2, 5_702.4, 5_702.4, 6_058.8] + +- name: 2021 joint filers across the Part B premium tiers. + period: 2021 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 176_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 176_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 222_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 276_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 330_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 176,000, at the threshold: $148.50 a month + # MAGI 176,001, lowest income in the 35% tier: $207.90 (35%) a month + # MAGI 222,001, lowest income in the 50% tier: $297.00 (50%) a month + # MAGI 276,001, lowest income in the 65% tier: $386.10 (65%) a month + # MAGI 330,001, lowest income in the 80% tier: $475.20 (80%) a month + # MAGI 749,999, just below the 85% tier: $475.20 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $504.90 (85%) a month + gross_medicare_part_b_premium: [1_782, 2_494.8, 3_564, 4_633.2, 5_702.4, 5_702.4, 6_058.8] + +- name: 2021 married filing separately filers across the Part B premium tiers. + period: 2021 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 88_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 88_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 411_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 412_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 88,000, at the threshold: $148.50 a month + # MAGI 88,001, just above it: $475.20 (80%) a month + # MAGI 411,999, just below the top tier: $475.20 (80%) a month + # MAGI 412,000, at the top tier: $504.90 (85%) a month + # MAGI 2,000,000, far above every threshold: $504.90 (85%) a month + gross_medicare_part_b_premium: [1_782, 5_702.4, 5_702.4, 6_058.8, 6_058.8] + +- name: 2022 single filers across the Part B premium tiers. + period: 2022 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 91_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 91_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 114_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 142_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 91,000, at the threshold: $170.10 a month + # MAGI 91,001, lowest income in the 35% tier: $238.10 (35%) a month + # MAGI 114,001, lowest income in the 50% tier: $340.20 (50%) a month + # MAGI 142,001, lowest income in the 65% tier: $442.30 (65%) a month + # MAGI 170,001, lowest income in the 80% tier: $544.30 (80%) a month + # MAGI 499,999, just below the 85% tier: $544.30 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $578.30 (85%) a month + gross_medicare_part_b_premium: [2_041.2, 2_857.2, 4_082.4, 5_307.6, 6_531.6, 6_531.6, 6_939.6] + +- name: 2022 joint filers across the Part B premium tiers. + period: 2022 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 182_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 182_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 228_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 284_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 340_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 182,000, at the threshold: $170.10 a month + # MAGI 182,001, lowest income in the 35% tier: $238.10 (35%) a month + # MAGI 228,001, lowest income in the 50% tier: $340.20 (50%) a month + # MAGI 284,001, lowest income in the 65% tier: $442.30 (65%) a month + # MAGI 340,001, lowest income in the 80% tier: $544.30 (80%) a month + # MAGI 749,999, just below the 85% tier: $544.30 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $578.30 (85%) a month + gross_medicare_part_b_premium: [2_041.2, 2_857.2, 4_082.4, 5_307.6, 6_531.6, 6_531.6, 6_939.6] + +- name: 2022 married filing separately filers across the Part B premium tiers. + period: 2022 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 91_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 91_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 408_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 409_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 91,000, at the threshold: $170.10 a month + # MAGI 91,001, just above it: $544.30 (80%) a month + # MAGI 408,999, just below the top tier: $544.30 (80%) a month + # MAGI 409,000, at the top tier: $578.30 (85%) a month + # MAGI 2,000,000, far above every threshold: $578.30 (85%) a month + gross_medicare_part_b_premium: [2_041.2, 6_531.6, 6_531.6, 6_939.6, 6_939.6] + +- name: 2023 single filers across the Part B premium tiers. + period: 2023 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 97_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 97_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 123_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 153_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 183_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 97,000, at the threshold: $164.90 a month + # MAGI 97,001, lowest income in the 35% tier: $230.80 (35%) a month + # MAGI 123,001, lowest income in the 50% tier: $329.70 (50%) a month + # MAGI 153,001, lowest income in the 65% tier: $428.60 (65%) a month + # MAGI 183,001, lowest income in the 80% tier: $527.50 (80%) a month + # MAGI 499,999, just below the 85% tier: $527.50 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $560.50 (85%) a month + gross_medicare_part_b_premium: [1_978.8, 2_769.6, 3_956.4, 5_143.2, 6_330, 6_330, 6_726] + +- name: 2023 joint filers across the Part B premium tiers. + period: 2023 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + person6: + age: 66 + person7: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 194_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 194_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 246_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 306_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 366_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 194,000, at the threshold: $164.90 a month + # MAGI 194,001, lowest income in the 35% tier: $230.80 (35%) a month + # MAGI 246,001, lowest income in the 50% tier: $329.70 (50%) a month + # MAGI 306,001, lowest income in the 65% tier: $428.60 (65%) a month + # MAGI 366,001, lowest income in the 80% tier: $527.50 (80%) a month + # MAGI 749,999, just below the 85% tier: $527.50 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $560.50 (85%) a month + gross_medicare_part_b_premium: [1_978.8, 2_769.6, 3_956.4, 5_143.2, 6_330, 6_330, 6_726] + +- name: 2023 married filing separately filers across the Part B premium tiers. + period: 2023 + input: + people: + person1: + age: 66 + person2: + age: 66 + person3: + age: 66 + person4: + age: 66 + person5: + age: 66 + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 97_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 97_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 402_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 403_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 97,000, at the threshold: $164.90 a month + # MAGI 97,001, just above it: $527.50 (80%) a month + # MAGI 402,999, just below the top tier: $527.50 (80%) a month + # MAGI 403,000, at the top tier: $560.50 (85%) a month + # MAGI 2,000,000, far above every threshold: $560.50 (85%) a month + gross_medicare_part_b_premium: [1_978.8, 6_330, 6_330, 6_726, 6_726] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_d_premium_surcharge.yaml b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_d_premium_surcharge.yaml index 66ce09857a6..03631338d3f 100644 --- a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_d_premium_surcharge.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/eligibility/income_adjusted_part_d_premium_surcharge.yaml @@ -129,3 +129,1978 @@ medicare_irmaa_magi_two_years_prior: 500_000 output: income_adjusted_part_d_premium_surcharge: 1_029.6 + +# Part D IRMAA for 2015-2023, from the CMS Part D income-related monthly +# adjustment releases for each year, times 12. Each person is a separate tax +# unit with MAGI from two years prior provided directly. + +- name: 2015 single filers across the Part D IRMAA tiers. + period: 2015 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, lowest income in the 35% tier: $12.30 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $31.80 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $51.30 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $70.80 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $70.80 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 147.6, 381.6, 615.6, 849.6, 849.6] + +- name: 2015 joint filers across the Part D IRMAA tiers. + period: 2015 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 428_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 170,000, at the threshold: $0 a month + # MAGI 170,001, lowest income in the 35% tier: $12.30 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $31.80 (50%) a month + # MAGI 320,001, lowest income in the 65% tier: $51.30 (65%) a month + # MAGI 428,001, lowest income in the 80% tier: $70.80 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $70.80 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 147.6, 381.6, 615.6, 849.6, 849.6] + +- name: 2015 married filing separately filers across the Part D IRMAA tiers. + period: 2015 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_000 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_001 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, just above it: $51.30 (65%) a month + # MAGI 129,000, at the second threshold: $51.30 (65%) a month + # MAGI 129,001, just above it: $70.80 (80%) a month + # MAGI 2,000,000, far above every threshold: $70.80 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 615.6, 615.6, 849.6, 849.6] + +- name: 2016 single filers across the Part D IRMAA tiers. + period: 2016 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, lowest income in the 35% tier: $12.70 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $32.80 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $52.80 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $72.90 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $72.90 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 152.4, 393.6, 633.6, 874.8, 874.8] + +- name: 2016 head of household filers across the Part D IRMAA tiers. + period: 2016 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, lowest income in the 35% tier: $12.70 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $32.80 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $52.80 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $72.90 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $72.90 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 152.4, 393.6, 633.6, 874.8, 874.8] + +- name: 2016 surviving spouse filers across the Part D IRMAA tiers. + period: 2016 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, lowest income in the 35% tier: $12.70 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $32.80 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $52.80 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $72.90 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $72.90 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 152.4, 393.6, 633.6, 874.8, 874.8] + +- name: 2016 joint filers across the Part D IRMAA tiers. + period: 2016 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 428_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 170,000, at the threshold: $0 a month + # MAGI 170,001, lowest income in the 35% tier: $12.70 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $32.80 (50%) a month + # MAGI 320,001, lowest income in the 65% tier: $52.80 (65%) a month + # MAGI 428,001, lowest income in the 80% tier: $72.90 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $72.90 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 152.4, 393.6, 633.6, 874.8, 874.8] + +- name: 2016 married filing separately filers across the Part D IRMAA tiers. + period: 2016 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_000 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_001 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, just above it: $52.80 (65%) a month + # MAGI 129,000, at the second threshold: $52.80 (65%) a month + # MAGI 129,001, just above it: $72.90 (80%) a month + # MAGI 2,000,000, far above every threshold: $72.90 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 633.6, 633.6, 874.8, 874.8] + +- name: 2017 single filers across the Part D IRMAA tiers. + period: 2017 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, lowest income in the 35% tier: $13.30 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $34.20 (50%) a month + # MAGI 160,001, lowest income in the 65% tier: $55.20 (65%) a month + # MAGI 214,001, lowest income in the 80% tier: $76.20 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $76.20 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 159.6, 410.4, 662.4, 914.4, 914.4] + +- name: 2017 joint filers across the Part D IRMAA tiers. + period: 2017 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 428_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 170,000, at the threshold: $0 a month + # MAGI 170,001, lowest income in the 35% tier: $13.30 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $34.20 (50%) a month + # MAGI 320,001, lowest income in the 65% tier: $55.20 (65%) a month + # MAGI 428,001, lowest income in the 80% tier: $76.20 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $76.20 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 159.6, 410.4, 662.4, 914.4, 914.4] + +- name: 2017 married filing separately filers across the Part D IRMAA tiers. + period: 2017 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_000 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 129_001 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, just above it: $55.20 (65%) a month + # MAGI 129,000, at the second threshold: $55.20 (65%) a month + # MAGI 129,001, just above it: $76.20 (80%) a month + # MAGI 2,000,000, far above every threshold: $76.20 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 662.4, 662.4, 914.4, 914.4] + +- name: 2018 single filers across the Part D IRMAA tiers. + period: 2018 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 133_501 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, lowest income in the 35% tier: $13.00 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $33.60 (50%) a month + # MAGI 133,501, lowest income in the 65% tier: $54.20 (65%) a month + # MAGI 160,001, lowest income in the 80% tier: $74.80 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $74.80 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 156, 403.2, 650.4, 897.6, 897.6] + +- name: 2018 joint filers across the Part D IRMAA tiers. + period: 2018 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 267_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6] + output: + # MAGI 170,000, at the threshold: $0 a month + # MAGI 170,001, lowest income in the 35% tier: $13.00 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $33.60 (50%) a month + # MAGI 267,001, lowest income in the 65% tier: $54.20 (65%) a month + # MAGI 320,001, lowest income in the 80% tier: $74.80 (80%) a month + # MAGI 2,000,000, no 85% tier before 2019: $74.80 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 156, 403.2, 650.4, 897.6, 897.6] + +- name: 2018 married filing separately filers across the Part D IRMAA tiers. + period: 2018 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, just above it: $74.80 (80%) a month + # MAGI 2,000,000, far above every threshold: $74.80 (80%) a month + income_adjusted_part_d_premium_surcharge: [0, 897.6, 897.6] + +- name: 2019 single filers across the Part D IRMAA tiers. + period: 2019 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 133_501 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, lowest income in the 35% tier: $12.40 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $31.90 (50%) a month + # MAGI 133,501, lowest income in the 65% tier: $51.40 (65%) a month + # MAGI 160,001, lowest income in the 80% tier: $70.90 (80%) a month + # MAGI 499,999, just below the 85% tier: $70.90 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $77.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 148.8, 382.8, 616.8, 850.8, 850.8, 928.8] + +- name: 2019 head of household filers across the Part D IRMAA tiers. + period: 2019 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 133_501 + tax_unit5: + members: [person5] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit6: + members: [person6] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, lowest income in the 35% tier: $12.40 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $31.90 (50%) a month + # MAGI 133,501, lowest income in the 65% tier: $51.40 (65%) a month + # MAGI 160,001, lowest income in the 80% tier: $70.90 (80%) a month + # MAGI 499,999, just below the 85% tier: $70.90 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $77.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 148.8, 382.8, 616.8, 850.8, 850.8, 928.8] + +- name: 2019 surviving spouse filers across the Part D IRMAA tiers. + period: 2019 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 107_001 + tax_unit4: + members: [person4] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 133_501 + tax_unit5: + members: [person5] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 160_001 + tax_unit6: + members: [person6] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, lowest income in the 35% tier: $12.40 (35%) a month + # MAGI 107,001, lowest income in the 50% tier: $31.90 (50%) a month + # MAGI 133,501, lowest income in the 65% tier: $51.40 (65%) a month + # MAGI 160,001, lowest income in the 80% tier: $70.90 (80%) a month + # MAGI 499,999, just below the 85% tier: $70.90 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $77.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 148.8, 382.8, 616.8, 850.8, 850.8, 928.8] + +- name: 2019 joint filers across the Part D IRMAA tiers. + period: 2019 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 214_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 267_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 320_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 170,000, at the threshold: $0 a month + # MAGI 170,001, lowest income in the 35% tier: $12.40 (35%) a month + # MAGI 214,001, lowest income in the 50% tier: $31.90 (50%) a month + # MAGI 267,001, lowest income in the 65% tier: $51.40 (65%) a month + # MAGI 320,001, lowest income in the 80% tier: $70.90 (80%) a month + # MAGI 749,999, just below the 85% tier: $70.90 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $77.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 148.8, 382.8, 616.8, 850.8, 850.8, 928.8] + +- name: 2019 married filing separately filers across the Part D IRMAA tiers. + period: 2019 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 85_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 414_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 415_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 85,000, at the threshold: $0 a month + # MAGI 85,001, just above it: $70.90 (80%) a month + # MAGI 414,999, just below the top tier: $70.90 (80%) a month + # MAGI 415,000, at the top tier: $77.40 (85%) a month + # MAGI 2,000,000, far above every threshold: $77.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 850.8, 850.8, 928.8, 928.8] + +- name: 2020 single filers across the Part D IRMAA tiers. + period: 2020 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 87_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 87_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 109_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 136_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 163_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 87,000, at the threshold: $0 a month + # MAGI 87,001, lowest income in the 35% tier: $12.20 (35%) a month + # MAGI 109,001, lowest income in the 50% tier: $31.50 (50%) a month + # MAGI 136,001, lowest income in the 65% tier: $50.70 (65%) a month + # MAGI 163,001, lowest income in the 80% tier: $70.00 (80%) a month + # MAGI 499,999, just below the 85% tier: $70.00 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $76.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 146.4, 378, 608.4, 840, 840, 916.8] + +- name: 2020 joint filers across the Part D IRMAA tiers. + period: 2020 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 174_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 174_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 218_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 272_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 326_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 174,000, at the threshold: $0 a month + # MAGI 174,001, lowest income in the 35% tier: $12.20 (35%) a month + # MAGI 218,001, lowest income in the 50% tier: $31.50 (50%) a month + # MAGI 272,001, lowest income in the 65% tier: $50.70 (65%) a month + # MAGI 326,001, lowest income in the 80% tier: $70.00 (80%) a month + # MAGI 749,999, just below the 85% tier: $70.00 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $76.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 146.4, 378, 608.4, 840, 840, 916.8] + +- name: 2020 married filing separately filers across the Part D IRMAA tiers. + period: 2020 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 87_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 87_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 412_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 413_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 87,000, at the threshold: $0 a month + # MAGI 87,001, just above it: $70.00 (80%) a month + # MAGI 412,999, just below the top tier: $70.00 (80%) a month + # MAGI 413,000, at the top tier: $76.40 (85%) a month + # MAGI 2,000,000, far above every threshold: $76.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 840, 840, 916.8, 916.8] + +- name: 2021 single filers across the Part D IRMAA tiers. + period: 2021 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 88_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 88_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 111_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 138_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 165_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 88,000, at the threshold: $0 a month + # MAGI 88,001, lowest income in the 35% tier: $12.30 (35%) a month + # MAGI 111,001, lowest income in the 50% tier: $31.80 (50%) a month + # MAGI 138,001, lowest income in the 65% tier: $51.20 (65%) a month + # MAGI 165,001, lowest income in the 80% tier: $70.70 (80%) a month + # MAGI 499,999, just below the 85% tier: $70.70 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $77.10 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 147.6, 381.6, 614.4, 848.4, 848.4, 925.2] + +- name: 2021 head of household filers across the Part D IRMAA tiers. + period: 2021 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 88_000 + tax_unit2: + members: [person2] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 88_001 + tax_unit3: + members: [person3] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 111_001 + tax_unit4: + members: [person4] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 138_001 + tax_unit5: + members: [person5] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 165_001 + tax_unit6: + members: [person6] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: HEAD_OF_HOUSEHOLD + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 88,000, at the threshold: $0 a month + # MAGI 88,001, lowest income in the 35% tier: $12.30 (35%) a month + # MAGI 111,001, lowest income in the 50% tier: $31.80 (50%) a month + # MAGI 138,001, lowest income in the 65% tier: $51.20 (65%) a month + # MAGI 165,001, lowest income in the 80% tier: $70.70 (80%) a month + # MAGI 499,999, just below the 85% tier: $70.70 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $77.10 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 147.6, 381.6, 614.4, 848.4, 848.4, 925.2] + +- name: 2021 surviving spouse filers across the Part D IRMAA tiers. + period: 2021 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 88_000 + tax_unit2: + members: [person2] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 88_001 + tax_unit3: + members: [person3] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 111_001 + tax_unit4: + members: [person4] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 138_001 + tax_unit5: + members: [person5] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 165_001 + tax_unit6: + members: [person6] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SURVIVING_SPOUSE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 88,000, at the threshold: $0 a month + # MAGI 88,001, lowest income in the 35% tier: $12.30 (35%) a month + # MAGI 111,001, lowest income in the 50% tier: $31.80 (50%) a month + # MAGI 138,001, lowest income in the 65% tier: $51.20 (65%) a month + # MAGI 165,001, lowest income in the 80% tier: $70.70 (80%) a month + # MAGI 499,999, just below the 85% tier: $70.70 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $77.10 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 147.6, 381.6, 614.4, 848.4, 848.4, 925.2] + +- name: 2021 joint filers across the Part D IRMAA tiers. + period: 2021 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 176_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 176_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 222_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 276_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 330_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 176,000, at the threshold: $0 a month + # MAGI 176,001, lowest income in the 35% tier: $12.30 (35%) a month + # MAGI 222,001, lowest income in the 50% tier: $31.80 (50%) a month + # MAGI 276,001, lowest income in the 65% tier: $51.20 (65%) a month + # MAGI 330,001, lowest income in the 80% tier: $70.70 (80%) a month + # MAGI 749,999, just below the 85% tier: $70.70 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $77.10 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 147.6, 381.6, 614.4, 848.4, 848.4, 925.2] + +- name: 2021 married filing separately filers across the Part D IRMAA tiers. + period: 2021 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 88_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 88_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 411_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 412_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 88,000, at the threshold: $0 a month + # MAGI 88,001, just above it: $70.70 (80%) a month + # MAGI 411,999, just below the top tier: $70.70 (80%) a month + # MAGI 412,000, at the top tier: $77.10 (85%) a month + # MAGI 2,000,000, far above every threshold: $77.10 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 848.4, 848.4, 925.2, 925.2] + +- name: 2022 single filers across the Part D IRMAA tiers. + period: 2022 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 91_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 91_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 114_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 142_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 170_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 91,000, at the threshold: $0 a month + # MAGI 91,001, lowest income in the 35% tier: $12.40 (35%) a month + # MAGI 114,001, lowest income in the 50% tier: $32.10 (50%) a month + # MAGI 142,001, lowest income in the 65% tier: $51.70 (65%) a month + # MAGI 170,001, lowest income in the 80% tier: $71.30 (80%) a month + # MAGI 499,999, just below the 85% tier: $71.30 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $77.90 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 148.8, 385.2, 620.4, 855.6, 855.6, 934.8] + +- name: 2022 joint filers across the Part D IRMAA tiers. + period: 2022 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 182_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 182_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 228_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 284_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 340_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 182,000, at the threshold: $0 a month + # MAGI 182,001, lowest income in the 35% tier: $12.40 (35%) a month + # MAGI 228,001, lowest income in the 50% tier: $32.10 (50%) a month + # MAGI 284,001, lowest income in the 65% tier: $51.70 (65%) a month + # MAGI 340,001, lowest income in the 80% tier: $71.30 (80%) a month + # MAGI 749,999, just below the 85% tier: $71.30 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $77.90 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 148.8, 385.2, 620.4, 855.6, 855.6, 934.8] + +- name: 2022 married filing separately filers across the Part D IRMAA tiers. + period: 2022 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 91_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 91_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 408_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 409_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 91,000, at the threshold: $0 a month + # MAGI 91,001, just above it: $71.30 (80%) a month + # MAGI 408,999, just below the top tier: $71.30 (80%) a month + # MAGI 409,000, at the top tier: $77.90 (85%) a month + # MAGI 2,000,000, far above every threshold: $77.90 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 855.6, 855.6, 934.8, 934.8] + +- name: 2023 single filers across the Part D IRMAA tiers. + period: 2023 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 97_000 + tax_unit2: + members: [person2] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 97_001 + tax_unit3: + members: [person3] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 123_001 + tax_unit4: + members: [person4] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 153_001 + tax_unit5: + members: [person5] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 183_001 + tax_unit6: + members: [person6] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 499_999 + tax_unit7: + members: [person7] + filing_status: SINGLE + medicare_irmaa_magi_two_years_prior: 500_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 97,000, at the threshold: $0 a month + # MAGI 97,001, lowest income in the 35% tier: $12.20 (35%) a month + # MAGI 123,001, lowest income in the 50% tier: $31.50 (50%) a month + # MAGI 153,001, lowest income in the 65% tier: $50.70 (65%) a month + # MAGI 183,001, lowest income in the 80% tier: $70.00 (80%) a month + # MAGI 499,999, just below the 85% tier: $70.00 (80%) a month + # MAGI 500,000, lowest income in the 85% tier: $76.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 146.4, 378, 608.4, 840, 840, 916.8] + +- name: 2023 joint filers across the Part D IRMAA tiers. + period: 2023 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + person6: + age: 66 + medicare_enrolled: true + person7: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 194_000 + tax_unit2: + members: [person2] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 194_001 + tax_unit3: + members: [person3] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 246_001 + tax_unit4: + members: [person4] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 306_001 + tax_unit5: + members: [person5] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 366_001 + tax_unit6: + members: [person6] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 749_999 + tax_unit7: + members: [person7] + filing_status: JOINT + medicare_irmaa_magi_two_years_prior: 750_000 + households: + household: + members: [person1, person2, person3, person4, person5, person6, person7] + output: + # MAGI 194,000, at the threshold: $0 a month + # MAGI 194,001, lowest income in the 35% tier: $12.20 (35%) a month + # MAGI 246,001, lowest income in the 50% tier: $31.50 (50%) a month + # MAGI 306,001, lowest income in the 65% tier: $50.70 (65%) a month + # MAGI 366,001, lowest income in the 80% tier: $70.00 (80%) a month + # MAGI 749,999, just below the 85% tier: $70.00 (80%) a month + # MAGI 750,000, lowest income in the 85% tier: $76.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 146.4, 378, 608.4, 840, 840, 916.8] + +- name: 2023 married filing separately filers across the Part D IRMAA tiers. + period: 2023 + input: + people: + person1: + age: 66 + medicare_enrolled: true + person2: + age: 66 + medicare_enrolled: true + person3: + age: 66 + medicare_enrolled: true + person4: + age: 66 + medicare_enrolled: true + person5: + age: 66 + medicare_enrolled: true + tax_units: + tax_unit1: + members: [person1] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 97_000 + tax_unit2: + members: [person2] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 97_001 + tax_unit3: + members: [person3] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 402_999 + tax_unit4: + members: [person4] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 403_000 + tax_unit5: + members: [person5] + filing_status: SEPARATE + medicare_irmaa_magi_two_years_prior: 2_000_000 + households: + household: + members: [person1, person2, person3, person4, person5] + output: + # MAGI 97,000, at the threshold: $0 a month + # MAGI 97,001, just above it: $70.00 (80%) a month + # MAGI 402,999, just below the top tier: $70.00 (80%) a month + # MAGI 403,000, at the top tier: $76.40 (85%) a month + # MAGI 2,000,000, far above every threshold: $76.40 (85%) a month + income_adjusted_part_d_premium_surcharge: [0, 840, 840, 916.8, 916.8] diff --git a/policyengine_us/tests/policy/baseline/gov/hhs/medicare/test_irmaa_schedule_properties.py b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/test_irmaa_schedule_properties.py new file mode 100644 index 00000000000..2694d856b50 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/hhs/medicare/test_irmaa_schedule_properties.py @@ -0,0 +1,193 @@ +"""Medicare IRMAA schedules: invariants across the years the model covers. + +42 U.S.C. 1395r(i) sets the Part B income-related monthly adjustment amounts +and their income thresholds, and 42 U.S.C. 1395w-113(a)(7) applies the same +thresholds and applicable percentages to Part D. Checked for every year from +FIRST_MODELED_YEAR through 2035: + +- every schedule starts with a zero amount at zero income, its thresholds rise + strictly until any unreachable (+inf) bracket, and its amounts never fall + from one tier to the next; +- head of household and surviving spouse filers use the single schedule, since + 1395r(i)(2)(A) sets one threshold amount for every return but a joint one; +- Part D uses the Part B thresholds. + +Checked for the years CMS has published schedules for (2015-2026): + +- joint thresholds are twice the individual ones, except the $500,000 amount, + which is 150 percent (1395r(i)(3)(C)(ii)); +- a married individual filing separately who lived with the spouse is charged, + once MAGI exceeds the individual threshold amount, what the individual + schedule charges at MAGI plus that amount, since 1395r(i)(3)(C)(iii) reduces + each individual dollar amount by it; +- each Part B adjustment is (applicable percentage - 25) / 25 times the + standard premium: 1395r(i)(3)(A) multiplies the percentage less 25 points by + 200 percent of the aged actuarial rate (plus 4 times any repayment amount), + and 1395r(a)(3) and (a)(6) set the premium at 50 percent of that rate plus + the repayment amount; +- each Part D adjustment is the base beneficiary premium times (applicable + percentage - 25.5) / 25.5 (1395w-113(a)(7)(B)), so the tiers are in that + proportion to one another. + +The last two hold up to the rounding of each published amount to the dime. +""" + +import math + +import numpy as np +import pytest +from hypothesis import given +from hypothesis import strategies as st + +from policyengine_us.system import system +from policyengine_us.tools.parameters import FIRST_MODELED_YEAR + +MEDICARE = system.parameters.gov.hhs.medicare +PARTS = ["part_b", "part_d"] +STATUSES = ["single", "head_of_household", "surviving_spouse", "joint", "separate"] +ALL_YEARS = list(range(FIRST_MODELED_YEAR, 2036)) +PUBLISHED_YEARS = list(range(2015, 2027)) +# Applicable percentages of the five tiers above the standard premium +# (1395r(i)(3)(C)(i)); the 85 percent tier starts in 2019. +APPLICABLE_PERCENTAGES = [35, 50, 65, 80, 85] +PART_B_TOLERANCE = 0.25 +PART_D_TOLERANCE = 0.10 + + +def schedule(part, status, year): + return getattr(getattr(MEDICARE, part).irmaa, status)(f"{year}-01-01") + + +def reachable_tiers(scale): + """(applicable percentage, amount) for each finite tier above zero.""" + tiers = [ + amount + for threshold, amount in zip(scale.thresholds[1:], scale.amounts[1:]) + if math.isfinite(threshold) + ] + return list(zip(APPLICABLE_PERCENTAGES, tiers)) + + +@pytest.mark.parametrize("year", ALL_YEARS) +@pytest.mark.parametrize("status", STATUSES) +@pytest.mark.parametrize("part", PARTS) +def test_schedule_is_ordered(part, status, year): + scale = schedule(part, status, year) + thresholds, amounts = list(scale.thresholds), list(scale.amounts) + assert thresholds[0] == 0 and amounts[0] == 0 + finite = [t for t in thresholds if math.isfinite(t)] + assert thresholds[: len(finite)] == finite, "+inf brackets come last" + assert all(a < b for a, b in zip(finite, finite[1:])) + assert all(a <= b for a, b in zip(amounts, amounts[1:])) + + +@pytest.mark.parametrize("year", ALL_YEARS) +@pytest.mark.parametrize("status", ["head_of_household", "surviving_spouse"]) +@pytest.mark.parametrize("part", PARTS) +def test_other_unmarried_filers_use_the_single_schedule(part, status, year): + scale, single = schedule(part, status, year), schedule(part, "single", year) + assert list(scale.thresholds) == list(single.thresholds) + assert list(scale.amounts) == list(single.amounts) + + +@pytest.mark.parametrize("year", ALL_YEARS) +@pytest.mark.parametrize("status", STATUSES) +def test_part_d_uses_part_b_thresholds(status, year): + part_b = schedule("part_b", status, year) + part_d = schedule("part_d", status, year) + assert list(part_d.thresholds) == list(part_b.thresholds) + + +@pytest.mark.parametrize("year", PUBLISHED_YEARS) +@pytest.mark.parametrize("part", PARTS) +def test_joint_thresholds_double_the_individual_ones(part, year): + # Thresholds are "more than $X" amounts stored as X + 1, except the + # 85 percent tier's "at least $X", stored as X. + single, joint = schedule(part, "single", year), schedule(part, "joint", year) + assert list(joint.amounts) == list(single.amounts) + for tier, (s, j) in enumerate(zip(single.thresholds[1:], joint.thresholds[1:])): + if not math.isfinite(s): + assert not math.isfinite(j) + elif tier == 4: + assert j == 1.5 * s + else: + assert j - 1 == 2 * (s - 1) + + +def separate_from_single(part, year, magi): + single = schedule(part, "single", year) + threshold_amount = single.thresholds[1] - 1 + return np.where(magi > threshold_amount, single.calc(magi + threshold_amount), 0) + + +@pytest.mark.parametrize("year", PUBLISHED_YEARS) +@pytest.mark.parametrize("part", PARTS) +def test_separate_schedule_at_every_boundary(part, year): + single = schedule(part, "single", year) + separate = schedule(part, "separate", year) + threshold_amount = single.thresholds[1] - 1 + edges = [threshold_amount] + [ + t - threshold_amount + for t in list(single.thresholds[2:]) + list(separate.thresholds[1:]) + if math.isfinite(t) + ] + magi = np.array( + sorted({e + offset for e in edges for offset in (-1, 0, 1) if e + offset >= 0}), + dtype=float, + ) + np.testing.assert_array_equal( + separate.calc(magi), separate_from_single(part, year, magi) + ) + + +@given( + year=st.sampled_from(PUBLISHED_YEARS), + part=st.sampled_from(PARTS), + magi=st.integers(min_value=0, max_value=2_000_000), +) +def test_separate_schedule_follows_the_single_schedule(year, part, magi): + magi = np.array([magi], dtype=float) + separate = schedule(part, "separate", year) + np.testing.assert_array_equal( + separate.calc(magi), separate_from_single(part, year, magi) + ) + + +@pytest.mark.parametrize("year", PUBLISHED_YEARS) +@pytest.mark.parametrize("status", STATUSES) +def test_part_b_adjustments_scale_the_standard_premium(status, year): + standard = MEDICARE.part_b.base_premium(f"{year}-01-01") + scale = schedule("part_b", status, year) + # The separate schedule skips tiers; match its amounts to the single + # schedule's tiers instead of numbering them from the bottom. + single_tiers = dict( + (amount, percentage) + for percentage, amount in reachable_tiers(schedule("part_b", "single", year)) + ) + for amount in scale.amounts[1:]: + percentage = single_tiers[amount] + expected = (percentage - 25) / 25 * standard + assert abs(amount - expected) <= PART_B_TOLERANCE, (percentage, amount) + + +@pytest.mark.parametrize("year", PUBLISHED_YEARS) +def test_part_d_adjustments_are_in_proportion(year): + tiers = reachable_tiers(schedule("part_d", "single", year)) + top_percentage, top_amount = tiers[-1] + for percentage, amount in tiers: + expected = (percentage - 25.5) / (top_percentage - 25.5) * top_amount + assert abs(amount - expected) <= PART_D_TOLERANCE, (percentage, amount) + + +@pytest.mark.parametrize("year", range(FIRST_MODELED_YEAR, 2019)) +@pytest.mark.parametrize("status", STATUSES) +@pytest.mark.parametrize("part", PARTS) +def test_no_85_percent_tier_before_2019(part, status, year): + # The Bipartisan Budget Act of 2018 (section 53114) added the tier for + # 2019; before then the 80 percent tier applied at any higher income. + scale = schedule(part, status, year) + eighty_percent = reachable_tiers(schedule(part, "single", year))[3] + assert eighty_percent[0] == 80 + assert scale.calc(np.array([1e9]))[0] == eighty_percent[1] + if status != "separate": + assert not math.isfinite(scale.thresholds[-1])