What an hour actually costs.

For most businesses that do work rather than ship boxes, wages are the biggest number on the page and the one nobody can break down. sparx records who worked, for how long, on what, and at what rate, then turns it into a real figure instead of a line you type in and hope. It is not payroll, and it never will be.

$29/mo flat · however many people · 14 days free, no card

One hour of Dave’s time

Ridgeline Service
On the payslip

his hourly wage

$28.00
Employer costs

22%: tax, comp, insurance

+ $6.16
What it costs you$34.16
× 8 hours on the Ellison job

one of three people who worked it

$273.28

Against a $1,240 invoice. Nobody at Ridgeline could have told you that number before, because it was never written down anywhere it could be added up.

You quote off a number you’ve carried for years.

Call it forty an hour, near enough. It was near enough once. Since then somebody had a raise, your insurance went up, and one job in five takes half a day longer than the one you priced it against, and none of that announced itself. It just quietly came out of what you kept.

Two makers working together at a studio bench, mid-project.

Your payroll report is correct. It still can’t tell you what Tuesday cost.

Not because it is bad at its job, because its job is a different one. Payroll exists to pay people accurately and file what has to be filed, and it does that. Then you ask the question you actually had, and it has nothing to answer with, because it has never heard of a job.

What your payroll run says

March
Dave Okonjo$2,240.00
Marta Reyes$2,080.00
Sam Whitfield$1,760.00
Priya Raman$2,400.00
Five others$8,110.00
Gross wages$18,470.00

Every figure is right, everyone got paid, and the filings went out on time. That is what a payroll system is for, and sparx will never try to take that job from it.

What you actually asked

“Was the Farrow rebuild worth doing?”

Payroll never saw a rebuild. It saw a fortnight, four people, and a gross figure: in a month that also held nineteen other jobs, two warranty callbacks and a day everybody spent tidying the yard. Nothing in that report knows which hours belong to which work, because nobody ever wrote it down anywhere it could be counted.

So the honest answer from a payroll system is that it cannot say. And the answer you end up with is a feeling: it took longer than you quoted, but you got paid, so it probably came out fine.

−$12.10is what the Farrow rebuild actually did. It took four sections.

An hour isn’t a cost until you know the rate that day and the job it went on.

A time clock records the hour. A payroll bureau prices it. Neither has ever seen the job, because the job lives in a different system, so the two halves never meet, and the biggest number in your business stays an estimate. sparx is already holding the job.

The rate is a row, not a column

A pay rate here has a start date. Give somebody a raise and the old rate closes the day before the new one opens, so an hour worked in March is still costed at March’s rate. Systems that store the rate on the person quietly rewrite every job that person has ever touched the moment you edit it.

The hour knows what it was for

Clocking in can name the job, and a typed entry can too, because the job is already in this database. That one field is the whole difference between a timesheet and a cost: without it you have hours, with it you have what the work took.

So the wages line stops being typed

Approve a timesheet and those hours are costed at the rate in force on each day, marked up by your employer costs, and filed as spending under Wages: split by business, and charged to the jobs they named. Nobody estimates anything.

An hour gets recorded in about four seconds, or it doesn’t get recorded.

Somebody taps in on a phone in the yard, or types “3.5 on the Ellison job” back at the desk on Friday. Both are real ways people work and both are first-class here: the only thing that matters is that the hour lands somewhere with the job attached before the memory of it goes.

Ellison: brake overhaul

Waiting on you
Dave Okonjo

diagnosis and strip-down

8.0 h$273.28
Marta Reyes

refit and road test

4.5 h$142.74
Sam Whitfield

parts run and clean-up

2.0 h$53.68
14.5 hours on this job$469.70

Costed at each person’s rate for the day they worked it, employer costs included.

Three ways in, one record out

A phone clock for the people on the floor. A duration typed straight in for the ones who would rather write it down once at the end of the day. A bulk import for the fortnight you are catching up on. All three become the same kind of entry, so nothing downstream has to care which it was.

A shift is not a timesheet

What you rostered and what actually happened are separate records here, on purpose. Every scheduling product eventually treats them as one number, and the moment it does, the difference between the week you planned and the week you paid for disappears, and that difference is usually where the money went.

Nothing counts until somebody says so

Hours wait for approval before they reach a single figure anywhere else. A timesheet that pushed itself into your profit the moment somebody clocked out would mean every mistyped shift moved the month before anyone had looked at it.

What an hour costs you is not what it says on the payslip.

Your share of payroll taxes, workers’ comp, insurance: the part that never appears on anybody’s wage but comes out of the same money. Tell sparx once what that adds up to as a percentage and every hour after it is costed honestly. Leave it out and your labor figure runs fifteen to thirty percent light, which is exactly the kind of wrong that feels fine right up until the year-end.

One hour of Dave’s time

On the payslip

his hourly wage

$28.00
Employer costs

22%: the share that never reaches his pocket

+ $6.16
What the hour costs you$34.16

Eight of those went into the Ellison job. That is $273.28 of a $1,240 invoice, and it is a number nobody at Ridgeline could have told you before, because it was never written down in one place.

And when it can’t

62 hours unpriced

Marta’s first fortnight was logged before anybody got round to recording what she earns. Sixty-two hours, all real, none of them costable.

So sparx does not cost them at zero. The timesheet says sixty-two hours are unpriced, the period total says “so far” instead of pretending to be finished, and the wage figure it files is short by exactly that much and says so. A zero here becomes a zero in your profit, and you would read that as a fortnight where the work was free.

Add her rate afterwards, dated from her first day, and the fortnight prices itself. Nothing else moves. Everyone else’s March is untouched, because their rates were already the rates in force.

The biggest number in the business stops being an estimate.

Approve a fortnight and those hours are costed at each day’s rate, marked up by your employer costs, and filed as spending under Wages: split across your businesses, and charged to the jobs the hours named. If you run Finance, that is the wages slice below arriving on its own. If you don’t, the hours and the total are still yours.

Where March went

$61,300 in
Cost of the work37.3%$22,840
Wages36.8%$22,533
Running costs15.3%$9,410
Kept10.6%$6,517

$18,470 on the payroll run. $22,533 out of the business.

Both numbers are right, and the gap between them is the 22% that never reaches anybody’s pocket. Ridgeline had been doing this arithmetic with the smaller figure, which made labor look like a third of the month rather than more than a third, and made every job quoted off that assumption a little thinner than it appeared.

A salary costs the calendar, not the timesheet

Somebody on a salary is being paid this month whether or not they clocked anything, so they appear in the figure whether or not they clocked anything. A system that costed only what got logged would quietly leave the biggest wages in most businesses out of the total, because salaried people are exactly the ones who never clock.

Two businesses, two sets of books

If somebody works across both of the things you own, their hours cost each one separately: the workshop’s wages and the parts counter’s wages are two figures, not one divided by guesswork.

And then the question from four sections ago has an answer.

Every job ranked by what you kept on it, worst first, because the one that lost money is the one you can still do something about. The hours are what make this possible: without them a job’s cost is its parts, and parts were never the part you were getting wrong.

March, worst first

Ridgeline Service

Farrow: engine rebuild

−$12.10−0.6%
Charged $1,980Parts $1,12026.0 h of work · $872.10Dave, Priya

Wynn: clutch replacement

$55.006.4%
Charged $860Parts $39512.0 h of work · $410.00Marta

Ellison: brake overhaul

$358.3028.9%
Charged $1,240Parts $41214.5 h of work · $469.70Dave, Marta, Sam

Kestrel: fleet service ×4

$1,192.7240.3%
Charged $2,960Parts $64033.0 h of work · $1,127.28Priya, Sam

The Farrow rebuild came in at twenty-six hours against the sixteen it was quoted at, and that is the entire difference between a job that made $300 and one that lost twelve dollars. Nobody was careless. It just took longer, and until the hours were written against the job, there was nothing anywhere that could say so.

Job-by-job profit is the Finance module’s screen. Team is what puts the labor into it; run them together and the ranking includes what the work actually took.

Then quote the next one off a real number.

Not a feeling about how long that kind of job takes: the hours the last four actually took, at what they actually cost. The estimate stops being the thing you are most nervous about, and the job that always ran long stops being the one you keep taking.

Two people leaning over drawings spread across a workbench, working something out together.

Payroll stays exactly where it is.

sparx does not withhold tax, does not file anything, does not administer a benefit, and does not pay anybody, not in this version and not in a later one. Becoming a tax filer in fifty states is a different company, and the people who already do it have spent a decade earning the trust it takes.

What sparx owes your payroll bureau is the hours, and that is what it hands over: every approved hour for the period, per person, with their id in your payroll system on the row so nobody is matching names in a spreadsheet at eight on a Friday.

hours-2026-03-01-to-2026-03-31.csv

9 people
Dave Okonjo

EMP-0114

80.00 h$2,732.80
Marta Reyes

EMP-0119

80.00 h$2,537.60
Sam Whitfield

EMP-0122

80.00 h$2,147.20
Everybody, March672.00 h$22,533.40

Hours in decimal, because that is what a payroll system parses: the screens say “7h 30m” because that is what a person reads. Any hours nobody could price are in the hours column and flagged separately, never dropped: they still have to be paid.

The rest of the week, handled.

The cost figure is the argument. This is the part you use on a Monday morning, and the reason a business with nine people on the floor keeps it open rather than opening it once a fortnight.

The rota, built as a draft

Lay next week out over however many sittings it takes and release it in one act, so nobody is reading a half-finished rota off the wall. Approved time off is already on the same grid, which is how "who is actually free on Thursday" stops being a question you answer from memory.

Time off with an answer

Requests arrive in a queue that shows what is waiting on you rather than everything that ever happened. Approve one and those days come off the rota, and if that person is bookable by your customers, the booking system stops offering them, then starts again if the leave is withdrawn.

Licenses that warn you first

A ticket, a license, an inspection certificate. Each with as much notice as you actually need, because the one you renew by post is not the one you renew online. Expired shows red on the roster before you assign the job. And a qualification that never expires is recorded as exactly that, so it never nags you.

People who never log in

The technician who has never opened sparx still has hours, a rate, and a license with a date on it, and is very often the person whose cost matters most. Nobody here needs a login to exist, and nobody is charged for having one.

Everything in the module.

People

  • Employees, contractors and volunteers: a cost distinction, never a legal one
  • Nobody needs a login to be on the roster
  • Links to their sparx login and their bookable calendar when those exist
  • Works across every business you run under one account
  • Somebody who leaves is archived, not deleted: last year’s figures keep their subject

Hours and pay

  • Clock in and out from a phone, or type a duration in afterwards
  • Hours can name the order or booking they went into
  • Effective-dated pay rates: hourly, salaried, commission, or unpaid
  • Employer costs as a percentage on top, so labor is not 15–30% light
  • Approval before anything counts, and a deliberate reopen to correct it
  • Unpriced hours reported as a number, never costed at zero

The week

  • Shifts by week, per business, drafted then published in one act
  • Time-off requests with an approve/decline queue
  • Approved leave blocks the booking calendar, and canceling releases it
  • Certifications and licenses with per-item warning windows
  • Commission recorded against an order or a deal, once per sale

Where it goes

  • Wages filed into Finance as spending, per business and per job
  • Safe to re-file: it updates the same records rather than doubling them
  • A payroll hours file with each person’s payroll id
  • Everything reachable through the same API and MCP as the rest of sparx

What that adds up to.

No per-person charge, nothing metered by how many hours you record, and no separate bill for the people who never sign in. Four numbers worth knowing before you look at the one that matters.

1.

place the hours and the job both live: labor cost is read, never estimated

$29

a month, flat, whether you have three people or thirty · never per seat

0

logins required · the tech who never opens sparx still has hours and a rate

2

records per shift: what you rostered, and what actually happened

$29/mo, for everybody

Flat, whether you have three people or thirty. Not per seat, because charging by the head would put a price on the exact thing this module is for. Free for fourteen days, and we don’t ask for a card.

Switch Team on →

Team questions.

What it does, what it deliberately doesn’t, and what it costs: answered straight. Fourteen days free, and we don’t ask for a card.

No, and it is not going to. sparx does not withhold tax, does not file anything with anybody, does not administer benefits, and never pays a person. That boundary is permanent, not a version-one cut: becoming a tax filer in fifty states is a different company, and the people who already do it have spent a decade earning the trust it takes. What sparx does is the part your payroll provider cannot: record what people worked, on which job, at what it cost you, and hand the hours over so payroll can do its job accurately.

Find out what the work actually took.

Fourteen days free, no card, and no contract at the end of it. Turn it off the day it stops earning its $29 and every hour, rate and record you entered stays yours: exportable in full, from a button, without asking anyone.