2026-09-26 · Fidele Maniraruta
How Long Should a Quote Be Valid? A Contractor's Guide to Setting an Expiration Date
You quoted a kitchen remodel in March. The customer calls back in August wanting to book it at the same price, except lumber's up, your helper wants more per hour, and you already raised your rates twice since then. Now you're stuck between honoring a number that loses you money or telling the customer "actually, no" and looking like you're backing out.
This happens to almost every contractor at some point, and it happens because most quotes don't have an expiration date on them at all. Fix that one thing and the problem mostly goes away.
Pick your trade and the situation, get 3 copy-paste texts instantly. Drop an email and all 18 unlock, plus the day-by-day send schedule.
Why an expiration date matters more than people think
A quote without a date on it is a price you're promising forever, whether you meant to or not. Materials move. Your schedule fills up. Your own labor rate probably isn't the same as it was six months ago. Without a stated window, the customer has every right to assume the number you gave them still stands, and you're the one who looks bad when you tell them it doesn't.
An expiration date isn't about being difficult with customers. It's about protecting a number that was accurate the day you wrote it and might not be accurate later. Think of it the same way a supplier quotes you material pricing "good for 30 days." Nobody reads that as rude. It's just how pricing works when costs move.
So how long should you actually give it?
There's no single right answer, it depends on your trade and what's driving your costs, but here's a reasonable starting point by type of work:
Small jobs, quick turnaround (repairs, small punch-list items, one or two day jobs): 15 to 30 days is plenty. Nothing about your costs is likely to shift much in that window, and a shorter window nudges the customer to decide instead of sitting on it for two months.
Mid-size jobs (bathroom remodels, decks, siding, a room addition): 30 to 45 days is typical. Enough time for the customer to line up financing or get a second opinion without you carrying old pricing risk too long.
Big jobs with real material exposure (full remodels, roofing when shingle prices are moving, anything lumber-heavy): 30 days, sometimes less if your supplier's pricing is only holding for two or three weeks. If your material cost is the volatile part, your quote window shouldn't outlast your material quote.
Custom or design-heavy work: this is the one case where a longer window can make sense, 60 days or so, because the customer usually needs time to finalize design choices before the number is even locked.
If you're not sure, 30 days is the safe default for most trades. It's short enough to protect you and long enough that no reasonable customer feels rushed.
How to word it so it doesn't sound like pressure tactics
The wrong way to do this is a scary line buried in fine print that reads like a warning. The right way is one plain sentence, right on the quote, that just states the fact:
"This estimate is valid for 30 days from the date above. After that, please reach out and we'll confirm current pricing."
That's it. No threats, no "act now," nothing that reads like a sales trick. You're just telling them the truth about how pricing works, and giving them a clear next step if the window closes.
If you want it to do a little more work for you, you can frame it as a reason to move rather than a wall:
"Pricing above is good through [date]. Material costs on this job have been moving, so we can't hold it indefinitely, but we're happy to lock it in now if you're ready."
Notice that's not manufactured urgency. It's the actual reason, stated plainly. Customers can tell the difference, and most contractors who quote don't even bother explaining why the date is there, they just put a date and leave it unexplained. Explaining the "why" in one sentence is what keeps it from feeling like a pressure tactic.
What to do when a quote actually expires
It's going to happen. Someone sits on a quote for two months and then wants to move forward. Here's the clean way to handle it, no drama:
Don't just silently honor the old number to avoid an awkward conversation. That trains customers to think your pricing is soft, and it eats your margin on jobs where costs genuinely moved.
Don't just refuse and re-quote from zero either, that reads as a bait and switch even when it isn't one.
Do this instead: tell them straight that the quote window closed, and offer to re-check pricing fast. Something like, "That quote expired at the end of April, let me re-check current material pricing and I'll have an updated number to you today or tomorrow." Most of the time the new number is close to the old one anyway, and the customer appreciates that you didn't just quietly change it on them without saying so.
If pricing genuinely hasn't moved and you're comfortable honoring it, you can absolutely say that too: "Good news, pricing hasn't changed much, I can still honor that number." That's a nice moment for the customer and it costs you nothing since you already knew the real number before you said it.
The real reason most quotes go stale in the first place
Here's the part that actually matters more than the expiration date itself: most quotes that "expire" didn't expire because 30 days passed. They expired because nobody followed up, the customer's interest cooled, and by the time they circled back the whole thing needed to be re-priced from scratch anyway.
An expiration date protects your pricing. It doesn't get you more yeses. What gets you more yeses is staying in front of the customer during that window so the decision happens before the clock runs out, not after.
That's the piece most one-to-ten-person shops don't have time for. You send the quote, you're back on a job site by lunch, and the follow-up that would've closed it while the pricing was still good just never happens.
QuoteChaser handles that part automatically. It sends the polite day 2, day 7, day 14 follow-ups by text and email in your own voice, so the quote gets a real shot at a yes while your number is still valid, not two months later when you're both starting over. When a customer replies, it pings your phone so you can close it. When they say stop, it stops.
Put a real expiration date on your next quote, then let the follow-up do the work of getting an answer before that date hits. Join the QuoteChaser waitlist and get your quotes chased automatically, expiration date and all.
Don't write the next one from scratch.
Get all 18 follow-up texts free →Want the sending handled for you too? Join the QuoteChaser waitlist.
While you wait — let Claude run your back office. 6 install-ready AI skills for trades: quotes, follow-ups, reviews, invoices, marketing, customer texts.
Get Contractor Office OS — $37 →