CLI reference

rachuba return

rachuba return [--year YYYY] [--json]

Projects the employee's own Form 1040 for the year (default the current one) and records nothing. It reads the ledger, the [household] section of the configuration, and form-1040.toml and ira.toml in the year's federal tables folder.

The year is completed with the engine that pays it. Every regular pay period not yet in the ledger (the periods in a year less the runs recorded with --kind regular) is computed at the configured gross and elections, so projected withholding, deferrals and employer contributions obey the same limits a real run does. Off-cycle runs count as income, not as periods. Nothing projected enters the ledger.

What it prints

  • Income and tax. Wages from this payroll and a spouse's, other income, interest and dividends, the capital gain or deductible loss, the adjustments, adjusted gross income, the larger of the standard and itemized deduction, and taxable income. Income tax is the lesser of the rate schedule and the Qualified Dividends and Capital Gain Tax Worksheet; a net capital loss offsets at most $3,000 of other income ($1,500 filing separately). Then credits, the 3.8% net investment income tax, the 0.9% Additional Medicare Tax on combined Medicare wages (this payroll's box 5 plus the spouse's box 5, which may differ from box 1 after retirement deferrals), the total, and the bracket of the last dollar of ordinary income. Below $100,000 the printed Tax Table can differ from the schedule by a few dollars.
  • Payments. Withholding from this payroll, withholding elsewhere, estimated payments, and the balance due or refund.
  • Estimated tax. The required annual payment, the lesser of 90% of this year's tax and 100% of last year's (110% when last year's adjusted gross income was over $150,000, $75,000 filing separately). For each installment, due April 15, June 15, September 15 and January 15, the amount required by then, the amount credited, and the shortfall. Withholding counts in four equal parts whenever it was withheld; an estimated payment counts from the day it was paid. Under $1,000 of tax after withholding, nothing is short. The annualized income installment method is not computed. The next installment due is named with the amount that clears its shortfall.
  • 401(k). The deferral ceiling, deferred so far and for the year as elected, the ceiling unused, the deferral per remaining period that reaches it, the largest employer contribution (25% of compensation inside the section 415(c) limit), the federal tax the pre-tax deferrals save against the same amounts as Roth, and the further saving if the unused ceiling goes pre-tax.
  • IRA, for the employee and on a joint return the spouse. The modified adjusted gross income used for the phase-outs is printed. Set household.ira_magi_addbacks to the part of household.adjustments that the IRA worksheets add back, including any deducted traditional IRA contribution; otherwise the default is zero. The value cannot be negative or exceed adjustments. The limit includes the catch-up from 50 and is capped at compensation (the couple's on a joint return). The traditional IRA deduction phases out for someone covered by a workplace plan or married to someone who is; the employee counts as covered in any year with a deferral or employer contribution. The Roth IRA contribution phases out across its own range. A reduced limit is rounded up to the next $10 and is never under $200 until the range is passed. Where Roth is phased out, a nondeductible contribution converted to a Roth IRA remains available.

State income tax returns are not projected. With --json: year, filing_status, payroll, income, tax, other_withholding, estimated, retirement, ira_magi, ira_employee and ira_spouse.

Refusals

Each exits 1 and changes nothing.

<config> has no [household] section, so there is no return to project: the filing status and the household's income outside this payroll are unknown. Copy the [household] section of the file `rachuba init` writes into it and set every value.

<folder> has no [individual] section, so the <year> return cannot be projected. Transcribe the rate schedules, standard deduction and capital gains thresholds from that year's revenue procedure into form-1040.toml there.

<folder> has no [ira] section, so IRA eligibility for <year> cannot be judged. Transcribe that year's IRA limit and phase-out ranges into ira.toml there.

household.spouse_wages is <amount>, but a spouse's wages are on the return only when filing jointly and filing_status is <status>. Set spouse_wages to "0.00" or file jointly.

household.spouse_medicare_wages is set, but a spouse's Medicare wages belong only on a joint return. Set it to "0.00" or file jointly.

household.spouse_medicare_wages is required when spouse_wages is positive; enter the spouse's Form W-2 box 5 wages, which can differ from box 1.

household.aged_or_blind_boxes is <n>, but a <status> return has at most <max>: one box for age 65 and one for blindness per person on the return.

household.<field> is <amount>; it cannot be negative

household.ira_magi_addbacks is <amount>, greater than adjustments <amount>. Enter only the part of adjustments that IRA modified AGI adds back.

household.prior_year_tax and household.prior_year_agi go together: the tax sets the safe harbor and the adjusted gross income decides whether it is 100% or 110% of it. Set both from last year's Form 1040, lines 24 and 11, or neither.

household.estimated_payment on <date> is <amount>; a payment must be positive

household.estimated_payment on <date> is outside the <year> payment window, which runs from January 1 to the last installment's due date.

<n> <frequency> pay periods remain in <year> by count, but the ledger's last run is on <date>, leaving no room before December 31 to place them. Record the runs that were paid, or label off-cycle runs with --kind so they are not counted as regular.

And the shared ones on configuration.