For service shops

The per-job ledger, the parts receipts, and the seasonal cash flow, retired.

The bookkeeping loop adapted to the independent-trades interior — per-job revenue recognition reconciled the night of completion, per-job past-due chasers scripted to the day-of-late the operator wires up once, parts-versus-labor sales-tax split made on the wire-up, and a per-season margin digest pegged to the shoulder-season calendar each trade carries (HVAC, plumbing, auto repair, cleaning). The full wire-once beat is on /how-it-works. The Pro tier ($243/mo) is where the per-job past-due chaser + parts-versus-labor sales-tax split + per-season margin digest ship; the per-job revenue recognition beat ships below that. The /receivables pillar walks the per-job chaser script one cadence close (Stillpost runs the same day-of-late script against per-customer tone the books already carry), and the /sales-tax pillar walks the parts-versus-labor carve-out one state at a time.

The truck-bay billing tax, named plainly.

There is another tax the independent service-shop owner pays — one the bookkeeping books won’t show on a trial balance, but the operator’s Saturday-morning hours carry all the same. It is paid in per-job invoice-clipboard walks and parts-supplier delivery check-ins and the per-job bay-rope the office manager is reading at six-thirty: the per-job invoice the tech wrote on a clipboard at completion, the per-job materials line the parts manager pulled for the truck before the tech rolled out, the Johnstone delivery the parts counter signed at 7:42am, the change-order the customer signed mid-job the office forgot to upload, the per-job card payment the customer handed the dispatcher before the tech pulled out of the bay, the sub-contracted tech W-9 the owner was chasing on a Wednesday morning because the tech worked a job in California and a job in Massachusetts last quarter, and the shoulder-season margin the HVAC shop was carrying against the cooling-season margin the owner was supposed to be accruing on a spreadsheet they built on a Sunday night.

The number is right about eighty percent of the time. The other twenty percent it’s wrong by enough that the operator finds out which one was right the first time a line of credit review goes sideways — the parts-versus-labor line item the parts manager’s costing ledger was missing so the parts tax booked against the labor rate, the per-job materials cost the parts-supplier rolled a price on and the books weren’t updated for (a refrigerant line item, a brake-pad SKU, a fitting the plumbing supplier rolled the case-pack on), the per-job card payment the customer handed the dispatcher before the tech pulled out of the bay but the processor batch posted the next morning against the wrong per-job invoice, the per-completion homeowner job the dispatcher wrote up the per-job invoice for but the books were accruing the sales tax against the contract rate because the parts-versus-labor split the office manager was tracking by hand booked every per-completion line item as parts.

By the next quarter the operator is reconciling five or six feeds against the per-job invoices, the per-job materials line, the per-job card payments, and the per-state DOR remittance calendars — seven or eight of them now, since the operator picked up a sub-contracted tech who worked a job in California and a job in Massachusetts last quarter and the multi-state 1099 nexus the books were accruing against the home-state rate triggered per-state filing the owner didn’t realize — and re-checking each against the per-source truth that landed in the books earlier in the week, in case a per-supplier price rolled and the books missed it, in case a per-contractor moved and the W-9 was never re-chased. The hours are paid in an unscheduled Saturday, a missed kid’s baseball game, the quiet panic the per-state parts-tax late-notice carries when it lands on a Monday morning with the parts-versus-labor split the office manager was tracking by hand and the books were accruing against a single rate.

That tax — the one a per-job completion invoice publishes a day-old receivable for, the one the bookkeeping books already carry as a per-job line item in the period close, the one the owner hand-reconciles by hand on the Saturday before the first truck rolls out on Monday — is the one Stillpost built the bookkeeping loop to retire for service shops. Same five or six sources. Same per-customer tone. A read-only connect per source, one wire-up at the parts counter. The cash position refreshes every fifteen minutes between the last truck rolling in and the first truck rolling out, the per-job past-due chaser fires on the day-of-late the operator wires up once (Net-15 on day 17, Net-30 on day 33, per-completion homeowner jobs on day 7, commercial property-manager accounts on day 17, general-contractor commercial jobs on day 33), the before-midnight per-job parts reconcile matches each day’s per-job materials line and each parts-supplier delivery and each per-job return against the per-job chart-of-accounts the books already carry, the parts-versus-labor sales-tax split the operator wires up once drives the per-state estimate the books accrue against — and the 1099 subcontractor cadence, the seasonal margin digest, the off-season reserve accrual posts at 23:55 to the calendar each DOR of record publishes — pegged to the per-contractor nexus the operator wires up once and never re-wires again.

Per-job revenue recognition audited nightly, not rolled up at month-end. The per-job chart of accounts the loop carries is the same chart of accounts the books carry Monday morning, with the change-order the customer signed mid-job already threaded to the per-job materials line and the parts-versus-labor split the office manager was tracking by hand already surfaced on the per-job invoice. The sub-contracted tech W-9 the loop chased on the per-contractor nexus change the operator forgot to update is the same W-9 the bookkeeper would have chased by hand on a Wednesday morning — except the loop chases it the day the per-contractor ship-to triggered nexus, not the week before the per-state DOR deadline. The per-season margin digest the loop sends before the shoulder-season starts is the same digest the owner used to build by hand against a per-trade calendar on a Sunday night — the digest carries with it the per-quarter reserve the books should have been accruing against, threaded to the line-of-credit review the bank was running on the wrong number because the off-season margin the owner was tracking on a handwritten note was the off-season margin the OLD per-trade calendar carried, not the off-season margin the calendar FOR this shoulder-season should have carried.

That is the beat. That is the loop. That is what gets handed back.

What it earns its keep on.

Three returns the bookkeeping loop earns against the truck-bay interior — the per-job past-due email the office manager used to hand-script on a Friday afternoon before the first truck rolled out, the parts-versus-labor sales-tax split the parts manager was tracking on a clipboard at the parts counter, the per-season margin digest the owner used to build by hand against the per-trade calendar on a Sunday night — read like the rest of the small-biz pillar cluster, in the operator’s own frame.

What the loop runs on a service-shop interior.

Four cadence beats the bookkeeping loop fires after the wire-up — in the order the shop runs them. Per-job revenue, per-job past-due, parts-versus-labor sales tax, sub-contractor 1099 + seasonal reserve. Each beat folds into the next, and the four-line Saturday morning the office manager used to build by hand is the four-line the loop carries unattended.

  1. Step one01/04

    Wire per-job revenue one job at a time.

    A read-only connect per source — the bank through Plaid, Mercury, Stripe, Square, and Brex on the direct connectors, the per-job invoicing portal for the per-job invoice the tech wrote on a clipboard at completion, the parts-supplier portal (Johnstone, Ferguson, NAPA, AutoZone, the local pick-up parts shop owner drove to at 7:42am because the OEM part was back-ordered for the week), the inbox for per-job change-order paperwork the customer signed at the bay but the dispatcher forgot to upload, the sub-contracted tech bench for the per-contractor W-9 the operator was chasing on a Wednesday morning because the tech worked a job in California and a job in Massachusetts last quarter, the QuickBooks Online export for the per-job chart of accounts the books already carry. One wire-up at the parts counter, six feeds, none of them written back to.

  2. Step two02/04

    Reconcile per-job revenue recognition nightly.

    The day’s per-job invoice trail — the post-job invoice the tech wrote at completion, the per-job materials line the parts manager pulled for the truck before the tech rolled out, the parts-supplier delivery the parts counter signed at 7:42am, the per-job card payment the customer handed the dispatcher before the tech pulled out of the bay, the per-job ACH that landed two business days later — gets matched against the per-job chart-of-accounts the loop already carries. Per-job revenue recognition against per-completion deliverables, per-job materials line against the parts-supplier delivery the parts manager signed, per-job card payment against the day-of-completion batch the processor posted, the change-order the customer signed mid-job the per-job invoice the books missed, and the sub-contracted tech cost the operator was tracking by hand against the per-contractor W-9 the books carried. The match lands on the same row the per-job invoice the tech wrote at completion already carries.

  3. Step three03/04

    Chase the per-job past-due the day it goes past-due.

    The week’s per-job past-due walk for every invoice the tech wrote at completion — the Net-15 completion-invoice that landed on day 17 against the per-job terms the contract signed, a Net-30 commercial account that landed on day 33 against the per-job contract the property manager was on, a per-job flat-fee commercial job the general contractor was dragging past day 42, the homeowner who was one reminder away from leaving a one-star review and the commercial property manager who was two reminders past the 90-day holdback the books were waiting on — and the chaser the loop sends on the day-of-late the operator wires up once (no Friday batch of every per-job past-due into one rolled-up email, no Saturday-morning inbox-clear the operator used to hand-script on a clipboard in the parts counter).

  4. Step four04/04

    Post the per-state parts and sub-contractor cadence.

    The per-state parts-versus-labor sales-tax estimate and the per-state sub-contracted-tech 1099 cadence post at 23:55 every night — pegged to the calendar each state DOR of record publishes (California’s CDTFA on the last day of the month, Texas Comptroller on the twentieth, NY DTF on the twentieth, Florida on the first), and the per-contractor nexus the operator wires up once (the sub-contracted tech who worked a job in California last week and a job in Massachusetts the week before) drives the per-state rate band the books accrue against — and the per-state remittance row lands Monday morning pre-split, threaded to the IRS 1099-NEC the per-contractor W-9 already produced, the parts inventory accrual the per-quarter reserve the off-season calendar the shop carries, and the seasonal margin digest the per-trade calendar the operator pegs to the books already track.

What service-shop owners say after the wire-up.

Three shapes the bookkeeping loop runs against — a 1-truck HVAC tech, a 2-bay auto shop, and a small cleaning crew — all ran the same wire-once beat the home-page audience describes, and all stopped touching the per-job aging on a Friday afternoon.

The five questions service-shop owners ask before they wire it up.

Per-job invoicing cadence, parts-versus-labor sales-tax split per state, seasonal cash-flow off-season accrual, sub-contracted tech 1099 across state lines, and monthly close — straight answers the service-shop- side search snippet can carry. The FAQPage-structured-data block above emits the same questions in a machine-readable shape Google reads directly.

5 questions answered · the per-state parts-versus-labor sales-tax detail lives on the sales-tax pillar cluster, the per-job chaser script detail lives on /receivables, the per-season margin digest detail lives on /margin-alerts, the per-tier price frame is on the pricing grid.

The four-person service shop (a 4-person fractional-CFO practice, a 4-person bookkeeping-trained-up-to-consultancy crew the trade-shop owner trained up, a 4-head fractional-CMO) runs the same wire-once beat against a per-engagement ledger instead of a per-job ledger — per-client WIP-to-recognized-revenue reconciled against the four-head capacity ledger, per-client retainer past-due chasers scripted to the day-of-late, the 5th sub-contractor across state lines nexus trigger the partner forgot to update, and a one-page per-month-end digest the partner can read on a Sunday evening before the Tuesday team huddle. See /for-services

The next step

If the shop is yours, wire it up today.

Pro ($243 / month) ships the bookkeeping loop adapted to the independent-trades interior — per-job revenue recognition reconciled nightly, per-job past-due chasers scripted to the day-of-late, parts-versus-labor sales-tax split made once on the wire-up, and a per-season margin digest pegged to the trade’s shoulder-season calendar. Starter (under $81 / month) carries the first beat (per-job revenue recognition) without the parts-tax layer; Managed ($1,620+ / month) hands the period close to a human. Pick the tier that fits your shop, or waitlist the launch.

Wire it up today.

Cancel any month · switch tiers at the next renewal · reply within one business day on any question.

Pick a tier →See the full approach →

Prefer to waitlist? Drop an email — we'll be in touch.

not ready to pick a tier? Send a note →

reply expected within one business day