Find out which of your jobs made money.
Paste your last 20 completed jobs and get actual margin per job against what you quoted, with the reason for every job that lost money. Free, no account, and nothing leaves your browser.
No sign up, no card, no connection to your accounting system. Four columns out of any export is enough to start.
Sample data. Every figure computed by the same engine the page below runs.
Margin Check
runs in this browserYour last 20 completed jobs, actual margin against what you quoted, and the reason for every job that lost money. No account. No connection to your accounting system. The numbers below are computed on this page and are never sent anywhere, which you can confirm in your browser network tab.
What an hour of labour COSTS you: wage plus payroll tax, insurance and vehicle. Not what you bill it at. This is the one number that decides whether the margins below look right to you.
Paste from any export: QuickBooks, a spreadsheet, or your field-service tool. Comma, semicolon or tab separated. The smallest paste that still gives you a real margin is four columns, and the header cells can be named however your export names them:
job,quoted,materials,hours
Add invoiced, materials quoted, hours quoted, change orders or other costs and the check can also tell you WHY a job lost money rather than only that it did.
You already know your revenue. The number you do not have is which jobs earned it.
You keep bidding the job that loses
A job type that comes in under quote does not announce itself. It looks like work. You quote the next one the same way, and the one after that, because nothing in the week tells you which shape of job is the one draining the year.
You find out at the accountant, in April
The year nets out to a number and by then it is a single number. It cannot tell you the remodels carried the service calls, or that four change orders were agreed on site and never reached an invoice.
Or you pay to find out
On Jobber, job costing is a tier away: today it is the top rung, $149 a month for 1 user, billed annually, prepaid, against $29 on the entry plan. Read at their own pricing page on 2026-08-25. On Housecall Pro and Markate it is not a tier away, it is already included, and the table below prints both.
Above the rule made money, below it lost money. Every bar is the engine's own output on the sample run, not a drawing of one. Nothing about which jobs fall below the line is visible from the invoice totals.
The check on this page is free and answers the question directly. It is not a trial and there is no tier of it: paste your jobs, read your margins, close the tab.
Four numbers per job in, one honest answer per job out.
Per job
- Actual margin, in dollars and per cent
Revenue that landed, minus materials, minus labour at your burdened rate, minus anything else the job cost you.
- Margin against what you quoted
Only when you give it the materials and hours you priced in. Without them it says so, rather than inventing a baseline.
- The reason, where there is one
Material overrun, unbilled time, a change order that never reached an invoice, or a quote that carried no margin to begin with.
- What the reasons do not explain
Printed as its own line. A cause list that quietly absorbs the remainder is a cause list you should not trust.
Across the twenty
- Portfolio margin
What the whole run actually netted, against what the invoices totalled.
- How many jobs lost money, and how much
The count and the dollars, separately, because one big loser and six small ones are different problems.
- Where the money went, ranked
Every cause summed across every job, biggest first. This is the line that tells you what to change on Monday.
- Every job in one table
Sorted the way you pasted them, so you can find the one you were arguing about.
The smallest thing that still gives you a real number.
- 01
Enter one number about yourself
Your burdened labour cost per hour: wage plus payroll tax, insurance and vehicle. Not what you bill at. It is the one input that decides whether the margins look right to you.
Burdened cost$48/ hr - 02
Paste your jobs
From QuickBooks, a spreadsheet, or whatever your field-service tool exports. Comma, semicolon or tab. The header cells can be named however your export names them.
job,quoted,materials,hours Ferris residence,4790,2310,41 Delgado,8660,5166,78
- 03
Read your margins
Computed in your browser, in front of you. No account, no connection to your accounting system, nothing uploaded. Open your network tab and check while it runs.
Delgado, kitchen remodel rough-in-$250Material cost overrun. Change order never invoiced. Unbilled time.
Nobody has used this product yet. These are other people, on the open internet, describing the problem.
Each one is a reply to someone asking an open question in a contractor subreddit. They are quoted exactly as written, spelling and all, with the thread linked so you can read the context rather than take our word for the excerpt. None of these people has heard of Cost Ledger.
“The biggest pain point I hear about isn't really dispatching, it's tracking what jobs actually made money after materials and time.”
“On paper it looked like a $200 job, but after materials, travel and a couple hours it might not be nearly as good as it seemed.”
“I have been using HouseCall and I have QuickBooks too, but I requested to cancel Housecall, I like it but really not using it enough to justify 189 a month”
“Excel spreadsheets. I typically take 1 day/ week for estimates, invoices, and other admin. And the other 6 days I try to stay on top of it with an hour here or there”
“I have a 3-ring binder in the van, with one page per project. I'm just jotting down the dollar figure for everything I purchase for that project, along with a running tally of my time spent on the project.”
This is not a cheaper Jobber. It reads what you already keep.
There is a crowded shelf of flat-fee field-service tools and this is not another one. Cost Ledger does not schedule, dispatch, quote or invoice, and it never will. It sits beside whatever you already use and answers one question. On Jobber that question costs a tier. On Housecall Pro and Markate it does not: both include job costing at the cheapest plan they sell, so if you are on either of those you already have this. The table prints all three, including the two that undercut the argument for buying this.
| Vendor | Plan | Per month | Job costing | What the plan says |
|---|---|---|---|---|
| Jobber | Core | $29 | Not included | Quotes, scheduling, invoicing, built-in reporting. |
| Connect | $99 | Not included | Adds time and expense tracking, which is not job costing. | |
| Grow | $149 | Included | The first rung carrying "Track profitability with job costing". | |
| Housecall Pro | Basic | $59 | Included | Entry tier. Its own feature list reads "Job costing: Track and report the costs associated with each job." |
| Markate | Owner Operator | $39.95 | Included | The only base plan there is, seats are $5 each on top. Job Costing sits in Jobs Management with no price tag, unlike the add-ons on the same page that each carry one. |
| Cost Ledger | One plan | $49 | It is the whole product | And the check itself is free, on every job, with no account. |
Jobber figures read at www.getjobber.com/pricing/ on 2026-08-25. Seat minimum 1 user. billed annually, prepaid. Setup fee none stated. A promotion running at the time of reading cut the first 12 months to $105/mo, ending 31 August.
Housecall Pro figures read at www.housecallpro.com/pricing/ on 2026-08-26. Seat minimum 1 user on Basic. billed annually. Setup fee none stated. Monthly billing is $79/mo for the same Basic plan.
Markate figures read at www.markate.com/pricing on 2026-08-26. Seat minimum none, solo is the base plan. billed yearly, $479.40 up front. Setup fee none stated. Billed monthly it is $49.95/mo instead. Employees are $5.00 each per month.
All three figures in the column are annual-billed rates, so they are one kind of number rather than three. Where a vendor runs a promotion the standard rate is printed and not the first-year one, because quoting the promotion would understate their ladder. Where the two billing modes differ, the column takes the one that is worse for this product, not the one that is kinder to it.
On Jobber, job costing is a tier upgrade: it is absent from Core and first appears on Grow. That is the case this product is for.
Read directly off the Jobber ladder above at getjobber.com/pricing on 2026-08-25, team size "Just me", billing annual.
It is NOT a tier upgrade at Housecall Pro or at Markate. Both include job costing at the cheapest plan they sell, so if you are on either one you already have this and should not buy it.
housecallpro.com/pricing and markate.com/pricing, both read 2026-08-26. The figures and the exact feature wording are in the table above. This row is printed because it argues against buying this product, and leaving it out would have made the row above read as a claim about the whole category.
Contractors who reject that upgrade mostly do not shop for a cheaper platform. They go back to QuickBooks, a spreadsheet or paper.
bet-958 dossier destination evidence: every completed exit in the corpus landed on a tool the buyer already owned, with zero observed exits to a cheaper in-category product. The r/handyman posts quoted above are three of those exits in the posters' own words.
Who should NOT buy this
- If you need scheduling, dispatch, a customer database or invoicing, buy a field-service platform. This is not one and adding those is not on the plan.
- If you are on Housecall Pro or Markate, job costing is included in the plan you already pay for. You have what this sells. Use it and do not buy this. The same goes for anyone on a Jobber plan that includes it, or on any other tier that does.
- If you run one or two jobs a month at an hourly rate with no materials, there is nothing here a receipt does not already tell you.
A solo founder, and a tool built the small way round.

Dario Verghi
I am Dario. I build small, sharply scoped products on my own and put them in front of the people who described the problem, before deciding whether there is a business in them. This is one of those.
I am not a contractor and I have never priced a re-pipe. What I did was read what contractors were already saying in public about knowing which jobs made money, and build the narrowest thing that answers it: no platform, no migration, no connection to your books. The arithmetic is deliberately simple enough that you can check a row of it by hand, which is the only reason to trust the other nineteen.
If the numbers it gives you are wrong, or the reasons it gives are not the real reasons, that is the most useful thing you could tell me. Write to me directly at dario@leanaistudio.com. It reaches me and not a queue.
The number stays free. What costs money is keeping it current.
Not a trial, not a sample, not a row limit. Every job, every diagnosis, every time, with no account.
- Unlimited jobs per run
- Every diagnosis and every dollar figure
- Runs in your browser, nothing uploaded
- No sign up, no email, no card
One price, whatever size you are. What you get for it is the part you cannot do by re-pasting: the jobs stay, the margins update as costs land, and last month sits beside this one.
- Your jobs saved in a workspace, across devices
- Margins that update as new materials and hours land
- This month beside last month, so you can see if it is improving
- Cancel from inside the product, any time
You are not asked for a card here. Signing in opens the workspace, and the subscription starts from inside it: billed monthly, no annual commitment, no setup fee, cancel in one click from your account.
Find out which of your jobs made money.
The check above needs nothing from you. This is for the other thing: if you want the jobs kept and the margins updated as costs land, leave your email and I will send you a sign-in link. If you would rather just tell me the check got your numbers wrong, reply to that email and it comes straight to me.