Tie-Out Press
Workbook 1.0.2 Built 30 September 2026 Constants: ty2026.json
TY2026 edition
A reconciliation workbook, an offline single-workweek check and a rules reference for the figure that goes in W-2 box 12, code TT.
Free before you buy
The free files and the kit run on your machine: no analytics, no ads, no network request after load.
The arithmetic is written three times, on purpose. engine/qot_engine.py is a
Python implementation with no third-party dependencies. The workbook's Excel formulas are a
second. The offline spot check is a third, in JavaScript. Separate implementations are worth
having only if something drives them from the same inputs and compares them to the same
answers, so that is what the build does.
What that proves is agreement, not independence. Implementations that share a misreading of the specification would agree with each other and still be wrong, and no amount of comparing them to each other would find it. That is why the published examples in the next section carry weight the parity run cannot: they are a check against arithmetic we did not write.
The test suite holds 90 cases. An internal verification build of the workbook loads every
one of them as data. LibreOffice then recalculates that file from scratch in a throwaway
profile with OOXMLRecalcMode forced. Without that flag it reports whatever the
file already claims its formulas come to. Each case's qualified amount is then compared
against the Python engine's own Decimal.
| Comparison | Cases | Mismatches |
|---|---|---|
| Qualified amount, workbook formulas against the engine | 85 | 0 |
| Blocked or eligible verdict | 85 | 0 |
| Analogue invariants, where Excel cannot express the case | 3 | 0 |
| Distinct cases compared | 88 | 0 |
| No Excel expression; named, and not compared | 2 | — |
Every exception rule the workbook implements fires on exactly the cases the engine fires it
on, and the Checks summary cell recalculates to zero. Of the 53 rules on the Exception Log, 44
are live in the workbook and are the ones that run proves; eight are engine only:
the engine raises them and the workbook does not. Each of the eight is marked
engine only on the sheet with a plain statement of what its absence costs you, and
the verification page names the one that can still cost you a number. The fifty-third is
raised by neither half, and the sheet says so. The verification build carries 118,305
formula cells. 111,201 ship carrying their real computed result. The remaining 7,104 are
formulas whose result is an empty string, a row that does not apply or a column that stays
blank until you fill it, so there is nothing to cache. Of the cached results, 4,589 are
checked against the engine: every cell it holds a Decimal for. The file is read twice. Once
with no recalculation at all, which is what a webmail preview or a phone viewer puts on the
screen, and once recomputed from scratch, which is what Excel does on open. Both readings
have to land on the engine's numbers, and the build fails if either does not.
The offline spot check is compared the same way, driven through its own page in headless Chromium. It is a single-employee, single-workweek tool, so it cannot express every case. It matches on the 65 it can, to the cent, including the severity codes raised and the eligibility verdict. The 25 it cannot are each printed with the reason: a deferred bonus spanning a quarter, or a second employee on the same file. None is quietly dropped. That run also counts the page's network requests after load, and finds none.
Five worked examples in the published sources bear on this calculation. The kit reproduces four of them exactly. The fifth is 29 CFR 778.114(b)(1), and it needs a sentence more: the regulation rounds the regular rate to the cent before halving it and the kit never does, so the engine computes $27.27 where the regulation prints $27.28. At the $0.05 operational tolerance the kit ships with, the paid figure sits inside the band and the reported figure is $27.28 — the regulation's own. Set the tolerance to zero and it is $27.27. Both figures are lawful, and the section below sets out the arithmetic on both sides. A further figure is commonly quoted alongside all of them; it is not a published example, and the kit does not present it as one. The arithmetic, line by line, and where the one-third and stub-rate shortcuts break: the half-time premium, worked.
| Source | Facts | Code TT | Status |
|---|---|---|---|
| FS-2026-13, Q16 | $20.00/hr, 50 hours, employer pays double time | $100.00 | Published example, reproduced |
| 29 CFR 778.110 | $12.00/hr, 46 hours, $46.00 nondiscretionary bonus | $39.00 | Published example, reproduced |
| 29 CFR 778.111(a) | 50 hours: $491.00 at piece rates for 46, $8.00/hr for 4 hours' waiting time | $52.30 | Published example, reproduced |
| 29 CFR 778.220(b) | $12.00/hr, 42 hours worked, 2 hours of show-up pay not worked | $12.00 | Published example, reproduced |
| 29 CFR 531.60 | $2.13 cash wage, $5.12 tip credit, 10 overtime hours | $36.25 | Derived from the rule; see below |
That last row needs care. 29 CFR 531.60 publishes no worked example. What it states is a rule: a tipped
employee's regular rate includes the tip credit the employer takes, capped at the section
6(a)(1) minimum wage less the cash wage paid. The $2.13 cash wage is printed verbatim in
531.59 and 531.60. The $5.12 credit is printed in no statute or regulation. It is that
formula's product, given the $7.25 minimum wage at 29 USC 206(a)(1)(C). Apply the rule and the regular rate is $7.25,
not $2.13, and ten overtime hours carry $36.25 of qualified premium.
Computing that premium on the cash wage instead is the most common error in this category.
The derivation is recorded as assumption A12 in params/ty2026.json, and the
rules PDF labels the figure as derived rather than published.
29 CFR 778.114(b)(1) illustrates the fluctuating workweek. Its own arithmetic rounds the week-two regular rate to $13.64 before halving it, and prints a premium of $27.28. At full precision the rate is 600 divided by 44 and the premium is $27.27. The engine never rounds the regular rate, so on those facts it computes $27.27 — and reports $27.28, because the $27.28 the employer paid falls inside the $0.05 operational tolerance, and a premium inside the band is the figure taken. Set the tolerance to zero and the reported figure is $27.27. So the kit reaches the regulation's number at the setting it ships with, without computing it, and the two readings are a penny apart underneath. We would rather you knew that from a sales page than found it in February.
A third rule changed a number rather than a flag in this build, and it is the plainest of the three. Leave Pay basis blank on a Status History row and the workbook used to report a figure for that employee with nothing at all on the exception log to tell you a required field was empty. No warning, no note: a clean-looking answer resting on a pay basis nobody supplied. The same held for a blank Salary amount on a salaried or fluctuating-workweek row, for fixed hours outside 1 to 60, and for a section 207(j) or 207(k) row with no period length. Rule E-205 now blocks all four here, as it always has in the engine and in the spot check.
In the build before it, two further rules changed a number instead of a flag. Status History has a Workweek starts column marked “overrides the employer default” that nothing read: every week was built on the employer-wide value instead, and the start day decides which hours fall in which workweek. It is honored now, and an employee whose workweek definition changes mid-year is blocked rather than reported on whichever definition won (29 CFR 778.301-.302).
And leave Applicable minimum wage blank on a tipped employee whose regular rate lands on the federal $7.25, and the workbook used to fill in $7.25 for you, report a figure computed on it, and log the shortfall as though the employer had chosen to overpay. On DOL's own Field Operations Handbook scenario that is $18.13 reported where $25.00 is right. It now blocks that employee and tells you which cell to fill. The Version sheet carries this as errata, and the verification page sets out how it was found.
There is a second half to it, and it is the more useful half if you run a payroll that does the same thing. All three of the 778.114(b) illustrations compute the premium on a rate rounded to the cent, and 778.113(a) prints a $375 salary for a 40-hour week as $9.38 an hour rather than $9.375. In the third 778.114(b) illustration the rate rounds down, and the premium the regulation prints is a cent below the exact half-time amount. So an employer who rounds the regular rate to the cent is doing what the published illustrations do, and 29 CFR 778.109, which defines the rate, says nothing about precision either way.
The kit used to call that a discrepancy: a non-FLSA excess, or on the third illustration a
possible underpayment. It no longer does. Since 8 September 2026 it computes the same premium
a second way, on the rate rounded to the cent, and where your payroll matches that figure the
week is recorded as compliant on its own row instead of raising a flag. Check C-48 in
the exception log. The reported figure did not change. On that row the kit reports the
smaller of the two lawful readings, which is the amount section 7 minimally required; closer
in, where the premium paid already falls inside the operational tolerance, the paid figure is
the one reported, which is where the $27.28 above comes from. What changed is
that following the regulation no longer costs you a warning. The whole of the reasoning,
including the regulation's four illustrations and their arithmetic in both directions, is
assumption A14 in params/ty2026.json, which ships with the kit.
build/verify_pdfs.py; a builder that tries to type a numeral fails the build.
All fifteen documented assumptions are reproduced in full, and
each one that carries a figure the document prints is flagged where that figure is used.
Coverage is the FLSA regular-rate machinery a bookkeeper actually meets: weighted averages across two rates, shift differentials, tipped employees with and without a credit state, salaried nonexempt on both a fixed workweek and a fluctuating one, deferred bonus true-ups under both allocation methods, compensatory time, California daily overtime, section 207(k) and 8/80 periods, and workweeks that straddle a semi-monthly period or a calendar year.
One case the workbook will not answer, and says so rather than guessing: a single workweek whose overtime premium was paid on two dates falling in different tax years. The pay date decides the year, so that week's qualified amount belongs partly to each, and a workbook row carries one workweek and one pay date. It blocks the week under E-W02 and tells you to split the premium lines into the years they were paid in. The engine does perform the split. A week paid on two dates inside one year is computed normally by both, and the annual figure is the same either way. The engine notes the split under W-704.
The spot check is live now, at tieoutpress.com/spot-check.html. One employee, one workweek, about two minutes, and nothing to fill in first. There is no form on that page, and it makes no network request at all once it has loaded. It is free without condition, now and in every later edition.
Three more things are free, and all three are downloadable now. The TY2026
edition has been released: the workbook is at 1.0.2, under the tag
ty2026-v1.0.2, and the store is open, so any of the three licenses can be bought
from the price table below. Version 1.0.2 changes no figure, and a figure computed with 1.0.0
or 1.0.1 stands. What changed is packaging and wording. Every download now carries
LICENSE.txt, the terms this page states, and a README.txt of its
own. The paid download's constants file sits at params/ty2026.json, the path
this page names. The About sheet's sentence on how the formulas are checked now says which
of the suite's 90 cases are compared to the cent, 85, with 3 held as invariants and 2 named
and not compared, where it said all 90 were; the table under Three implementations gives the
same counts. The Version sheet records each. The three
files below are posted as direct files with no email wall and nothing held back from the
paid file except the license to use it on client work and the blank rows to do it in. They
are the material you would check before paying, and you can check all of it before you pay
for anything.
| Case | What it exercises | Code TT |
|---|---|---|
| SMP-01 | Hourly, one rate | $273.00 |
| SMP-02 | Two rates, weighted average (778.115) | $252.84 |
| SMP-03 | Tipped with a tip credit, in a state above the federal minimum (531.60; 778.5) | $143.00 |
| SMP-04 | Tipped in a no-credit state | $177.45 |
| SMP-05 | Salaried nonexempt, fixed 40 (778.113(a)) | $234.00 |
| SMP-06 | Salaried nonexempt, fluctuating workweek (778.114) | $389.16 |
| SMP-07 | Deferred quarterly bonus true-up (778.209(a)) | $288.86 |
| SMP-08 | Shift differential (778.207(b)) | $321.27 |
| SMP-09 | California daily overtime | $348.00 |
| SMP-10 | Union contract premium (207(e)(5), (e)(6)) | $445.25 |
| SMP-11 | Semi-monthly periods hide who crossed forty | $307.50 |
| SMP-12 | Nonexempt through 4 July, exempt from 5 July | $359.38 |
| Control total | $3,539.71 |
The payroll-vendor documentation map is free on this site as well: what seven payroll vendors' own pages say, and do not say, about the code TT figure, quoted and dated, so you can see which questions your client's vendor answers on its own pages before you buy anything.
The author is not a CPA and not an enrolled agent, and this page will not imply otherwise. No accountant has reviewed the method, and no reviewer is named here, because naming one who has not reviewed would be worth less than nothing to you.
What stands in place of a credential is material you can check before you pay. The sample workbook is a complete file with twelve answers you can work by hand against a published key. Every constant sits beside a citation to the document and section it came from. The formulas are unlocked and visible, so you can read the method for yourself. The version stamp is dated, the change log ships on the workbook's Version sheet, and errata are published when a figure turns out to be wrong. A credential would let you skip all of that. Without one, we have to hand you the material and let you check it.
| License | Price | Covers | |
|---|---|---|---|
| Single practice | $49 | One practice, up to 10 client EINs | Buy |
| Firm | $199 | One firm, every office and every member of staff, up to 50 client EINs | Buy |
| Unlimited | $399 | No cap on client EINs, across entities under common control | Buy |
All three tiers ship identical files. The only difference between them is the breadth of the license. There is no feature held behind the higher price, no seat count to administer, and no build of this kit that computes a different number depending on what you paid.
Fifteen days, a full refund, and no reason required. You do not have to justify the request and we will not ask you to.
What you buy is a non-exclusive, non-transferable license to use the kit within one practice, for the number of client entities in the tier you bought: ten on Single practice, fifty on Firm, and no cap on Unlimited. A client entity means one EIN for which you prepare W-2s in the tax year, so a client with two EINs counts as two and a client you do not file for counts as none. Count the EINs you will file for this season and buy the tier that covers them; if you pass the cap mid-season, the upgrade costs the difference between the two tier prices and nothing more: $150 from Single practice to Firm, $200 from Firm to Unlimited, $350 from Single practice to Unlimited. You may not redistribute, resell or sublicense the files.
There is no warranty that the kit fits any particular client's facts. Our liability to you is capped at what you paid. We do not indemnify you: if a figure is challenged, the cost of answering for it is yours, not ours. You remain the preparer throughout — the kit computes and documents, and it does not take on your role or your responsibility for the return.
It does not promise a tax result. Nobody selling a spreadsheet is in a position to tell you what a revenue agency will do next, and any product that says otherwise is telling you something it cannot know. Section 6724 relieves an information-return penalty where a failure is due to reasonable cause and not to willful neglect, and that showing turns on a consistent, documented method applied the same way to every employee. This kit produces that documentation: the method memo, the exception log with its reasons, and a constants file where every figure carries its citation. Whether a particular showing succeeds is between you, your client and the agency.
It does not file anything, and it does not connect to your payroll system. It reads hours and earning lines you export, and it hands back a figure and a working paper. It is not a payroll engine and will not tell you whether your client paid their people correctly, though the exception log will say plainly when the FLSA premium required exceeds the premium actually paid, which is often the more interesting finding.
For 2026 there is no approximation authority. The Act permitted approximation by any reasonable method only for periods before 1 January 2026, so the qualified figure has to be computed workweek by workweek, and a workweek is a fixed and recurring 168-hour period that stands alone with no averaging across weeks. That is the reason this is a workbook and not a worksheet.
On penalties, plainly. Under section 6721 and section 6722 an incorrect W-2 runs $60 per form corrected within thirty days, $130 corrected within the second tier, and $340 after that, with a minimum of $690 and no annual cap where the disregard is intentional. Both sections can apply to the same form. The revenue procedure's printed text and the statute disagree on when the second tier closes. The discrepancy is recorded verbatim as assumption A3 and our reading of it is recorded as assumption A10: the statutory deadline governs. The kit still describes that tier without printing a date against it, and every customer-facing document fails its own build if one appears. A dated tier would assert one source over the other on a page with no room to show the working, and the constants file is where that argument belongs.
Updates for this edition are included through the filing deadline, and every update carries a dated row on the workbook's Version sheet stating what changed and whether any figure changed. If a figure in this kit turns out to be wrong, you will hear it from us first, in writing, with the correction. Later tax-year editions are a separate purchase. The workbook carries two license cells you fill in from your receipt, and every method memo it generates prints what you typed there.
Every constant is generated from params/ty2026.json and never typed by hand,
which is what makes that promise cheap to keep: a change in guidance is an edit to one file
and a rebuild, not a rewrite.
This list sends two things: a figure in a released edition turned out to be wrong, and a new tax-year edition is out. Nothing else. A confirmation email comes first and nothing follows until you click the link in it. The link at the foot of any message ends it.
This form is the only request either page makes after it has loaded, and it makes it only when you press the button. It carries the address you typed and no other field: there is no second field on this form, hidden or otherwise, and no script on the page to add one. Pressing the button is a request to Kit, which hosts the list and receives it the way any site receives a request, and it leaves this site. Kit takes it from there, and your subscription is not active until you click the link in the email it sends. Nothing else here sits behind an address.
Current as of 4 October 2026.
Not a substitute for professional advice. The Qualified Overtime Kit is a calculation and documentation tool. It is not tax advice, not legal advice, not accounting advice and not payroll advice, and it is not a substitute for a qualified professional who has reviewed your client's particular facts.
Overtime, regular-rate and tip-credit rules vary by state and by the terms of an individual's employment, including collective bargaining agreements and written pay arrangements. You are responsible for confirming which rules apply to each client and for reviewing all output before you rely on it or file it.
Tie-Out Press is not affiliated with, endorsed by, or approved by the Internal Revenue Service, the Department of the Treasury, the Department of Labor or any other government agency. No agency has reviewed or approved this product.
No outcome is promised. We do not warrant that the kit is accurate for any particular set of facts, we cannot say how any authority will treat a figure it produces, and nothing here promises that a penalty, an audit or an assessment will be avoided.
Penalty figures cited on this page are the amounts as adjusted for the applicable filing year, taken from the current revenue procedure as printed. They are not the base figures written into the statute, which are pre-indexation and lower. They are adjusted again in later years, and section 6724 waives a penalty where the failure is due to reasonable cause and not to willful neglect. The amount that applies to a given failure depends on facts this page cannot know.
The Qualified Overtime Spot Check is free without condition: no account, no card, no expiry, and nothing held back from it.
What this site records about you. There is no analytics script, no pixel
and no beacon on this page or on the spot check, and the spot check makes no network
request at all once it has loaded. The one request this page can make is the email form
above, and only if you fill it in and press the button. It carries the address you typed
and no other field, and pressing the button is a request to Kit, which receives it the way
any site receives a request. Requests to these pages are counted at Cloudflare's edge, on
the request that was already being served, and what is written down is the path, the host
of the referring site (never the referring address itself), the two-letter country the
edge already attaches, and a channel tag if the link you followed carried one.
Your IP address is not in that record, in
any form — not hashed, not shortened, not under another name — and neither is
your browser's user agent. The counter is
worker/index.js; tools/verify_edge_instrumentation.py
runs it and fails the build if a row ever carries an address.
Qualified Overtime Kit, TY2026 edition. Published by Tie-Out Press.
Workbook 1.0.2 and spot check 1.0.0, both built 30 September 2026 against
params/ty2026.json, generated 2026-09-06 and last amended 2026-09-20. The
workbook's Version sheet lists each of its versions, with the constants and engine behind
them; the spot check carries its own version and prints it on its page.
Constants derived from the documents named in params/SOURCES.md: statute text
(26 USC 224, 225, 62, 63, 6721, 6722; 29 USC 203, 206, 207) from the prelim edition on
uscode.house.gov; TD 10044 from FR Doc. 2026-07104, 91 FR 19026, effective 12 June 2026;
the sections of 29 CFR parts 531 and 778 that the file names, from the 2025 CFR annual
edition on govinfo, because ecfr.gov sits behind a bot-check gate we do not defeat; IRS
FS-2026-13; the 2026 Form W-2 and its instructions. Each document, the host it came from
and the date it was retrieved are logged there.
Of the 60 URLs it lists, 59 carry a capture row in
params/source-evidence.tsv giving the SHA-256 of the bytes it returned, their
length, and a literal span found inside them. Be precise about what re-fetching proves.
Re-run tools/verify_sources.py --online and most of the 59 come back
byte-identical, hash and all. Some do not, and the count moves every time it is run: on the
12 September 2026 run, when the log held 39 fetched rows, it was 24 identical and 15
changed; on the 20 September run, against the 59, it was 41 and 18. None of those rows has
changed.
uscode.house.gov and dol.gov regenerate a page on each request, so the byte count drifts by
a few dozen and the hash with it. It is one dated run, not a figure you should
expect to reproduce. What holds on all 59 is the probe,
a literal span from the document that must be present in the bytes for the fetch to
count at all. That is the check worth running, because an HTTP 200 carrying none
of the document is not a retrieval. So: a reader can re-fetch any of the 59 and confirm it
still says what we quoted. A reader should not expect every hash to match, and we would
rather print the drift than let a matching hash be assumed. That is a check on the
documents. It is not a claim that any individual constant was read off a retained copy of that fetch.
The sixtieth is Ohio's own 2026 minimum wage release, which the build machine cannot reach
at all, because its network policy refuses the host. Its row says attested
rather than fetched, names who read it and why, and the gate prints it under a heading of
its own on every run. Two Department of Labor tables that the build machine can fetch carry
the same figures. Where a source has been superseded, the superseding
document governs and the constants file records which. Fifteen assumptions are recorded in
the constants file and reproduced in the rules PDF; none is a silent default.
Publisher postal address:
Tie-Out Press, an imprint of Aeon Aurora LLC 377 Valley Rd, Unit 3131 Clifton, NJ 07013Publisher email, for refund requests with the order number, upgrade requests, and FIGURE CHECK reports: support@tieoutpress.com. Company page: https://www.linkedin.com/company/tie-out-press.
Built to the 2026 Form W-2 instructions.