Where a quote actually dies between accepted and invoiced
A customer says yes to a quote. Somewhere between that yes and the invoice landing in their inbox, the job gets scheduled, maybe changes scope, gets done, and then someone has to turn the original quote back into a bill. That last step is where things go missing, and it's rarely the same person who wrote the quote doing the retyping.
The failure isn't dramatic. It's small: a line item that changed on site doesn't make it back into the paperwork. A job that finished on a Friday gets invoiced three weeks later because the quote sat in a different folder than the completed-jobs list. A customer disputes a number because what they agreed to and what they were billed don't quite match, and now someone has to go find the original conversation to prove who's right.
None of that shows up as a missing invoice in your accounting software, because the invoice does eventually get sent. It shows up as a delay between job completion and cash in the bank, and as the handful of jobs each month that never get invoiced at all because the paper trail broke somewhere in the middle and nobody noticed until it was too late to chase.
Retyping a quote into an invoice by hand is a 10-minute job. At 60 jobs a month, that's 10 hours of staff time doing data entry that a single record moving through quote, accepted, scheduled, invoiced and paid wouldn't need at all. At $50/hour that's $500 a month in labor alone, before counting the jobs that fall through the gap and never get billed, which is usually the bigger number but harder to see because it's an absence, not a line item.
The Quote to Invoice Pipeline on the catalog page is built for exactly this: one record, one source of truth, moving through those five states instead of five separate documents that have to agree with each other by habit.
The same gap shows up a different way on jobs that need proof of completion, restoration, roofing, anything an insurer wants evidence for, which is what the Job Photo Report Generator is built around instead.