How to epoxy a garage floor: moisture test, prep, coats and when you can park on it
A 20 x 20 ft garage takes one 2.5-car epoxy kit and one clear kit, $453.98 with a 10% contingency, and the data sheets set a timetable: roll within the pot life, clear coat between 24 hours and 5 days later, then 3 days before the car comes back.
To epoxy a garage floor, test the slab for moisture and sealer, degrease it and fill the cracks, etch or grind the concrete, roll the mixed epoxy within its pot life, add a clear topcoat 24 hours to 5 days later, and wait 3 days before driving on it. A 400 sq ft garage costs about $454 DIY (September 2026).
Time: about 14 hours of work (my allowance) spread over a week, because the coatings set the pace: one day to clean, etch and dry, one to coat, the clear coat 24 hours to 5 days later, then 3 days before you drive on it. DIY cost: $453.98 for a 400 sq ft garage including a 10% contingency, or $1.13 per sq ft. Hired, the direct cost of the same system is $1,303.86, and Angi's national range for a professional epoxy floor is $1,650 to $3,494. Difficulty: easy to moderate. The hard part is the prep, and the clock once you mix.
Do not do it yourself, or at least not with a kit, if the plastic sheet test shows moisture, if water beads on the slab (a sealer, which means grinding), if the concrete is spalling or heaving, if the slab is less than 28 days old, or if the old coating fails a tape test and may contain lead. The kit data sheets say the product is not intended for floors with a moisture problem.
Prices checked September 19, 2026.
How do you test a garage floor before epoxy?
Tape down a plastic sheet for moisture, drip water for sealer, and pull tape off any old paint, all before you buy a kit. Epoxy is a film glued to the top of the slab. Water vapor coming up through the concrete pushes it off, and a sealer keeps it from sticking in the first place. Both tests cost nothing.
Moisture: Rust-Oleum's EpoxyShield instructions call for a 2 x 2 ft sheet of plastic, a heavy trash bag works, taped down on all four edges with duct tape over bare concrete for 24 hours. Water droplets on the underside, or concrete that looks darker under the sheet, mean moisture is trapped in the slab, and Rust-Oleum says to use its Moisture Stop primer before coating. The plastic sheet method is standardized as ASTM D4263, which indicates whether capillary moisture is present. It gives a yes or no, not a number. For a number, ASTM F1869 measures the vapor emission rate with a calcium chloride dish under a dome, in pounds per 1,000 sq ft per 24 hours. Run it when the sheet test is borderline, and ask the coating maker for its limit. Test in more than one spot, including near the door and any floor drain.
Sealer: drip water on the floor. If it soaks in, the surface can take a coating. If it beads, a sealer or curing compound is present, and Rust-Oleum's data sheets say it has to be removed by sanding or grinding before the coating goes on. Acid etch will not remove it.
Old paint: cut an X through it with a razor, press 4 in of duct tape over the cut, and pull it off in one move. If more than 25% of the paint comes off, Rust-Oleum says to remove the old coating completely. Its data sheets carry a lead warning for scraping and sanding old paint, so test an old coating for lead before you sand it.
Do you need to grind a garage floor before epoxy?
Only if the slab is sealed or the product calls for a ground profile; a consumer kit on bare, unsealed concrete uses the acid etch in the box. Both methods do the same job: open the pores of the concrete so the coating can grip it. Etching does it with acid. The EpoxyShield kits include a citric acid etch: one bag in two gallons of water, spread on a pre-wetted floor in 10 x 10 ft sections, scrubbed with a stiff brush, and rinsed twice. Rust-Oleum says not to use muriatic acid, and not to etch a basement floor at all. The check is simple: wipe a finger across the dry floor; if it comes up dusty, scrub and rinse again.
Grinding does it mechanically with a diamond cup wheel, and it is the only option on a sealed slab. Industrial products are specified this way. Sherwin-Williams' ArmorSeal 650 SL/RC asks for a concrete surface profile of CSP 1 to 3 under ICRI guideline 310.2R, which is a ground or blasted texture. For a DIY floor that means a 4 in diamond cup wheel ($44.89 at Menards) on a grinder with a dust shroud and a vacuum, or a dedicated concrete surfacing grinder ($545 at Menards to buy). Grinding concrete makes silica dust; use the shroud and the vacuum, and wear a respirator.
For the case on this page, an unsealed slab and a kit built around an etch, etching is the right call. If the water test beads, budget for grinding and a thicker system.
Is 100% solids epoxy better than water-based?
It builds a much thicker film, 10 to 30 mils for ArmorSeal 650 against 3.0 to 3.5 mils dry for the water-based kit, but it gives you less working time and costs more per gallon. "Solids" is the part of the liquid that stays on the floor after it cures. The rest evaporates. That one number decides how thick the finished film is.
A US gallon is 231 cubic inches. Spread over 1,604 sq ft it makes a film 1 mil (a thousandth of an inch) thick, which is why 100% solids products list 1,604 sq ft per gallon at 1 mil. Rust-Oleum's water-based EpoxyShield is 52.6% to 52.8% solids by volume, so its recommended 6 to 7 mils wet dries to 3.0 to 3.5 mils. Its clear topcoat is 100% solids, so 2.5 to 5 mils wet stays 2.5 to 5 mils dry. The solvent-based EpoxyShield Professional is about 70% solids, and Sherwin-Williams' ArmorSeal 650 SL/RC, an industrial self-leveling epoxy, is 99% solids applied at 10 to 30 mils.
Here is what the 400 sq ft garage gets from the kit. Two pouches of 120 fl oz each are 1.875 gallons, or 213 sq ft per gallon. That is 7.5 mils wet before losses. With the 15% material loss Rust-Oleum builds into its coverage figures, about 6.4 mils reach the floor, inside the 6 to 7 mil target, and dry to about 3.4 mils. ArmorSeal 650 at its 10 mil minimum covers 160 sq ft a gallon, so the same garage takes 2.5 gallons for a film about three times as thick. Thicker film hides more texture and takes more wear, but 100% solids products give you less working time: ArmorSeal 650 lists a 40 minute pot life at 72°F. They are sold as industrial systems with a primer, and Sherwin-Williams' consumer-facing ArmorSeal 1000HS (65% solids) lists at $459.19 a gallon for the base component alone. For a car garage with sound concrete, the kit plus a 100% solids clear coat is the budget answer.
How much epoxy do you need for a 2-car garage?
One 2.5-car kit and one clear kit cover a 400 sq ft garage. Rust-Oleum's data sheet gives about 250 sq ft per pouch at the recommended film. 400 / 250 = 1.6 pouches, so the 2.5-car kit with two pouches is the purchase, and it brings two bags of etch and two of chips. The clear kit covers 250 sq ft over bare concrete but 500 sq ft over a coated floor, so one kit tops the whole garage. The paint calculator runs the same coverage-per-gallon arithmetic if your garage is a different size.
For a garage that is not 400 sq ft: enter the floor area, the number of coats and the coverage from your kit's data sheet.
| Item (Menards, seen 2026-09-19) | Quantity | Cost |
|---|---|---|
| Rust-Oleum EpoxyShield gloss 2.5-car kit (2 pouches, etch, chips) | 1 | $179.00 |
| Rust-Oleum EpoxyShield gloss clear kit, 90 oz | 1 | $169.00 |
| Rust-Oleum Concrete Cleaner and Degreaser, 1 gal | 1 | $21.96 |
| Rust-Oleum Fast Set Concrete Crack Repair, 8.6 oz | 1 | $22.99 |
| Paint tray kit with 9 in roller, $9.88 | 2 (one per coat) | $19.76 |
| Contingency | 10% of $412.71 | $41.27 |
| DIY total | $1.13 per sq ft | $453.98 |
The data sheets call for a 3/8 in nap synthetic roller cover; check that the kit's cover is 3/8 in, and buy one if not. Extra chips for a heavier broadcast are $16.94 a pound. Skipping the clear coat takes the total to $268.08, but the clear coat is what carries the traffic and the chips, and it is 100% solids. Keep it in the budget. You also need a stiff scrub brush, a plastic watering can for the etch, a floor squeegee, a garden hose, a brush for cutting in, painter's tape, a 5 gallon bucket, and a wet/dry vacuum. One buying note: Menards' site sells the clear kit in multiples of two, so an online order for this garage adds a second $169 kit you do not need.
Budget for gloves and goggles too, because the activator is the hazardous part. The EpoxyShield data sheets send you to the safety data sheet, and Rust-Oleum's sheet for the 1-car kit (product 251965) says to use the coating only with adequate ventilation, to avoid breathing the vapors, and to open all doors and windows for cross-ventilation. In a garage that means the overhead door and any side door open while you mix, roll and let it dry. The same sheet rates the activator corrosive to skin and eyes and a skin sensitizer, and calls for impervious gloves, splash eyewear, and a respirator under an OSHA 1910.134 program wherever conditions warrant one. The solvent-based EpoxyShield Professional adds a rule of its own: every pilot light and open flame in the area goes out and stays out for 24 hours after application, which includes a gas water heater or furnace in the garage. Old paint is a separate hazard. For scraping or sanding it, the data sheets call for a NIOSH-approved respirator against lead dust and cleanup with a HEPA vacuum and a wet mop.
How to epoxy a garage floor, step by step
- Run the moisture, sealer and paint tests above, a day or more before you buy. Check: dry under the plastic after 24 hours, water soaks in, and no old coating fails the tape test.
- Empty the garage, scrape off anything stuck, and scrub the oil spots with degreaser; rinse and repeat until the water no longer beads on them. Check: the stains no longer look wet or shiny after rinsing.
- Fill cracks and chips with the repair compound and let it cure per its label. Check: the patch is flush or a hair proud, and you sand it flush once hard. The concrete crack repair guide covers wider cracks.
- Etch: wet the floor, pour the etch solution over a 10 x 10 ft section, scrub, keep it wet, and rinse. Rinse the whole floor at the end and squeegee it out. Check: the finger test comes up clean, and the floor dries to an even color with no puddles left.
- Let the floor dry completely, at least overnight. Check: repeat the plastic sheet test on one spot if you are unsure, and confirm the air, the kit and the slab are between 60 and 85°F and the humidity is 85% or less.
- Tape the walls, then mix one pouch only. Rust-Oleum's timing depends on temperature: at 60 to 70°F, wait 30 minutes before brushing the edges and 45 before rolling, and use all of it within 2 hours; at 71 to 80°F, 10 and 15 minutes and a 1.5 hour pot life; at 81 to 85°F, brush right away, roll after 5 to 15 minutes, and finish within 1 hour. Rust-Oleum suggests coating after 1 PM in cool weather and before 9 AM in warm weather. Check: the doors are open, and a clock or phone timer starts when the parts are mixed.
- Cut in the edges with the brush, then roll 4 x 4 ft sections with the 3/8 in nap roller, keeping a wet edge. Throw the chips up and away from you so they land flat on the wet coat, then move to the next section. Check: one pouch covers about half the floor; if you are past the halfway line with a lot left, you are rolling it too thin, and if you run out early, too thick.
- Mix the second pouch and finish the floor the same way. Check: no lap marks where the two batches meet, under a bright work light at a low angle.
- Wait at least 24 hours, then apply the clear coat within 5 days of the color coat, or sand before you do. Mix one clear pouch at a time; its pot life is 60 minutes at 70 to 80°F. Check: the base coat is hard enough to walk on without marking before you start.
- Keep off it 12 to 16 hours for light foot traffic, 24 to 48 hours before putting heavy items back, and 3 days before parking a car. Check: count from the clear coat, and add time if the garage is below 70°F.
Mistakes that cost money
| Mistake | What happens | Cost to fix |
|---|---|---|
| Coating a slab that failed the plastic test | The coating blisters and peels | $870.31 (materials twice plus a diamond wheel to strip it) |
| Etching a sealed slab | The coating never bonds and lifts in sheets | Same, plus the grinding time |
| Mixing both pouches at once on a warm day | The second batch gels before you reach it | $89.50, half the kit |
| Clear coat applied more than 5 days after the base, unsanded | Poor adhesion between coats | $169.00 clear kit again, plus sanding |
| Parking on it before 3 days | Tire marks and lifting under hot tires | A patch at best; a recoat of the lane at worst |
| Oil spots scrubbed once | Fish-eyes and peeling at each stain | $21.96 of degreaser if caught before coating |
The first row is the one to take seriously. A moisture failure costs the $412.71 of materials you already used, another $412.71 to do it again, and $44.89 for a cup wheel to get the failed film off, $870.31 in all, before you count the weekends. The plastic sheet test costs a trash bag and a day.
Is it cheaper to epoxy a garage floor yourself?
Yes, by about $1,196 against the bottom of Angi's range for a professional job, as long as the slab passes the tests. Construction and maintenance painters (BLS SOC 47-2141) earned a national mean of $26.64 an hour in May 2025. Wages are 69.0% of total compensation in the construction, extraction, farming, fishing and forestry occupations row of the June 2026 employer cost survey ($32.17 of $46.65), so a loaded hour costs $26.64 x 46.65 / 32.17 = $38.63. I allow a two-person crew 20 crew-hours across the prep day, the coat and the clear coat for the same kit system.
| Hired, same system, direct cost | Basis | Cost |
|---|---|---|
| Materials | Same as the DIY list | $412.71 |
| Labor | 20 h x $38.63 | $772.62 |
| Contingency | 10% of $1,185.33 | $118.53 |
| Total | $3.26 per sq ft | $1,303.86 |
Real bids run higher. Angi's normal range for a professional epoxy floor is $1,650 to $3,494, and $2 to $12 per sq ft, which is $800 to $4,800 for this garage. The gap is overhead and profit, and usually a different product: pros tend to grind and lay thicker systems than a consumer kit. Ask each bidder for the film thickness and the prep method along with the price.
Against the bottom of Angi's normal range, doing it yourself saves $1,650 − $453.98 = $1,196.02, or $85.43 for each of my 14 hours. That is more than twice the loaded painter's hour. The saving holds only if the slab passes the tests. If it fails the moisture test or beads water, the job needs grinding and a moisture-tolerant primer, and that is the point where a pro with a planetary grinder and a 100% solids system earns the higher price.
Frequently asked questions
How much epoxy do I need for a 2-car garage?
Measure it. A 20 by 20 ft garage is 400 sq ft. Rust-Oleum's data sheet for the water-based EpoxyShield pouch kits gives about 250 sq ft per pouch at the recommended film, so 400 sq ft needs 1.6 pouches and you buy the 2.5-car kit, which holds two. That kit was $179 at Menards on September 19, 2026. The EpoxyShield clear topcoat kit covers 250 sq ft over bare concrete and 500 sq ft over a coated floor, so one $169 kit tops the whole garage.
How long after epoxy can you drive on a garage floor?
Go by the product data sheet. Rust-Oleum's water-based EpoxyShield and its clear topcoat both say 3 days before vehicle traffic at 70 to 80°F. The solvent-based EpoxyShield Professional coating says 4 days, and Sherwin-Williams ArmorSeal 650 SL/RC, a 100% solids industrial epoxy, lists 72 hours for heavy traffic at 72°F and 7 days to full cure. Cooler weather stretches all of these. Count from the last coat.
Do you have to grind concrete before epoxy?
Not for every product. Rust-Oleum's consumer kits are built around a citric acid etch that comes in the box. Grinding becomes necessary when the slab has a sealer or a curing compound, which you find by dripping water on it: if it beads, Rust-Oleum's data sheet says the sealer has to come off by sanding or grinding. Industrial products such as ArmorSeal 650 SL/RC call for a mechanical profile of CSP 1 to 3 under ICRI guideline 310.2R.
How do you test a garage floor for moisture before epoxy?
The quick test is in Rust-Oleum's instructions: tape a 2 by 2 ft sheet of plastic, such as a heavy trash bag, to bare concrete with duct tape on all edges, and leave it 24 hours. Droplets under the plastic or a darker patch of concrete mean moisture is coming through and the kit should not go down without a moisture-blocking primer. ASTM D4263 standardizes the plastic sheet method. For a number, ASTM F1869's calcium chloride test measures pounds of vapor per 1,000 sq ft per 24 hours; ask the coating maker for its limit.
Can you epoxy a garage floor in cold weather?
Only inside the temperature window on the data sheet. Rust-Oleum's water-based EpoxyShield asks for air, material and surface between 60 and 85°F, the surface at least 5°F above the dew point, and humidity no higher than 85%. The solvent-based professional version allows 55 to 90°F. Cold slows the cure and moves every recoat and traffic time later; a garage at 50°F in November is a spring project.
Can you put epoxy over a painted garage floor?
Only if the old coating is well bonded. Rust-Oleum's test is to cut an X through the coating with a razor, press 4 inches of duct tape over it and rip it off. If more than 25% of the paint comes off, the old coating has to be removed before EpoxyShield goes on. If it passes, scuff sand the whole floor so the new coat has something to grip.
Sources
- Rust-Oleum, EpoxyShield water-based epoxy garage floor coating, pouch kits, TDS ESH-39 (rev. 050418) : Pouch: Part B 92.5 fl oz, Part A 27.5 fl oz; 2.5-car kit has two pouches, two etch bags, two chip bags; 2 x 2 ft plastic sheet moisture test for 24 h; 28-day-old concrete; sealer test with water drops; citric etch, no muriatic acid; X-cut tape test, over 25% removed means strip; apply at 60 to 85°F, 5°F above dew point, RH max 85%; induction and pot life 2 h at 60 to 70°F, 1.5 h at 71 to 80°F, 1 h at 81 to 85°F; 52.6% to 52.8% solids by volume; 3.0 to 3.5 mils DFT from 6.0 to 7.0 mils wet; about 250 sq ft per pouch; foot traffic 24 h, vehicles 3 days. accessed 2026-09-19.
- Rust-Oleum, EpoxyShield water-based epoxy, can kits, TDS ESH-09 (rev. 050218) : Same moisture test, conditions and cure; mix all Part B together for color consistency when using several kits; start rolling 45 minutes after mixing at 60 to 70°F, 15 minutes at 71 to 80°F. accessed 2026-09-19.
- Rust-Oleum, EpoxyShield clear finish floor coating kit, TDS ESH-38 (rev. 033018) : 100% solids by volume; pot life 60 minutes at 70 to 80°F; 2.5 to 5.0 mils; 250 sq ft per kit on bare concrete, 500 on painted surfaces; apply at least 24 h after EpoxyShield and within 5 days to avoid sanding; vehicle traffic 3 days. accessed 2026-09-19.
- Rust-Oleum, EpoxyShield solvent-based professional floor coating, TDS ESH-06 (rev. 072121) : 69.1% to 72.1% solids by volume; 150 to 200 sq ft per gallon practical; pot life 2 h at 70 to 80°F; vehicle traffic 4 days; sealed floors must be sanded or ground; apply at 55 to 90°F; pilot lights off for 24 h. accessed 2026-09-19.
- Rust-Oleum, safety data sheet for EpoxyShield Garage Floor Coating, 1-car kit 251965 (revised July 8, 2025) : Use only with adequate ventilation; avoid breathing fumes, vapors or mist; prevent build-up of vapors by opening all doors and windows to achieve cross-ventilation; respirator program per OSHA 1910.134 and ANSI Z88.2 whenever conditions warrant; impervious gloves; splash eyewear; activator is corrosive, causes severe skin burns and may cause skin sensitization. accessed 2026-09-19.
- Sherwin-Williams, ArmorSeal 650 SL/RC self-leveling recoatable epoxy, product data sheet (revised February 11, 2022) : 99% volume solids; 10 to 30 mils; 50 to 160 sq ft per gallon; at 72°F: pot life 40 minutes, recoat 8 h minimum and 72 h maximum, foot traffic 24 h, heavy traffic 72 h, cure 7 days; abrade if recoating after 72 h; concrete cured 28 days; surface prep per ICRI 310.2R CSP 1 to 3; moisture per ASTM F1869. accessed 2026-09-19.
- Sherwin-Williams, ArmorSeal 1000HS product page : List price $459.19 for 1 gallon of Part A (tint base); Part B sold separately. PDS: 65% volume solids. accessed 2026-09-19.
- ASTM D4263, Standard Test Method for Indicating Moisture in Concrete by the Plastic Sheet Method : Indicates the presence of capillary moisture in concrete. accessed 2026-09-19.
- ASTM F1869, Standard Test Method for Measuring Moisture Vapor Emission Rate of Concrete Subfloor Using Anhydrous Calcium Chloride : Rate expressed in pounds of moisture per 1,000 sq ft per 24 h; not for use over coatings or patching compounds. accessed 2026-09-19.
- Menards, Rust-Oleum EpoxyShield and RockSolid garage floor kits (search results) : EpoxyShield gloss 2.5-car kit, 240 oz, $179.00; 1-car kit, 120 oz, $96.99; EpoxyShield gloss clear kit, 90 oz, $169.00; Rust-Oleum Concrete Etch 1 lb $18.99; decorative color chips 1 lb $16.94; RockSolid 2.5-car kit $296.94. The clear kit and 1-car kit are sold online in increments of 2. Seen 2026-09-19.
- Menards, concrete repair, degreaser and roller kit search results : Rust-Oleum Fast Set Concrete Crack Repair 8.6 oz $22.99; Rust-Oleum Concrete Cleaner and Degreaser 1 gal $21.96; Linzer 6-piece knit paint tray kit $9.88; Masterforce 4 in double row diamond cup wheel $44.89; Bosch 5 in concrete surfacing grinder $545.00. Seen 2026-09-19.
- BLS OEWS May 2025, painters, construction and maintenance (47-2141), national : Mean hourly $26.64, median $23.75. accessed 2026-09-19.
- BLS, Employer Costs for Employee Compensation, June 2026, Table 4 : Construction, extraction, farming, fishing and forestry occupations: total compensation $46.65/h, wages $32.17 (69.0%). accessed 2026-09-19.
- Angi, epoxy flooring cost (updated August 3, 2026), secondary comparison only : $2 to $12 per sq ft installed; normal range $1,650 to $3,494; concrete resurfacing $1,000 to $5,000. accessed 2026-09-19.