5. Pre-Mortem: It's September 2028 and ReportRelay Is Dead
Three most likely causes of death, ranked by probability. They compound: #1 makes #3 worse, because a product without a clear edge gets compared on price with free tools.
Cause #1: No gap to sell into (probability ~40% of failure cases)
What happened. The first calls went well. Agency owners agreed that contractors only care about booked jobs. But when asked to pay, most said "we already have AgencyAnalytics and CallRail" or "we'll set up WhatConverts' Jobber integration". Three agencies signed up, and two left after the first busy season. Meanwhile WhatConverts added Housecall Pro, and AgencyAnalytics added a Jobber connector. The wedge closed from both sides.
Early warning signs
- Fewer than 3 of the first 12 agency calls agree to pay ≥$99/month for a hand-built report.
- Agencies ask "can it replace AgencyAnalytics?" instead of "can I add it for these 5 clients?".
- An incumbent announces a Jobber, Housecall Pro or field-service connector.
- Agencies that already use WhatConverts see no reason to add you.
Fixable? Partly. You can move to agencies that don't want to change call tracking, sell "done-for-you" monthly reports, or pick the next trade system nobody reads (roofing, pest control, cleaning). You can't fix it if agencies simply don't value booked-revenue proof enough to pay. That's why the day-30 test exists.
Cause #2: Connector upkeep ate the hours (probability ~30%)
What happened. v1 shipped with six connectors. Then Meta removed attribution windows and data went silently empty. A Google Ads API version was sunset. Jobber changed a GraphQL field under a new date version. Housecall Pro access needed a partner agreement that took months. Contractors' OAuth tokens expired every few weeks. At ~15 hours a week, 10 went on fixes and support. Nothing new shipped for two quarters, and trials stalled.
Early warning signs
- More than 40% of your hours go on connector fixes for two months running.
- Any report sent with missing data that a contractor noticed.
- More than 1 support ticket per 10 agencies a month, mostly "data not updating".
- You add a connector because one prospect asked.
Fixable? Yes, if it's done early. Cap connectors at six until $5k MRR, monitor every source for silent gaps, and prefer sources with stable, versioned APIs. Use a connector vendor for low-value sources if needed, at a margin cost.
Cause #3: AI and free tools made "a report" worth zero (probability ~30%)
What happened. By 2027 agencies used Claude or ChatGPT with the official Google Ads and Meta MCP servers, plus a Jobber MCP (community versions already existed in 2026), to write each client's monthly summary in minutes. Looker Studio templates covered the charts. Incumbents bundled AI reports at no extra cost. A $19-per-client tool had to justify itself against "free plus 20 minutes", and most small agencies chose free.
Early warning signs
- Prospects say "I'll just have AI do it".
- Trial-to-paid below 15% after 60 days.
- Agencies keep the tool only for the matching, and ask for a lower price.
- Incumbents drop per-client prices or include AI reports on every plan.
Fixable? Partly. The defensible part isn't the writing. It's reliable monthly matching of leads to jobs across sources, with a review queue, a history, and an audit trail the agency trusts. Make that the product and price for it. If agencies won't pay for matching alone, the market has answered.
Honourable mentions (less likely, still real)
- Trust event. A report shows "$0 revenue from Google" because matching failed, the contractor fires the agency, and the agency tells a community forum.
- Privacy incident. Homeowners' names, phone numbers and addresses leak from a stored field-service sync. That's why DO #12 says store hashes and totals only.
- Downstream churn. Your agencies lose their own contractor clients, so your per-client revenue shrinks even when no agency leaves.
- Founder-market fit gap. Without someone who has run home-services campaigns, you'll build what seems logical instead of what agencies actually send. Team background wasn't provided. See doc 09.