Each of these is called by a registered API handler behind a tenant wall and a fail-closed finance-role gate. One honest bound on the whole section: reachable is a source-level claim. It means a handler calls the function. It does not mean anyone has run it against a production database, and where a surface reads a table that nothing writes yet, the card says so.
Gross-to-net arithmetic
Gross-to-net arithmetic — exact integer cents, and a paycheck that cannot go negative
Earnings in, deductions in, net out — every field an exact integer number of cents, never a float. Net floors at zero: a paycheck cannot be negative. And when deductions exceed gross, the over-deduction is flagged for review as its own signal rather than silently zeroed and forgotten — the floor being hit is exactly the case a human has to look at. A negative earning or deduction line is treated as zero rather than allowed to corrupt a sum.
Per-authority taxable basis
Per-authority taxable basis — the number one real-money hazard, computed one authority at a time
Different pre-tax deductions reduce different tax bases, and a single wrong mask produces the wrong Social Security and Medicare withholding and the wrong W-2 Boxes 3 and 5 and the wrong 941 — one mistake, three wrong documents. So there is no single “taxable wages” number here. Each authority gets its own basis, computed from a signed per-deduction-class exemption mask, and each carries its own reconcile identity: basis equals gross minus what reduced it, and never falls below zero. An unsigned mask computes no basis at all — it does not guess “reduce everything” and it does not guess “reduce nothing.”
Federal withholding
Federal income-tax withholding — IRS Pub 15-T Worksheet 1A, step by readable step
The percentage method for automated payroll systems, written as the worksheet actually reads: annualize the wage, apply the Step 4a and 4b adjustments and the filing-status standard adjustment, look up the tentative annual tax in the supplied bracket table, de-annualize, subtract the Step 3 tax credit, add the 4c extra per-period amount. The per-period division floors down and the dropped sub-cent fraction is returned rather than rounded away. Every constant — the standard adjustment, the bracket table — is supplied and signed. This module invents no IRS figure.
FICA, employee and employer
FICA and Medicare — rates as exact rationals, because 1.45% is not an integer per-mille
Medicare is 1.45 percent. Expressed as an integer per-mille that is 14.5, which is not an integer — so a per-mille engine has to round the rate itself, and a rounded rate is wrong on every paycheck forever. This module takes the rate as an exact integer rational (145/10000, 62/1000, 9/1000) and floors the product, surfacing the dropped fraction. No rate is ever rounded. Social Security is capped against year-to-date wages; Medicare is uncapped; Additional Medicare is employee-only with no employer match, because that is the law and a symmetric implementation would have quietly over-charged the employer.
Gross-to-net pay stub
The pay stub — one composed statement over the same primitives
The stub composition endpoint assembles the earning lines, the per-authority bases, the withholding lines and the net into a single statement, using the same primitives the individual endpoints expose. There is no second arithmetic path for “the stub version” of a number: if the FICA endpoint and the stub ever disagreed, one of them would be calling something that does not exist.
NACHA structural proof
NACHA PPD — the batch is built and proven, and the file is withheld
The direct-deposit builder assembles a balanced NACHA PPD batch as fixed 94-character records and proves the structural invariants a receiving bank checks: every record exactly 94 ASCII characters; each routing number passing ABA mod-10 with the 3-7-1 weights, and a bad routing withheld and flagged rather than sent; the entry hash agreeing between batch control and file control; block-fill padded to a multiple of ten; a single balancing debit whose amount equals the sum of the credits exactly; a zero-dollar prenote that holds instead of settling. Then the endpoint withholds the raw file and returns the proof, with transmitted and railLive both false. No socket is opened. There is no originating bank.
W-2 / W-3 / 941 reconcile
The three-way filing reconcile — the year has to agree, or it blocks
Before anything could be filed, one identity has to hold: the sum of every employee W-2 equals the W-3 transmittal equals the sum of the four quarterly 941s. If it does not, the reconcile blocks and shows the leg that disagrees. On top of that the per-W-2 box invariants: Box 3 never exceeds the annual Social Security wage base, Box 5 is uncapped, Box 1 excludes pre-tax deferrals while Boxes 3 and 5 include them (so Box 1 is at most Box 5 by construction), and the 941 fractions-of-cents drift is carried as an explicit adjustment line, never hidden and never force-balanced to make a total look tidy. This proves a filing set. It emits no form and transmits nothing.
Four-eyes approval
Segregation of duties — four-eyes in the engine, not in the org chart
The approval decision refuses when the approver is the same person who assembled the run. Above a configurable total-gross threshold it requires a second, distinct approver who differs from both. And the approval binds to the register content hash: change a single line after sign-off and the hash changes, which invalidates the approval and forces a re-approve. Four-eyes written into a policy document is a hope. Four-eyes that fails closed in the function that returns the verdict is a control.
Employee self-service
Employee self-service — built end to end, and honestly inert
The self-service lane is built the whole way through: the decision module, thirteen registered endpoints, a web route, and a row-level isolation test. It is deny by default — a user may touch only the row whose employee reference equals their own server-resolved reference, a blank viewer authorizes nothing, and there is no widen path and no privileged branch anywhere in the lane. A direct-deposit submission is validated and returned, not stored: the routing number is checked against ABA mod-10, the account comes back masked to its last four digits, the full account is never echoed in any response, and the disbursement status is always honest-off. A W-4, direct-deposit or address submission computes a SHA-256 hash-chained audit event and returns it to the caller, with a one-way digest standing in for the sensitive value. Leave balances are counted in days, never money. Now the honest part, and it matters. Two things are missing, and they are the same kind of thing. The stub, W-2 and total-compensation views read pay tables that nothing in production writes, so they return an honest empty result until a run writer exists. And the change endpoints persist nothing at all — the repository behind this lane has five read methods and no write method, so a submitted election or address is validated, audited, returned, and then gone when the response ends. Built, wired, walled, and not switched on.
Quarterly 941 read
The employer quarterly 941 — assembled from movements, filed nowhere
The quarterly return is built by reading recorded payroll movements out of the database and assembling the employer figures. It files nothing and transmits nothing, and it returns a clean service-unavailable when no database is provisioned rather than a plausible-looking zero. Same honest caveat as self-service: it reads a table that has no production writer today.
Hiring and HR records
Hiring and HR records — the one lane in this whole category that actually persists
Job requisitions, the application funnel, stage advancement, the hiring-approval and hire decision, the pipeline board, and the HR dashboard are all reachable — and unlike every payroll surface above, this lane writes to the database. Employee records, staff credentials, professional development activity, job postings, applications, leave balances and leave requests all have real persistence behind them. If you are looking for the part of this product that is finished rather than proven, it is this one. Leave is tracked in days; nothing in it touches money.