rachuba run
rachuba run [--pay-date YYYY-MM-DD] [--gross AMOUNT] [--kind LABEL] [--commit] [--json]
Computes one paycheck and prints its pay stub with year-to-date totals,
then the Form 941 amount to deposit through EFTPS and its due date, and, when
there is one, the elective deferral to send to the plan trustee and its due
date. Without --commit nothing is recorded and the output ends with
Not recorded. Re-run with --commit to append it to the ledger.
--pay-date: defaults to today; its year is the tax year.--gross: replaces the configured gross, for a bonus or a short period.--kind: the run's label, defaultregular. Onlyregularruns count as pay periods in rachuba return.--commit: appends the run to the ledger. rachuba void takes the last committed run back out.
The order of a run
- Gross wages for the period.
- Pre-tax and Roth deferrals, never more than the paycheck and never past the year's remaining deferral room, filled pre-tax first.
- The employer contribution, held under 25% of the year's compensation and the section 415(c) limit.
- Wages for income tax withholding: gross less the pre-tax deferral. Wages for Social Security, Medicare and FUTA: the whole gross.
- Federal taxes, then state and local taxes.
- Net pay: gross less both deferrals and every employee-side tax.
Each adjustment prints a NOTE: a deferral reduced to the
paycheck, a deferral capped at the remaining room, an employer contribution
reduced by either limit, and a negative net pay. For California, a
WARN line says when the year's FUTA credit reduction is not yet
determined (a configured rate is only an estimate), or when the configured
rate differs from the final Schedule A rate.
With --json: run, notes,
advisory, year_to_date, form_941_liability,
eftps_due, elective_deferral, deferral_due,
recorded and ledger.
Refusals
Exit 1, nothing recorded, for a pay date before the ledger's last run:
pay date <date> is before the last recorded run on <date>. A backdated run would invalidate the wage bases already applied; record a correction dated today instead.
And the shared ones on configuration.