Skip to content

AR 2023 bracket-adjustment column mistranscribed: missing $89,901 row, un-encoded asterisked $200 ranges, duplicate 91,701/91,801 thresholds (40/44 rows off) #9026

Description

@PavelMakarchuk

Found while auditing rates/main/reduction.yaml during the backward-leak sweep (#9008/#9022/#9024 class) — this one is not a leak; the 2023 column is mistranscribed. The 2021 and 2022 columns diff clean against the DFA bracket cards, row by row.

The 2023 DFA "bracket adjustment" card (TaxBrackets_2023.pdf) reduces the $89,601–$94,200 range in $10 steps per $100 of income, with three income ranges deliberately $200 wide — card note, verbatim:

"The income ranges indicated with an asterisk (*) extend an extra $100 intentionally. Ark. Code Ann. …"

with asterisked rows, verbatim: "*$90,001 $90,200 4.70% $543.70", "$90,901 $91,100 4.70% $463.70", "$93,601 *$93,800 4.70% $203.70", and a row PE omitted entirely: "$89,901 $90,000 4.70% $553.70".

PE's 2023 column (a) omits the $89,901–$90,000 → $553.70 row, shifting every subsequent row's amount up by $10 through $94,200, and (b) contains duplicate thresholds 91_701 and 91_801, which sum to 787.40/767.40 instead of 393.70/383.70. Programmatic diff of all 44 card rows (midpoint probe per row): 40/44 mismatch — off by $10 across ~$89,901–$94,200, and off by ~$390 in $91,701–$91,900 (an understatement of AR tax, since the reduction is subtracted).

Fix: re-key the 2023 column of parameters/gov/states/ar/tax/income/rates/main/reduction.yaml against the card: insert the missing row, encode the three $200-wide asterisked ranges, remove the duplicated thresholds. TY2023 only; 2021/2022/2024+ columns untouched.

Integration test (expected from the card): 2023 single filer with taxable income $91,750 → reduction $393.70 (card row "$91,701 $91,800 4.70% $393.70"), i.e. tax = 4.7% × midpoint-computed base − 393.70 per the card's formula note ("the results must match the table exactly. The calculations in the table are made at the midpoint of each income level").

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions