Most shops price from memory. The owner knows what a sedan in ceramic "usually" goes for, quotes a little different every time, and has no idea which jobs actually make money. A written price sheet fixes all three problems, and it's what lets anyone at your counter send a confident quote in two minutes.
This guide won't tell you what to charge. Your film costs, labor, rent and market are your own. It shows you how to calculate the lowest price you can take, how to organize your prices so customers can follow them, and how to present them in a quote, on your website and when they go up.
Step one: find your floor price
Your floor is the lowest price at which a job still hits your target margin. You can charge more than the floor. You shouldn't quote below it, because below the floor a full schedule just means working harder to lose money. You need five numbers per job type:
| Input | How to get it |
|---|---|
| Film cost per job | Your cost per roll or per pre-cut kit, divided by how many jobs of this type a roll covers. Include your normal waste. A roll that "covers 10 sedans" but really covers 8 after mistakes covers 8. |
| Labor hours | Time an installer spends on the car: prep, cleaning glass or paint, install, cleanup and inspection. Time real jobs for two weeks instead of guessing. |
| Loaded hourly cost | The wage plus what employment costs you on top of it: payroll taxes, workers' comp, paid time off, any benefits. If you do the installs yourself, put in what you'd have to pay someone to replace you. |
| Overhead per bay-hour | Monthly fixed costs (rent, utilities, insurance, software, plotter lease, marketing) divided by the bay-hours you actually sell in a month. Bay-hours = bays × open hours × the share of those hours a car is really in the bay. |
| Target margin | The share of each sale you want left after every cost above. This is your profit, so set it after you've paid yourself in the labor line. |
Labor hours and bay-hours are different numbers on purpose. A PPF car might take 8 installer hours but sit in the bay for two days while edges set and you inspect it. The bay is unavailable the whole time, so overhead is charged on bay time.
The formula
Direct cost = film + (labor hours × loaded hourly cost) + (bay-hours × overhead per bay-hour) + shop supplies
Floor price = direct cost ÷ (1 − target margin)
A worked example
Every number below is an example input chosen to make the math easy to follow. None of them is a suggested price or a market rate. Swap in your own.
| Line | Example: ceramic tint, sedan, sides and back glass | Your job |
|---|---|---|
| Film cost (example) | $60 | $___ |
| Labor (example) | 2.5 hours × $30 loaded = $75 | ___ hrs × $___ = $___ |
| Overhead (example) | 3 bay-hours × $25 = $75 | ___ bay-hrs × $___ = $___ |
| Supplies (example) | $10 | $___ |
| Direct cost | $220 | $___ |
| Target margin (example) | 40% | ___% |
| Floor price | $220 ÷ 0.60 = about $367 | $___ |
The $25 overhead in the example comes from $6,000 of monthly fixed costs spread over 240 sold bay-hours (2 bays × 200 open hours × 60% of the time with a car in them). If your bays sit empty more often, your overhead per bay-hour goes up and so does your floor.
A common pricing mistake is adding 40% to cost and calling it a 40% margin. Using the example above, $220 × 1.40 = $308. Profit is $88, which is only about 29% of the $308 price. To keep 40% of the sale, divide by 0.60 instead of multiplying by 1.40.
Two more adjustments are worth making once you track them. A redo allowance: add (redos per 20 jobs ÷ 20) × (film + labor) to direct cost, so comebacks are paid for by the price instead of your margin. And card fees, which are a percentage of the sale, so they go in the divisor: floor price = direct cost ÷ (1 − target margin − card fee rate). With the example numbers and an example 3% fee, that's $220 ÷ 0.57 = about $386. Run the formula for every class and tier on your sheet. It takes an evening in a spreadsheet, and you only redo it when a cost changes.
Price by vehicle class, not by window
Per-window pricing looks precise, but customers can't use it. Few people know how many pieces of glass their SUV has, so every quote turns into a back-and-forth. It also invites haggling over single windows and makes your total look like a pile of small charges. Vehicle classes give the customer one number per film tier, and they still track your labor, because labor is what actually changes from car to car.
| Class | What usually drives the time | Price per tier |
|---|---|---|
| Coupe / 2-door | Fewer windows, but long door glass that can be harder to shrink and fit. Some shops price coupes with sedans. | $___ / $___ / $___ |
| Sedan | Four doors and a back glass. Usually your baseline class. | $___ / $___ / $___ |
| SUV / crossover | Extra quarter windows and a larger rear hatch glass. | $___ / $___ / $___ |
| Truck | Cab size and the rear window. A sliding rear glass takes more time than a solid one. | $___ / $___ / $___ |
| Van / 3-row | The most glass, including small vent and quarter windows. | $___ / $___ / $___ |
| Exotic / specialty | Steep curves, panels that come off, and higher risk if something goes wrong. Quote individually above a stated minimum. | From $___ |
Assign classes by the hours you measured, not by what the manufacturer calls the body style. If a particular model you see often takes SUV time, list it as an exception under SUV. Keep per-window prices on an internal sheet for one-off jobs, like a single door glass replaced after a break-in.
Film tiers: good, better, best
Three tiers is enough. More than that and customers stall comparing, fewer and you lose the person who wants the step up. Run the floor formula separately for each tier, since film cost is the main thing that changes. Done that way, the gap between tiers works out to at least the film cost difference divided by (1 − margin). If you ever set a gap smaller than the raw film cost difference, your premium tier makes fewer dollars per car than your basic one.
| Tier | What to print on the sheet | Sedan | SUV |
|---|---|---|---|
| Good | Film brand and line name, what it does well, warranty length | $___ | $___ |
| Better | Same fields, plus the one spec that improves over Good | $___ | $___ |
| Best | Same fields, plus the spec that justifies the top price | $___ | $___ |
Use one spec across all three tiers so the comparison is honest. Total solar energy rejected (TSER), taken from each manufacturer's published data sheet at the same shade, is a common choice. Where possible, use tiers from the same manufacturer, or check that the data sheets list the same glass and test standard, since TSER from different brands isn't always measured the same way. Mixing a UV-blocking number on one tier with an infrared number on another makes the cheap film look as good as the expensive one.
PPF: price coverage packages
PPF buyers think in terms of coverage, so your sheet should too. Disputes over what a package actually included are avoidable, so list every panel.
| Package | Spell out on the sheet | Sedan | SUV / truck |
|---|---|---|---|
| Partial front | Bumper, mirrors, and how many inches back on the hood and fenders | $___ | $___ |
| Full front | Full bumper, full hood, full fenders, mirrors. Say whether headlights are included or an add-on. | $___ | $___ |
| Track / extended front | Full front plus the extra panels you include, for example rockers, A-pillars and the leading edge of the roof | $___ | $___ |
| Full body | Every painted panel, and which trim, badges or sensor areas are excluded | $___ | $___ |
Three details belong in fine print under the table, because each one changes your labor:
- Edges. Say whether your packages wrap edges where possible or stop short of them. Wrapped edges take longer and hide better.
- Pre-cut or custom. If you trim by hand on some vehicles, that time belongs in the class price for those vehicles.
- Paint condition. State that package prices assume paint in new-car condition and that correction is quoted after inspection. Otherwise a customer with a swirled daily driver expects correction for free.
Use the same vehicle classes as your tint sheet where you can, with exotics quoted individually above a stated minimum. A PPF job's floor is driven by bay time more than tint's, so make sure the bay-hours line reflects the full days the car occupies.
Add-ons: small pieces, real minimums
Add-ons are where shops quietly lose money. A headlight film job takes setup, cleaning and cleanup no matter how small the piece is. Give every add-on its own floor, and set a standalone minimum for when it's the only work on the car.
| Add-on | With a main job | On its own | Note for the sheet |
|---|---|---|---|
| Windshield strip | $___ | $___ | Check your state's rules before listing |
| Full windshield (clear or IR film) | $___ | $___ | Name the film line, since it's a different product than side-window film |
| Sunroof | $___ | $___ | List panoramic roofs separately; they're much larger |
| Headlight film (pair) | $___ | $___ | Say whether it's clear or tinted |
| Door cups / handle cups | $___ | $___ | An easy add to any PPF package |
| Rocker panels | $___ | $___ | If they aren't already in your track package |
The "with a main job" price can be lower because the car is already in the bay and prepped. That gap is the reason customers add on, so keep it visible on the sheet.
Removing old film
Removal is the job most likely to run over. Film that peels off in one sheet takes a fraction of the time of old, brittle film that comes off in flakes and leaves adhesive behind. Price it in two parts:
- A base removal price per class, covering removal of film in normal condition plus standard adhesive cleanup.
- A stated ceiling for extra time. For example: "If adhesive cleanup runs past ___ hours, we'll call you before going over $___." The customer knows the worst case, and you're not eating three hours of scraping.
Put the rear defroster risk in writing before you start. Old film on the back glass can take defroster lines with it when it comes off, and the customer should acknowledge that on the work order. For PPF removal, inspect first. Film on a repainted panel can lift paint, so quote per panel or hourly after you've looked at it.
Above all, ask about existing film before you quote. "Is there any film on the car now?" belongs in your quote form and in your text template, because a removal discovered at drop-off turns into an argument about price.
Deposits and cancellations for big PPF jobs
A full-front or full-body job can block a bay for days, and you may have ordered or cut film before the car arrives. A no-show leaves that time empty with no way to fill it. A deposit covers that risk. Set one rule for when a deposit applies, based on the job's price or the bay-hours it blocks, and write the threshold on your internal sheet so you aren't deciding customer by customer.
| Situation | Fill-in policy line |
|---|---|
| Booking | "A deposit of $___ (or ___% of the quote) holds your date and is applied to your final invoice." |
| Cancel early | "Cancel more than ___ days before your appointment and we'll refund the deposit or move it to a new date." |
| Cancel late | "Cancel within ___ days and the deposit covers the reserved bay time and film already ordered or cut." |
| Reschedule | "One reschedule with at least ___ days' notice is free." |
| No-show | "If the car doesn't arrive, the deposit is kept." |
Send the policy in the same message as the deposit link, and have the customer confirm it before paying. Rules on keeping deposits differ by state, so treat these lines as a starting structure and check them with an attorney. This is general information, not legal advice.
Quote by text in under two minutes
Once the sheet exists, a quote is a lookup. You need four facts: year, make and model; which windows or which coverage; whether there's existing film; and when they want it done. If one is missing, ask for all the missing ones in a single text. Then:
- Class the vehicle from your class list or exceptions.
- Read across the row for the tiers or packages they asked about.
- Add add-ons and removal, if any.
- Paste the template, fill the blanks and send.
"Hi [name], thanks for reaching out. For your [year make model], here's sides and back glass:
[Good film name]: $___
[Better film name]: $___
[Best film name]: $___
[Old film removal: $___, if needed.] Install takes about ___ hours. I have [day] or [day] open. Want me to hold one?"
"Hi [name], for your [year make model]:
Full front (bumper, full hood, full fenders, mirrors): $___
Track package (full front plus ___): $___
Price assumes paint in new-car condition. The car stays with us about ___ days. A $___ deposit holds the date, and I'll send the details with the link. Want to see what's open?"
Rules that keep these fast and clear: never more than three prices in one text, every price is a total for exactly what they asked for, anything not included is named, and the text ends with a question about booking. Save both templates as text replacement shortcuts on your phone or as saved replies in your messaging app, so they're two taps away mid-install. If your website's quote form already collects the four facts, you can quote straight from the form. Our shop websites page covers what that form should ask.
How published starting-at prices fit with the quote
Of the 106 Michigan shop homepages we checked, 81% showed no prices or starting-at ranges at all. We cover why that costs shops quote requests on our tint shop marketing page, and the county-by-county numbers are on our Metro Detroit page. If you do publish starting-at prices, your price sheet is what keeps them honest:
- Pull them straight from the sheet. A starting-at price should be the actual price of your lowest class in that tier. "Ceramic from $___ (sedans)" is clearer than a bare "from $___".
- Use the same words in both places. If the website says "SUV" and "Better," the quote should too. The customer should be able to trace their quote back to the number they saw.
- Every step up needs a visible reason. A quote above the starting price should read as class, tier, add-ons or removal. Never as an unexplained bump.
- Watch the gap. If most of your quotes land well above the starting price, the starting price is misleading people. Raise it or add a class.
- Change them together. When the sheet changes, update the website, the text templates and the services on your Google profile the same day.
When to raise prices
Re-run your floor formula on a schedule, once a year before your busy season at a minimum, and any time one of these happens:
- Your distributor raises film prices. Recalculate every tier that uses that film.
- Your loaded labor cost goes up after a raise or a new hire.
- Rent, insurance or another fixed cost rises, which raises overhead per bay-hour.
- You're booked out further than you can comfortably promise a new customer, for more than one season. Demand is telling you the price has room.
- Nearly every quote you send books. That can mean your price sits below what your market will pay.
Raise in clean steps that keep your prices round. Small, regular changes are easier on repeat customers than one large jump after years of standing still.
Who to grandfather
| Who | What to do |
|---|---|
| Anyone holding a written quote | Honor it for the time printed on it. Put "valid for ___ days" on every quote from now on. |
| Booked jobs and paid deposits | Always the old price. The booking was the agreement. |
| Accounts with written terms | Follow the notice period in your agreement with them. If there isn't one, give at least one full billing cycle of notice. |
| Past retail customers | New price on the next job. A short heads-up is a courtesy, not a requirement. |
How to announce it
New customers don't need an announcement. They see the current sheet. Past customers and accounts with terms get a short, plain message. For example: "Heads up: our film costs went up, so prices change on [date]. Anything booked before then stays at the current price." Only offer a book-before-the-date window if you'll actually honor it, and don't invent a deadline to push bookings.
Pricing questions
A customer says another shop quoted less. What do I do?
Check your floor. If their number is below it, matching means losing money on the job. If you're above your floor and want the work, you can offer a different tier or package at a lower price instead of cutting the price of the one they asked for. That keeps your sheet consistent.
How do I price a vehicle I've never done?
Put it in the closest class, then add time if it has unusual glass or panels. After the job, write down the real hours. If it took a different class's time, add it to that class's exception list.
Should tint jobs need a deposit?
Usually not for a standard job that takes a few hours. Use the same rule as PPF: a deposit applies when the job crosses your dollar or bay-hour threshold, or when you have to special-order film.
How detailed should the printed sheet be?
Make two versions. The customer version shows classes, tiers or packages, add-ons and what's included. The internal version adds your floor for every cell, per-window prices and the class exceptions list.
If you'd like your new price sheet turned into starting-at ranges and a quote form on your website, book a call or run the free shop audit to see what your site shows now.