The Insurance Check-Up Funnel — Product Design

Full spec: outputs/checkup-funnel-implementation-spec.md. Clickable prototype: outputs/checkup-funnel-prototype.html (also a desktop artifact). This page is the durable synthesis of the design decisions.

Definition

The P0 product implementing 2026-08-15-acquisition-wedge-before-workflows: an SMB gives us their existing policies, we produce a coverage analysis, and qualified traffic routes to the partner brokerage. Designed 2026-08-16 from the “free insurance check-up” v1 narrative in 2026-08-15-directions-acquisition-wedge-and-deck-structure, against the rails assessed in insurance-tech-integration-stack.

Key points

  • The intuitive flow is mis-sequenced. “Sign up → authenticate with carriers → download all policies → analyse” fails at three of four steps. Signup precedes any value; carrier auth is the highest-friction door and often an impossible one; and a serial multi-carrier pull is minutes of dead air. Replaced by: identify (2 fields) → provisional picture → multi-rail intake → progressive analysis.
  • Why auth-first fails specifically for SMB commercial. (a) canopy-connect self-reports ~70% completion from credentials submitted, before counting non-starters; (b) SMB owners frequently have no carrier portal login — the incumbent agent owns the relationship, the inverse of the personal-lines pattern; (c) one Canopy Pull = one carrier, so a 4-carrier SMB is 4 credential+MFA flows; (d) commercial degrades more (skipped_product_types includes commercial; Policy.limited_access). Corroboration: Canopy’s own Pull.type enum models eight intake doors — multi-rail is the converged answer.
  • The provisional-picture screen is how we pay the H-INS-10 document-handoff tax. Business name + address → Middesk/Enigma → NAICS → our class-code map yields entity, employees, revenue band, expected coverage set, and hand-authored per-vertical “three things your industry gets wrong” — all before asking for anything. Demonstrating competence first is the substitute for the rail Cover/Clark get from a regulator.
  • Intake door ranking is the inverse of intuition. Dec pages first (limits, deductibles, premium, forms schedule), then ACORD 25 COI — the highest-availability document and the least informative (verified: no premium, no deductibles, no exclusions; the only deductible field on the form is DED/RETENTION on the Umbrella row), useful as a qualifier and renewal-date capture. Renewal-email forwarding third (declined options = priced known gaps). Carrier login fourth, as the fast path for those who have it. A fifth door (“we ask your agent”) is compliance-gated and deferred.
  • Finding taxonomy is tiered by what the evidence can honestly support. Tier A = provable from a dec page (stated as fact); Tier B = flagged from the forms schedule (verification recommended); Tier C = requires the full policy (say so, never guess). Surfacing a Tier-C failure openly is what makes the other findings credible.
  • Lead with structural findings, not price. Named-insured ≠ registered entity, missing DBAs, misaligned renewal dates, monoline-where-package-fits, class-code mismatch. These cost the client nothing, need no price competition (important under H-INS-9’s softening market), and are the concrete expression of AX-INS-7’s “we’re the angel” — we are the only party whose revenue doesn’t move when we tell you your entity name is wrong. Price findings wait for the quote leg.
  • canopy-connect materially de-risks the analysis engine. It returns PolicyForm[] already normalised — form_number, form_name, an ~85-value endorsement_type enum, and is_exclusion_endorsement as a boolean — so Tier-B exclusion detection does not require building an ISO lookup table on day one. policy_form_id is stable across pulls, so each form is parsed once ever; the accumulated form corpus (including carrier-proprietary forms, which carried the most consequential exclusions on a real Chubb BOP dec — marijuana, opioids, communicable disease, pollution/silica) becomes an owned asset.
  • ⭐ The reframe that changes the product’s purpose. Per H-INS-3 a BoR flip is a 60–90-day pre-renewal campaign; most people who complete a check-up are mid-term and cannot convert. Treating this as a one-shot funnel discards most of what we pay to acquire. The check-up’s primary output is therefore a dated, qualified, coverage-profiled pipeline — every expiry_date becomes a RenewalEvent with an outreach window opening at renewal−75 days. One visitor with four policies generates four scheduled re-engagements, each with incumbent carrier, premium, and known gaps on file. Canopy’s Monitoring API gives change detection as a rented rail, so AX-INS-7’s post-bind continuity runs before we hold a single BoR (credential-door cohort only).
  • Cost and feasibility: the P0 stack rents for <$2K/month and the ~1.5-month MVP timeline from the 2026-08-15 session is realistic for the scoped funnel (no quoting, no AMS, no IVANS, no licensing tooling in P0). Handoff to the partner can be a structured ACORD-mappable PDF + JSON; do not let an AMS integration block the funnel. Vendor and operator input, 2026-08-17.
  • Acquisition-phase use of a policy-pull vendor is explicitly permitted. insurgrid confirmed on a live call that pulling prospect policies before they become clients raises no T&C problem, with staging-period pricing available (2026-08-17-directions-insurgrid-vendor-call). This was a real unknown for the value-first intake design; it is now closed on the InsurGrid side.
  • Freshness is customer-initiated, structurally. No auto-refresh; a login opens a 15–20 minute pull window and credentials are never stored, so re-verifying coverage later requires the customer to re-authenticate. Any “continuous” framing in the funnel has to be honest about this.
  • The combined form + carrier-login step is closer to the funnel’s actual shape than a raw pull API. InsurGrid’s form builder puts custom questions and the carrier login flow in one customer-facing step, returning dec pages and structured answers together — worth designing against directly rather than treating intake and enrichment as two doors.
  • Operator confirmation of the document-handoff tax. Neither broker interviewed on 2026-08-17 uses any policy-ingestion vendor; both collect existing coverage as a texted or emailed dec page, and neither can see a policy written by another broker even at a carrier they themselves sell (2026-08-17-directions-greg-ehly-independent-broker-interview). H-INS-10 holds on operator evidence, not just market structure.

Interpretation (not fact)

  • The strongest single argument for this design is that it is falsifiable cheaply: the door-mix and per-door completion numbers settle policy-ingestion-requires-a-data-rail in week one of the pilot, and they are unknowable any other way.
  • Designing for the mid-term majority is also the honest version of the pitch — the product tells a customer “we can’t move this today” rather than manufacturing urgency, which is the same trust posture the fixed-fee model asserts.

Open questions

  • Does Canopy’s commercial pull return the forms schedule reliably? The entire Tier-B finding class depends on it — test in sandbox before committing it to the six weeks.
  • Canopy rate limits and API pricing — both unpublished; blocks capacity planning.
  • Where the solicitation line sits per state for the findings report (analysis vs recommendation). Constrains Stage-4/5 copy directly; needs counsel, not engineering. canopy-connect-consent-scope gives a starting contract-interpretation answer (recommended consent wording above “Connect your insurance”) but does not resolve the per-state solicitation question.
  • Who reviews low-confidence extractions in P0, and at what SLA? A 24-hour report is a different product from a 90-second one.
  • Monitoring covers only the credential-door cohort — is date-based re-engagement enough for the upload cohort?
  • Canopy’s auto-refresh claim is now contested by InsurGrid. If both vendors share the same session-window constraint, the “continuous” half of the check-up promise needs rewording before it reaches a landing page.
  • This page has no ## Evidence section, unlike the other topic pages — flagged by lint 2026-08-17; worth adding on the next substantive edit rather than mid-ingest.