Skip to content

Set North Carolina's 2027 Special Assistance rates to the approved COLA - #10288

Merged
hua7450 merged 3 commits into
PolicyEngine:mainfrom
hua7450:nc-sa-2027-statutory-rates
Oct 22, 2026
Merged

hua7450 merged 3 commits into
PolicyEngine:mainfrom
hua7450:nc-sa-2027-statutory-rates

Conversation

@hua7450

@hua7450 hua7450 commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

What and why

G.S. 108A-42.1(a) and (b) adjust North Carolina's State-County Special Assistance basic and enhanced rates each January 1 "using the federally approved Social Security cost-of-living adjustment effective for the applicable year" (statute). That is SSA's announced percentage, rounded to a tenth: 3.6% for 2027 (SSA). The rate parameters were projecting 2027 from gov.ssa.uprating, whose unrounded CPI-W ratio is 3.62%, which put the basic rate a dollar high. Follow-up to Max's note on #10282.

Rate 2026 2027 (3.6% COLA) Was (projected)
Basic (rate/basic.yaml) 1,397 1,447 (1,397 × 1.036 = 1,447.29) 1,448
Enhanced (rate/enhanced.yaml) 1,792 1,857 (1,792 × 1.036 = 1,856.51) 1,857

Applying each year's rounded COLA to the prior whole-dollar rate, starting from the statutory bases ($1,285 and $1,647, adjusted from January 1, 2024), reproduces both published 2026 rates: 1,285 → 1,326 → 1,359 → 1,397 and 1,647 → 1,700 → 1,743 → 1,792 (3.2%, 2.5%, 2.8%).

North Carolina has not yet published its 2027 rates, so the 2027 values are calculated from the statute and SSA's announced COLA. When the 2027 change notice appears (the 2026 one, EFS-SA-CN-01-2026, took effect January 1), it should be added to the parameters' references and the values checked against it.

  • Parameters: explicit 2027-01-01 values for both rates, with SSA's 2027 COLA fact sheet added to their references. Later years still project from gov.ssa.uprating and rounding to the dollar until SSA announces each COLA; the metadata comment now says so.
  • Tests: nc_sa.yaml Case 37 moves to 1,447 / 1,029 / 488 (1,447 + 70 − 1,029), and nc_sa_rate.yaml gains Case 8 for the 2027 enhanced rate (1,857). nc_sa.yaml Cases 41–42 pin the 2027 basic cutoff: the maintenance amount is 1,447 + 70 = 1,517, so TCMI of 1,516.50 still pays $1 and 1,516.51 is ineligible (SA-3220 III.C).

Test plan

  • For policy changes: expected values follow the statute's rule with SSA's announced 2027 COLA (3.6%) and FBR ($1,029).
  • make format
  • Changelog fragment in changelog.d/

axiom: N.C.G.S. 108A-42.1(a)-(b) TheAxiomFoundation/rulespec-us#1779 queued

🤖 Generated with Claude Code

G.S. 108A-42.1(a) and (b) adjust the basic and enhanced rates each January
using the federally approved Social Security COLA, which SSA rounds to a
tenth of a percent: 3.6% for 2027. gov.ssa.uprating applies the unrounded
CPI-W ratio (3.62%), which put the basic rate a dollar high. List the 2027
rates, 1,397 * 1.036 -> 1,447 and 1,792 * 1.036 -> 1,857, citing the
statute and SSA's 2027 COLA fact sheet; later years still project from
gov.ssa.uprating. Case 37 becomes 1,447 / 1,029 / 488, and a new rate case
covers the 2027 enhanced rate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 19, 2026
#10288 sets North Carolina's 2027 Special Assistance rates to the approved COLA, and #10279 already updated main's Case 37. This PR is about SSI child allocations, so the North Carolina change belongs there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hua7450
hua7450 requested a review from MaxGhenis October 20, 2026 17:32
@DTrim99

DTrim99 commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

PR Review: Set North Carolina's 2027 Special Assistance rates to the approved COLA

PR #10288 (author: hua7450). Head 1abbaf7742. The branch is 1 commit ahead of main and 34 behind. First review.

Summary

The PR adds explicit 2027-01-01 values to North Carolina's State-County Special Assistance (SA) rates: $1,447 basic and $1,857 enhanced. Each is the 2026 published rate times SSA's announced 3.6% COLA, rounded to the dollar. Before this PR, gov.ssa.uprating projected 2027 with the unrounded CPI-W ratio of 1.036187, which gave a basic rate of $1,448. Case 37 in nc_sa.yaml moves to 1,447 / 1,029 / 488, and nc_sa_rate.yaml gains Case 8 for the 2027 enhanced rate.

Law. The values are correct. G.S. 108A-42.1(a) and (b) adjust each rate "on January 1, 2024, and each January 1 thereafter, using the federally approved Social Security cost-of-living adjustment effective for the applicable year" (statute). The history note runs through S.L. 2025-25, so no later act changes the base or the index. SSA announced a 3.6% COLA for 2027 on October 14, 2026, along with a $1,029 individual FBR (fact sheet). Two pieces of NCDHHS evidence show that North Carolina applies SSA's rounded percentage, not the CPI-W ratio:

  • The 2026 change notice states the percentage. EFS-SA-CN-01-2026 says: "The federally approved Social Security cost-of-living (COLA) adjustment that was made effective for 2026 is 2.8%" (p. 1).
  • The published rates reproduce only with rounded percentages. The SA-3220 VIII chart (p. 219) lists enhanced rates of $1,700, $1,743 and $1,792 for 2024 to 2026. Chaining the rounded COLAs from $1,647 reproduces all three: 1,699.70 → 1,700, 1,742.50 → 1,743, 1,791.80 → 1,792. Chaining the unrounded CPI-W ratios gives $1,742 for 2025 and $1,790 for 2026. The 1,742.50 → 1,743 step also shows that NC rounds halves up. The basic rates ($1,326, $1,359, $1,397) come out the same under either method.

The effective date of January 1, 2027 matches the statute and NC's practice: the 2026 notice took effect "January 1, 2026". North Carolina has not yet published its 2027 notice; I searched NCDHHS and found nothing newer than the 2026 notices. The PR body says this and commits to adding the notice once it appears.

Main has moved, but the result still holds.

Formula interaction. nc_sa_rate reads only the state's basic or enhanced parameter, or a lower contracted facility rate; it isn't built as FBR plus a supplement. The federal amount enters only through TCMI (nc_sa_countable_income): SSI received, or for a facility resident on an individual claim, at least the individual FBR minus other countable income. So the COLA'd FBR and this PR's rate meet only in rate + $70 − TCMI, and nothing is counted twice. For a resident with no income in 2027 the payment is $488 with this PR, against $489 on main.

CI is not stale for this change. The CI run started at 2026-10-19 21:03 UTC, after #10225 (15:11 UTC) and #10279 (20:41 UTC). All 27 checks pass. No local run was needed.

Open items. One should-fix item: rulespec-us#1779 predates this PR and has neither the 2027 values nor the rounded-COLA reading. There are two suggestions.

Critical (must fix)

None.

Should address

1. rulespec-us#1779 doesn't match this head: it has no 2027 values and doesn't say which COLA applies.

  • Where: PR body, axiom: N.C.G.S. 108A-42.1(a)-(b) TheAxiomFoundation/rulespec-us#1779 queued.
  • What's right: the issue is OPEN, labelled pe-parity and dispatch-ready for Add North Carolina state supplementation for 2026 #10160's 2026 encoding. It gives the module path us-nc/statutes/108a/108a-42.1.yaml, records the ingest blocker ("Needs ingest" for the statute PDF) and quotes 108A-42.1(a) verbatim.
  • What's stale: it was last updated 2026-10-16, before this PR (2026-10-19).
    • Its Required outputs row gives only "$1,397 and $1,792 from 2026-01-01 … Adjusted each January 1 by the Social Security COLA (108A-42.1)". The Parameters line still says the rates are "uprated with gov.ssa.uprating and rounded to $1", which is the method this PR replaces for 2027.
    • It doesn't record that "federally approved … cost-of-living adjustment" means SSA's announced percentage, rounded to a tenth of a percent, rather than the CPI-W ratio. That reading is what changes the 2027 basic rate by $1.
    • Every companion test is a 2026 manual example. None covers 2027, and the SSA 2027 fact sheet isn't among the corpus sources.
  • Rule: CLAUDE.md requires that a queued issue be dispatch-ready, with "the required outputs, and companion tests from the same external source as your YAML tests". Our review rules require that the issue match the head.
  • Fix: add a comment to rulespec-us#1779, or edit its body, covering:
    • Required outputs: basic $1,447 and enhanced $1,857 from 2027-01-01. Each year's rate is the prior year's whole-dollar rate × (1 + SSA's announced COLA), rounded half-up to the dollar.
    • Interpretation that changes a result: the COLA is SSA's announced percentage (3.2%, 2.5%, 2.8%, 3.6%), not the CPI-W ratio (3.62% for 2027). Cite EFS-SA-CN-01-2026 p. 1 ("is 2.8%"). Also cite the SA-3220 VIII chart on p. 219: its enhanced rates of $1,743 and $1,792 reproduce only with the rounded percentages, since the CPI-W ratio gives $1,742 and $1,790.
    • Companion tests from the statute and SSA, not from PolicyEngine output:
      • Basic 2027: 1,397 × 1.036 = 1,447.29, which rounds to 1,447.
      • Enhanced 2027: 1,792 × 1.036 = 1,856.51, which rounds to 1,857.
      • A 2027 adult care home resident with no income: 1,447 + 70 − 1,029 = 488. This matches nc_sa.yaml Case 37 and nc_sa_rate.yaml Case 8.
    • Corpus: add the SSA 2027 COLA fact sheet as a source that needs ingest. Note that the 2027 change notice, once NCDHHS publishes it, should replace the derived values as the source.

Suggestions

1. When NCDHHS publishes the 2027 change notice, cite it and update programs.yaml. The PR body already plans to add the notice to both rate references and check the values against it; this is a documented deferral. The 2026 notice is dated January 7, 2026, so the 2027 one will probably come out in early January. At that point, programs.yaml (NC SA entry, verified_years: '2026', with notes saying "Models 2026 basic and enhanced …") can become '2026-2027'. Keeping '2026' until then is reasonable, because the 2027 values are derived rather than published.

2. Optional 2027 boundary test. The 2027 maintenance amounts are $1,517 basic and $1,927 enhanced, so the III.C cutoffs move to TCMI of $1,516.51 and $1,926.51. The existing cutoff cases (nc_sa.yaml Cases 29–32) pin only the 2026 cutoff of $1,466.51. One nc_sa.yaml pair at 2027-01 would pin the new maintenance amount through the eligibility rule:

  • An adult care home resident with unearned income giving TCMI of 1,516.50 should get nc_sa: 1.
  • The same resident at 1,516.51 should get nc_sa_eligible: false.

Case 8 doesn't distinguish the two uprating methods, because both give $1,857 (1,856.51 and 1,856.85). Case 37 already does: 1,447 against 1,448.

Outside this PR (not counted): gov.ssa.uprating still has the 2028 forecast of 332.241, which predates the higher 2027 actual of 328.746 recorded in #10225. The implied 2028 COLA is now 1.06% (332.241 / 328.746), against roughly 2.2% in CBO's CPI-U path (337.3 / 330.1). The 2028 projections of these rates become $1,462 and $1,877, and every other SSA-uprated parameter is affected the same way. Rebasing the 2028+ forecasts belongs in a separate SSA uprating PR.

Verified correct

  • Statute. 108A-42.1(a)-(b) has bases of $1,285 and $1,647, adjusted each January 1 from 2024 "using the federally approved Social Security cost-of-living adjustment effective for the applicable year". The history note ends at S.L. 2025-25. The PR's effective date of 2027-01-01 is correct.
  • SSA 2027. The COLA is 3.6%, the individual FBR is $1,029 and the couple FBR is $1,544, per the SSA fact sheet and announcement of October 14, 2026. On main, gov.ssa.ssi.amount.individual is 1,029 for 2027-01-01.
  • History chain (SA-3220 VIII, p. 219). The basic rate runs 1,285 → 1,326.12 → 1,326 → 1,359.15 → 1,359 → 1,397.05 → 1,397. The enhanced rate runs 1,647 → 1,699.70 → 1,700 → 1,742.50 → 1,743 → 1,791.80 → 1,792. Both match the chart. The PR body's claim about the chain is accurate.
  • Personal needs allowance. $70 (SA-3220 II.C, p. 205). G.S. 108A-41(b)(2) leaves the amount to the General Assembly; it is not COLA-indexed and the PR leaves it alone. Nothing else in NC SA is indexed.
  • Parameters. In rate/basic.yaml and rate/enhanced.yaml:
    • The new values have arithmetic comments.
    • The uprating metadata (gov.ssa.uprating, nearest $1) still projects 2028 onward, as the new comment says.
    • The descriptions are unchanged and follow the template.
    • The SSA fact sheet is added as a single reference with no page anchor.
  • Hand-checked expectations (10):
    1. basic.yaml 2027: 1,397 × 1.036 = 1,447.292, which rounds to 1,447.
    2. enhanced.yaml 2027: 1,792 × 1.036 = 1,856.512, which rounds to 1,857.
    3. nc_sa.yaml Case 37 nc_sa_rate: 1,447. This is the adult care home basic rate with no contracted rate.
    4. Case 37 ssi: 1,029. The person is 65 with no income, so SSI is the full 2027 FBR.
    5. Case 37 TCMI: 0 + max(1,029, 1,029 − 0) = 1,029, against a maintenance amount of 1,447 + 70 = 1,517.
    6. Case 37 nc_sa: round-half-up(1,517 − 1,029) = 488, which is at least 1, so the resident is eligible.
    7. nc_sa_rate.yaml Case 8: a special care unit with no contracted rate gets the enhanced rate, 1,857.
    8. nc_sa_rate.yaml Cases 1–7 (2026) are unchanged: 1,397, 1,792, 1,792, 1,000, 1,397 (cap), 1,500 and 1,397 all still read the 2026-01-01 values.
    9. Pre-PR projection: 1,397 × 328.746 / 317.265 = 1,447.55, which rounds to 1,448, and 1,792 gives 1,856.85, which rounds to 1,857. Only the basic rate moves, by −$1, which matches the PR body's table.
    10. No other test computes NC SA in 2027. NC LIEAP integration.yaml Case 10, which counts SA, uses period 2026.
  • Callers. nc_sa_rate, nc_sa_full_month_amount, nc_sa_eligible and nc_sa read the rate parameters. None of them change, and only 2027 and later values move.
  • Batch lessons.
  • Changelog. changelog.d/nc-sa-2027-statutory-rates.fixed.md is a top-level file, and fixed fits a $1 projection correction.

Axiom line assessment

The line axiom: N.C.G.S. 108A-42.1(a)-(b) TheAxiomFoundation/rulespec-us#1779 queued has the right form. rulespec-us#1779 is OPEN and labelled pe-parity. It gives the module path and corpus status, quotes the statute verbatim and records the ingest blocker. It doesn't match this head, though: it has no 2027 outputs or tests, and it doesn't record that the COLA is SSA's rounded percentage rather than the CPI-W ratio. See Should 1.

CI status

All 27 checks pass on head 1abbaf7742 per gh pr checks 10288, re-checked at the end of this review; nothing is pending. The run started on 2026-10-19 at 21:03 UTC, after #10225 and #10279 merged, so it tested the corrected Case 37 against the 2027 SSA parameters.

Branch status

Verdict: REQUEST_CHANGES

@DTrim99 DTrim99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 2027 rates ($1,447 and $1,857) are correct under G.S. 108A-42.1 with SSA's 3.6% COLA, the tree merged with main is clean, and CI ran after #10225 and #10279. One should-address item: rulespec-us#1779 predates this PR and still has only 2026 rows and the old uprating wording. Please add the 2027 outputs, the rounded-COLA reading and companion tests (1,447 / 1,857 / 488). Two suggestions. Full report in the comment above.

hua7450 and others added 2 commits October 21, 2026 12:08
The 2027 basic maintenance amount is 1,447 + 70 = 1,517, so TCMI of
1,516.50 still pays $1 and 1,516.51 is ineligible (SA-3220 III.C).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hua7450

hua7450 commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

Thanks, David.

Should 1: updated TheAxiomFoundation/rulespec-us#1779. It now has:

  • the 2027 outputs ($1,447 / $1,857 from 2027-01-01) and the yearly rule (prior whole-dollar rate × (1 + SSA's announced COLA), rounded half-up);
  • the rounded-COLA interpretation with the EFS-SA-CN-01-2026 and SA-3220 VIII evidence (re-checked: the CPI-W ratios give $1,742 and $1,790 for enhanced 2025 and 2026);
  • companion tests I–K (1,447 / 1,857 / 488) from the statute and SSA;
  • the SSA 2027 fact sheet as a corpus source, noting that the 2027 change notice replaces the derived values once published.

Suggestion 1: agreed. We'll cite the 2027 notice and move programs.yaml to '2026-2027' when NCDHHS publishes it.

Suggestion 2: added as nc_sa.yaml Cases 41–42 at 2027-01. TCMI of 1,516.50 pays $1 and 1,516.51 is ineligible, pinning the 2027 maintenance amount of 1,517. rulespec-us#1779's income-cutoff note lists them too.

Also merged main (no NC SA files changed); the NC SA tests (79) and test_source_conflicts.py pass locally.

@hua7450
hua7450 requested a review from DTrim99 October 21, 2026 16:09
@DTrim99

DTrim99 commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

PR Review (round 2): Set North Carolina's 2027 Special Assistance rates to the approved COLA

PR #10288 (author: hua7450). Head 6f88719211; last reviewed 1abbaf7742. The branch is 3 commits ahead of main and 1 behind.

Summary

Since round 1 the author has made one commit and one merge with main:

  • 3f44a6e793 adds nc_sa.yaml Cases 41–42, which pin the 2027 basic cutoff (29 lines, test file only).
  • 6f88719211 merges main. It needed no hand-resolved conflicts and changed no NC SA file.

The parameter files, Case 37, nc_sa_rate.yaml Case 8 and the changelog are unchanged since round 1. Outside the repo, the author rewrote rulespec-us#1779 on 2026-10-21 so that it matches this head.

Prior findings. The should-fix item is fixed. Suggestion 2 is done. Suggestion 1 is an agreed deferral: NCDHHS still hasn't published a 2027 change notice, and the only rate notice on its policy site is EFS-SA-CN-01-2026.

Re-verification.

  • The 2027 values still hold on the tree merged with main. I hand-checked all four new expectations.
  • I found no new critical or should-fix issues. There are two small new suggestions: a section citation in the new test comment, and stale test counts in the rulespec-us issue.

CI. CI has not run at this head: the only check, PR validation, has been queued since 16:08 UTC, and no test suite has started. I'm approving on the code, but CI has to finish green before this merges.

Prior findings

Finding Status Evidence
Should 1: rulespec-us#1779 had no 2027 outputs or tests, still described projection by gov.ssa.uprating, and didn't record the rounded-COLA reading. Fixed Updated 2026-10-21 16:09 UTC; OPEN; labelled pe-parity. See the four points under the table.
Suggestion 1: cite the 2027 NC change notice when it's published, then move programs.yaml verified_years to '2026-2027'. Deferred (agreed; waiting on NCDHHS) The author agreed to do both when the notice appears. A search of policies.ncdhhs.gov today finds only the 2026 notice, so '2026' is still the right value. Non-blocking.
Suggestion 2: an optional 2027 cutoff pair (TCMI 1,516.50 gives $1; 1,516.51 is ineligible). Fixed Added as nc_sa.yaml Cases 41–42 at 2027-01. Hand-checked below. Both cases also tell the two uprating methods apart (see "Hand-checks").

How rulespec-us#1779 now covers Should 1:

  • Required outputs and Parameters. The Required outputs row adds "$1,447 and $1,857 from 2027-01-01", with the yearly rule: "prior year's whole-dollar rate × (1 + SSA's announced COLA), rounded half-up to the dollar". It works the 1,742.50 → 1,743 step as an example. The Parameters line now says "2026 and 2027 values; later years are projected with gov.ssa.uprating … until SSA announces each COLA".
  • Interpretation. A new "COLA" bullet records that the adjustment is SSA's announced percentage, not the CPI-W ratio. It cites EFS-SA-CN-01-2026 p. 1 ("is 2.8%") and the SA-3220 VIII chart on p. 219, where the CPI-W ratios give $1,742 and $1,790 instead of $1,743 and $1,792.
  • Companion tests. Tests I–K come from 108A-42.1 and the SSA 2027 fact sheet, not from PolicyEngine output: 1,397 × 1.036 = 1,447.29, which rounds to 1,447; 1,792 × 1.036 = 1,856.51, which rounds to 1,857; and 1,447 + 70 − 1,029 = 488. Each maps to Case 37 or Case 8.
  • Corpus. The SSA 2027 fact sheet appears as a "Needs ingest" source, with a note that the NCDHHS 2027 notice will replace the derived values once published.

New findings

Critical (must fix)

None.

Should address

None.

Suggestions

2. The comment above Cases 41–42 cites the wrong subsection for the rounding rule.

  • Where: nc_sa.yaml line 565, the comment above Case 41.
  • What it says: "SA-3220 III.C: the payment is the maintenance amount less TCMI, rounded to the dollar with half a dollar rounding up; under $1 is ineligible".
  • What the manual says: the subtraction and the half-up rounding come from III.A, not III.C (p. 207):
    • III.A.3: "The monthly SA payment amount is determined by deducting the TCMI from the Maintenance Amount."
    • III.A.4: "reduce values $0.01 through $0.49 to the next lower whole dollar amount. Raise values $0.50 through $0.99 to the next higher whole dollar amount."
  • What III.C covers: only the ineligibility rule (p. 209): "If an individual's SA payment when rounded to the nearest lower whole dollar is $0.00, the individual is not eligible".
  • The code already cites this correctly: nc_sa_full_month_amount cites III.A, and nc_sa_eligible reads III.C "with III.A.4's half-up rounding".
  • Fix: begin the comment with "SA-3220 III.A.3-4 and III.C:". Optionally, note that II.E.3's published 2026 cutoff of $1,466.51 confirms the half-up reading.
  • Severity: this is a test comment, not a parameter reference, so I've kept it as a suggestion.

3. Refresh the test counts in rulespec-us#1779. The issue's Tests bullet still lists nc_sa.yaml (39 cases) and nc_sa_rate.yaml (7). At this head the files have 42 and 8: Cases 41–42 and Case 8 are new. The case names the issue cites all exist at the head and match. This changes no output and doesn't affect whether the issue is dispatch-ready.

Verified

Since-review diff. Commit 3f44a6e793 changes only nc_sa.yaml, adding Cases 41–42. The merge 6f88719211 brought in main with no hand-resolved conflicts. Diffing 1abbaf7742 against the head shows no change to rate/basic.yaml, rate/enhanced.yaml, Case 37, nc_sa_rate.yaml or the changelog beyond what came from main. The PR body now describes Cases 41–42 correctly.

Hand-checks (every new expectation). Both cases are adult care home residents at 2027-01, age 65, with no nc_sa_facility_rate and TCMI entered directly. The published 2027 basic rate is $1,447, so the maintenance amount is 1,447 + 70 = 1,517.

  1. Case 41, nc_sa_eligible: true. The full-month amount is round-half-up(1,517.00 − 1,516.50) = round-half-up(0.50) = 1. In the formula's cents: 151,700 − 151,650 = 50, and floor(0.50 + 0.5) = 1, which meets the ≥ 1 test. The other conditions hold:
    • The setting is approved.
    • Age 65 meets minimum_adult_age of 18.
    • ssi is 1,029 > 0, because SSI is computed from the person's own zero income, not from the TCMI input. Case 37 asserts the same SSI for the same inputs.
    • The person is not incarcerated.
  2. Case 41, nc_sa: 1. nc_sa_partial_month_days is 0 by formula, so this isn't a partial month and the full-month amount of 1 applies.
  3. Case 42, nc_sa_eligible: false. 1,517.00 − 1,516.51 = 0.49. In cents that is 49, and floor(0.49 + 0.5) = 0, which is below 1. Stored as float32, 1,516.51 is within $0.0001 of the exact value, and the formula's whole-cent rounding absorbs the difference.
  4. Case 42, nc_sa: 0. nc_sa is defined_for = "nc_sa_eligible", so it returns 0.

Both cases also tell the two uprating methods apart. Under the old projected rate of $1,448, the maintenance amount would be 1,518. Case 41 would then pay round(1.50) = 2 instead of 1, and Case 42 would pay round(1.49) = 1 and be eligible. So the pair pins the $1,447 rate as well as the III.C cutoff, which Case 8 alone could not do.

2027 values on the merged tree.

  • git merge-tree --write-tree PolicyEngine/main 6f88719211 is clean.
  • The merged tree is identical to the head under nc/ncdhhs/sa (parameters, variables and tests) and under gov/ssa (parameters and variables).
  • On the merged tree, the inputs are unchanged:
    • rate.basic is 1,447 and rate.enhanced is 1,857 from 2027-01-01.
    • gov.ssa.ssi.amount.individual is 1,029 for 2027-01-01.
    • gov.ssa.uprating is 328.746 for 2027, with the same 2028+ forecasts.
    • personal_needs_allowance is 70.
  • So the 2027 results still hold:
    • rate.basic 2027: 1,397 × 1.036 = 1,447.292, which rounds to 1,447.
    • rate.enhanced 2027: 1,792 × 1.036 = 1,856.512, which rounds to 1,857.
    • Case 37: rate 1,447, SSI 1,029, and 1,447 + 70 − 1,029 = 488.
    • Case 8: 1,857.
  • SSA's 2027 figures. I didn't re-fetch the SSA fact sheet in this round. The 3.6% COLA and $1,029 FBR were verified against it in round 1, and main encodes $1,029.

Source-conflict ratchet (#10287). CI ran before #10287 merged; the round-1 run was on 2026-10-19. I therefore checked statically:

  • All 34 comment lines the PR adds or removes, run through the test's CONFLICT_COMMENT_RE, give 0 matches.
  • No NC SA file is in KNOWN_UNMARKED.
  • test_conflict_sounding_comments_do_not_grow is unaffected. The author also reports that it passes locally.

Batch lessons.

Local run. I didn't run the tests locally. The four expectations above are hand-checked against the formulas at the head, and the author reports that the 79 NC SA tests pass locally. CI has not yet run them at this head; see CI status.

Axiom

The line axiom: N.C.G.S. 108A-42.1(a)-(b) TheAxiomFoundation/rulespec-us#1779 queued is valid for this head:

  • rulespec-us#1779 is OPEN and labelled pe-parity, and was updated 2026-10-21 16:09 UTC.
  • It names the module us-nc/statutes/108a/108a-42.1.yaml.
  • It records the blocker: 108A-42.1 "Needs ingest".
  • It quotes 108A-42.1(a) verbatim.
  • It gives the 2027 outputs and the rounded-COLA interpretation, with its evidence.
  • Its companion tests I–K come from the statute and SSA, and its income-cutoff note covers the 2027 cutoff of $1,516.51 (Cases 41–42).

The only gap is the stale test counts in Suggestion 3, which doesn't affect dispatch readiness.

CI

CI has not run at this head. gh pr checks 10288, re-checked at the end of this review (16:24 UTC on 2026-10-21), shows one check: "PR validation (lock, guard tests, lint, changelog)". It is pending: the job was created at 16:08:59 UTC and is still queued. No test suite has started yet: not the NC SA YAML shard, the code-health tests or the ratchet.

The previous head 1abbaf7742 passed all 27 checks. That run predates Cases 41–42, the merge with main and #10287, so it doesn't cover this head. This PR must not merge until the full CI run at 6f88719211 finishes green.

Branch

Verdict: APPROVE

@DTrim99 DTrim99 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Round 2: Should 1 is fixed. rulespec-us#1779 now has the 2027 outputs, the rounded-COLA reading and companion tests 1,447 / 1,857 / 488. The new cutoff pair (Cases 41-42) hand-checks, and the merged tree still gives 1,447 / 1,029 / 488. Approving on the substance, but CI hadn't run at this head when I checked (only PR validation was queued), so please let the full suites finish green before merging. Three small suggestions. Full report in the comment above.

@hua7450
hua7450 merged commit 37deea9 into PolicyEngine:main Oct 22, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants