Sales

How to Bid an Epoxy Floor Job: Step by Step, With a Two Car Garage Estimate Template

How to bid an epoxy floor job step by step: measuring, concrete checks, prep, materials, labor, overhead, and margin, plus a two car garage estimate template.

Updated 13 min read
On this page
  1. Step 1: How do you measure a garage for an epoxy floor?
  2. Step 2: How do you assess the concrete before you price it?
  3. Step 3: Diamond grinding or shot blasting?
  4. Step 4: How do you calculate materials?
  5. Step 5: How many labor hours should you bid?
  6. Step 6: How do you add overhead?
  7. Step 7: How do you set the price and the margin?
  8. Worked example: a two car garage estimate template
  9. How do you present good, better, and best?
  10. What are the most common bidding mistakes?
  11. Frequently asked questions
  12. 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.

ConditionHow to check at the estimateWhat it changes in the bid
MoistureA 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 limitAdds a moisture mitigating primer or a second visit for testing
CracksMeasure linear feet, note width, and look for displacement or signs the crack is movingCrack repair material and time; structural cracks get excluded from the warranty
Spalling and pittingWalk the slab, especially near the door where salt and water sitPatch material and grinding time
Existing coating or sealerScrape test, and drop water on the slab. Water that beads instead of darkening the concrete suggests a sealerRemoval adds tooling wear and grinding hours
Oil and contaminationLook for dark stains under where cars parkDegreasing and extra grinding
Slab ageAsk when the concrete was pouredNew 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 grindingShot blasting
Best forMost residential garages, basements, and smaller roomsLarge open floors and commercial work
EdgesHandheld grinder gets close to walls and stem wallsStill needs edge grinding, because the machine cannot reach walls
Old coatingsRemoves thin coatings with the right toolingRemoves many coatings fast on large areas
EquipmentFloor grinder, edger, and a dust extraction vacuumShot blaster, dust collector, and usually a larger trailer
Main cost driverDiamond tooling wear and hoursEquipment 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.

CoatAreaPlaceholder coverageWasteGallons to bring
Base coat484 sq ft150 sq ft per gallon10%About 3.5
Flake484 sq ftPer the flake supplier's broadcast rate10%Per supplier
Topcoat484 sq ft125 sq ft per gallon10%About 4.3
Stem walls62 linear ft, 6 in tall (about 31 sq ft)Same as above10%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:

TaskCrew hours (2 people)
Setup, masking, moving items1
Grinding floor and edges5
Crack and joint repair2
Base coat and flake broadcast3
Scrape, blow, vacuum after cure2
Topcoat floor and stem walls3
Stem wall prep and cleanup4
Total20 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.

SectionLine itemQtyUnitRateTotal
MeasurementsMain slab484sq ft
Stem walls62linear ft
Crack and joint repair30linear ft
Moisture readingRecordedper manufacturer test
MaterialsGrinding consumables and tooling wear1job$40
Crack filler and patch1job$50
Base coatAbout 3.5gallonsYour cost$230
FlakePer supplierboxesYour cost$80
Polyaspartic topcoatAbout 4.3gallonsYour cost$300
Stem wall materials1job$40
Materials subtotal$740
LaborTwo person crew20labor hours$40 loaded$800
Job costsFuel, equipment wear, disposal1job$150
Direct costMaterials + labor + job costs$1,690
PricingTarget gross margin55%÷ 0.45$3,756
Market check: floor at $7 per sq ft484sq ft$7.00$3,388
Stem walls (placeholder rate, set your own)62linear ft$6.00$372
Quoted price, Better option$3,760
Profit checkGross profit ($3,760 minus $1,690)55%$2,070
Overhead allocation1job$500
Marketing per sold job (placeholder)1job$400
Net before owner taxes31%$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:

OptionSystemIncludesPrice
GoodSingle coat epoxy with broadcast flake, about $5 per sq ftFloor only$2,420
BetterEpoxy base with polyaspartic topcoat, about $7 per sq ftFloor and stem walls$3,760
BestFull polyaspartic system, about $10 per sq ftFloor, 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.

Patrick Mietka, Cofounder, Appointly Solutions

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

Next step

Want floor coating estimates booked on your calendar?

We run the Meta ads, text and call every homeowner within one minute, qualify them, and book the estimate on your calendar. You show up and run it. We work with one floor coating contractor per market.

On the call we check whether your market is open and how many estimates a week your crew can run.

Back to the blog