The slab
Pick the opening, then the system. Width and length stay editable so a 19×21 still-a-two-car is not priced as a 20×20.
Kit and production
Starting kit prices and rates are ballpark figures, not a standard. Replace them with the coverage on your last invoice and a grind timed from your own crew.
Your shop
Payroll burden covers employer taxes, workers’ compensation, and shop insurance. Pricing off the raw wage is how a flake job that looked like $9/sq ft was actually $6.
Your bid
- Slab
- Prep hours
- Coat hours
- Shop hours
- Travel hours
- Loaded labor
- Coating kit
- Flake
- Moisture / patch
- Vehicle & other
- Overhead
- Total job cost
- Profit
- Price per sq ft
- Effective hourly rate
- Walk-away price
Where the hours go
Transparent arithmetic from your own inputs. Kit prices and grind rates are starting points, not a standard, a benchmark, or a warranty — time your crew and replace them.
Hand the customer a proposal
The price above is for you. This is the page you print or save as a PDF and give to the customer — your details, their details, the scope, the deposit split, and a line for them to sign. Your business details are saved on this device so you only type them once; the customer’s details are never saved.
Everything on the printed page is text you typed or a number this calculator worked out. It contains no warranty, lien, or cancellation wording — those depend on your jurisdiction and your contract, and this tool is not the place to invent them.
Common questions
Why does skipping the grind make a $3/sq ft special come back as a peel?
Because epoxy and polyaspartic coatings bond to a mechanically profiled surface, not a smooth slab. Degrease-or-acid-etch-only prep is the fastest and cheapest prep option here, but it does not open the concrete’s surface the way a diamond grind or shot blast does. A coating applied over an un-profiled slab can look fine on install day and start peeling within a season — the callback costs far more than the grind would have.
Why does full-broadcast flake cost more than a solid-color coat?
It is three coats instead of two, higher waste (12% versus 8%), and slower coverage per hour (220 sq ft versus 300), on top of the flake itself. The flake has to be broadcast to refusal and then topcoated, which is a separate pass. A metallic epoxy trades some of that flake material cost for even slower coverage — 180 sq ft per hour — because the metallic pigment has to be worked while wet to get the marbled look.
Why do cracks and pits get their own line instead of being part of the square footage?
Because patching a crack or a pit is prep work done before the coating goes down, priced by the linear foot of crack and the square foot of pit rather than by the floor area. A slab with 40 linear feet of cracking is a patch-and-fill job with a coating on top of it, not a clean floor with a coating — the patch labor and material do not show up if the price is only per square foot of floor.
What counts as a “starved” flake floor?
Full-broadcast flake typically lands around 0.15–0.25 lb per square foot. Below roughly 0.12 lb per square foot the floor looks thin and patchy rather than fully covered — usually the sign of underbuying flake for the area rather than a deliberate look. The calculator flags this so the material line matches what the finished floor is supposed to look like.
Is my data uploaded anywhere?
No account and no network requests — the calculator runs entirely in your browser. A share link encodes only the inputs you choose into the address bar and is never sent to us, and the optional usage counter records only which features were used and the day, never your garage size, wages, or prices.
What’s the difference between the bid price and the walk-away price?
The bid price already includes your target margin on top of labor, materials, and overhead. The walk-away price is the total cost underneath it — prep, coating system, flake, crack and pit repair — the point below which the job stops being profitable at all. Typing a price you are considering shows you the margin or the loss before you send it.