How to Price a Painting Job: Materials, Labor, Margin
The short answer: Price a painting job by measuring the surfaces, costing paint and materials at what you actually pay, adding labor at a loaded rate times the hours the crew really works, layering in overhead, then dividing by one minus your target margin. The formula is Price = (materials + loaded labor + overhead) ÷ (1 − target margin). The number most painters get wrong is prep hours, because scraping, patching, taping, and a second coat rarely make it into the estimate. CRMb pulls those hours from your crew's punch-ins and prices paint at real average cost, so the quote you send is built on measured numbers, not a hunch.
Painting looks like the easiest trade to price and quietly is one of the hardest to price well. A gallon covers a known area, a room has four walls, and the bid feels like arithmetic. Then the old paint is peeling, the trim needs two coats, and the ceiling soaks up more than the label promised. Each of those adds hours and gallons the flat estimate never counted, and a job that felt profitable settles at break-even. This guide walks the full build-up for interior and exterior work, and shows exactly where the margin leaks.
Start with the four things every painting job costs
Whether you are quoting a single bedroom or a whole exterior, the price rests on the same four layers:
- Materials, the paint, primer, caulk, tape, plastic, sandpaper, rollers, and brushes, at your real cost.
- Labor, the loaded hourly cost of everyone on the job for the hours they actually work, prep included.
- Overhead, the slice of trucks, sprayers, ladders, insurance, and office this job has to carry.
- Prep and access, the scraping, patching, masking, and the scaffolding or lift a tall or detailed job needs.
Miss a layer and you are not discounting, you are working for free on that part of the job. The two that leak most are labor, because the prep hours are guessed, and materials, because the second coat and the primer go uncounted.
Step 1: measure the surfaces, not the room
The reliable way to price paint is by square footage of surface, not by eyeballing the room. Measure the wall area (perimeter times ceiling height), then the ceiling, then trim and doors as their own line, because they paint at a different rate. Subtract large openings only when they are genuinely large; a scattering of small windows is easier to just paint around than to net out.
Coverage tells you the gallons. A gallon covers roughly 350 to 400 square feet in one coat on a smooth, sealed surface, and far less on bare drywall, rough stucco, or a color change that needs two coats. Cost the job for the coats you will actually apply, not the one the label implies. A dark-to-light color change over fresh patchwork is a primer plus two coats, three passes of material and labor, on a wall the quick estimate treats as one.
Step 2: cost paint and materials at what they really cost you
A single room pulls a longer list than it seems: paint and primer by the gallon, plus caulk, spackle, painter's tape, masking plastic, drop cloths, sandpaper, liners, and roller covers. Each consumable costed from "a few bucks" instead of its real price adds up to a line nobody sees. Paint prices move too, and the premium line you specified for a feature wall is not the contractor-grade number you costed the rest at.
The fix is to value materials at average cost, the running average of what you actually paid across recent purchases, so price swings smooth out and every item pulled to a job carries its true number. CRMb tracks inventory at average cost across your shop and truck stock. When a painter pulls five gallons and a case of tape to a job, the real cost lands on that job automatically, no end-of-week guess at which job burned which bucket. Because paint and consumables ride in the van, running that stock deliberately helps; see truck stock inventory for field techs.
Step 3: build the loaded labor rate, then use real hours
Labor is where painting margins live or die, and it fails in two ways at once: the rate is too low and the hours are too few.
The rate is too low when you cost at the bare wage. Every painter costs more than their paycheck; payroll taxes, workers' comp, benefits, and paid time off add roughly 25% to 35% on top. A $26 wage is really a $33 to $35 loaded rate. Cost at $26 and you understate labor on every job. The full build-up is in how to calculate labor cost per job.
The hours are too few when you cost from the estimate instead of the clock. Real painting hours are mostly prep: scraping and sanding failed paint, filling nail holes and cracks, caulking gaps, taping and masking, and moving and covering furniture. The brush-and-roller time everyone pictures is often the smaller half. Those prep hours are exactly the ones that flip a healthy bid to a thin one, and they are invisible unless the crew captures them.
The reliable way to capture them is to have the crew punch in against the specific job. With Punch, each punch-in is tagged to the job, and the hours flow into CRMb as labor cost with the loaded rate already applied. You cost the job from what happened, not what you hoped, and next season's bid on a similar house starts from the real number.
Step 4: add overhead so the job carries its share
Overhead is every cost that keeps the doors open but does not belong to one job: the truck payment and fuel, sprayers and ladders, your general liability, software, the phone that gets answered, the pay of anyone not on the brushes for this job. It is real money, and if no job carries it, it comes straight out of profit.
The common method is an overhead rate, your annual overhead divided by the billable labor hours you expect to sell in a year, applied per labor hour. If overhead runs $90,000 a year and you sell 4,500 billable hours, that is $20 of overhead per labor hour on top of the loaded wage. The mechanics are in how to calculate an overhead rate.
Step 5: set the price from the cost, not the other way around
With materials, labor, and overhead totaled, you have the job's true cost. Price is that cost divided by one minus your target margin:
Price = total cost ÷ (1 − target margin)
For a 40% margin, divide by 0.60. Note the difference from markup, dividing by 0.60 is not the same as adding 40%, and confusing the two quietly costs you points of margin on every job. The distinction is spelled out in markup vs margin.
A worked example: interior repaint of a three-bedroom
An interior repaint, walls, ceilings, and trim, priced from the ground up. Loaded painter rate $34.00, overhead $20.00 per labor hour, target margin 40%.
| Cost layer | Detail | Amount |
|---|---|---|
| Materials | Paint, primer, caulk, tape, plastic, sundries | $620 |
| Labor | 2 painters × 24 hrs = 48 hrs × $34.00 | $1,632 |
| Overhead | 48 hrs × $20.00 | $960 |
| Prep supplies | Extra sanding, patching, masking | $80 |
| Total cost | $3,292 | |
| Price at 40% margin | $3,292 ÷ 0.60 | $5,487 |
Now the leak. Suppose the crew actually worked 60 hours, not 48, because two rooms needed heavy patching and the trim took a second coat nobody bid. At $34 loaded plus $20 overhead, those 12 hours cost $648 the estimate never saw. Cost the job at the 48 bid hours and you would book it at $3,292 and believe the margin held; cost it at the real 60 hours and the true cost is $3,940, quietly turning a 40% job into roughly 28%. On one house it stings. Across a season of them it is real money walking out the door.
Price by the job, not by the hour the customer sees
Most established painters quote a fixed price the customer approves up front, rather than billing hours as they go. A flat price is easier for the homeowner to say yes to and it rewards a crew that works efficiently, since finishing a day early does not lower the price. It only works, though, if the flat price was built from real cost history. Price a flat job from a guess and you have locked in the guess.
That is the case for costing every job from real hours even when you bill a fixed price: the punched hours are not what you invoice, they are what tells you whether next season's price is high enough. See time and materials vs fixed price for how the two models trade off. For a defined repaint, a fixed price built on history wins; for open-ended restoration where the extent of rot or old lead is unknown until you open it up, time and materials protects you.
Send a quote the customer can approve on the spot
A price is only useful once the customer accepts it. CRMb turns the costed job into a professional quote with a public share link: the homeowner opens it on their phone, sees the scope and the price, and signs to approve. When the work is done, the quote converts to an invoice, pulling the same materials and labor through, so nothing is re-keyed and nothing is forgotten. As the crew punches in, the reports view shows the job's margin trending live and flags it if it drifts toward the red while the job is still open.
Frequently Asked Questions
How do you price a painting job?
Measure the surfaces, cost paint and materials at their real price for the number of coats you will actually apply, add labor at a loaded rate times the hours the crew really works with prep included, then add a share of overhead. Total those and divide by one minus your target margin to get the price. The formula is Price = (materials + loaded labor + overhead) ÷ (1 − target margin). Building the price from measured cost, rather than a per-room rule of thumb, is what keeps the margin real.
How much should I charge to paint a room?
There is no single number, because a small bedroom with clean walls and a large room with heavy patching and a color change can cost the same crew wildly different hours. Price from the surfaces and the real hours instead: measure the wall, ceiling, and trim area, cost the gallons for the coats you will apply, add loaded labor for the prep plus the painting, then overhead and margin. Costing your own past rooms from punched hours gives you a rate to quote the next one from.
What is a good profit margin on a painting job?
Many painting businesses target a gross margin in the 30% to 50% range, with repaints and detailed interior work often carrying higher margins than large new-construction spray jobs. The right number depends on your overhead and market, but the discipline matters more than the target: a 45% margin calculated from bare wages and estimated hours is fiction. Cost every job from loaded labor and real hours first, then judge the margin.
Why do painting jobs lose money even when the quote looked profitable?
Almost always because the prep hours ran over the bid and were never re-costed, or the labor was costed at the bare wage instead of the loaded rate. Scraping, patching, caulking, and a second coat are invisible unless the crew captures them. Cost jobs from punched hours at a loaded rate and the overruns show up while you can still learn from them, instead of at year end.
How do I estimate labor hours for a paint job?
Start from your own history rather than a coverage chart. Surface condition, the number of coats, and the amount of trim and cutting-in swing the hours more than the square footage alone. The reliable way to build that history is to have the crew punch in against each job so the real hours accumulate, then price the next similar job from what the last one actually took, prep included.
Getting started with CRMb
Price your next painting job from measured numbers. Measure the surfaces, cost the paint at real average cost for the coats you will apply, add loaded labor for the hours the crew actually works, layer in overhead, then set the margin, and send the customer a quote they can approve from their phone.
CRMb brings the CRM, scheduling, average-cost inventory, quotes and invoices, and job costing on real punched hours into one app, on Mac, iPad, and the web. Start your 14-day free trial and quote your next job on numbers you can trust.