October 19, 2026 · 12 min read
Job Costing for Painters and Flooring Installers: Estimates vs Actuals
By 909 Bookkeeping
How to job cost for painters and flooring installers in QuickBooks Online. Enter each estimate as a project budget, tag every material and crew run to the job, and compare the estimate to the actual costs at month end so you can see which jobs paid and sharpen the next bid. Plain English from 909 Bookkeeping.
What painter and flooring books need to track
A paint or flooring job is not one number. It is the estimate you wrote, the paint or planks you bought, the crew time you spent, the floor prep that ran long, and the invoice you sent. Each one needs its own line so the profit per job is real.
When you track all of it by job, you can see which jobs paid and which ones cost more than the estimate allowed. When you do not, you get one big pile of jobs and no way to tell whether the interior repaints or the floor installs were the good work.
Most painters and flooring installers run two kinds of jobs at once. Some days a crew paints a whole house inside. Some days a crew lays planks in one room. Some days the same crew does both. The paint side runs on materials, labor and a tight bid. The flooring side runs on material, underlayment and glue. Each side has its own margins. Each side has its own costs. When the books tie the two to the job, the business makes sense. You can read more about how we keep these lines tied on our bookkeeping page.
Here is what a clean job looks like.
| Line | What it means |
|---|---|
| Estimate, job one | The bid you wrote for that job |
| Materials, job one | The paint, planks or glue you bought for that job |
| Labor, job one | The crew time you spent on that job |
| Subcontractor, job one | The help you hired for that job |
| Invoice, job one | The bill you sent for that job |
When each line ties to the job, the profit per job is real. When they sit in one pile, you are guessing.
How an estimate shows up in your books
An estimate is your plan for the job. It is the number you wrote on the bid before you bought the first gallon or opened the first box. It is not income and it is not a cost yet. It is the target.
The clean way is to set up a project in QuickBooks Online for each job and enter the estimate as the budget for that project. When you buy materials and book crew time, each line tags to the project. At month end, you run the project profit report and the estimate sits next to the actual costs. You can see where the job ran over.
The messy way is to write the estimate on paper and never put it in the books. Now you can not compare the plan to the real numbers. When a job loses money, you can not tell whether the materials ran over or the labor took too long. You can read more about how we tie estimates to jobs on our bookkeeping page.
Here is how to keep estimates clean.
- **Enter each estimate as a project budget: ** so it sits next to the real costs.
- - **Tag every material buy to the job: ** not to one flat supplies line.
- - **Tag every crew run to the job: ** so labor lands on the right line.
- - **Run the project profit report each month: ** so the estimate and the actual sit side by side.
- - **Review the over budget lines: ** see where the job spent more than planned.
When the estimate sits in the books, the comparison is easy. When it sits on paper, the comparison never happens.
How actual costs show up in your books
The actual costs are the real numbers. They are the receipts you kept, the hours the crew logged, and the subcontractor invoice you paid. Each one needs to tie to the job it belongs to.
The clean way is to tag every bill and every check to the project. When you buy paint for job one, the cost lands on job one. When you pay the floor prep crew for job two, the cost lands on job two. When the books sort costs by job, you can see the real cost of each job and compare it to the estimate.
The messy way is to book every material buy to one flat supplies line and every crew wage to one flat labor line. Now every job looks the same. You can not tell if the house repaint paid or the floor install lost money. You can read more about how we tie costs to jobs in our cost codes for general contractors guide. The same idea works for paint and flooring jobs.
Here is how to keep the actuals clean.
- **Tag every bill to the job it was for: ** not to a flat line.
- - **Tag every crew wage to the job: ** so labor lands on the right line.
- - **Tag subcontractor pay to the job: ** so the help shows in the job cost.
- - **Hold bulk paint or planks in a supplies account first: ** then move the cost to the job when used.
- - **Match the material receipt to the bill: ** so the cost and the proof sit together.
When the costs tie to the job, the real margin shows. When they sit in one pile, every job looks the same.
How to compare estimates to actuals
The comparison is the whole point of job costing. You wrote a number on the bid. You spent real money on the job. The difference tells you whether the bid was right.
The clean way is to run the project profit report in QuickBooks Online each month. The report shows the estimate and the actual side by side, by line. Materials estimated against materials spent. Labor estimated against labor spent. When a line runs over, you see it. Over a few jobs, you learn which kinds of work you bid too low.
The messy way is to never run the report. Now you know the job lost money but you can not tell why. The next bid is a guess again. You can read more about how we read these reports on our bookkeeping page.
Here is how to keep the comparison clean.
- **Run the project profit report each month: ** estimate next to actual by line.
- - **Look at the over budget lines first: ** materials, labor or subcontractor.
- - **Note the reason a line ran over: ** a price change, extra prep or a long day.
- - **Adjust the next bid from what you learned: ** so the same slip does not repeat.
- - **Review a few jobs together: ** see which kind of work pays and which does not.
When the comparison runs every month, the bids get sharper over time. When it never runs, every bid starts from scratch.
How materials tie to the job
Materials are the biggest cost on most paint and flooring jobs. The way you tie them to the job changes what your books show.
The clean way is to hold bulk buys in a supplies account first. When the crew opens the paint on job one, the cost moves to job one. When the crew lays planks on job two, the cost moves to job two. The same goes for primer, glue, underlayment and trim. Each one ties to the work that used it.
The messy way is to book every material buy to one flat supplies line and leave it there. Now your material cost looks the same every month, even though some months you did twice the jobs. You can not tell if paint prices went up or if one job ate the margin. You can read more about how we track supplies for a trade in our plumbing truck stock guide. The same idea works for paint and flooring stock.
Here is how to keep materials clean.
- **Hold bulk paint and planks in a supplies account: ** until the crew uses them.
- - **Move the cost to the job that used it: ** not to one flat line.
- - **Track primer, glue and underlayment the same way: ** they are part of the job cost.
- - **Watch for price changes: ** a higher paint cost changes your margin.
- - **Compare jobs at month end: ** see which one ate more material per dollar.
When the materials tie to the job, your margin per job is real. When they sit in one pile, every job looks the same.
How labor and subcontractor costs tie to the job
Labor is the cost most painters and flooring installers lose track of. A crew works two jobs in a day and the wages land on one line with no tag.
The clean way is to tag each crew run to the job. When the crew paints job one in the morning and job two in the afternoon, the wages split between the two. When you hire a floor prep crew, their invoice ties to the job they prepped. When the books sort labor by job, you can see which job took too many hours.
The messy way is to book all crew wages to one flat labor line. Now you can not tell if the house repaint took too long or if the floor install ran over. You can not tell if the subcontractor was worth it.
Here is how to keep labor clean.
- **Tag each crew run to the job: ** even half a day needs its own line.
- - **Split a day between jobs: ** when the crew works two, split the wages.
- - **Tie subcontractor pay to the job they worked: ** so the help shows in the job cost.
- - **Compare labor to the estimate: ** see which jobs took more hours than planned.
- - **Watch for the jobs that ran long: ** extra prep or a bad surface can eat the margin.
When the labor ties to the job, the real hours show. When they sit in one pile, you can not tell which job took too long.
How the month end close works
At month end, every job needs its lines added up. The estimate, the materials, the labor and the subcontractor costs all pull together into one job total. The invoice for the job sits next to it. The difference is the profit for the job. When the jobs roll up, you see which work paid and which work spent more than it should.
We start with the bank. We match each invoice to the payment that came in. We match each material buy to the bill that came in. We tie each crew run to the job. We tie each subcontractor pay to the job. Then we add up the month by job. We send you the profit and loss report, a balance sheet, and a project profit report. The job totals sit inside the report.
Here is a simple month end check.
- **Match each invoice to the bank: ** every payment cleared.
- - **Match each material bill to the receipt: ** the cost and the proof together.
- - **Confirm each job carries a tag: ** so the costs roll up by job.
- - **Tie labor and subcontractor pay to the job: ** so the margins are real.
- - **Run the project profit report: ** estimate next to actual by line.
When the close runs every month, the bids get sharper. When it skips a month, the jobs stack up and the next month is harder to close.
A situation we clean up
The estimates that never matched the actuals
A painter bids five jobs in a month. Every material buy lands in one flat supplies line. Every crew wage lands in one flat labor line. No job carries a tag. At month end, the owner knows the month was busy but can not tell which job paid and which one lost money. The owner can not tell whether the bids were right.
Here is how we handle it. We set up a project in QuickBooks Online for each job. We enter each estimate as the project budget. We go back through the open months and tag each material buy and each crew run to the job it belongs to. We tie each subcontractor invoice to the job. When we are done, the owner can run the project profit report and see the estimate and the actual side by side for each job. We set up a rule so the next bill carries the right job tag from the start.
Mistakes we fix
- Every material buy booked to one flat supplies line with no job tag
- Every crew wage booked to one flat labor line with no job tag
- An estimate kept on paper and never entered in the books
- A subcontractor invoice booked with no job tag
- Bulk paint bought for one job and used on another with no split
- A job that ran over budget and no one noticed
- No project profit report run at month end
- An invoice sent for the wrong amount because the estimate was not tracked
Common questions
How do I compare an estimate to the real costs? Set up a project in QuickBooks Online for each job and enter the estimate as the budget. Tag every material buy and every crew run to the job. Run the project profit report each month and the estimate sits next to the actual by line.
How do I tie materials to the job? Hold bulk paint and planks in a supplies account first. When the crew uses them on a job, move the cost to that job. Do the same with primer, glue and underlayment. When the cost ties to the job, your margin per job is real.
How do I split labor between two jobs? Tag each crew run to the job it worked. When the crew paints one job in the morning and another in the afternoon, split the wages between the two. When labor ties to the job, you can see which job took too many hours.
Where do subcontractor costs go? Tie the subcontractor invoice to the job they worked on. The cost shows in the job cost. When you run the project profit report, the subcontractor line sits next to the estimate so you can see if the help was worth it.
