On this page
- Step 1: How do you measure a garage for an epoxy floor?
- Step 2: How do you assess the concrete before you price it?
- Step 3: Diamond grinding or shot blasting?
- Step 4: How do you calculate materials?
- Step 5: How many labor hours should you bid?
- Step 6: How do you add overhead?
- Step 7: How do you set the price and the margin?
- Worked example: a two car garage estimate template
- How do you present good, better, and best?
- What are the most common bidding mistakes?
- Frequently asked questions
- Bid with confidence when the calendar is full
To bid an epoxy floor job, measure every surface, assess the concrete for moisture, cracks, and existing coatings, choose the prep method, work out materials from your manufacturer's coverage rates, add loaded labor hours, fuel, and equipment, allocate overhead, and then price to a target gross margin of about 50 to 60%. Check the result against the $5 to $8 per square foot most residential garages sell for, and present it as three options instead of one number.
Step 1: How do you measure a garage for an epoxy floor?
Measure the slab, not the house plans. Use a laser measure and sketch the floor on the estimate as you go.
- Main slab: length times width. Measure both walls on each side, because garages are rarely square. Use the larger number.
- Bump outs and steps: add any step landings, side bays, or storage alcoves separately.
- Stem walls: measure the linear feet of curb along the walls and its height. Most homeowners have never heard the term, which is why it is the easiest add-on in the trade. Our post on raising your average floor coating ticket explains how to present it.
- Joints and cracks: note the linear feet of control joints and cracks you will fill.
- Obstacles: drains, posts, water heaters, built-in cabinets, and anything the homeowner is not moving.
A two car garage is usually 400 to 600 square feet of usable slab, which is the range our pricing and margins breakdown uses. Photograph every wall, every crack, and the slab from the doorway. Those photos go on the quote and become your before shots.
Step 2: How do you assess the concrete before you price it?
Most coating failures trace back to prep, moisture, or product choice. Find those problems at the estimate so you price them instead of eating them on install day.
| Condition | How to check at the estimate | What it changes in the bid |
|---|---|---|
| Moisture | A quick plastic sheet test is only an indicator. Use the quantitative test your manufacturer specifies (commonly calcium chloride per ASTM F1869 or in-situ relative humidity per ASTM F2170), and compare to their published limit | Adds a moisture mitigating primer or a second visit for testing |
| Cracks | Measure linear feet, note width, and look for displacement or signs the crack is moving | Crack repair material and time; structural cracks get excluded from the warranty |
| Spalling and pitting | Walk the slab, especially near the door where salt and water sit | Patch material and grinding time |
| Existing coating or sealer | Scrape test, and drop water on the slab. Water that beads instead of darkening the concrete suggests a sealer | Removal adds tooling wear and grinding hours |
| Oil and contamination | Look for dark stains under where cars park | Degreasing and extra grinding |
| Slab age | Ask when the concrete was poured | New concrete needs to cure to the manufacturer's spec before coating |
Write the moisture reading on the estimate. A number on paper protects your warranty, and the floor coating warranty guide covers how to write the exclusions around it.
Step 3: Diamond grinding or shot blasting?
Both open the concrete so the coating can bond. Your manufacturer specifies the surface profile they want, usually as a concrete surface profile (CSP) number from the International Concrete Repair Institute scale. Pick the method that hits that profile on this slab.
| Diamond grinding | Shot blasting | |
|---|---|---|
| Best for | Most residential garages, basements, and smaller rooms | Large open floors and commercial work |
| Edges | Handheld grinder gets close to walls and stem walls | Still needs edge grinding, because the machine cannot reach walls |
| Old coatings | Removes thin coatings with the right tooling | Removes many coatings fast on large areas |
| Equipment | Floor grinder, edger, and a dust extraction vacuum | Shot blaster, dust collector, and usually a larger trailer |
| Main cost driver | Diamond tooling wear and hours | Equipment cost and setup |
For a typical two car garage, diamond grinding is the default. Skip acid etching. It does not give a consistent profile, and it gives a homeowner no reason to pay more than the kit from the hardware store.
Either way, grinding concrete creates respirable crystalline silica dust. OSHA's construction standard for respirable crystalline silica, 29 CFR 1926.1153, lists walk-behind milling machines and floor grinders and handheld grinders in its Table 1 of control methods. Read the requirements for the equipment you run, and see OSHA's silica guidance for construction. Dust control is a cost line on every bid, not optional gear.
Step 4: How do you calculate materials?
Use the manufacturer's numbers, not ours. Every product has a technical data sheet that lists the coverage rate at a given thickness, and those rates differ by product, by the profile you ground, and by how porous the slab is.
The math is the same for every coat:
Gallons needed = square feet ÷ coverage rate per gallon (from the data sheet) × (1 + waste factor)
For the worked example below, we used placeholder coverage rates purely to show the arithmetic. Check your manufacturer's data sheet for real numbers.
| Coat | Area | Placeholder coverage | Waste | Gallons to bring |
|---|---|---|---|---|
| Base coat | 484 sq ft | 150 sq ft per gallon | 10% | About 3.5 |
| Flake | 484 sq ft | Per the flake supplier's broadcast rate | 10% | Per supplier |
| Topcoat | 484 sq ft | 125 sq ft per gallon | 10% | About 4.3 |
| Stem walls | 62 linear ft, 6 in tall (about 31 sq ft) | Same as above | 10% | Small add to each coat |
Then add what people forget: tooling wear, crack filler, patch, tape, rollers, squeegees, and solvent. On a 500 square foot flake and polyaspartic garage, all-in materials typically land around $450 to $900, which is about 15 to 25% of a $3,500 sale.
Step 5: How many labor hours should you bid?
Bid hours, not days. A trained two person crew on a one day system can finish a standard two car garage in a single long day, but the hours change with the slab.
An example schedule for the worked garage below:
| Task | Crew hours (2 people) |
|---|---|
| Setup, masking, moving items | 1 |
| Grinding floor and edges | 5 |
| Crack and joint repair | 2 |
| Base coat and flake broadcast | 3 |
| Scrape, blow, vacuum after cure | 2 |
| Topcoat floor and stem walls | 3 |
| Stem wall prep and cleanup | 4 |
| Total | 20 labor hours |
Multiply labor hours by your fully loaded rate: wages plus payroll taxes, workers' comp, and any benefits. The example uses $40 an hour loaded, which puts one day of a two person crew at $800, inside the $600 to $900 range in our pricing and margins breakdown. Use your own rate.
If the slab has an old coating, heavy oil, or a moisture primer, add the hours. If the system needs an overnight cure, add the second trip. Pure epoxy systems usually need one, which is why one crew's weekly capacity drops on epoxy work.
Step 6: How do you add overhead?
Overhead is everything the business pays whether or not the crew works today: insurance, truck and trailer payments, equipment payments, software, phone, the shop, office help, and the owner's salary if it is not in labor. Marketing is overhead too, and it belongs in every bid.
Overhead per job = monthly overhead ÷ jobs you install per month
For the example, we used $7,000 of monthly overhead spread across 14 jobs a month (one crew inside the 12 to 16 floors a month range), which is $500 a job. For marketing, figure what it costs you to sell one job: your cost per estimate divided by your close rate. The example uses $400 per sold job as a placeholder. Plug in your own numbers. If you do not know them, that is the first thing to fix.
Step 7: How do you set the price and the margin?
Price to a target gross margin, then check it against the market.
Price = direct cost ÷ (1 minus target gross margin)
At a 55% gross margin, price = direct cost ÷ 0.45. That is a markup of about 122%. Contractors who mark up costs by 50% and think they are making 50% are actually running a gross margin of about 33%, which is how good crews end up broke.
Then check the number against the market. Our floor coating benchmarks put residential garage coating at $5 to $8 per square foot, closer to $5 in saturated markets like much of Florida and closer to $8 in wealthier, less crowded metros. If your cost-based price lands far above that, look at your hours and overhead. If it lands far below, you are leaving money on the table.
Worked example: a two car garage estimate template
The garage: 22 by 22 feet, 484 square feet of slab, 62 linear feet of stem wall at 6 inches tall, about 30 linear feet of hairline cracks, no existing coating, and a moisture reading inside the manufacturer's limit. The homeowner wants the middle option: an epoxy base, full flake, and a polyaspartic topcoat, with stem walls.
These are illustration numbers, not a client's job. Copy the table and replace every number with your own.
| Section | Line item | Qty | Unit | Rate | Total |
|---|---|---|---|---|---|
| Measurements | Main slab | 484 | sq ft | ||
| Stem walls | 62 | linear ft | |||
| Crack and joint repair | 30 | linear ft | |||
| Moisture reading | Recorded | per manufacturer test | |||
| Materials | Grinding consumables and tooling wear | 1 | job | $40 | |
| Crack filler and patch | 1 | job | $50 | ||
| Base coat | About 3.5 | gallons | Your cost | $230 | |
| Flake | Per supplier | boxes | Your cost | $80 | |
| Polyaspartic topcoat | About 4.3 | gallons | Your cost | $300 | |
| Stem wall materials | 1 | job | $40 | ||
| Materials subtotal | $740 | ||||
| Labor | Two person crew | 20 | labor hours | $40 loaded | $800 |
| Job costs | Fuel, equipment wear, disposal | 1 | job | $150 | |
| Direct cost | Materials + labor + job costs | $1,690 | |||
| Pricing | Target gross margin | 55% | ÷ 0.45 | $3,756 | |
| Market check: floor at $7 per sq ft | 484 | sq ft | $7.00 | $3,388 | |
| Stem walls (placeholder rate, set your own) | 62 | linear ft | $6.00 | $372 | |
| Quoted price, Better option | $3,760 | ||||
| Profit check | Gross profit ($3,760 minus $1,690) | 55% | $2,070 | ||
| Overhead allocation | 1 | job | $500 | ||
| Marketing per sold job (placeholder) | 1 | job | $400 | ||
| Net before owner taxes | 31% | $1,170 |
The cost-based price ($3,756) and the market-based price ($3,760) land within a few dollars of each other. That is what a healthy bid looks like. When the two numbers are far apart, one of your inputs is wrong.
How do you present good, better, and best?
One price gives the homeowner a yes or no. Three options give them a choice between your options. Use the system tiers from our pricing and margins breakdown, applied to the same 484 square foot garage:
| Option | System | Includes | Price |
|---|---|---|---|
| Good | Single coat epoxy with broadcast flake, about $5 per sq ft | Floor only | $2,420 |
| Better | Epoxy base with polyaspartic topcoat, about $7 per sq ft | Floor and stem walls | $3,760 |
| Best | Full polyaspartic system, about $10 per sq ft | Floor, stem walls, longest warranty you offer | $5,212 |
Show all three on one page, explain the real difference between them (durability, UV stability, install time, warranty), and recommend one. "If this were my garage, I would do the middle one, and here is why." Keep the good option honest. It should be a floor you are proud of, not a trap.
Discounting is where bids go to die. Dropping a $3,500 garage to $2,500 cuts gross profit roughly in half while the work stays exactly the same. If price is the problem, move the homeowner to a different option instead of cutting the one they want. How to close more floor coating estimates covers the rest of the kitchen table conversation, and following up on unsold estimates covers what to do when they do not sign that day.
What are the most common bidding mistakes?
- Quoting square footage over the phone. You have not seen the slab. A price without the moisture reading and the crack count is a guess.
- Using someone else's coverage rates. Coverage depends on your product, your profile, and the slab. Use the data sheet.
- Leaving out overhead and marketing. A job can show a healthy gross margin and still lose money once the truck payment and the leads are paid.
- Confusing markup with margin. A 50% markup is a 33% margin.
Frequently asked questions
How much should I charge for an epoxy garage floor?
Most residential garage floor coatings sell for $5 to $8 per square foot installed, depending on the market and the system. The same 500 square foot two car garage can be a $2,500 job or a $5,000 job depending on the system the homeowner picks. Build your price from your own costs and a target margin, then check it against that range.
What margin should I target on an epoxy floor bid?
A well-run garage floor coating job clears a gross margin in the 50 to 60% range before overhead and marketing. To price for a 55% gross margin, divide your direct cost by 0.45. After overhead and marketing, the net on a job is lower, so track both numbers.
How do I calculate how much epoxy I need?
Divide the square footage by the coverage rate per gallon listed on your manufacturer's technical data sheet for the thickness you are installing, then add a waste factor (the example here uses 10%). Do this for each coat separately. Coverage changes with the product, the surface profile, and how porous the slab is.
Should I moisture test every garage before bidding?
Yes. Moisture vapor coming through the slab is one of the most common reasons coatings fail, and a reading on the estimate protects you if it does. Use the test method and limit your manufacturer specifies, and price a moisture mitigating primer when the slab needs one.
Is diamond grinding or shot blasting better for a garage floor?
For most residential garages, diamond grinding is the practical choice. It works in smaller spaces, reaches the edges with a handheld grinder, and handles thin old coatings. Shot blasting is faster on large open floors and common in commercial work, but it still needs edge grinding and heavier equipment. Hit the surface profile your manufacturer specifies either way.
Bid with confidence when the calendar is full
The best bid in the world does not help if you are not standing in enough garages to give it. Appointly Solutions books qualified floor coating estimates for contractors: we run the Meta ads, text and call every homeowner within one minute, qualify them, and put the estimate on your calendar for $125 to $175 per booked estimate, plus ad spend you fund at cost. No setup fee, no retainer, one floor coating contractor per market.
If you want more garages to bid on, book a strategy call and we will check whether your market is open.

About the author
Patrick Mietka
Cofounder, Appointly Solutions
Patrick runs the Meta ad campaigns and the numbers behind every Appointly client. He has managed lead generation and appointment booking for floor coating and home service contractors across the US, and writes about what actually turns ad spend into booked estimates.
More about the Appointly team