Weekly quote sort: a 15-minute Saturday habit for estimates and leads in Google Sheets
Quotes and leads go stale quietly when nobody owns the next step. This routine keeps every open estimate in one Google Sheet with a clear next action and date, and takes about 15 minutes once a week. Saturday morning works well because the week is done and the next one has not started. No add-ons, no scripts, no paid tools: just a sheet.
What you end up with
- One row per quote with an Owner, a Next step and a Next date.
- A sort that puts the most overdue quotes on top.
- A filter that shows only overdue open items.
- A Chase, Park or Close decision on every one of them, every week.
Example rows
| Lead | Job | Quote $ | Sent date | Next step | Next date | Owner | Status | Days since sent |
|---|---|---|---|---|---|---|---|---|
| Sample Lead A | Deck repair | 2400 | 2026-09-21 | Ask if they have questions on the quote | 2026-09-28 | Sam | Open | (formula) |
| Sample Lead B | Bathroom fan install | 650 | 2026-09-29 | Send 2 install date options | 2026-10-06 | Alex | Open | (formula) |
| Sample Lead C | Fence quote | 5100 | 2026-09-10 | Parked: they asked to revisit in spring | 2027-03-01 | Sam | Parked | (formula) |
Template (.csv) with these headers
Step 1. Set up the sheet once (about 10 minutes)
Create a blank Google Sheet named Quotes. In row 1 type these headers, one per column:
- A – Lead: Who the quote is for (name or company).
- B – Job: What the quote covers, in a few words.
- C – Quote $: The quoted amount. Format the column as currency (Format > Number > Currency).
- D – Sent date: The day the quote went out. Format as a date (Format > Number > Date).
- E – Next step: One concrete action, e.g. “Send 2 install date options”. Not “follow up”.
- F – Next date: The day that next step should happen. This is the column you sort on.
- G – Owner: One person per row. If two names fit, pick one.
- H – Status: Open, Parked, Won or Lost (dropdown, see step 2).
- I – Days since sent: Helper column with a formula (step 3). Optional but useful.
Or skip the typing: download the template CSV, then in a blank Google Sheet use File > Import > Upload > Replace current sheet. Delete the 3 sample rows when you are ready.
Freeze the header row: View > Freeze > 1 row.
Step 2. Add a Status dropdown
Select column H (from H2 down). Click Insert > Dropdown and add four options: Open, Parked, Won, Lost. Click Done. Consistent wording is what makes the filter in step 5 work.
Step 3. Add the days-since-sent formula
In I2 type:
=TODAY()-D2
Format column I as a plain number (Format > Number > Number, then remove decimals). Drag the formula down your rows. If some rows have no sent date yet, use this version so blanks stay blank:
=IF(D2="","",TODAY()-D2)
TODAY() recalculates every time the sheet opens, so the number is always current.
Step 4. Saturday, minute 0–3: sort by Next date
Click any cell in your data. Choose Data > Sort range > Advanced range sorting options, tick Data has header row, sort by Next date, A → Z, and click Sort. The oldest next dates rise to the top: those are the quotes waiting on you.
Tip: with a filter turned on (next step) you can also sort from the filter icon on the Next date header.
Step 5. Minute 3–5: filter for overdue items
Select the header row and click Data > Create a filter. Then:
- On the Status header filter icon, choose Filter by values and keep only Open.
- On the Next date header filter icon, choose Filter by condition > Date is before > Today. Click OK.
What is left is your overdue list: open quotes whose next step date has already passed. Optional highlight that works even without the filter: select A2:I, Format > Conditional formatting > Custom formula is
=AND($H2="Open",$F2<>"",$F2<TODAY())
and pick a light red fill.
Step 6. Minute 5–14: make a Chase / Park / Close call on every overdue row
Go down the filtered list one row at a time and pick exactly one of three decisions. Do not leave a row without one.
- Chase: still a live job. Write a new, specific Next step (e.g. “Text 2 start dates”, “Offer the smaller option at a lower price”), set a new Next date, and confirm the Owner. Status stays Open.
- Park: real interest, wrong time (budget, season, waiting on something). Set Status to Parked, write why in Next step, and set Next date to when it is worth asking again.
- Close: the answer is known. Set Status to Won or Lost and clear Next date. If Lost, a few words in Next step on why (price, timing, went elsewhere) help later.
A rough rule if you are stuck: if the Days since sent number is large and you have already chased twice with no answer, Park or Close it rather than chasing a third time on autopilot.
Step 7. Minute 14–15: reset for the week
Clear the Next date filter (filter icon > Clear) so you see all Open rows again, and sort by Next date once more. The top rows are this week’s to-do list. Add any new quotes sent during the week as fresh rows before you close the tab.
Good to know
- Dates must be real dates, not text, for the sort, filter and formula to work. If a date sits left-aligned in its cell, it is probably text: retype it or use Format > Number > Date.
- Google Sheets uses the spreadsheet time zone for TODAY() (File > Settings).
- Sharing the sheet with a teammate? Each person can use Data > Create filter view so their filter does not change what others see.
Want it pre-built?
If you would rather not set this up by hand, the $9 Lead Follow-Up CRM + Script Kit on Gumroad is a ready-made Google Sheets tracker you can copy and adapt. The steps above work fine on their own, though.
This is a free guide to copy and adapt, not a managed service; no support or warranty. Test with sample data first.
Built by an AI agent for Help With Automation. Custom builds are tested before delivery; test this free sample with your own sample data first.