Repository navigation
fix: eight TY2025 engine fixes for accuracy - #147
Merged
Merged
Conversation
Schedule C and partnership K-1s both sent net_profit_schedule_c; the executor merged them into an array, schedule_se failed Zod validation and SE tax and the half-SE deduction silently became 0. - schedule_se accepts one line 2 total per producer, adds them and retains the combined amount (i1040sse, Line 2: Schedule C line 31 and K-1 box 14 code A). - On a joint return each K-1 with SE earnings becomes an owner source for the spouse its recipient TIN names, so each spouse's Schedule SE nets only their own earnings (i1040sse, Who Must Pay SE Tax). The owned path rejects line 2 earnings with no owning spouse instead of dropping them, and the export reconciliation rebuilds K-1 sources too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
general threw unless dependent_earned_income was hand-entered, so a dependent's return lost filing status downstream and computed no tax. agi_aggregator now sends the worksheet's earned income (Form 1040 line 1z plus Schedule 1 lines 3, 6 and 8r, minus Schedule 1 line 15; 2025 i1040, Standard Deduction Worksheet for Dependents) and standard_deduction uses it when no reviewed figure is supplied. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A failing node never sends its outputs on, so every line after it reads zero while return get still printed totals (a general failure left no filing status, total tax 0 and a refund of all withholding). return get now reports complete: false and the failed nodes, and leads its warnings with [SUMMARY_INCOMPLETE]. Export blocking is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Code H (direct rollover of a designated Roth account distribution to a Roth IRA) was taxed in full. It now has a zero taxable amount and checks line 5c rollover, per the 2025 Instructions for Forms 1099-R and 5498 (box 7 code H) and the 2025 Instructions for Form 1040, lines 5a and 5b. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Without Form 2441 filing details, up to the section 129 limit of box 10 benefits was excluded even with no qualified expenses. 2025 Form 2441 Part III limits the exclusion to the qualified expenses incurred (line 16, line 17), so with none entered all benefits are taxable on Form 1040 line 1e. The limit tests now state ample expenses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
When any W-2 lacked employer_ein, the fallback pooled all box 4 withholding across both spouses and invented a credit (two spouses each at the 10,918 cap gave a false 10,918 excess). The fallback now groups by employee SSN, as the Schedule 3 line 11 instructions require for joint returns. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The line 7 payment reached Schedule 3 line 10 only when the Drake print flag produce_4868 was "X", so a paid extension silently vanished from the return. produce_4868 only controls generating Form 4868; the payment (still requiring its reviewed evidence) now routes either way, and the export reconciliations no longer require the flag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Line 23 kept Schedule 2 cents (Form 8960 line 17), so return get showed e.g. 17,748.59, and the general Form 8995 route sent an unrounded line 15 (783.4). Form 1040 now retains its whole-dollar line 23, the general Form 8995 calculation rounds line 15, and the Schedule 2 / line 23 export check accepts the whole-dollar line (2025 i1040, Rounding Off to Whole Dollars). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner-only Schedule SE deposits (no legacy line 2 scalar) tripped the new guard. Compare only when a line 2 total was sent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… penalty The Form 1040 route ignored Form 1040-ES payments and assumed every payment was made on its due date. Form 1040-ES now hands each dated payment to Form 1040, and the 2025 penalty worksheet applies each payment first to the earliest unpaid installment, carrying the excess with the same date, and charges each underpaid amount from its column date until paid or 4/15/26 (2025 Instructions for Form 2210, Part III Sections A-B, Table 2: 7% for every rate period; a payment on Monday 6/16/25 is timely for the Sunday 6/15 column). Due dates and rate periods move to CONFIG_BY_YEAR. Line 4 is now line 24 less refundable credits (Schedule 3 line 31 without lines 10 and 11), excess social security counts as withholding, and the 110% rule uses $75,000 for married filing separately. Synthetic regression: MFJ, line 4 tax 9,402, no withholding, 2024 tax 9,343 (AGI 115,177), four 2,400 payments on 4/19/25, 6/17/25, 9/22/25, 1/15/26: penalty $4 by hand from the worksheet (base engine: $394). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e rest There was no input for a prior-year qualified business or REIT/PTP loss carryforward, so the QBI deduction was overstated. The new qbi_loss_carryforward input feeds Form 8995 lines 3 and 7 (i8995 2025: prior-year Form 8995 line 16/17 or 8995-A line 39/40). When the losses exceed current QBI or REIT/PTP income, lines 16 and 17 now carry the remainder to the next year instead of throwing. Above the threshold Form 8995-A still rejects the carryforward explicitly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Schedule 8812 threw "needs complete Credit Limit Worksheet A and B answers" unless the worksheet was keyed, because Schedule 3 only sent its lines when it had a credit. Schedule 3 now always tells Schedule 8812 either its Worksheet A lines (1-4, 5b, 6d, 6f, 6l, 6m) or that a late-settled credit leaves them pending, and a return with no Schedule 3 enters zero on Worksheet A line 2 with no Worksheet B (2025 Schedule 8812 instructions). The keyed worksheet stays an optional override; Worksheet B (Forms 8396, 8839, 5695 Part I, 8859) still needs it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1099-DIV box 7 foreign tax always took the Form 1116 path, which needs a per-item ex-dividend holding review and an MeF country code. A 1099-DIV can now carry the election to claim the credit directly on Schedule 3 line 1. Form 1116 enforces the election's conditions across the return (Form 1116 instructions 2025, "Election To Claim the Foreign Tax Credit Without Filing Form 1116"): every foreign tax on a qualified payee statement, no Form 1116 carryover, total at most $300 ($600 MFJ), and a credit of the smaller of the foreign tax or the regular tax. The 16-day holding period still applies through the existing holdingPeriodDays check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Form 1098 box 1 was rejected unless a reviewed deductible amount and workpaper reference were supplied. Without them the node now figures deductible home mortgage interest across all Schedule A mortgages with Pub. 936 (2025) Part II Table 1: each loan's average balance is the average of its first (box 2) and last-day-secured principal, box 3 sorts debt into lines 1, 2 and 7 ($1,000,000 before 12/16/2017, $750,000 after), line 14 is rounded to three places, and line 15 goes to Schedule A line 8a. A reviewed amount stays an override, but applies to every mortgage or none. MFS balances over $375,000 still need a reviewed amount, since the node does not know the filing status; Schedule A and the export checks reject them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A passive partnership or S corporation box 1-3 loss is held back from Schedule E and sent to Form 8582 as its own activity, so it nets with passive income and Schedule E rentals (2025 Instructions for Form 8582, Worksheet 3). Form 8582 and the AGI aggregator now accept a current loss from more than one source. A K-1 box with no stated passive status stays nonpassive and the CLI warns that it was treated as nonpassive. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds owned_home: lines 10-11 mortgage interest and real estate taxes (itemizer) or lines 16-17 (standard deduction), operating expenses, the line 15 and 28 income limits, Part III 39-year depreciation of the building's business basis, and Part IV carryovers. The personal shares of lines 10 and 11 go to Schedule A lines 8a and 5b (2025 Instructions for Form 8829). Schedule A lines 5b and 8a accept several sources. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
schedule_a accepted force_standard but never passed it on, so a return still itemized whenever itemized deductions exceeded the standard deduction. The standard deduction worksheet (and Form 8995's taxable income estimate) now take the election (IRC §63(e)); an MFS return whose spouse itemizes still must itemize (§63(c)(6)(A)). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Schedule H Part II Section A required per-employee payroll rows, and the native and PDF exports rejected Part I totals without a FICA-only payroll inventory. The 2025 Schedule H instructions ask only for employer totals: Part I lines 1a, 3, 5 and 7, and for a one-state employer who paid all contributions on time, Section A lines 13-16 (state, contributions paid, total FUTA wages, FUTA tax). Employee rows stay optional and, when given, are still reconciled; a state payroll review still needs them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A computed field replaced the same field the user entered, so K-1 box 7 royalty rows deposited by k1_partnership (and Form 4952 royalty rows) replaced every entered Schedule E property: a 6,000 rental plus a 1,000 K-1 royalty filed Schedule 1 line 5 as 1,000. Computed rows now append to entered rows; scalar derived context still replaces (2025 Instructions for Schedule E, Part I). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The W-2's computed line_5a_state_income_tax replaced the entered amount (estimates and prior-year balance paid in 2025), so a 58,000 entry plus a 500 W-2 box 17 became 500 and the return fell to the standard deduction. The W-2 now sends w2_state_local_income_tax; Schedule A adds it to the entered line 5a and retains the combined line (2025 Instructions for Schedule A, line 5a). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…acts An employer HSA contribution in W-2 box 12 code W threw unless the Employer Contribution Worksheet's prior- and next-year amounts were given. Per the 2025 Form 8889 line 9 instructions, with no contribution made in 2025 for 2024 or in 2026 for 2025, line 9 is the code W amount, so the whole amount now counts for 2025. The beneficiary identity also defaults to the W-2 employee, as the taxpayer, when one employee's code W is the only owner evidence and no spouse HSA is given; the native and PDF exports print the return's name for that owner. A form with no HSA facts at all still files nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CI: return-hints enters line_5a_state_income_tax as the full line 5a (equal to its W-2 withholding), and adding the W-2 again double-counted it. An entered line 5a is again the full amount and may not be below the W-2 withholding; estimated payments and prior-year balances paid in 2025 go in the new line_5a_other_state_income_tax, which adds to the W-2 withholding (2025 Instructions for Schedule A, line 5a). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds prior_year_assets to Schedule E properties, Schedule C businesses and Schedule F farms. Each asset's return-year MACRS deduction comes from the Pub. 946 (2025) Appendix A tables: A-1 (half-year), A-2 to A-5 (mid-quarter), A-6 (27.5-year residential, mid-month) and A-7a (39-year nonresidential), applied to the business-use basis less section 179 and the special allowance, and capped at the basis not yet recovered. The node adds it to the activity's depreciation line and finalizes the row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A prior-year minimum tax credit carryforward was rejected unless reviewed 2024 Forms 6251/8801 were entered, and the credit used entered regular tax and TMT. A carryforward alone is 2025 Form 8801 line 19 = line 21, so it now needs no prior evidence (entered evidence must still match). The node asks Form 6251 for line 9 and Form 1040 finishes Part II from the final return: line 22 = line 16 + Schedule 2 line 1z - line 19 - Schedule 3 lines 1-6z other than 6b and 6k; line 23 = Form 6251 line 9; line 25 = smaller of line 21 and line 22 - line 23, finalized on Schedule 3 line 6b; line 26 carries the rest (2025 Instructions for Form 8801). Form 3800, 8834 and 8912 credits beside this route are refused until joint ordering exists. Synthetic regression: single, 250,000 wages, carryforward 86,216: regular tax 52,023, TMT 42,094, credit 9,929, carryforward to 2026 76,287. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… 8582 A property with cents or a fractional ownership share sent a non-whole net to Form 8582, which then threw that activity amounts do not reconcile. Form 8582, Schedule 1 line 5 and Form 8995 now take the whole-dollar Schedule E line 21/22 net that the export files. A passive K-1 loss that the K-1 reports as QBI is marked so its suspended part leaves QBI until allowed (Reg. 1.199A-3(b)(1)(iv); Instructions for Form 8995, Determining Your Qualified Business Income). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Form 8863 threw unless every student row carried filer_magi and filing_status. General now sends the return's filing status and the AGI aggregator sends MAGI (Form 1040 line 11 plus the Form 2555 exclusion, 2025 Form 8863 instructions lines 3 and 14); a student's keyed values still override them. So the new AGI-aggregator edge adds no import cycle, Form 8863's claimant review no longer imports modules that reach the AGI aggregator: its MeF caller passes the parsed W-2 copies, and the dependent scholarship review schemas move to a schema-only module (re-exported from the original). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keeps both changes to schedule_a line 8a: the 8829 branch's summed array of deposits and the Pub. 936 branch's form1098_table1_average_balance field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # forms/f1040/nodes/inputs/income/other/education_income/dependent-scholarship-review.ts
…ry test main renamed general's dual-status input (#156), so the old trigger no longer failed the node. A spouse dependent on a single return still does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… distributions A positive joint saver's credit threw inside the Form 1040 node when no reviewed 2023-through-prefiling-2026 distribution ledger was entered, zeroing every Form 1040 line. Form 8880 line 4 (2025 Instructions for Form 8880) is the distributions received in the testing period; with none entered it is zero, which the calculation already returned. A ledger, when entered, still reduces each column. Synthetic regression: MFJ, AGI 48,000, W-2 code D 2,000 per spouse: 20% rate, credit 800, tax after credits 853 (base: f1040 node failure). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…limit codeDExcessDeferral required an employee SSN for every code D W-2 before checking whether any excess existed. Under the 2025 Form 1040 instructions for line 1h, only elective deferrals over the 23,500 limit are income, so when every W-2's code D total is within that limit there is no excess and no owner or plan review is needed. Synthetic regression: one W-2, wages 46,386, code D 18,000, no SSN: no line 1h excess (base: threw for the missing SSN). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nol_carryforward threw on any positive carryforward and never reached Schedule 1 line 8a. The AGI aggregator now applies the carryforwards (IRC §172(a); Pub. 536): pre-2018 losses first, oldest first, without the 80% limit and within their 20-year period; then post-2017 losses up to 80% of taxable income figured without the NOL and QBI deductions, less the pre-2018 deduction. The unused remainder is reported as the 2026 carryforward. Taxable income is AGI before line 8a less the filing-status standard deduction; current_year_taxable_income still overrides it, and the standard deduction worksheet rejects a return whose actual deduction differs from that assumption. Not handled: carrybacks, the alternative tax NOL deduction (Form 6251 line 2f) and farming-loss carrybacks. Export still requires the Form 172 attachment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y default Schedule C business interest threw unless a documented section 163(j) exemption with prior-year receipts was given, dropping the whole Schedule C and its SE tax. Per the 2025 Form 8990 instructions (Who Must File), a taxpayer meeting the IRC 448(c) gross-receipts test ($31 million for 2025) is exempt and files no Form 8990. Without the receipts history, a sole proprietor's line 1 receipts at or under the threshold now count as meeting the test; receipts above it still need the reviewed history. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An MFS return with benefits and no lived-apart answer made agi_aggregator throw, so AGI never reached the standard deduction, tax, Form 8960 and Form 6251 and the return showed no tax. Per the 2025 Form 1040 instructions, Social Security Benefits Worksheet, an MFS filer who lived with their spouse has no base amount: line 16 is 85% of line 7 and the taxable amount is the smaller of line 16 and 85% of benefits. That rule now applies unless the filer says they lived apart all year, and the CLI hints that it was assumed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…input Form 461 refused to compute unless a preparer-entered scope review was supplied, even though the node already had the return's Schedule C and F lines. It now figures line 9 from those lines against the 2025 line 15 threshold (313,000; 626,000 joint) per the 2025 Instructions for Form 461; an entered review must still match. Wages are not business income for the limit (IRC 461(l)(3)(A)). Synthetic regression: MFJ, Schedule C loss 700,000, W-2 50,000: line 16 -74,000, Schedule 1 line 8p 74,000, NOL carryforward 74,000. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On a joint return, Schedule F threw "Joint Schedule SE needs each farm proprietor and source activity" for a single farm owned by one spouse when the row had no farm ID, even though it named its proprietor. The 2025 Schedule SE instructions put each spouse's farm profit or loss on that spouse's own Schedule SE, so the row's proprietor_recipient routes it, and the row's position stands in for a missing farm ID. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… smoke cases The passive K-1 fix (eace6db) warns when a K-1 box has no stated passive status and is treated as nonpassive. The archived issue77 cases carry such K-1s; the totals already reflect the default, so the smoke accepts that advisory alongside the refund advisory and still fails on any other warning. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One year-comparison occurrence the baseline recorded was removed by the merged eval branches (bun run check:structure --shrink-year-baseline). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…x/steward-147-20261019-latest
Collaborator
Author
|
Thanks for putting together this broad TY2025 accuracy pass and for staying with the follow-up fixes. The added regression coverage made the final review much easier to verify. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Eight engine fixes found by running seven real TY2025 returns (Drake, UltraTax, Lacerte) through the
opentaxCLI and comparing them with the returns the tax software printed. Each mismatch was checked by hand against the 2025 IRS instructions; these are the cases where the tax software was right. Every fix has its own commit and a regression test built from synthetic inputs. Each test failed before its fix and passes after. No taxpayer data is in this PR.Fixes
1. Schedule SE dropped all SE tax for Schedule C plus K-1 box 14a
net_profit_schedule_c. The executor merged them into an array,schedule_sefailed Zod validation, and SE tax silently became 0. Nowschedule_seaccepts one total per source, adds them, and keeps the combined line 2. On a joint return, each K-1 with SE earnings becomes an owner source for the spouse itsrecipient_tinnames. The joint path now raises an error for line 2 earnings that belong to no spouse instead of dropping them, and the export check rebuilds the K-1 sources.forms/f1040/e2e/taxes/self-employment/schedule_se_multiple_sources.test.ts. MFJ case: Schedule C 219,689, plus K-1 −32,870 for each spouse, gives SE tax 26,396 and deduction 13,198. A single-filer case is included too.2. The dependent standard deduction never computed
generalno longer requires a hand-entereddependent_earned_income.agi_aggregatornow sends the worksheet's earned income tostandard_deduction. A reviewed figure, when supplied, still takes precedence.forms/f1040/e2e/deductions/standard/dependent_standard_deduction.test.ts. W-2 65,630 gives 12e 15,750 and tax 5,887 (Tax Table). 1099-NEC 4,356 gives 12e 4,498, taxable income 0, and total tax 616.3.
return getprinted totals after a node failedreturn getnow returnscomplete: falseandfailedNodeswhenever anEXECUTOR_NODE_FAILUREoccurs, and its first warning is[SUMMARY_INCOMPLETE]. Every node feeds some return line, so any failure flags the summary. Export blocking is unchanged.cli/commands/return.test.tscovers a general failure and a clean return.4. 1099-R code H was taxed in full
f1099r/index.test.ts.5. W-2 box 10 was excluded without qualified expenses
form2441/index.test.ts.6. Excess social security pooled both spouses when an EIN was missing
employee_ssn.w2/index.test.ts. Two spouses each at the 10,918 cap now give no excess.7. The extension payment was dropped unless
produce_4868 === "X"produce_4868is only a print flag. The line 7 payment now reaches Schedule 3 line 10 either way, and still requires its reviewed payment evidence. The two export checks no longer require the flag.ext/index.test.ts.8. Fractional line 13 and line 23
f1040/index.test.tsandform8995/index.test.ts. One existing test expected an unrounded 2000.2 for line 13 and now expects 2000.Entered values replaced by computed ones (executor merge)
Root cause: in
core/runtime/executor.tsmergePending, a computed field replaced the same field the user had entered.ac52add6). Citation: 2025 Instructions for Schedule E, Part I. Rows a node computes (K-1 royalty properties, Form 4952 royalty rows) are now appended to the rows the user entered. Single computed values still replace entered ones. Test:forms/f1040/e2e/income/rental/schedule_e_entered_and_k1.test.ts. A 6,000 rental plus a 1,000 K-1 royalty now gives Schedule 1 line 5 = 7,000.62733724,4572dd90). Citation: 2025 Instructions for Schedule A, line 5a. The W-2 now sendsw2_state_local_income_tax, and the user enters line 5a in one of two ways:line_5a_state_income_taxis the full line 5a. It may not be below the W-2 withholding, and the return is rejected if it is. An existing return-hints test enters it this way.line_5a_other_state_income_taxholds estimated payments and prior-year balances paid in 2025. It is added to the W-2 withholding.forms/f1040/e2e/deductions/itemized/schedule_a_state_tax_sources.test.ts. MFJ: 58,000 of other payments plus 500 from box 17 gives line 5a 58,500, SALT 40,000, and the return itemizes. A full 58,500 entered gives the same result, and a full line below the withholding is rejected.schedule_a.line_8a_mortgage_interest_1098(the issued 1098 is the source; adding would double count), andschedule_a.filing_status,schedule_a.agi,form8919.taxpayer_ssn(values derived from the return).Later eval batches (merged into this branch)
4852aee3677e53e501a18d11d25136c0ca6ef14417ac92d1force_standardelection is honored6bd3195723816da143d97518a78cafc04da95ff2eace6dbc664880726aaad4ee95078cfcEnd-to-end eval result
Across 27 production TY2025 returns compared line by line with the tax software's printed 1040s:
main: 1 headline match, 44% of lines.mainregressed, except one line that is still under review.Verification
Results at the merged tip
46cc40a8, compared with4572dd90(which passed CIunit-and-preflight):check:structure: pass.check:sandbox: pass (1,528 modules).check:mef: pass, 0 problems.check:cli: 18 returns, 0 problems.check:oracle: 137 cases, no expected-value changes.test:unitandtest:forms: no new failures (6 and 57 failures on both commits). These suites exit non-zero locally because the IRS MeF schemas and the certificate setup are absent; CI is the authority.bench --form f1040 --year 2025: identical output on all 109 cases (20 pass on both). No benchmark case was edited.Not verified
line12a-dependent-source.ts) still needs a hand-entereddependent_earned_income. Only W-2-only refund returns are supported there.Known gaps (not implemented)
Fixed since the first version of this PR: the Form 2210 penalty, the QBI loss carryforward, owned-home Form 8829, the Pub. 936 limit, the Schedule 8812 worksheets, and passive K-1 losses through Form 8582. Still open:
🤖 Generated with Claude Code