Epoxy Flooring Business Profit Margins: Real Numbers (2026)
Gross margins run 30% to 60% depending on the system you install. Here is the unit math, a full P&L sketch, and the four things that quietly eat the difference.
Is an epoxy flooring business profitable?
Yes, and the margins are good when the work is run tight. Gross margins on epoxy and concrete coating jobs run roughly 30% to 60% depending on the system: solid color sits at the bottom, full flake in the middle, and decorative metallic at the top. Wexford Insurance puts the working range at 30% to 60% across the trade, and the franchise data backs the midpoint up. The catch is that those are gross numbers. What lands in your pocket after the truck, the failed callbacks, and the leads you paid for is a different figure, and that gap is where most of this guide lives.
30-35%
Solid color epoxy
gross margin
40-50%
Full flake system
gross margin
50-60%
Decorative metallic
gross margin
For a real-world anchor, GarageExperts franchisees reported an average gross profit after labor and materials of $191,203 on $457,051 in gross sales for single-territory owners in their 2021 FDD, which works out to about 41.8% gross margin. That is a franchise paying 6% off the top in royalties and fees, so an independent running the same playbook should clear that or better. The number is achievable. It is also fragile.
How we use numbers here
Every margin range and cost figure is sourced and named in the text. The full P&L sketches are labeled as modeled examples with the assumptions stated inline, because no two markets price labor or leads the same way. Plug your own numbers into the structure.
The unit economics of one garage floor
Start with one job, because the whole business is just this repeated. Take a 450 sq ft two-car garage, full flake system, priced at $6 to $7 per square foot installed. That is $2,700 to $3,150 in revenue, which lines up with Garage Journal forum threads where homeowners report paying just under $5 to about $6 per square foot for full flake with a polyaspartic topcoat, and with Minyona's stated average of $2,500 to $4,000 for a two-car garage coating.
Now the cost of goods. Materials on a flake system are cheaper than most people guess. Concrete Floor Supply and ArmorPoxy data put 100% solids epoxy resin around $126 per gallon covering roughly 100 sq ft per coat, and a complete decorative flake kit (primer, base, flake, topcoat) lands at about $1.40 to $1.90 per square foot. Call it $1.20 to $2.00 depending on whether you buy in bulk pails or kits. On 450 sq ft that is roughly $540 to $900 in coating material.
Modeled example: 450 sq ft two-car garage, full flake system. Revenue $2,925 (midpoint at $6.50/sq ft). Material and labor figures from supplier data and forum-reported install pricing; consumables and fuel are typical small-crew assumptions.
| Line item | Amount | Notes |
|---|---|---|
| Revenue | $2,925 | 450 sq ft at $6.50/sq ft installed |
| Coating materials | $700 | ~$1.55/sq ft, flake kit (primer, base, flake, topcoat) |
| Diamond grind / prep consumables | $120 | Grinder wear, patch, crack filler, etch |
| Labor (2 people, ~1 day) | $520 | Modeled at ~$32/hr loaded x 16 crew-hours |
| Misc consumables | $90 | Tape, rollers, spike shoes, mixing supplies, PPE |
| Fuel / vehicle | $70 | Round trip plus equipment haul |
| Total cost of goods | $1,500 | Direct job cost only |
| Gross profit | $1,425 | 48.7% gross margin |
That 48.7% sits right inside the 40% to 50% flake range, which is the point: the model is not optimistic, it is ordinary. Swap the system and the margin moves in a predictable direction. The labor and prep barely change between systems, so the swing is almost entirely material cost and what the market lets you charge.
Margin by system type
Modeled gross margin on the same 450 sq ft garage, varying only the system. Installed prices from ArmorGarage and 2026 cost-guide ranges; material costs from supplier data. Labor and prep held roughly constant.
| System | Installed $/sq ft | Material $/sq ft | Gross margin |
|---|---|---|---|
| Solid color epoxy | $4-7 | $0.65-1.00 | ~30-35% |
| Full flake | $6-9 | $1.20-2.00 | ~40-50% |
| Metallic epoxy | $9-12 | $1.50-2.50 | ~50-60% |
| Quartz broadcast | $8-12 | $2.00-3.00 | ~40-50% |
Why metallic prints money
A metallic floor uses about the same labor and prep as a flake floor, but the market pays $9 to $12 per square foot for it versus $6 to $9 for flake. Same day on site, same crew, $1,000+ more gross on a two-car garage. Wexford notes a metallic project can hit 60% margin against a standard garage's 35% for nearly identical labor. The systems that look hardest to sell are the ones worth selling.
What that looks like over a year
One good job does not pay your mortgage. Volume and overhead do. Here are two modeled annual sketches: a two-person owner-operator crew, and a two-crew operation. Both assume a healthy flake-and-metallic mix averaging about $1,425 gross profit per job (from the unit model above), and both state their assumptions so you can adjust.
Owner-operator, 2-person crew
Modeled example. Assume 3 jobs per week, 46 working weeks, so 138 jobs a year at an average ticket of about $2,925. That is roughly $404,000 in revenue, which sits a hair under the $443,000 average revenue Garage Force franchisees reported in their Item 19 and the $457,000 GarageExperts single-territory average. So this is a realistic solo-operator year, not a fantasy.
- Revenue: ~$404,000 (138 jobs x $2,925)
- Direct job cost (materials, labor, consumables, fuel): ~$207,000 at ~48.7% gross margin
- Gross profit: ~$197,000
- Fixed overhead (insurance, vehicle payment, marketing, software, phone, misc): ~$60,000-80,000
- Owner take-home before tax: ~$117,000-137,000
The owner here is on the tools every day. That is the trade-off: strong income, no leverage, and the business stops the day you do. The fixed-overhead line is where solo operators get surprised, because marketing and insurance do not scale down just because you are small.
Two-crew operation
Modeled example. Two crews running 4 jobs per week each, 46 weeks, is 368 jobs at $2,925, or about $1.08M revenue. That lines up closely with the GarageExperts multi-territory average of roughly $991,000 and the BizBuySell concrete-business median revenue near $1.7M for larger shops. Now you are running a company, not a truck.
- Revenue: ~$1,076,000 (368 jobs x $2,925)
- Direct job cost: ~$552,000 at ~48.7% gross margin
- Gross profit: ~$524,000
- Crew payroll above direct labor, supervision, second vehicle, larger marketing spend, admin: ~$300,000-360,000
- Owner profit before tax: ~$164,000-224,000
Margin compresses as you scale
Notice the two-crew owner does not make four times the solo owner despite three times the revenue. The GarageExperts data shows the same thing: multi-territory gross margin (39.7%) ran slightly below single-territory (41.8%). More crews means more leads bought, more callbacks across more jobs, and more salary for the people doing what you used to do for free. Scale is real, but it is not free money.
What quietly kills your margin
The unit model above assumes everything goes right. It usually does not. Four things drain margin without ever showing up as a line on the quote, and they are the reason two shops charging the same price take home wildly different money.
1. Callbacks from bad prep
A flake floor that peels because the slab was not ground or moisture-tested is not a warranty visit, it is a margin event. You eat the second set of materials, two more days of labor, and the cost of the next job you could not run because your crew was redoing this one. One re-grind-and-recoat on a 450 sq ft garage can erase the gross profit of three or four clean jobs. Prep is the cheapest insurance you will ever buy.
2. Moisture failures
Related but worse, because a moisture failure can take months to surface and often shows up after you have been paid and moved on. A $30 calcium chloride test on the front end versus a full tear-out and a damaged reputation on the back end is not a close call. Skipping it is the single most expensive shortcut in this trade.
3. Paid leads at $40 to $100 each
According to Minyona, exclusive garage floor coating leads run $41 to $99 each, or $75 to $150 per booked appointment. That cost is fine if you close. It is poison if you do not, because every lead you pay for and lose is a direct subtraction from the gross profit on the jobs you did win. At $60 a lead and a 20% close rate, your cost of customer acquisition is $300 per job, which Minyona itself frames as healthy against a $2,500 to $4,000 ticket. Let that close rate slip to 10% and the same leads now cost you $600 per job, doubling your acquisition cost while you changed nothing about the work.
4. Dead estimate visits and single-option quotes
Every estimate that does not close still cost you fuel, an hour or two of your day, and often a paid lead behind it. If you drive to a house, measure, and walk out with a maybe, you spent real money to manufacture nothing. Single-option quotes make this worse: you hand the homeowner one number and a yes-or-no decision, which is the easiest decision in the world to defer. Give them one price and the answer is often "let me think about it." Give them three and the question changes from whether to buy to which one.
The hidden cost stack
On a job that goes sideways, you can stack a $60 lead, two dead estimate visits at ~$40 each in fuel and time, and a callback that eats a full crew-day. That is $600+ of margin gone before you account for a single peeling chip. None of it appears on the quote. All of it comes out of the 48.7%.
The levers that actually move the number
Three levers move margin more than anything else, and they are in order of leverage. Price is the obvious one and the weakest. Tiered quoting and the upsell are stronger. The close rate is the strongest, and it is the one most contractors never touch because it does not feel like a number you can change.
Lever 1: Good-better-best tiered quotes
Stop sending one price. Send three: a solid-color or basic flake floor as the entry tier, a full flake with premium topcoat as the middle, and a metallic or designer flake as the top. Two things happen. The middle option starts looking reasonable next to the top one, so your average ticket rises without anyone feeling pushed. And the decision shifts from "do I want this at all" to "which of these do I want," which is a much easier yes. You are not raising your price. You are giving the buyer a more expensive thing to choose.
Lever 2: Sell the metallic up
The margin table already showed why. Metallic carries the same labor as flake but commands $9 to $12 per square foot. Every flake customer you move up to metallic is roughly $1,000 of extra gross profit on a two-car garage for zero extra days on site. You do not need every customer to take it. Moving one in four flake jobs up to metallic measurably lifts your blended margin across the year.
Lever 3: Close rate (the math nobody runs)
Here is the lever almost everyone underweights. When estimate visits are your constraint, and for most coating shops they are, one percentage point of close rate is worth more than a price increase. Run the arithmetic.
Modeled example. You do 20 estimates a month at a $2,925 average ticket and 48.7% gross margin, so about $1,425 gross profit per closed job. The lead-cost framework Minyona and other lead buyers use is: max sustainable cost per lead = job value x margin x close rate.
Modeled example: 20 estimate visits per month, $2,925 ticket, 48.7% gross margin (~$1,425 gross profit per job). Only the close rate changes.
| Close rate | Jobs won / 20 visits | Monthly gross profit | Vs. 25% baseline |
|---|---|---|---|
| 25% | 5 jobs | $7,125 | baseline |
| 30% | 6 jobs | $8,550 | +$1,425/mo |
| 35% | 7 jobs | $9,975 | +$2,850/mo |
| 40% | 8 jobs | $11,400 | +$4,275/mo |
Moving from a 25% close rate to 35% on the same 20 visits adds two jobs a month, about $2,850 in gross profit, or roughly $34,000 a year. You bought no extra leads. You drove to no extra houses. Now compare that to a price increase: to add $2,850 of monthly gross profit by raising prices instead, you would need to lift every ticket by hundreds of dollars, which costs you some of those closes and shrinks the funnel you were already constrained by. Industry benchmark data shows contractors who tighten their follow-up and estimate process routinely move from the 20-25% range into 30-40%, so this is not a hypothetical ceiling.
So what raises a close rate? Faster follow-up, structured multi-touch instead of one voicemail, the tiered quote from Lever 1, and one thing that is specific to floors: showing the customer the actual result before they commit. A homeowner staring at a stained concrete slab cannot picture a charcoal flake or a copper metallic finish in their own garage. The ones who can picture it close. The ones who cannot say they will think about it.
This is the one place a visualization tool pays for itself in pure arithmetic. With ShowFloor AI you upload a photo of the customer's actual garage, pick from 800+ real coating materials, and hand them a photorealistic render of their own floor in about 15 seconds, then lay two or three options side by side with one-tap digital acceptance. That is the good-better-best quote and the close-rate lever in one motion. At $49 a month for the Solo plan, the tool costs less than one bought lead, and the value is not the render itself, it is the dead estimate visits you stop paying for. Fewer maybes is the cheapest margin gain in this business. One contractor, AG Williams Painting, closed a $15,000 metallic floor job this way; another closed a $33,000 commercial deal. Those are closes that did not require a single extra lead.
Rank your levers correctly
When estimate visits are the bottleneck, fix close rate before you touch price. A point of close rate is free margin on traffic you already paid for. A price increase shrinks the funnel you are already short on. Run your own version of the table above with your real ticket and margin before your next price change.
What the businesses actually sell for
If you want a reality check on the whole model, look at what these companies trade for when owners sell. BizBuySell concrete-business listings show a median asking price around $706,000 against median revenue near $1.7M and median owner earnings (SDE) around $273,000. That is roughly a 2.5x to 3x multiple on owner earnings, which is normal for a healthy, owner-dependent trade business.
The franchise route trades startup cost for a playbook. Garage Force quotes franchise fees of $49,500 to $164,500 plus 5% royalty and 1% marketing, on average unit revenue around $443,000. GarageExperts single-territory owners averaged about $632,000 in their 2025 FDD. You are buying the systems and the brand and paying 6% off the top forever. Independents keep that 6% but build the systems themselves. Both work. The margin math underneath is the same trade you have been reading about.
The takeaway
The gross margin (30-60%, midpoint ~42%) is real and well-documented. Whether you keep it comes down to prep discipline, lead efficiency, and close rate. The contractors who win are not charging the most. They are wasting the fewest leads and the fewest estimate visits.
Stop paying for estimate visits that go nowhere
Upload a photo of the customer's garage, pick from 800+ real coating materials, and hand them a photorealistic render in about 15 seconds. Side-by-side good-better-best options with one-tap acceptance. The close-rate lever, built in.