One real leak, proven.
Computed from 595 leads, 237 jobs and 411 calls by deterministic rules — no AI touches the number. This is the full loop: find it, prove it, fix it, measure it.
- Import
- Normalize
- Calculate
- Prove
- Act
- Measure
Quotes are going stale without a decision
57 quotes worth $82,779 have sat more than 30 days without being accepted or marked lost — no decision was ever recorded. Quotes you do work to a decision close at 75% in your own data.
The math
high confidence$41,961 stale quote value/mo × 75% close rate = $31,300/mo
| Quotes open > 30 days | 57 |
| Value sitting in stale quotes | $82,779 |
| Going stale per month | $41,961 |
| Close rate by value on quotes that reached a decision | 74.6% |
| Close rate by count (not used in the total) | 74.0% |
| Aged quotes that reached a decision | 219 |
Records behind this number
57 records| Quote | Sent | Days open | Amount | Status |
|---|---|---|---|---|
| Q7 | 2026-04-01 | 90 | $1,064 | sent |
| Q18 | 2026-04-03 | 88 | $1,724 | sent |
| Q27 | 2026-04-04 | 87 | $1,915 | sent |
| Q43 | 2026-04-08 | 84 | $973 | sent |
| Q44 | 2026-04-07 | 84 | $1,821 | sent |
| Q46 | 2026-04-07 | 84 | $1,090 | sent |
| Q47 | 2026-04-07 | 84 | $1,989 | sent |
| Q48 | 2026-04-07 | 84 | $1,743 | sent |
- A quote is "stale" when more than 30 days have passed since it was sent and it is still marked sent — neither accepted nor expired.
- The close rate is measured on your own aged quotes only (162 accepted of 219 that reached a decision), not an industry benchmark.
- That rate is weighted by amount, not by count: it multiplies a sum of dollars, so a $50,000 quote and a $500 quote must not count the same.
- Assumes a stale quote worked to a decision would close at that same rate.
- Amounts are what you quoted, not collected revenue — a closed quote can still be discounted or written off.
Every formula, this run
5 findings| Finding | Formula | Result |
|---|---|---|
| Quotes are going stale without a decisionaging_quotes@1.0.0 | $41,961 stale quote value/mo × 75% close rate = $31,300/mo | $31,300/mo |
| Leads wait too long for a first callbackslow_lead_response@1.0.0 | 70 slow leads/mo × 28% booking gap × $1,517 avg job × 78% completion = $23,000/mo | $23,000/mo |
| AI-booked jobs collect less cash than jobs your team booksai_booked_job_audit@1.0.0 | 38.1 AI-booked jobs/mo × ($1,342 − $1,086 collected per booking) = $9,800/mo | $9,800/mo |
| Past customers have gone quiet and nobody followed updormant_customers@1.0.0 | 75 dormant customers × 10% late-return rate × $1,493 avg repeat job ÷ 1.6 mo return cycle = $6,800/mo | $6,800/mo |
| Work you have done and not been paid foruncollected_invoices@1.0.0 | $10,195 overdue/mo × 14.3% never-collected rate = $1,500/mo | $1,500/mo |
Detectors that did not find enough signal this run print nothing — a claim below the confidence bar is worse than no claim. Formulas are versioned; the version above is pinned in the report.
Accept this action
Chase every quote older than two weeks, and set a decision date on new ones.
Loupe will measure the result after it ships — comparing booked records before and after.
Recover this revenue
Send the people behind this leak a ready-made email — you personalise and send it.
Want this on your own numbers?
The demo above runs on sample records. Your report runs on yours.
$2,500 one-time — credits 100% toward month one if you continue.
Prefer to do it yourself? Create an account and import your records →