{
 "version": "1.8.0",
 "slug": "agency-direct-bill-commission-recovery-desk",
 "title": "CommissionClear — Direct-Bill Commission Reconciliation & Recovery Desk for Independent Insurance Agencies",
 "vertical": "Insurance distribution / independent agency back-office finance",
 "seed": {
  "s": "agency-direct-bill-commission-recovery-desk",
  "t": "CommissionClear — Direct-Bill Commission Reconciliation & Recovery Desk for Independent Insurance Agencies",
  "v": "Insurance distribution / independent agency back-office finance",
  "r": "Medium-high",
  "m": "M"
 },
 "product": {
  "slug": "agency-direct-bill-commission-recovery-desk",
  "project_name": "CommissionClear",
  "project_type": "outcome-priced back-office commission reconciliation and recovery service",
  "vertical": "Insurance distribution / independent agency back-office finance",
  "audience": "independent P&C-led insurance agency principals and ops/accounting managers, $500K-$5M annual commission revenue, 15-80 carrier appointments",
  "geography": "United States (state-regulated insurance distribution), no single-state beachhead required — outreach concentrated in dense independent-agency states (TX, FL, GA, OH, PA, IL)",
  "scale_expectation": "10-agency pilot cohort in the first 90 days; 50+ Reconciliation Desk clients by year 1, recurring monthly reconciliation cycles per client, no hard external deadline (unlike a single filing-window business)",
  "core_workflows": [
   "Carrier statement intake & completeness check",
   "Statement normalization & AMS-policy matching",
   "Discrepancy classification, reviewer approval & carrier-inquiry chase",
   "Monthly Reconciliation Pack release & recovery tracking"
  ],
  "discovery": {
   "one_line_purpose": "On CommissionClear, independent agencies stop guessing whether carriers paid them correctly and start getting a signed Commission Ledger every month. Carrier statements are extracted and normalized at intake, matched against the agency's own AMS book of business, every discrepancy is classified and reviewer-approved, and every Monthly Reconciliation Pack ships with an insurance-accounting reviewer's signature and a full audit trail.",
   "primary_users": [
    "independent P&C or benefits agency principal/owner (agencies under ~$2M in commission revenue)",
    "agency operations/accounting manager (larger agencies)",
    "insurance-accounting reviewer (the named human who approves every discrepancy and signs the ledger)"
   ],
   "jobs_to_be_done": [
    "Get a monthly, statement-backed Commission Ledger without hiring a dedicated commission specialist",
    "Prove a documented, line-item reconciliation so a producer payout dispute, tax-season close, or M&A diligence request doesn't stall on unverifiable books",
    "Recover missing or short-paid carrier commissions without the agency chasing 40+ statements by hand every month"
   ],
   "value_prop": "CommissionClear turns an agency's scattered, inconsistent carrier statements into a reconciled, specialist-signed Commission Ledger and a chased Discrepancy Docket — reconstructable on demand, defensible to a producer or an acquirer, with the agency always the party of record on every carrier inquiry.",
   "competitors": [
    "Enterprise revenue-automation SaaS (Comulate, Applied Recon inside Applied Epic) built for large brokers with in-house accounting teams",
    "BPO commission-processing services (ReSource Pro's Direct Bill Complete) scoped and priced for thousands of statements a month",
    "Specialist insurance-agency bookkeeping firms (IAAB, Angela Adams Consulting) doing materially similar work by hand, capacity-capped, without AI leverage",
    "The status quo: a generalist bookkeeper or CSR booking statement totals as lump revenue and never verifying line items"
   ],
   "differentiation": "Done-for-you reconciliation and recovery, not a tool to operate: a per-carrier parser library, deterministic penny-perfect tie-out checks (never left to an LLM), an insurance-accounting reviewer's signature on every Commission Ledger, carrier inquiries sent under the agency's own name, and flat pricing sized for the $500K-$5M agency the enterprise vendors do not serve.",
   "positioning_statement": "For independent agency principals who suspect but have never proven that carriers are underpaying them, CommissionClear is the done-for-you commission reconciliation and recovery desk that turns 40+ inconsistent carrier statements a month into one verified Commission Ledger and a chased Discrepancy Docket — unlike enterprise revenue-automation software the agency must operate itself, or a BPO engagement priced for thousands of statements a month."
  },
  "assumptions": [
   {
    "id": "agency-direct-bill-commission-recovery-desk-a1",
    "statement": "Agency principals will pay for a done-for-you reconciliation outcome over continuing to book statement totals unverified, once shown a concrete Commission Leakage Scan finding.",
    "confidence": "medium",
    "impact_if_wrong": "severe",
    "revisit_trigger": "First 10 pilot Commission Leakage Scan sales conversations — reject the wedge if willingness-to-pay signal is absent."
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-a2",
    "statement": "A reconciliation cycle can hit the 5-business-day (10 at pilot) delivery SLA from agency-supplied AMS export and carrier statements alone, without agency-side software integration.",
    "confidence": "medium",
    "impact_if_wrong": "high",
    "revisit_trigger": "First 3-6 pilot Commission Leakage Scans."
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-a3",
    "statement": "Agencies tolerate AI-assisted statement parsing and discrepancy drafting when an insurance-accounting reviewer's approval and signature are explicit on every Commission Ledger.",
    "confidence": "medium",
    "impact_if_wrong": "high",
    "revisit_trigger": "First producer-payout dispute resolved off a CommissionClear ledger."
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-a4",
    "statement": "Scan-to-desk conversion reaches at least 25-40% among qualified, warm-led agencies.",
    "confidence": "low",
    "impact_if_wrong": "severe",
    "revisit_trigger": "Day-90 pilot-cohort conversion measurement (explicit kill/pivot gate at 25%)."
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-a5",
    "statement": "Logical, row-level tenant isolation (not single-tenant infrastructure per client) is acceptable to the pilot cohort.",
    "confidence": "medium",
    "impact_if_wrong": "high",
    "revisit_trigger": "Any prospect (e.g. a multi-agency network) with a hard single-tenant compliance clause."
   }
  ],
  "unknowns": [
   {
    "id": "agency-direct-bill-commission-recovery-desk-u1",
    "question": "Which specific insurance-accounting reviewer signs off on the first cohort's Commission Ledgers?",
    "blocks": "Any commercial engagement; the reviewer signature invariant.",
    "resolution_path": "Named reviewer + engagement letter on file before the first paid scan."
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-u2",
    "question": "What is the true scan-to-desk conversion rate among warm, qualified leads?",
    "blocks": "Pricing hypothesis; scaling decision.",
    "resolution_path": "10-agency pilot cohort with explicit pricing conversation, measured against the Day-90 checkpoint (25% kill gate, 40% target)."
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-u3",
    "question": "How much does per-carrier parser coverage actually reduce review minutes by day 90?",
    "blocks": "Unit-economics model; throughput assumptions.",
    "resolution_path": "Instrument reviewer minutes per cycle from pilot 1; compare to the 3.8h-launch to 1.9h-day-90 target."
   }
  ],
  "expert_panel": [
   {
    "role": "Product Strategy",
    "key_concern": "Is the Commission Leakage Scan narrow enough to sell in weeks without a custom integration?",
    "recommendation": "Launch scoped to a 3-month statement lookback against a single AMS export; expand scope only after the pilot converts.",
    "dissent": "May understate the recurring-revenue story to early prospects expecting an always-on dashboard."
   },
   {
    "role": "Software Architecture",
    "key_concern": "Are we defaulting to a client-facing portal the pilot doesn't need yet?",
    "recommendation": "Single deployable modular monolith; upload-link/email intake only at launch, no client portal.",
    "dissent": "May read as under-built to a referral partner expecting a branded dashboard."
   },
   {
    "role": "Frontend / UX",
    "key_concern": "Is the evidence chain (statement line to AMS policy to reviewer approval) visible in every reviewer-facing view?",
    "recommendation": "Every Discrepancy Docket line renders its statement citation, matched policy, and reviewer decision in one glance.",
    "dissent": "Adds density a non-insurance reviewer might call cluttered."
   },
   {
    "role": "Backend / Data",
    "key_concern": "Is the audit trail append-only and reconstructable for a producer dispute or diligence request years later?",
    "recommendation": "Event-sourced audit log for every reconciliation-cycle state transition; hash-chained artifact snapshots.",
    "dissent": "More write-path complexity than plain CRUD; requires schema discipline as carrier formats evolve."
   },
   {
    "role": "AI / ML",
    "key_concern": "Are discrepancy classifications grounded in the commission schedule and never a free-form guess?",
    "recommendation": "Retrieval-first classification citing the specific commission-schedule line; deterministic money math in code, never the model; mandatory reviewer gate before any client- or carrier-facing claim.",
    "dissent": "Slower per-cycle than a fully automated tool; may frustrate a prospect expecting instant results."
   },
   {
    "role": "Security",
    "key_concern": "Is one agency's financial and policy data isolated from every other agency's?",
    "recommendation": "Row-level auth, per-tenant retrieval indices, log-scrubbing of financial figures.",
    "dissent": "None recorded this run."
   }
  ],
  "strategy": {
   "business_model": "Flat monthly Reconciliation Desk fee (tiered by statement volume) plus a one-time Commission Leakage Scan wedge and an optional capped recovery-share rider; never hourly, contingency-only pricing rejected as the primary model pending state-by-state counsel review",
   "revenue_streams": [
    "Commission Leakage Scan (one-time wedge)",
    "Reconciliation Desk — Core / Plus / Pro (recurring)",
    "Recovery-share rider (optional, capped)",
    "Diligence Tie-Out (event-driven, agency M&A season)"
   ],
   "moat": [
    "Per-carrier parser library and carrier-quirk knowledge, compounding with every client",
    "Persistent, tracked carrier-chase relationships and response-time data",
    "Named insurance-accounting reviewer's signed accountability on every ledger",
    "AMS-agnostic integration surface (AMS exports, QuickBooks postings, producer splits)"
   ],
   "gtm": [
    "Founder-led educational content + anonymized Commission Leakage Scan teardowns",
    "State Big \"I\"/PIA association webinars and agency-network member-benefit pilots",
    "AMS user-community how-to content + CPA/bookkeeper referral partnerships"
   ],
   "pricing_hypothesis": "Scan $495 (free for first 10 pilots); Reconciliation Desk $600-$2,500/mo by volume tier — priced under enterprise BPO/SaaS ACVs and under a loaded commission-specialist hire, validated against 10+ pricing conversations before scaling spend.",
   "kill_criteria": [
    "No signed pilot agency in 4 weeks of qualified outreach",
    "Reviewer median cycle time exceeds 115 minutes/client after pilot 5",
    "No paid standard-price conversion by Day 90",
    "A released Commission Ledger or carrier inquiry causes a documented, CommissionClear-caused reputational or client-relationship incident"
   ]
  },
  "security": {
   "stride": [
    {
     "threat": "Spoofing",
     "scenario": "Attacker impersonates an insurance-accounting reviewer to approve a fabricated discrepancy or sign a Commission Ledger.",
     "mitigation": "SSO with MFA; reviewer signatures bound to a cryptographic session claim, not a form field."
    },
    {
     "threat": "Tampering",
     "scenario": "Historical statement or ledger entries edited after the fact to hide a bad match.",
     "mitigation": "Append-only audit log; hash-chained artifact snapshots; diff view on every reviewer surface."
    },
    {
     "threat": "Repudiation",
     "scenario": "Reviewer denies approving a discrepancy or signing a ledger that later proves wrong.",
     "mitigation": "Signed attestations with server-side timestamp + reviewer identity; export bundle includes signature manifest."
    },
    {
     "threat": "Information Disclosure",
     "scenario": "Cross-tenant leak of one agency's commission/policy data through shared indices, logs, or prompts.",
     "mitigation": "Tenant-scoped row-level auth; PII/financial-data scrubbing in logs; retrieval indices partitioned per agency."
    },
    {
     "threat": "Denial of Service",
     "scenario": "A runaway extraction job or bulk export exhausts shared workers during a month-end delivery crunch.",
     "mitigation": "Per-tenant concurrency + budget caps; circuit breaker on model calls; degrade-gracefully queue."
    },
    {
     "threat": "Elevation of Privilege",
     "scenario": "A standard operator acquires reviewer-approval or carrier-inquiry-send capability via a workflow shortcut.",
     "mitigation": "Roles stored in a separate table; capability checks server-side; no client-only role checks."
    }
   ],
   "privacy_posture": "Data-minimization by default; per-agency isolation; data-processing terms on file; deletion-schedule runbook published.",
   "compliance_targets": [
    "GLBA-adjacent nonpublic-personal-information handling program",
    "SOC 2 Type I (year 2 roadmap)",
    "Producer-licensing boundary + collection-agency-statute review per state before scaling",
    "Carrier-portal terms-of-service log for any automated statement pull"
   ],
   "data_classifications": [
    "Agency commission/policy book of business (sensitive business data)",
    "Carrier commission statements (sensitive, third-party-sourced)",
    "Producer split sheets / payout data (sensitive, HR-adjacent)",
    "Contact/PII (standard)"
   ]
  },
  "devops": {
   "ci_cd": "PR -> typecheck + unit + snapshot tests -> preview deploy -> main auto-deploys to a single production region; migrations gated on review.",
   "environments": [
    "local",
    "preview (per-PR)",
    "staging (shared)",
    "production (single region + multi-AZ)"
   ],
   "observability": [
    "Structured logs with tenant + request IDs",
    "RED metrics per workflow",
    "Error tracking with source maps",
    "Model-call spans with cost + latency",
    "Weekly SLO review, with a month-end delivery-crunch capacity review"
   ],
   "testing_pyramid": [
    "Unit tests on matching-derivation and tie-out validation modules",
    "Component tests on reviewer exception-queue surfaces",
    "Contract tests on carrier-statement-schema parsers",
    "End-to-end smoke test on the intake -> match -> reviewer-signoff -> delivery path"
   ],
   "accessibility_tests": [
    "axe-core in CI on reviewer-facing surfaces",
    "Keyboard-only walkthrough per workflow",
    "Prefers-reduced-motion honored"
   ],
   "performance_budget": "p95 workflow latency published per module; statement-extraction cold-path under 30s or shown as a background job."
  },
  "accessibility_i18n_ethics": {
   "wcag_target": "AA",
   "locales": [
    "en-US"
   ],
   "rtl_support": false,
   "ethical_risks": [
    "A discrepancy or recovered-dollar claim released without reviewer approval",
    "Carrier-inquiry language read as a demand or collection threat rather than an inquiry",
    "An error in a producer payout statement attributed to AI rather than owned by the reviewer"
   ],
   "ethical_guardrails": [
    "Human insurance-accounting reviewer approval required before any discrepancy or carrier inquiry ships",
    "Deterministic output filter blocks demand/collection-style language in every drafted carrier inquiry",
    "AI-usage disclosure available in the engagement letter where relevant"
   ]
  },
  "governance": {
   "ownership": [
    {
     "area": "Product + roadmap",
     "owner": "Executive Sponsor"
    },
    {
     "area": "Architecture + platform",
     "owner": "Engineering Lead"
    },
    {
     "area": "Reconciliation + reviewer workflow",
     "owner": "Named insurance-accounting reviewer"
    },
    {
     "area": "Compliance + privacy",
     "owner": "Compliance Lead"
    },
    {
     "area": "Design system",
     "owner": "Design Lead"
    },
    {
     "area": "SEO + content",
     "owner": "Content Lead"
    }
   ],
   "docs_required": [
    "ADR log (checked in)",
    "Owner-action ledger",
    "Evidence register",
    "STRIDE threat model",
    "Runbook: incident, restore, breach notification",
    "Reviewer playbook + signature policy"
   ],
   "naming_conventions": [
    "kebab-case slugs for blueprints and routes",
    "camelCase for TypeScript identifiers",
    "SCREAMING_SNAKE_CASE for environment variables",
    "Verb-first action names (e.g., generate-reconciliation-pack)"
   ],
   "change_control": "ADR-per-major-decision; migrations require review; production deploys gated on green CI + owner-action ledger check."
  },
  "risk_register": [
   {
    "id": "agency-direct-bill-commission-recovery-desk-r1",
    "risk": "A carrier-facing claim proves incorrect",
    "likelihood": "medium",
    "impact": "severe",
    "mitigation": "Every discrepancy claim linked to a cited commission-schedule version + reviewer signoff",
    "contingency": "Retraction workflow; agency-notification template; audit-log export within 24 hours",
    "owner": "legal"
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-r2",
    "risk": "AI hallucination in a delivered discrepancy line or carrier inquiry",
    "likelihood": "medium",
    "impact": "high",
    "mitigation": "Retrieval-first pipeline + structured output validation + reviewer gate",
    "contingency": "Reviewer-triggered rollback + regeneration; incident postmortem published to the agency",
    "owner": "engineering"
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-r3",
    "risk": "Cross-tenant agency financial data leak",
    "likelihood": "low",
    "impact": "severe",
    "mitigation": "Row-level auth + per-tenant retrieval indices + log-scrubbing",
    "contingency": "Breach-notification runbook; forced credential rotation; scoped tenant kill switch",
    "owner": "engineering"
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-r4",
    "risk": "Pilot agency churns before converting to a paid desk",
    "likelihood": "medium",
    "impact": "high",
    "mitigation": "Weekly working-session cadence during pilot; documented value moments; owner-action ledger",
    "contingency": "Structured exit interview; write learnings into ICP + pricing hypothesis",
    "owner": "owner"
   },
   {
    "id": "agency-direct-bill-commission-recovery-desk-r5",
    "risk": "An AMS vendor ships free, good-enough reconciliation with a chase workflow",
    "likelihood": "medium-high",
    "impact": "high",
    "mitigation": "AMS-agnostic positioning; recovery/chase as the human moat software won't replicate",
    "contingency": "Reposition as \"we operate whatever AMS tool exists\"; lean harder into the Diligence Tie-Out line",
    "owner": "owner"
   }
  ],
  "roadmap": [
   {
    "phase": "Phase 0 — Discovery + pilot LOI",
    "weeks": "Weeks 1-2",
    "outcomes": [
     "3-5 pilot agency LOIs",
     "Evidence pack from each pilot agency",
     "Written ICP + pricing hypothesis"
    ],
    "exit_criteria": [
     "≥3 LOIs signed",
     "Owner-action ledger populated per agency",
     "Reviewer identity confirmed"
    ],
    "kill_criteria": [
     "<2 LOIs after 2 weeks",
     "No willingness-to-pay signal above pilot price"
    ]
   },
   {
    "phase": "Phase 1 — Thin vertical slice",
    "weeks": "Weeks 3-4",
    "outcomes": [
     "Intake -> match -> reviewer signoff -> delivery working end-to-end for one AMS format",
     "Audit trail wired",
     "Instrumentation live"
    ],
    "exit_criteria": [
     "1 real Commission Leakage Scan delivered + reviewer-signed",
     "p95 workflow latency published"
    ],
    "kill_criteria": [
     "Reviewer signoff cycle >10 business days",
     "Evidence bundle cannot be reconstructed on demand"
    ]
   },
   {
    "phase": "Phase 2 — Pilot cohort",
    "weeks": "Weeks 3-8",
    "outcomes": [
     "10 pilot agencies scanned",
     "First standard-price desk conversion",
     "SOC 2 Type I scoping"
    ],
    "exit_criteria": [
     "≥1 standard-price contract",
     "Post-scan debrief trust signal captured",
     "Postmortem cadence in place"
    ],
    "kill_criteria": [
     "No standard-price conversion by Day 90",
     "Scan-to-desk conversion below 25%"
    ]
   },
   {
    "phase": "Phase 3 — Recurring-desk scale-up",
    "weeks": "Weeks 9-13 (Day 90 checkpoint)",
    "outcomes": [
     "Public commercial launch of the microsite as 'ready'",
     "Recovery-share rider and Diligence Tie-Out line active",
     "Owner-action ledger closed for launch"
    ],
    "exit_criteria": [
     "COGS/rework/cycle-time measured against target",
     "Expansion beyond the pilot cohort gated on targets, not calendar time"
    ],
    "kill_criteria": [
     "Rework rate persistently above 3%",
     "Reviewer minutes per client not falling with volume"
    ]
   }
  ],
  "metrics": {
   "north_star": "Signed Monthly Reconciliation Packs delivered per week, per client, with zero client-caught material errors",
   "leading": [
    "Pilot agency LOIs signed",
    "Scan-request-to-delivered-scan cycle time",
    "Reviewer signoff cycle time",
    "Evidence coverage per Discrepancy Docket line",
    "Owner-action ledger closure rate"
   ],
   "lagging": [
    "Paid standard-price desk contracts signed",
    "Scan-to-desk conversion (target ≥40%, pilot gate 25%)",
    "Client-caught material error rate (target <0.5%)",
    "Logo retention (target ≥85% annualized)"
   ],
   "guardrails": [
    "Model spend per tenant per week",
    "PII/financial data in logs (target: 0)",
    "Cross-tenant access attempts (target: 0)",
    "p95 workflow latency ceiling"
   ]
  },
  "executive_review": {
   "consensus": "Ship a thin, evidence-linked, reviewer-gated vertical slice for CommissionClear, wedged on the Commission Leakage Scan. Prefer a boring, single-region modular monolith. Do not launch commercially until owner-action facts close and at least one reviewer-signed Commission Ledger has shipped.",
   "dissent": "Executive Sponsor and Privacy/Compliance disagree on launch tempo — Privacy recommends waiting for the full state-by-state collection-agency-statute review before enabling the recovery-share rider anywhere.",
   "go_no_go": "conditional-go",
   "top_3_risks": [
    "A carrier-facing claim proves incorrect",
    "AI hallucination in a delivered discrepancy line or carrier inquiry",
    "Cross-tenant agency financial data leak"
   ],
   "first_10_steps": [
    "Confirm the named insurance-accounting reviewer + engagement letter on file",
    "Populate owner-action ledger with entity, jurisdiction, contact inbox, privacy inbox",
    "Open pilot-cohort intake (cap 10) with explicit pricing conversation",
    "Write ICP + kill/pivot criteria in the plan file",
    "Stand up the evidence-linked intake -> match -> reviewer signoff loop",
    "Wire append-only audit log + hash-chained snapshots",
    "Add row-level auth + tenant-scoped retrieval indices",
    "Instrument scan-request, pack-delivery, and reviewer-signoff events",
    "Publish the microsite with FAQPage schema only and noindex until owner-facts close",
    "Schedule the Day-90 kill/pivot review with executive sponsor"
   ]
  }
 },
 "project_site": {
  "slug": "agency-direct-bill-commission-recovery-desk",
  "app_name": "CommissionClear reconciliation desk",
  "archetype": "reconciliation-recovery desk",
  "archetype_label": "commission reconciliation & recovery desk",
  "reader_role": "Agency Principal",
  "one_sentence_app": "CommissionClear Desk is a reconciliation desk for agency principals who need every carrier statement tied to the agency's own book before a producer, a CPA, or an acquirer asks whether the commission revenue is real.",
  "homepage_sequence": [
   "scene",
   "workflow",
   "instrument",
   "offer",
   "proof",
   "qualification",
   "objections"
  ],
  "hero": {
   "frame_label": "Insurance agency back-office · commission reconciliation & recovery desk",
   "eyebrow": "Agency principal / suspects but can't prove carrier underpayment",
   "interface_title": "CommissionClear reconciliation desk",
   "primary_panel_title": "Agency #AG-2291 · 34 carrier appointments · reconciliation cycle open",
   "primary_panel_body": "Open cycle run: normalize this month's carrier statements, match every line to the AMS book, classify discrepancies, then stage the Monthly Reconciliation Pack for reviewer release.",
   "side_panel_title": "Before this ships",
   "side_panel_items": [
    "Every statement line matched or exception-coded",
    "Discrepancy Docket reviewer-approved",
    "Commission Ledger ties to statement totals to the penny"
   ],
   "status_metric": "REVIEW",
   "status_label": "release gate active"
  },
  "language": {
   "problem_heading": "The agency principal's moment",
   "mechanism_heading": "Inside the CommissionClear reconciliation desk",
   "proof_heading": "Why this survives a producer dispute or a diligence read",
   "offer_heading": "What leaves the room",
   "objection_heading": "The hard questions",
   "qualification_heading": "Who should not use this",
   "cta_close": "Start a free Commission Leakage Scan — reviewed and signed by a real insurance-accounting reviewer, chased under your own agency's name."
  },
  "modules": [
   {
    "name": "Carrier statement intake",
    "job": "Turns a forwarded or uploaded carrier statement into a named reconciliation-cycle record with a completeness check against the carrier appointment list.",
    "artifact": "intake record"
   },
   {
    "name": "Commission Ledger",
    "job": "Holds every statement line matched to an AMS policy, tied to the penny against carrier-stated totals, signed by the reviewer.",
    "artifact": "reconciliation ledger"
   },
   {
    "name": "Discrepancy Docket",
    "job": "Packages every missing, short-paid, late, or chargeback line with its estimated dollar value and evidence into the record a producer or acquirer can walk without a meeting.",
    "artifact": "release package"
   }
  ],
  "checkpoints": [
   {
    "label": "statement line match",
    "pass": "matched with source citation",
    "fail": "routed to reviewer exception queue"
   },
   {
    "label": "penny-perfect tie-out",
    "pass": "deterministic code, ledger balances to statement total",
    "fail": "blocked before release"
   },
   {
    "label": "Commission Ledger",
    "pass": "reviewer releases (second reviewer on high-value dockets)",
    "fail": "stays draft"
   }
  ],
  "signature_scene": "You're the principal of a 10-person agency. It's the week after a producer emailed asking why their payout looks light again, and the only answer anyone has is \"that's just what the carrier statement said.\" Forty carrier appointments, forty statement formats, and nobody has ever verified a single line item against your own book of business. This page is built like the reconciliation desk that agency needed before that email arrived."
 },
 "ddd": {
  "slug": "agency-direct-bill-commission-recovery-desk",
  "project_name": "CommissionClear",
  "business_understanding": {
   "summary": "CommissionClear — independent agencies stop guessing whether carriers paid correctly and start getting a signed Commission Ledger every reconciliation cycle. Carrier statements are extracted at intake, matched against the agency's own AMS book of business, every discrepancy is classified against the applicable commission schedule, and every Monthly Reconciliation Pack releases with an insurance-accounting reviewer's signature and an audit trail.",
   "customer_profile": "independent P&C-led (benefits book welcome) agencies, $500K-$5M commission revenue, 3-20 staff, 15-80 carrier/MGA appointments, no in-house dedicated commission specialist",
   "customer_pain": "Carrier statements arrive in 40+ inconsistent formats a month; nobody has the hours to verify a line item against the AMS book; missing, short-paid, or late commissions are never chased; producer payout disputes have no statement-backed answer; commission revenue can't tie to source statements at tax time, in a lender review, or in an acquisition.",
   "paid_outcome": "A reliably delivered, reviewer-signed Monthly Reconciliation Pack per client per cycle (Commission Ledger, Discrepancy Docket, recovered-dollars report, producer payout statements, posting file), plus a living reconciliation history — reconstructable on demand, defensible to a producer, a CPA, or an acquirer.",
   "value_creation": "AI compresses statement extraction, policy matching, and discrepancy-draft generation; deterministic code owns every tie-out, materiality threshold, and aging date; humans own reviewer approval, carrier-chase judgment, and anything client- or carrier-facing; the platform binds them with an append-only audit trail and per-agency isolation.",
   "why_ai_native": "The extract-match-classify-chase loop is only economical with a bounded AI layer feeding deterministic rules. A pure-manual specialist hire cannot hit flat sub-$1,000/mo pricing at the volumes small agencies need; a pure-automated SaaS cannot draft a carrier inquiry a producer will trust, hold the reviewer-approval gate, or absorb the judgment calls (as-earned timing, chargeback netting) that keep the ledger defensible.",
   "operational_risks": [
    "Reviewer bottleneck during a month-end delivery crunch across many clients at once",
    "Prompt injection via uploaded carrier-statement document content",
    "Cross-agency retrieval leak",
    "Complete records unobtainable at scale (cycles stuck in evidence-gap status)",
    "A carrier-facing inquiry read as a demand rather than a routine inquiry, damaging the client relationship"
   ],
   "assumptions": [
    "Agency principals will pay for evidence-linked, human-reviewed reconciliation over continuing to book statement totals unverified.",
    "The workflow can be reconstructed from an agency-supplied AMS export and carrier statements within the 5-business-day (10 at pilot) cycle-time target.",
    "The vertical tolerates AI-assisted drafts when reviewer approval is explicit and every carrier-facing send is agency-authorized.",
    "Single-tenant infrastructure per customer is not required for the first cohort — logical isolation with row-level auth is acceptable.",
    "Demand persists as a recurring monthly need, not a one-time event — unlike a single-deadline filing business."
   ],
   "validation_questions": [
    "Which specific insurance-accounting reviewer will sign off on the first cohort's ledgers?",
    "Which AMS platforms and carrier mixes are in scope for launch?",
    "What is the actual scan-to-desk conversion rate at pilot pricing vs. standard pricing?",
    "Which existing systems (AMS exports, QuickBooks) must this integrate with day one?",
    "Is there a data-residency or on-prem constraint for any pilot agency's financial data?"
   ]
  },
  "domain_discovery": {
   "actors": [
    {
     "actor": "Agency Principal",
     "role": "Owns the agency's commission-reconciliation engagement; supplies records and authorizes carrier-inquiry sends",
     "goals": [
      "Recover missing/short-paid commissions",
      "Avoid losing staff hours to statement matching",
      "Have a defensible ledger for producers, CPA, and acquirers"
     ],
     "decisions": [
      "Whether to engage CommissionClear",
      "Which records to supply",
      "Whether to authorize carrier inquiries and the recovery-share rider"
     ],
     "pain_points": [
      "No time for line-item statement verification",
      "Doesn't know which of 40+ carrier formats are shortchanging the agency"
     ]
    },
    {
     "actor": "Insurance-Accounting Reviewer",
     "role": "Reviews AI-matched statements and drafted discrepancies; signs off before delivery or carrier send",
     "goals": [
      "Release only evidence-backed, penny-perfect ledgers",
      "Protect agency and carrier relationships"
     ],
     "decisions": [
      "Approve, escalate, or reject a discrepancy",
      "Sign or withhold the Commission Ledger"
     ],
     "pain_points": [
      "Volume spikes during month-end delivery windows",
      "Ambiguous fuzzy matches requiring judgment"
     ]
    },
    {
     "actor": "Producer",
     "role": "Receives payout statements computed from verified data; may dispute a payout",
     "goals": [
      "Get paid correctly and on time"
     ],
     "decisions": [
      "Whether to escalate a payout dispute"
     ],
     "pain_points": [
      "No statement-backed answer when a payout looks wrong"
     ]
    },
    {
     "actor": "Carrier Commission Department (external)",
     "role": "Receives inquiries about missing/short-paid commissions",
     "goals": [
      "Resolve inquiries without escalation"
     ],
     "decisions": [
      "Confirm, correct, or dispute an inquiry"
     ],
     "pain_points": [
      "High inquiry volume across many agencies and formats"
     ]
    }
   ],
   "glossary": [
    {
     "term": "Commission Leakage Scan",
     "definition": "The one-time, $495 reconciliation of the last 3 months of carrier statements against the AMS book.",
     "used_by": "Agency Principal",
     "context": "Reconciliation & Matching",
     "example": "Scan for Agency #AG-2291 across 34 carrier appointments",
     "notes": "Never called 'audit', 'check', or 'review'."
    },
    {
     "term": "Reconciliation cycle",
     "definition": "One calendar month's worth of statement collection, matching, and pack delivery for one client.",
     "used_by": "Insurance-Accounting Reviewer",
     "context": "Reconciliation & Matching",
     "example": "The July reconciliation cycle for Agency #AG-2291",
     "notes": "The unit of recurring work."
    },
    {
     "term": "Commission Ledger",
     "definition": "The signed tie-out artifact: every statement line matched to a policy, balanced to the penny.",
     "used_by": "Insurance-Accounting Reviewer, Agency Principal",
     "context": "Reconciliation & Matching",
     "example": "July Commission Ledger, 34 carriers, ties to $128,410 in stated commissions",
     "notes": "Never called 'report' or 'statement'."
    },
    {
     "term": "Discrepancy Docket",
     "definition": "The list of missing, short-paid, late, or chargeback lines with dollar value and evidence.",
     "used_by": "Insurance-Accounting Reviewer, Agency Principal",
     "context": "Reconciliation & Matching",
     "example": "3 short-paid lines, 1 missing renewal, est. $2,140",
     "notes": "Never called 'exceptions report'."
    }
   ],
   "decisions": [
    {
     "decision": "Is this statement line a real discrepancy or a normal carrier quirk (e.g. as-earned lag)?",
     "who": "AI drafts, Reviewer confirms",
     "inputs": [
      "[PLACEHOLDER] owner to complete"
     ],
     "rule": "Classification thresholds per transaction type; carrier-quirk map consulted before flagging",
     "output": "Discrepancy classification with evidence citation",
     "risk": "False discrepancy sent to a carrier"
    },
    {
     "decision": "Is the Commission Ledger ready to sign?",
     "who": "Deterministic code gates, Reviewer signs",
     "inputs": "All statement lines matched or exception-coded, ledger tie-out to statement totals",
     "rule": "Penny-perfect rule: ledger must tie to statement totals before release",
     "output": "Signed Commission Ledger",
     "risk": "Signed ledger with an unresolved tie-out gap"
    }
   ],
   "events": [
    {
     "event": "StatementNormalized",
     "meaning": "A carrier statement is extracted and tied out, ready for matching",
     "trigger": "Extraction Agent completes parsing + tie-out check",
     "downstream": [
      "[PLACEHOLDER] owner to complete"
     ]
    },
    {
     "event": "DiscrepancyApproved",
     "meaning": "A flagged discrepancy is reviewer-confirmed and evidenced",
     "trigger": "Insurance-Accounting Reviewer approves the classification",
     "downstream": "Carrier inquiry drafted; docket line finalized"
    }
   ]
  },
  "subdomains": [
   {
    "name": "Reconciliation & Matching",
    "type": "core",
    "description": "Statement normalization, AMS-policy matching, expected-commission computation, and discrepancy classification.",
    "reason": "This is the paid outcome — the reconciled ledger and docket are what the agency is buying.",
    "business_value": "Direct revenue driver; every tier maps to a delivered Monthly Reconciliation Pack.",
    "recommendation": "Build in-house, deterministic-rules-first.",
    "ai_involvement": "Extraction, matching, discrepancy classification, drafting",
    "human_involvement": "Reviewer approval, ledger signature",
    "risks": [
     "Missed cycle-delivery SLA",
     "Incomplete evidence causing a client-caught error"
    ],
    "validation_questions": [
     "What is the real reviewer review time per cycle at volume?"
    ]
   },
   {
    "name": "Recovery & Delivery",
    "type": "core",
    "description": "Carrier-inquiry drafting/sending, aging/tracking, Monthly Reconciliation Pack assembly, recovery ledger.",
    "reason": "Differentiates CommissionClear from a generic bookkeeping service — this is the chase-and-collect layer.",
    "business_value": "Drives conversion (free scan -> paid desk) and the recovery-share rider.",
    "recommendation": "Build in-house; maintain a per-carrier contact/quirk map from day one.",
    "ai_involvement": "Drafts inquiries and recovery reports",
    "human_involvement": "Reviewer approves every outbound inquiry; escalation judgment",
    "risks": [
     "Stalled recoveries with no tracked follow-up"
    ],
    "validation_questions": [
     "How often do carriers respond within the 60-day aging window?"
    ]
   },
   {
    "name": "Evidence & Compliance",
    "type": "supporting",
    "description": "Audit trail, engagement-letter authorization, licensing-boundary enforcement.",
    "reason": "Necessary complement to reconciliation but not itself the differentiated value proposition.",
    "business_value": "Protects the licensing boundary and supports diligence/tie-out sales.",
    "recommendation": "Build thin; keep tightly scoped to documentation, never advice.",
    "ai_involvement": "Assembles audit exports",
    "human_involvement": "Compliance lead maintains state-by-state tracker",
    "risks": [
     "Scope creep into unlicensed producer or collection activity"
    ],
    "validation_questions": [
     "Which states need counsel review before the recovery-share rider is offered?"
    ]
   },
   {
    "name": "Referral & Outreach",
    "type": "generic",
    "description": "CRM, outbound sequencing, and content publishing.",
    "reason": "Not differentiating; off-the-shelf tools suffice at this stage.",
    "business_value": "Supports pipeline but not the core value proposition.",
    "recommendation": "Buy (lightweight CRM), do not build.",
    "ai_involvement": "Content drafting assistance",
    "human_involvement": "Founder-led outreach and content",
    "risks": [
     "Low differentiation risk if under-invested"
    ],
    "validation_questions": [
     "Which channel actually converts at the assumed rate?"
    ]
   }
  ],
  "core_domain_analysis": {
   "primary_core": "Reconciliation & Matching",
   "secondary_cores": [
    "Recovery & Delivery"
   ],
   "supporting_may_become_core": [
    "Evidence & Compliance"
   ],
   "generic_do_not_distract": [
    "Referral & Outreach",
    "CRM/pipeline tracking"
   ],
   "rationale": "The paid outcome is a signed Commission Ledger, so Reconciliation & Matching is the primary core. Recovery & Delivery is a secondary core because carrier chase and tracked recovery is the human-plus-AI moat that differentiates CommissionClear from software the agency has to operate itself. Evidence & Compliance could become core if the Diligence Tie-Out line grows into a larger revenue stream, but starts as supporting. Referral & Outreach uses off-the-shelf tooling deliberately to keep engineering focus on the reconciliation and recovery engine."
  },
  "bounded_contexts": [
   {
    "name": "Intake & Normalization",
    "purpose": "Turn arriving carrier statements into normalized, tied-out canonical records ready for matching.",
    "subdomain": "Reconciliation & Matching (core)",
    "type": "core",
    "owned_language": [
     "carrier statement",
     "reconciliation cycle",
     "completeness check"
    ],
    "owns": [
     "Statement intake lifecycle",
     "Normalization state",
     "Carrier appointment completeness"
    ],
    "does_not_own": [
     "Matching decisions",
     "Reviewer signature"
    ],
    "primary_actors": [
     "Agency Principal",
     "Extraction Agent"
    ],
    "entities": [
     "CarrierStatement",
     "ReconciliationCycle"
    ],
    "value_objects": [
     "ConfidenceScore",
     "StatementTotal"
    ],
    "aggregates": [
     "CarrierStatementAggregate"
    ],
    "domain_services": [
     "Statement normalizer",
     "Completeness checker"
    ],
    "application_services": [
     "ReceiveStatement",
     "NormalizeStatement",
     "CheckCompleteness"
    ],
    "commands": [
     "ReceiveStatement",
     "NormalizeStatement"
    ],
    "domain_events": [
     "statement.received",
     "statement.normalized",
     "statement.completeness_check_failed"
    ],
    "policies": [
     "Auto-flag missing carrier statement against the appointment list"
    ],
    "specifications": [
     "StatementTieOutSpec"
    ],
    "invariants": [
     "A CarrierStatement cannot be matched against until its line-item sum ties to its stated total"
    ],
    "ai_agents": [
     "Extraction Agent"
    ],
    "human_roles": [
     "Agency Principal"
    ],
    "data_owned": [
     "CarrierStatement",
     "ReconciliationCycle"
    ],
    "inputs": [
     "Uploaded/forwarded carrier statements",
     "Carrier appointment list"
    ],
    "outputs": [
     "Normalized canonical statement records"
    ],
    "external_integrations": [
     "Carrier statement portals (authorized pull only)",
     "Monitored intake mailbox"
    ],
    "risks": [
     "A malformed statement silently mis-tied",
     "Missing carrier statement for the period goes unnoticed"
    ],
    "interfaces": [
     "-> Reconciliation & Matching (StatementNormalized)"
    ]
   },
   {
    "name": "Reconciliation & Matching",
    "purpose": "Match normalized statement lines to the agency's AMS book, compute expected commissions, and classify discrepancies.",
    "subdomain": "Reconciliation & Matching (core)",
    "type": "core",
    "owned_language": [
     "Commission Ledger",
     "Discrepancy Docket",
     "match",
     "discrepancy"
    ],
    "owns": [
     "Matching engine",
     "Discrepancy classification",
     "Ledger tie-out"
    ],
    "does_not_own": [
     "Reviewer identity",
     "Billing"
    ],
    "primary_actors": [
     "Insurance-Accounting Reviewer",
     "Matching Agent"
    ],
    "entities": [
     "ReconciliationCycle",
     "DiscrepancyDocket",
     "CommissionLedger"
    ],
    "value_objects": [
     "ConfidenceScore",
     "DiscrepancyClassification"
    ],
    "aggregates": [
     "ReconciliationCycleAggregate",
     "DiscrepancyDocketAggregate",
     "CommissionLedgerAggregate"
    ],
    "domain_services": [
     "Matching engine",
     "Expected-commission calculator"
    ],
    "application_services": [
     "RunMatching",
     "ClassifyDiscrepancy",
     "ApproveDiscrepancy",
     "SignLedger"
    ],
    "commands": [
     "RunMatching",
     "FlagDiscrepancy",
     "ApproveDiscrepancy",
     "SignLedger"
    ],
    "domain_events": [
     "reconciliation_cycle.matching_completed",
     "discrepancy.flagged",
     "discrepancy.reviewer_approved",
     "commission_ledger.signed"
    ],
    "policies": [
     "Auto-route low-confidence matches to reviewer exception queue"
    ],
    "specifications": [
     "PennyPerfectTieOutSpec",
     "EvidenceCitationSpec"
    ],
    "invariants": [
     "A CommissionLedger cannot be signed until it ties to statement totals to the penny",
     "No discrepancy reaches a client or carrier without reviewer approval"
    ],
    "ai_agents": [
     "Matching Agent",
     "Discrepancy Drafter Agent"
    ],
    "human_roles": [
     "Insurance-Accounting Reviewer"
    ],
    "data_owned": [
     "ReconciliationCycle",
     "DiscrepancyDocket",
     "CommissionLedger"
    ],
    "inputs": [
     "Normalized statements",
     "AMS book of business export",
     "Commission schedules"
    ],
    "outputs": [
     "Signed Commission Ledger",
     "Approved Discrepancy Docket"
    ],
    "external_integrations": [
     "Agency management system export (file-based, no live API)"
    ],
    "risks": [
     "Wrong match causes a wrong ledger",
     "False discrepancy claim reaches a carrier"
    ],
    "interfaces": [
     "-> Recovery & Delivery (DiscrepancyApproved)"
    ]
   },
   {
    "name": "Recovery & Delivery",
    "purpose": "Draft and send agency-authorized carrier inquiries, track recovery, and assemble the Monthly Reconciliation Pack.",
    "subdomain": "Recovery & Delivery (core)",
    "type": "core",
    "owned_language": [
     "carrier inquiry",
     "recovered dollars",
     "Monthly Reconciliation Pack"
    ],
    "owns": [
     "Inquiry drafting/sending",
     "Aging tracker",
     "Pack assembly"
    ],
    "does_not_own": [
     "Discrepancy classification (upstream)"
    ],
    "primary_actors": [
     "Insurance-Accounting Reviewer",
     "Inquiry Drafter Agent"
    ],
    "entities": [
     "CarrierInquiry",
     "ProducerPayoutStatement",
     "MonthlyReconciliationPack"
    ],
    "value_objects": [
     "AgingWindow",
     "RecoveredAmount"
    ],
    "aggregates": [
     "CarrierInquiryAggregate"
    ],
    "domain_services": [
     "Inquiry drafter",
     "Aging tracker",
     "Pack assembler"
    ],
    "application_services": [
     "DraftCarrierInquiry",
     "SendCarrierInquiry",
     "ComputePayout",
     "AssemblePack",
     "DeliverPack"
    ],
    "commands": [
     "DraftCarrierInquiry",
     "SendCarrierInquiry",
     "DeliverPack"
    ],
    "domain_events": [
     "carrier_inquiry.sent",
     "carrier_inquiry.resolved",
     "recovery.logged",
     "pack.delivered",
     "aging.escalated_60d",
     "aging.escalated_90d"
    ],
    "policies": [
     "Auto-escalate any inquiry unresolved past 60 days"
    ],
    "specifications": [
     "InquiryAuthorizationSpec"
    ],
    "invariants": [
     "A CarrierInquiry cannot be sent without reviewer approval and agency authorization on file",
     "A ProducerPayoutStatement is computed only from the agency-approved split sheet"
    ],
    "ai_agents": [
     "Inquiry Drafter Agent"
    ],
    "human_roles": [
     "Insurance-Accounting Reviewer"
    ],
    "data_owned": [
     "CarrierInquiry",
     "ProducerPayoutStatement",
     "MonthlyReconciliationPack"
    ],
    "inputs": [
     "Approved Discrepancy Docket",
     "Producer split sheet"
    ],
    "outputs": [
     "Sent carrier inquiries",
     "Delivered Monthly Reconciliation Pack"
    ],
    "external_integrations": [
     "Carrier commission-department mailboxes (agency-authorized sends only)"
    ],
    "risks": [
     "Carrier inquiry read as a demand rather than an inquiry",
     "Stalled recovery with no escalation"
    ],
    "interfaces": [
     "-> Quality Assurance (PackReadyForSignoff)"
    ]
   },
   {
    "name": "Quality Assurance",
    "purpose": "Bind reviewer identity, timestamp, and artifact hash immutably to every signed ledger and sent inquiry; handle retractions.",
    "subdomain": "Reconciliation & Matching (core, QA slice)",
    "type": "core",
    "owned_language": [
     "reviewer signoff",
     "retraction"
    ],
    "owns": [
     "Signoff records",
     "Retraction workflow"
    ],
    "does_not_own": [
     "Ledger drafting"
    ],
    "primary_actors": [
     "Insurance-Accounting Reviewer"
    ],
    "entities": [
     "Signoff",
     "Retraction"
    ],
    "value_objects": [
     "SignatureManifest",
     "RetractionReason"
    ],
    "aggregates": [
     "SignoffAggregate",
     "RetractionAggregate"
    ],
    "domain_services": [
     "Signature binder"
    ],
    "application_services": [
     "ApproveArtifact",
     "RetractArtifact"
    ],
    "commands": [
     "ApproveArtifact",
     "RetractArtifact"
    ],
    "domain_events": [
     "commission_ledger.signed",
     "pack.retracted"
    ],
    "policies": [
     "A retraction requires senior-reviewer co-signature"
    ],
    "specifications": [
     "SignoffValiditySpec"
    ],
    "invariants": [
     "Signature bound to a live authenticated session, not a form field",
     "Signed artifacts are immutable"
    ],
    "ai_agents": [],
    "human_roles": [
     "Insurance-Accounting Reviewer",
     "Senior Reviewer"
    ],
    "data_owned": [
     "Signoff",
     "Retraction"
    ],
    "inputs": [
     "Draft ledger/pack ready for signoff"
    ],
    "outputs": [
     "Signed artifact"
    ],
    "external_integrations": [],
    "risks": [
     "Reviewer identity spoofing"
    ],
    "interfaces": [
     "<- Reconciliation & Matching (SignLedger)",
     "<- Recovery & Delivery (PackReadyForSignoff)"
    ]
   }
  ],
  "context_map": [
   {
    "upstream": "Intake & Normalization",
    "downstream": "Reconciliation & Matching",
    "relationship": "Customer-Supplier",
    "integration_pattern": "Domain event (StatementNormalized) consumed by matching engine",
    "translation_notes": "Canonical statement schema is the shared contract; no direct database coupling.",
    "pattern": "Customer-Supplier",
    "contract_type": "domain event",
    "data_exchanged": [
     "[PLACEHOLDER] owner to complete"
    ],
    "events_exchanged": [
     "Domain event (StatementNormalized) consumed by matching engine"
    ],
    "ownership_boundary": "Downstream never writes to upstream's tables",
    "acl_notes": "Anti-corruption translation not needed — shared canonical schema",
    "business_reason": "Keeps each context's invariants enforceable independently",
    "failure_risks": [
     "[PLACEHOLDER] owner to complete"
    ]
   },
   {
    "upstream": "Reconciliation & Matching",
    "downstream": "Recovery & Delivery",
    "relationship": "Customer-Supplier",
    "integration_pattern": "Domain event (DiscrepancyApproved) triggers inquiry drafting",
    "translation_notes": "Only reviewer-approved discrepancies cross the boundary.",
    "pattern": "Customer-Supplier",
    "contract_type": "domain event",
    "data_exchanged": "Canonical schema payload only",
    "events_exchanged": [
     "Domain event (DiscrepancyApproved) triggers inquiry drafting"
    ],
    "ownership_boundary": "Downstream never writes to upstream's tables",
    "acl_notes": "Anti-corruption translation not needed — shared canonical schema",
    "business_reason": "Keeps each context's invariants enforceable independently",
    "failure_risks": "Downstream stalls if upstream event delivery fails"
   },
   {
    "upstream": "Reconciliation & Matching",
    "downstream": "Quality Assurance",
    "relationship": "Conformist",
    "integration_pattern": "SignLedger command with synchronous validation",
    "translation_notes": "QA enforces the penny-perfect invariant; Reconciliation & Matching conforms to QA's signature contract.",
    "pattern": "Conformist",
    "contract_type": "domain event",
    "data_exchanged": "Canonical schema payload only",
    "events_exchanged": [
     "SignLedger command with synchronous validation"
    ],
    "ownership_boundary": "Downstream never writes to upstream's tables",
    "acl_notes": "Anti-corruption translation not needed — shared canonical schema",
    "business_reason": "Keeps each context's invariants enforceable independently",
    "failure_risks": "Downstream stalls if upstream event delivery fails"
   },
   {
    "upstream": "Recovery & Delivery",
    "downstream": "Quality Assurance",
    "relationship": "Conformist",
    "integration_pattern": "PackReadyForSignoff event",
    "translation_notes": "Pack cannot deliver without QA signoff.",
    "pattern": "Conformist",
    "contract_type": "domain event",
    "data_exchanged": "Canonical schema payload only",
    "events_exchanged": [
     "PackReadyForSignoff event"
    ],
    "ownership_boundary": "Downstream never writes to upstream's tables",
    "acl_notes": "Anti-corruption translation not needed — shared canonical schema",
    "business_reason": "Keeps each context's invariants enforceable independently",
    "failure_risks": "Downstream stalls if upstream event delivery fails"
   }
  ],
  "external_integrations": [
   {
    "system": "Agency management system (AMS) export",
    "direction": "inbound",
    "pattern": "File-based export, no live API at launch",
    "risk": "Schema drift per AMS version",
    "owner_context": "Recovery & Delivery",
    "data_in": [
     "[PLACEHOLDER] owner to complete"
    ],
    "data_out": [
     "[PLACEHOLDER] owner to complete"
    ],
    "trigger": "Reconciliation cycle start",
    "internal_model": "Canonical statement/ledger schema",
    "acl_strategy": "Per-carrier parser translates external format to canonical schema",
    "failure_strategy": "Retry then manual fallback",
    "audit_need": "Every external call logged with timestamp and payload hash"
   },
   {
    "system": "Carrier statement portals",
    "direction": "inbound",
    "pattern": "Agency-authorized credentialed pull or client-forwarded file",
    "risk": "Portal ToS friction; credential expiry",
    "owner_context": "Intake & Normalization",
    "data_in": "Carrier statement content",
    "data_out": "N/A",
    "trigger": "Reconciliation cycle start",
    "internal_model": "Canonical statement/ledger schema",
    "acl_strategy": "Per-carrier parser translates external format to canonical schema",
    "failure_strategy": "Retry then manual fallback",
    "audit_need": "Every external call logged with timestamp and payload hash"
   },
   {
    "system": "QuickBooks / AMS posting-file import",
    "direction": "outbound",
    "pattern": "Generated posting file, agency-side import",
    "risk": "Format mismatch per bookkeeping software version",
    "owner_context": "Recovery & Delivery",
    "data_in": "N/A",
    "data_out": "Posting file or inquiry email",
    "trigger": "Reviewer approval",
    "internal_model": "Canonical statement/ledger schema",
    "acl_strategy": "Per-carrier parser translates external format to canonical schema",
    "failure_strategy": "Retry then manual fallback",
    "audit_need": "Every external call logged with timestamp and payload hash"
   },
   {
    "system": "Carrier commission-department mailbox",
    "direction": "outbound",
    "pattern": "Agency-authorized email send",
    "risk": "Inquiry misread as a demand",
    "owner_context": "Recovery & Delivery",
    "data_in": "N/A",
    "data_out": "Posting file or inquiry email",
    "trigger": "Reviewer approval",
    "internal_model": "Canonical statement/ledger schema",
    "acl_strategy": "Per-carrier parser translates external format to canonical schema",
    "failure_strategy": "Retry then manual fallback",
    "audit_need": "Every external call logged with timestamp and payload hash"
   }
  ],
  "event_storm": [
   {
    "seq": 1,
    "command": "ReceiveStatement",
    "event": "statement.received",
    "actor": "Agency Principal",
    "context": "Intake & Normalization",
    "aggregate": "CarrierStatementAggregate",
    "policy": "None",
    "downstream": "Completeness check against carrier appointment list",
    "risk": "Duplicate statement ingestion"
   },
   {
    "seq": 2,
    "command": "NormalizeStatement",
    "event": "statement.normalized",
    "actor": "Extraction Agent",
    "context": "Intake & Normalization",
    "aggregate": "CarrierStatementAggregate",
    "policy": "Auto tie-out check",
    "downstream": "Matching engine invoked",
    "risk": "Misread field on a scanned/paper statement"
   },
   {
    "seq": 3,
    "command": "RunMatching",
    "event": "reconciliation_cycle.matching_completed",
    "actor": "Matching Agent",
    "context": "Reconciliation & Matching",
    "aggregate": "ReconciliationCycleAggregate",
    "policy": "Auto-route low-confidence matches to reviewer",
    "downstream": "Exception queue populated",
    "risk": "Wrong fuzzy match auto-accepted"
   },
   {
    "seq": 4,
    "command": "ApproveDiscrepancy",
    "event": "discrepancy.reviewer_approved",
    "actor": "Insurance-Accounting Reviewer",
    "context": "Reconciliation & Matching",
    "aggregate": "DiscrepancyDocketAggregate",
    "policy": "None",
    "downstream": "Carrier inquiry drafted",
    "risk": "Reviewer approves under time pressure without full evidence check"
   },
   {
    "seq": 5,
    "command": "SignLedger",
    "event": "commission_ledger.signed",
    "actor": "Insurance-Accounting Reviewer",
    "context": "Quality Assurance",
    "aggregate": "SignoffAggregate",
    "policy": "Penny-perfect tie-out gate",
    "downstream": "Monthly Reconciliation Pack assembled",
    "risk": "Signed ledger with a stale tie-out"
   },
   {
    "seq": 6,
    "command": "SendCarrierInquiry",
    "event": "carrier_inquiry.sent",
    "actor": "Insurance-Accounting Reviewer / Agency Principal",
    "context": "Recovery & Delivery",
    "aggregate": "CarrierInquiryAggregate",
    "policy": "Agency-authorization check",
    "downstream": "Aging clock starts",
    "risk": "Sent without valid authorization on file"
   }
  ],
  "critical_path": [
   "statement.received -> statement.normalized -> reconciliation_cycle.matching_completed -> discrepancy.reviewer_approved -> commission_ledger.signed -> pack.delivered"
  ],
  "exception_flows": [
   "A statement line below the matching-confidence threshold -> routed to reviewer exception queue, blocks reconciliation_cycle.matching_completed until resolved",
   "A discrepancy classification needs-reviewer-judgment -> held for reviewer, never auto-approved"
  ],
  "escalation_flows": [
   "A discrepancy over $2,500 -> second reviewer pass before docket approval",
   "A carrier disputes an inquiry beyond a routine response -> referred to the agency's own counsel"
  ],
  "retry_flows": [
   "Carrier inquiry unacknowledged after 60 days -> automated reminder, then reviewer-judged escalation at 90 days"
  ],
  "manual_override_flows": [
   "Founder/senior reviewer can force-hold any Commission Ledger pre-release regardless of automated tie-out pass, if a data-integrity issue is suspected"
  ],
  "commands": [
   {
    "name": "ReceiveStatement",
    "issued_by": "Agency Principal / monitored mailbox",
    "preconditions": [
     "Client onboarded",
     "Carrier on the appointment list"
    ],
    "aggregate": "CarrierStatementAggregate",
    "success_event": "statement.received",
    "failure_event": "StatementRejected",
    "authorization": "Engaged client",
    "validation": "File type allowed; carrier recognized or flagged new",
    "audit": "Statement hashed and logged"
   },
   {
    "name": "NormalizeStatement",
    "issued_by": "Extraction Agent",
    "preconditions": [
     "Statement received"
    ],
    "aggregate": "CarrierStatementAggregate",
    "success_event": "statement.normalized",
    "failure_event": "NormalizationFailed",
    "authorization": "System",
    "validation": "Line-item sum ties to stated total",
    "audit": "Extraction run logged with confidence scores"
   },
   {
    "name": "RunMatching",
    "issued_by": "Matching Agent",
    "preconditions": [
     "Statement normalized",
     "AMS book of business on file"
    ],
    "aggregate": "ReconciliationCycleAggregate",
    "success_event": "reconciliation_cycle.matching_completed",
    "failure_event": "MatchingIncomplete",
    "authorization": "System",
    "validation": "Every line matched, exception-coded, or logged as an evidence gap",
    "audit": "Match confidence scores logged per line"
   },
   {
    "name": "ApproveDiscrepancy",
    "issued_by": "Insurance-Accounting Reviewer",
    "preconditions": [
     "Discrepancy flagged with evidence citation"
    ],
    "aggregate": "DiscrepancyDocketAggregate",
    "success_event": "discrepancy.reviewer_approved",
    "failure_event": "DiscrepancyRejected",
    "authorization": "Named reviewer role",
    "validation": "Evidence citation present; materiality threshold check",
    "audit": "Reviewer identity + timestamp logged"
   },
   {
    "name": "SignLedger",
    "issued_by": "Insurance-Accounting Reviewer",
    "preconditions": [
     "All lines matched/exception-coded",
     "Ledger ties to statement totals"
    ],
    "aggregate": "CommissionLedgerAggregate",
    "success_event": "commission_ledger.signed",
    "failure_event": "SignoffRejected",
    "authorization": "Named reviewer role",
    "validation": "Penny-perfect tie-out check passes",
    "audit": "Signature bound to authenticated session"
   },
   {
    "name": "SendCarrierInquiry",
    "issued_by": "Insurance-Accounting Reviewer / Agency Principal",
    "preconditions": [
     "Discrepancy reviewer-approved",
     "Carrier-communication authorization on file"
    ],
    "aggregate": "CarrierInquiryAggregate",
    "success_event": "carrier_inquiry.sent",
    "failure_event": "InquiryRejected",
    "authorization": "Agency-authorized administrative agent",
    "validation": "Inquiry language passes demand-language filter",
    "audit": "Send method + timestamp logged"
   }
  ],
  "policies": [
   {
    "name": "Auto-route low-confidence match to reviewer",
    "trigger": "reconciliation_cycle.matching_completed",
    "condition": "match confidence below auto-match threshold",
    "action": "Enqueue to reviewer exception queue",
    "context": "Reconciliation & Matching",
    "ai_involvement": "flags only",
    "human_approval": false
   },
   {
    "name": "Block demand-language patterns",
    "trigger": "DraftCarrierInquiry",
    "condition": "Draft contains demand/collection/legal-threat language pattern",
    "action": "Reject draft before it reaches reviewer approval",
    "context": "Recovery & Delivery",
    "ai_involvement": "author (blocked by deterministic filter)",
    "human_approval": false
   },
   {
    "name": "Second-reviewer spot check",
    "trigger": "discrepancy.reviewer_approved",
    "condition": "Docket line over $2,500",
    "action": "Route to a second named reviewer before the docket is finalized",
    "context": "Quality Assurance",
    "ai_involvement": "none",
    "human_approval": true
   },
   {
    "name": "Auto-escalate aging inquiry",
    "trigger": "carrier_inquiry.sent",
    "condition": "No carrier response within 60 days",
    "action": "Flag for reviewer escalation judgment",
    "context": "Recovery & Delivery",
    "ai_involvement": "flags only",
    "human_approval": false
   }
  ],
  "aggregates": [
   {
    "name": "CarrierStatementAggregate",
    "root": "CarrierStatement",
    "context": "Intake & Normalization",
    "purpose": "Guard statement receipt + normalization + tie-out state.",
    "entities": [
     "CarrierStatement"
    ],
    "value_objects": [
     "ConfidenceScore",
     "StatementTotal"
    ],
    "invariants": [
     "A statement cannot be matched against until it ties to its own stated total"
    ],
    "commands": [
     "ReceiveStatement",
     "NormalizeStatement"
    ],
    "events": [
     "statement.received",
     "statement.normalized"
    ],
    "repository": "CarrierStatementRepository",
    "transaction_boundary": "One statement per transaction"
   },
   {
    "name": "ReconciliationCycleAggregate",
    "root": "ReconciliationCycle",
    "context": "Reconciliation & Matching",
    "purpose": "Own the monthly cycle's matching lifecycle for one client.",
    "entities": [
     "ReconciliationCycle"
    ],
    "value_objects": [
     "MatchConfidence"
    ],
    "invariants": [
     "A cycle cannot close until every line is matched, exception-coded, or logged as a gap"
    ],
    "commands": [
     "RunMatching"
    ],
    "events": [
     "reconciliation_cycle.matching_completed"
    ],
    "repository": "ReconciliationCycleRepository",
    "transaction_boundary": "One cycle per transaction"
   },
   {
    "name": "DiscrepancyDocketAggregate",
    "root": "DiscrepancyDocket",
    "context": "Reconciliation & Matching",
    "purpose": "Own discrepancy classification and reviewer approval.",
    "entities": [
     "DiscrepancyDocket"
    ],
    "value_objects": [
     "DiscrepancyClassification"
    ],
    "invariants": [
     "No line enters the docket without a source-statement citation and an AMS-policy reference"
    ],
    "commands": [
     "ApproveDiscrepancy"
    ],
    "events": [
     "discrepancy.flagged",
     "discrepancy.reviewer_approved"
    ],
    "repository": "DiscrepancyDocketRepository",
    "transaction_boundary": "One docket per transaction"
   },
   {
    "name": "CommissionLedgerAggregate",
    "root": "CommissionLedger",
    "context": "Reconciliation & Matching",
    "purpose": "Own the ledger's tie-out and signature lifecycle.",
    "entities": [
     "CommissionLedger"
    ],
    "value_objects": [
     "TieOutResult"
    ],
    "invariants": [
     "Totals must tie to statement totals to the penny before the reviewer's signature is valid"
    ],
    "commands": [
     "SignLedger"
    ],
    "events": [
     "commission_ledger.signed"
    ],
    "repository": "CommissionLedgerRepository",
    "transaction_boundary": "One ledger per transaction"
   },
   {
    "name": "CarrierInquiryAggregate",
    "root": "CarrierInquiry",
    "context": "Recovery & Delivery",
    "purpose": "Own inquiry drafting, sending, and aging.",
    "entities": [
     "CarrierInquiry"
    ],
    "value_objects": [
     "AgingWindow"
    ],
    "invariants": [
     "Cannot be sent without reviewer approval and agency authorization on file"
    ],
    "commands": [
     "SendCarrierInquiry"
    ],
    "events": [
     "carrier_inquiry.sent",
     "carrier_inquiry.resolved"
    ],
    "repository": "CarrierInquiryRepository",
    "transaction_boundary": "One inquiry per transaction"
   },
   {
    "name": "SignoffAggregate",
    "root": "Signoff",
    "context": "Quality Assurance",
    "purpose": "Bind reviewer identity + timestamp + artifact hash immutably.",
    "entities": [
     "Signoff"
    ],
    "value_objects": [
     "SignatureManifest"
    ],
    "invariants": [
     "Signature bound to a live authenticated session, not a form field",
     "Signed artifacts are immutable"
    ],
    "commands": [
     "ApproveArtifact"
    ],
    "events": [
     "ArtifactSigned"
    ],
    "repository": "SignoffRepository",
    "transaction_boundary": "One signoff per transaction"
   },
   {
    "name": "RetractionAggregate",
    "root": "Retraction",
    "context": "Quality Assurance",
    "purpose": "Handle formal correction/withdrawal of a delivered pack.",
    "entities": [
     "Retraction"
    ],
    "value_objects": [
     "RetractionReason"
    ],
    "invariants": [
     "A retraction requires senior-reviewer co-signature"
    ],
    "commands": [
     "RetractArtifact"
    ],
    "events": [
     "ArtifactRetracted"
    ],
    "repository": "RetractionRepository",
    "transaction_boundary": "One retraction per transaction"
   }
  ],
  "invariants": [
   {
    "invariant": "A Commission Ledger cannot be signed without tying to statement totals to the penny",
    "context": "Reconciliation & Matching",
    "aggregate": "CommissionLedgerAggregate",
    "why": "No ledger is ever released on an unresolved tie-out gap",
    "enforcement": "Deterministic code gate on the SignLedger command"
   },
   {
    "invariant": "A CarrierInquiry cannot be sent without reviewer approval and agency authorization on file",
    "context": "Recovery & Delivery",
    "aggregate": "CarrierInquiryAggregate",
    "why": "Sending without authorization is both a trust breach and outside the licensing boundary",
    "enforcement": "Deterministic code gate on the SendCarrierInquiry command"
   },
   {
    "invariant": "No discrepancy is published without a cited source-statement and AMS-policy reference",
    "context": "Reconciliation & Matching",
    "aggregate": "DiscrepancyDocketAggregate",
    "why": "Prevents an unevidenced claim from reaching a client or a carrier",
    "enforcement": "Output validator rejects any docket line missing an evidence citation"
   },
   {
    "invariant": "CommissionClear never issues a coverage or claims-adjustment determination",
    "context": "Recovery & Delivery",
    "aggregate": "CarrierInquiryAggregate",
    "why": "Hard licensing boundary — only the agency's own licensed staff makes coverage determinations",
    "enforcement": "Deterministic output filter blocks coverage-determination language patterns"
   }
  ],
  "ai_agents": [
   {
    "name": "Extraction Agent",
    "context": "Intake & Normalization",
    "responsibility": "Extract and normalize structured fields from carrier commission statements (PDF, portal CSV, scanned paper) into the canonical schema.",
    "inputs": [
     "Uploaded/forwarded carrier statements"
    ],
    "outputs": [
     "Structured line items with per-field confidence score"
    ],
    "tools": [
     "OCR",
     "per-carrier parser library"
    ],
    "forbidden_actions": [
     "Guessing a policy number fragment not present in the source text"
    ],
    "memory_scope": "Single statement extraction run",
    "retrieval_sources": [
     "Per-carrier parser fixture library"
    ],
    "validations": [
     "Confidence score attached to every field"
    ],
    "confidence_scoring": "0-100 per field, threshold 85",
    "escalation_triggers": [
     "Any required field below 85% confidence"
    ],
    "human_approval": "Reviewer confirms during exception review",
    "failure_modes": [
     "Misread scanned/paper statement",
     "Wrong carrier-format classification"
    ],
    "audit_logs": [
     "Every extraction run logged with document hash and confidence scores"
    ],
    "metrics": [
     "Extraction accuracy vs. reviewer-corrected value"
    ],
    "versioning": "Prompt versioned independently of the underlying model"
   },
   {
    "name": "Matching Agent",
    "context": "Reconciliation & Matching",
    "responsibility": "Match normalized statement lines to AMS policies (exact -> fuzzy -> reviewer-adjudicated) and compute expected commission from the schedule.",
    "inputs": [
     "Normalized statement lines",
     "AMS book of business",
     "Commission schedules"
    ],
    "outputs": [
     "Match candidates with confidence score",
     "Expected-commission computation"
    ],
    "tools": [
     "Fuzzy entity matcher",
     "commission-schedule lookup"
    ],
    "forbidden_actions": [
     "Auto-accepting a match below the confidence threshold"
    ],
    "memory_scope": "Single reconciliation cycle",
    "retrieval_sources": [
     "Agency's AMS book of business (tenant-scoped)"
    ],
    "validations": [
     "Every match below threshold routed to reviewer with reasoning"
    ],
    "confidence_scoring": "0-100 per match, auto-accept ≥95, reviewer queue below",
    "escalation_triggers": [
     "No candidate match found",
     "Ambiguous multi-candidate match"
    ],
    "human_approval": "Reviewer adjudicates all sub-threshold matches",
    "failure_modes": [
     "Wrong fuzzy match on a common insured name",
     "Stale commission schedule applied"
    ],
    "audit_logs": [
     "Every match decision logged with confidence and reasoning"
    ],
    "metrics": [
     "Auto-match rate",
     "Match-reversal rate on reviewer audit"
    ],
    "versioning": "Prompt versioned independently of the underlying model"
   },
   {
    "name": "Discrepancy Drafter Agent",
    "context": "Reconciliation & Matching",
    "responsibility": "Classify each line's discrepancy type and draft a plain-language explanation citing the source statement and policy.",
    "inputs": [
     "Matched/unmatched statement lines",
     "Commission schedule",
     "Carrier-quirk notes",
     "Prior payment history"
    ],
    "outputs": [
     "Discrepancy classification",
     "Draft explanation with citations"
    ],
    "tools": [
     "Carrier-quirk knowledge base lookup"
    ],
    "forbidden_actions": [
     "Stating a discrepancy is confirmed before reviewer approval",
     "Estimating a dollar gap the schedule doesn't cover"
    ],
    "memory_scope": "Single reconciliation cycle",
    "retrieval_sources": [
     "Carrier-quirk knowledge base"
    ],
    "validations": [
     "Output must cite a source statement line and AMS policy reference"
    ],
    "confidence_scoring": "Qualitative (missing / short-paid / late / chargeback / rate-mismatch / unearned / needs-reviewer-judgment)",
    "escalation_triggers": [
     "Schedule doesn't cover the case"
    ],
    "human_approval": "Reviewer approves every classification before it appears in the docket",
    "failure_modes": [
     "Misclassifying a legitimate chargeback as a short-pay"
    ],
    "audit_logs": [
     "Every classification logged with citation and confidence"
    ],
    "metrics": [
     "Discrepancy-classification accuracy vs. reviewer-corrected value"
    ],
    "versioning": "Prompt versioned independently of the underlying model"
   },
   {
    "name": "Inquiry Drafter Agent",
    "context": "Recovery & Delivery",
    "responsibility": "Draft a professional, inquiry-toned (never demand-toned) email to a carrier's commission department for an approved discrepancy.",
    "inputs": [
     "Approved discrepancy",
     "Agency identity",
     "Commission schedule reference"
    ],
    "outputs": [
     "Drafted carrier inquiry email"
    ],
    "tools": [
     "Demand-language deterministic filter"
    ],
    "forbidden_actions": [
     "Using demand, collection, or legal-threat language",
     "Sending without reviewer approval"
    ],
    "memory_scope": "Single discrepancy inquiry",
    "retrieval_sources": [
     "Carrier-quirk knowledge base",
     "Carrier contact map"
    ],
    "validations": [
     "Draft passes the demand-language filter before reaching the reviewer"
    ],
    "confidence_scoring": "N/A (deterministic filter gate, not a confidence score)",
    "escalation_triggers": [
     "Filter rejects a draft twice in a row for the same discrepancy"
    ],
    "human_approval": "Reviewer approves every draft before send",
    "failure_modes": [
     "Draft reads as aggressive despite passing the filter"
    ],
    "audit_logs": [
     "Every draft + approval + send logged"
    ],
    "metrics": [
     "Carrier response rate",
     "Reviewer edit rate on drafts"
    ],
    "versioning": "Prompt versioned independently of the underlying model"
   }
  ],
  "prompt_chain_map": [
   "Intake -> Extraction Agent (extract + score) -> Matching Agent (match + compute expected) -> Discrepancy Drafter Agent (classify + cite) -> OutputValidator -> Reviewer (approve or escalate)",
   "Approved discrepancy -> Inquiry Drafter Agent (draft) -> demand-language filter -> Reviewer (approve or edit) -> send"
  ],
  "rag_map": [
   "Per-agency AMS book of business (tenant-scoped) -> retrieval router -> agency-scoped hits -> Matching Agent",
   "Versioned per-carrier parser fixture + quirk knowledge base -> shared retrieval -> Extraction Agent and Discrepancy Drafter Agent (cited)"
  ],
  "ai_evaluation": [
   "Golden dataset of past reviewer-accepted matches and discrepancy classifications, per carrier",
   "Regression requirements on auto-match rate + discrepancy-citation coverage",
   "Every prompt release requires a passing evaluator run against the fixture library"
  ],
  "hallucination_controls": [
   "Retrieval-first (no free-form discrepancy generation without a cited statement line and policy reference)",
   "Structured-output validator enforces citation-per-claim",
   "Confidence-scored escalation on extraction and matching",
   "Reviewer gate on every discrepancy and every outbound carrier inquiry",
   "Deterministic filter blocks any demand/collection-style or coverage-determination language before it reaches the reviewer"
  ],
  "human_in_the_loop_plan": [
   "Reviewer signoff on every Commission Ledger before delivery",
   "Reviewer approval on every discrepancy before it appears in a docket or goes to a carrier",
   "Senior-reviewer co-sign on retractions",
   "Owner approval on public-release readiness"
  ],
  "ai_audit_plan": [
   "Every AgentRun logged with prompt version, retrieval hit ids, cost, latency, validator verdict",
   "13-month rolling retention on run logs",
   "Financial/PII data scrubbed from log payloads"
  ],
  "prompt_versioning": "Prompt versions immutable once published; rolled out via feature flag; every rollout paired with an evaluator run against the fixture library.",
  "human_roles": [
   {
    "role": "Agency Principal",
    "responsibilities": [
     "Supply AMS export and carrier statements",
     "Sign carrier-communication authorization",
     "Approve producer split sheet"
    ],
    "contexts": [
     "Intake & Normalization"
    ],
    "decisions_owned": [
     "Whether to engage",
     "Which records to supply",
     "Whether to authorize the recovery-share rider"
    ],
    "ai_support": [
     "[PLACEHOLDER] owner to complete"
    ],
    "approval_authority": "Authorizes the engagement and carrier-communication authorization",
    "escalation_authority": "None (escalates to CommissionClear, not from it)",
    "quality_metrics": [
     "Intake completeness"
    ],
    "workload_risks": [
     "Month-end time scarcity"
    ]
   },
   {
    "role": "Insurance-Accounting Reviewer",
    "responsibilities": [
     "Review AI-drafted matches and discrepancies",
     "Verify evidence sufficiency",
     "Sign off before delivery or carrier send"
    ],
    "contexts": [
     "Reconciliation & Matching",
     "Quality Assurance"
    ],
    "decisions_owned": [
     "Approve, escalate, or reject a discrepancy or match"
    ],
    "ai_support": "Extraction, matching, discrepancy-classification, and inquiry-drafting agents",
    "approval_authority": "Sole authority to sign a Commission Ledger or approve a carrier inquiry",
    "escalation_authority": "Escalates coverage/claims questions to the agency's own licensed staff; disputes beyond routine inquiry to the agency's counsel",
    "quality_metrics": [
     "Client-caught material error rate",
     "Review cycle time"
    ],
    "workload_risks": [
     "Volume spike during month-end delivery window"
    ]
   },
   {
    "role": "Senior Reviewer",
    "responsibilities": [
     "Second-pass sampling on auto-matched lines",
     "Co-sign retractions",
     "Second review on high-value dockets"
    ],
    "contexts": [
     "Quality Assurance"
    ],
    "decisions_owned": [
     "Retraction approval"
    ],
    "ai_support": "None (human-only by design)",
    "approval_authority": "Retraction co-signature authority",
    "escalation_authority": "Escalates to founder/owner",
    "quality_metrics": [
     "Retraction rate"
    ],
    "workload_risks": [
     "Contractor-bench availability at scale"
    ]
   }
  ],
  "human_review_checkpoints": [
   "AI draft -> Reviewer approval",
   "Public release -> owner acceptance",
   "Retraction -> senior-reviewer co-sign",
   "Prompt rollout -> ops + evaluator"
  ],
  "escalation_matrix": [
   "AI -> Reviewer -> Senior Reviewer -> Owner -> Agency's own counsel",
   "Coverage/claims dispute -> Reviewer -> Agency's own licensed staff"
  ],
  "manual_override_rules": [
   "Any manual override captured as an explicit override event with actor + reason",
   "No override may bypass the reviewer-signoff or carrier-authorization invariant"
  ],
  "separation_of_duties": [
   "Extraction/Matching/Drafter Agents cannot sign; Reviewer cannot draft on behalf of AI without an override event; Senior Reviewer cannot silently retract"
  ],
  "quality_control_workflow": [
   "Weekly reviewer calibration meeting",
   "Monthly evaluator regression report",
   "Quarterly carrier-quirk library re-verification review with owner + compliance"
  ],
  "data_objects": [
   {
    "name": "CarrierStatement",
    "meaning": "One carrier's commission statement for one period",
    "owner_context": "Intake & Normalization",
    "writers": [
     "Extraction Agent",
     "Agency Principal"
    ],
    "readers": [
     "Insurance-Accounting Reviewer",
     "Reconciliation & Matching"
    ],
    "source_of_truth": "Intake & Normalization context",
    "retention": "7 years (mirrors standard financial-record retention practice)",
    "privacy": "Sensitive business/financial data, agency-isolated",
    "audit": "Every field change logged"
   },
   {
    "name": "CommissionLedger",
    "meaning": "One reconciliation cycle's signed tie-out record",
    "owner_context": "Reconciliation & Matching",
    "writers": [
     "Matching Agent",
     "Insurance-Accounting Reviewer"
    ],
    "readers": [
     "Agency Principal",
     "Quality Assurance"
    ],
    "source_of_truth": "Reconciliation & Matching context",
    "retention": "7 years",
    "privacy": "Sensitive",
    "audit": "Full version history retained"
   },
   {
    "name": "DiscrepancyDocket",
    "meaning": "One cycle's list of classified, evidenced discrepancies",
    "owner_context": "Reconciliation & Matching",
    "writers": [
     "Discrepancy Drafter Agent",
     "Insurance-Accounting Reviewer"
    ],
    "readers": [
     "Agency Principal",
     "Recovery & Delivery"
    ],
    "source_of_truth": "Reconciliation & Matching context",
    "retention": "7 years",
    "privacy": "Sensitive",
    "audit": "Reviewer approval logged per line"
   }
  ],
  "read_models": [
   "OperatorDashboard read model (per tenant): open cycles, in-review, delivered this week",
   "ReviewerQueue read model: statements/discrepancies awaiting review with confidence + escalation reason",
   "ComplianceLedger read model: open owner actions + release-decision",
   "AnalyticsRollup read model: metric definitions rolled up daily"
  ],
  "reporting_models": [
   "Outcome report per client: packs delivered, cycle time, client-caught error status, recovered dollars",
   "Ops report: AI cost per cycle, escalation rate, reviewer load"
  ],
  "data_duplication_notes": [
   "Reviewer identity is stored in Onboarding, referenced by Quality Assurance — QA does not own it",
   "OwnerActionLedger duplicates minimal facts into read models for Reconciliation & Matching consumption"
  ],
  "data_retention": [
   "Commission Ledgers + Discrepancy Dockets + signoffs: 7 years (standard financial-record retention)",
   "AgentRun logs: 13 months rolling",
   "Users + sessions: life of account + 2 years"
  ],
  "data_quality_risks": [
   "Silent schema drift from a carrier changing its statement layout",
   "Stale commission-schedule version applied after a rate change (mitigated by quarterly re-verification)",
   "Missing retraction cross-links after a legacy client-history import"
  ],
  "use_cases": [
   {
    "name": "Run a Commission Leakage Scan",
    "actor": "Agency Principal",
    "context": "Intake & Normalization",
    "goal": "Get a matched-percentage and estimated-dollar-value finding within 10 business days",
    "preconditions": [
     "AMS export and 3 months of carrier statements supplied"
    ],
    "main_flow": [
     "Intake checklist completed",
     "Statements normalized and tied out",
     "Matching engine runs",
     "Reviewer approves discrepancies",
     "Scan report delivered"
    ],
    "alternative_flows": [
     "No material finding -> report says so explicitly, no fee retained beyond the flat scan price"
    ],
    "business_rules": [
     "No discrepancy ships without reviewer approval"
    ],
    "ai_role": "Extraction, matching, classification, drafting",
    "human_role": "Reviewer approves and signs",
    "commands": [
     "ReceiveStatement",
     "NormalizeStatement",
     "RunMatching",
     "ApproveDiscrepancy"
    ],
    "events": [
     "statement.normalized",
     "reconciliation_cycle.matching_completed",
     "discrepancy.reviewer_approved"
    ],
    "aggregates": [
     "CarrierStatementAggregate",
     "ReconciliationCycleAggregate",
     "DiscrepancyDocketAggregate"
    ],
    "success": "Scan report delivered within SLA with reviewer signature",
    "failure_handling": "Missing inputs trigger an automated nag; cycle does not start until complete",
    "audit": "Full audit trail from statement receipt to report delivery"
   },
   {
    "name": "Deliver a monthly Reconciliation Desk pack",
    "actor": "Insurance-Accounting Reviewer",
    "context": "Recovery & Delivery",
    "goal": "Ship a signed Monthly Reconciliation Pack by the 5th business day",
    "preconditions": [
     "Client on an active Reconciliation Desk tier",
     "Prior cycle's carrier inquiries tracked"
    ],
    "main_flow": [
     "Statements collected and normalized",
     "Matching completed",
     "Discrepancies approved",
     "Carrier inquiries drafted and sent",
     "Ledger signed",
     "Pack delivered"
    ],
    "alternative_flows": [
     "High-value docket (>$2,500) routed to second reviewer before finalization"
    ],
    "business_rules": [
     "Penny-perfect tie-out required before signature"
    ],
    "ai_role": "Extraction, matching, classification, inquiry drafting",
    "human_role": "Reviewer signs; second reviewer on high-value dockets",
    "commands": [
     "RunMatching",
     "ApproveDiscrepancy",
     "SendCarrierInquiry",
     "SignLedger"
    ],
    "events": [
     "commission_ledger.signed",
     "carrier_inquiry.sent",
     "pack.delivered"
    ],
    "aggregates": [
     "CommissionLedgerAggregate",
     "CarrierInquiryAggregate"
    ],
    "success": "Pack delivered on time with a signed ledger",
    "failure_handling": "Missed SLA triggers the error-SLA acknowledgment process",
    "audit": "Full cycle audit trail retained"
   }
  ],
  "architecture": {
   "style": "Modular monolith with edge functions for bursty statement-extraction workloads",
   "why": "One audit boundary, low ops burden for a founder-operated business, easy per-context ownership as the team grows past founder-only.",
   "rejected_alternatives": [
    "Microservices per bounded context (premature at this scale)",
    "No-code workflow tool (can't enforce the penny-perfect deterministic gate reliably)"
   ],
   "backend_modules": [
    "intake-normalization",
    "reconciliation-matching",
    "recovery-delivery",
    "quality-assurance"
   ],
   "frontend_modules": [
    "reviewer-console (internal only at launch)",
    "marketing microsite (public)"
   ],
   "api_boundaries": [
    "Internal reviewer console API (authenticated)",
    "No public API at launch — intake is upload-link/email only"
   ],
   "database_strategy": "Single Postgres instance, tenant_id row-level security on every table",
   "event_bus": "In-process event dispatch at launch; durable queue (e.g. a managed message queue) once cycle volume requires async fan-out",
   "queue": "Background job queue for statement extraction and matching (bursty, month-end-weighted load)",
   "workflow_engine": "None at launch — explicit state machine per aggregate in code",
   "ai_orchestration": "Scripted pipeline calling a single frontier-model provider, prompts + fixtures versioned in the repo",
   "rag_layer": "Per-agency book-of-business retrieval + shared per-carrier parser/quirk knowledge base",
   "file_storage": "Encrypted object storage, per-agency prefix isolation",
   "authn_authz": "SSO with MFA for reviewers; row-level tenant auth for agency-facing surfaces (year-1 client portal)",
   "admin_dashboard": "Internal only at launch (founder + reviewer)",
   "client_portal": "None at launch (email/upload-link delivery); read-only pack-status portal planned year 1",
   "operator_dashboard": "ReviewerQueue read model surfaced in the internal console",
   "observability": "Structured logs + RED metrics + model-call cost/latency spans",
   "audit_logging": "Append-only, hash-chained per reconciliation cycle",
   "deployment": "Single production region, multi-AZ; preview environment per PR"
  },
  "module_structure": {
   "tree": "src/{intake-normalization,reconciliation-matching,recovery-delivery,quality-assurance}/{domain,application,infra}",
   "modules": [
    {
     "name": "intake-normalization",
     "purpose": "Statement receipt, extraction, and tie-out.",
     "owned_domain": [
      "CarrierStatement"
     ],
     "application_services": [
      "ReceiveStatement",
      "NormalizeStatement"
     ],
     "infra_adapters": [
      "Mailbox listener",
      "Object storage adapter",
      "Extraction-model client"
     ],
     "public_interfaces": [
      "statement.normalized event"
     ],
     "forbidden_deps": [
      "Cannot call reconciliation-matching internals directly — event only"
     ]
    },
    {
     "name": "reconciliation-matching",
     "purpose": "Matching, discrepancy classification, ledger tie-out.",
     "owned_domain": [
      "ReconciliationCycle",
      "DiscrepancyDocket",
      "CommissionLedger"
     ],
     "application_services": [
      "RunMatching",
      "ApproveDiscrepancy",
      "SignLedger"
     ],
     "infra_adapters": [
      "AMS-export parser",
      "Commission-schedule store"
     ],
     "public_interfaces": [
      "discrepancy.reviewer_approved event",
      "commission_ledger.signed event"
     ],
     "forbidden_deps": [
      "Cannot call recovery-delivery internals directly — event only"
     ]
    },
    {
     "name": "recovery-delivery",
     "purpose": "Carrier-inquiry drafting/sending, aging, pack assembly.",
     "owned_domain": [
      "CarrierInquiry",
      "ProducerPayoutStatement",
      "MonthlyReconciliationPack"
     ],
     "application_services": [
      "SendCarrierInquiry",
      "AssemblePack",
      "DeliverPack"
     ],
     "infra_adapters": [
      "Email-send adapter",
      "Posting-file generator"
     ],
     "public_interfaces": [
      "pack.delivered event"
     ],
     "forbidden_deps": [
      "Cannot bypass quality-assurance signoff gate"
     ]
    },
    {
     "name": "quality-assurance",
     "purpose": "Signoff and retraction lifecycle.",
     "owned_domain": [
      "Signoff",
      "Retraction"
     ],
     "application_services": [
      "ApproveArtifact",
      "RetractArtifact"
     ],
     "infra_adapters": [
      "Signature-binding session store"
     ],
     "public_interfaces": [
      "ArtifactSigned event"
     ],
     "forbidden_deps": [
      "Cannot draft on behalf of any other module"
     ]
    }
   ],
   "dependency_rules": [
    "Modules communicate only via domain events or explicit application-service calls, never shared database tables",
    "quality-assurance has no outbound dependency on any other module"
   ]
  },
  "security_governance": {
   "controls": [
    {
     "risk": "Cross-tenant data leak",
     "context": "Reconciliation & Matching",
     "impact": "severe",
     "control": "Row-level security on every tenant-scoped table; retrieval indices partitioned per agency",
     "audit": "Access logged with tenant_id + session_id"
    },
    {
     "risk": "Reviewer identity spoofing",
     "context": "Quality Assurance",
     "impact": "severe",
     "control": "SSO + MFA; signature bound to authenticated session, not a form field",
     "audit": "Signature manifest logged per artifact"
    },
    {
     "risk": "Demand-language carrier inquiry sent",
     "context": "Recovery & Delivery",
     "impact": "high",
     "control": "Deterministic filter blocks demand/collection/legal-threat patterns before reviewer sees the draft",
     "audit": "Every blocked draft logged with the trigger phrase"
    }
   ],
   "ai_governance": [
    "Every prompt version checked into the repo",
    "Every AgentRun logged with prompt version + validator verdict",
    "No fine-tuning on client data"
   ],
   "prompt_injection_defense": [
    "Uploaded statement content treated as untrusted input, never as instructions",
    "Extraction output schema-validated before use downstream"
   ],
   "sensitive_data_handling": [
    "Financial/PII scrubbed from logs",
    "Per-agency object-storage prefix isolation",
    "Encryption at rest and in transit"
   ],
   "access_control_matrix": [
    {
     "role": "Agency Principal",
     "context": "Intake & Normalization",
     "capabilities": [
      "Upload statements",
      "View own agency's cycle status"
     ]
    },
    {
     "role": "Insurance-Accounting Reviewer",
     "context": "Reconciliation & Matching, Quality Assurance",
     "capabilities": [
      "Approve discrepancies",
      "Sign ledgers",
      "Approve carrier inquiries"
     ]
    },
    {
     "role": "Senior Reviewer",
     "context": "Quality Assurance",
     "capabilities": [
      "Co-sign retractions",
      "Second-review high-value dockets"
     ]
    }
   ],
   "audit_log_requirements": [
    "Every command + payload hash logged with actor identity",
    "13-month rolling retention on AgentRun logs; 7-year retention on signed ledgers"
   ]
  },
  "observability": {
   "metrics": [
    {
     "metric": "Auto-match rate",
     "type": "leading",
     "context": "Reconciliation & Matching",
     "why": "Directly drives reviewer minutes per cycle",
     "target": "≥90%",
     "alert_threshold": "<80%"
    },
    {
     "metric": "Reviewer minutes per client per cycle",
     "type": "leading",
     "context": "Reconciliation & Matching",
     "why": "Core unit-economics driver",
     "target": "≤115 min by day 90",
     "alert_threshold": ">180 min"
    },
    {
     "metric": "Client-caught material error rate",
     "type": "lagging",
     "context": "Quality Assurance",
     "why": "Trust and retention driver",
     "target": "<0.5%",
     "alert_threshold": ">1%"
    }
   ],
   "dashboards": [
    "Ops dashboard: cycles in flight, reviewer queue depth",
    "Economics dashboard: COGS/client, gross margin trend"
   ],
   "audit_reports": [
    "Monthly signed-ledger audit export per client"
   ],
   "quality_review_reports": [
    "Weekly red-team seeded-error catch rate"
   ],
   "ai_evaluation_reports": [
    "Monthly evaluator regression report per carrier parser"
   ],
   "client_outcome_reports": [
    "Recovered-dollars report per client per quarter"
   ]
  },
  "testing_strategy": {
   "tests": [
    {
     "type": "unit",
     "validates": "Tie-out math and materiality thresholds",
     "context": "Reconciliation & Matching",
     "example": "Ledger total must equal sum of matched + exception-coded lines"
    },
    {
     "type": "contract",
     "validates": "Per-carrier parser output schema",
     "context": "Intake & Normalization",
     "example": "Gold-standard fixture statement per carrier re-run on every prompt change"
    },
    {
     "type": "e2e",
     "validates": "Full intake -> match -> reviewer signoff -> delivery path",
     "context": "cross-context",
     "example": "Smoke test against 5 sample carrier statement formats"
    }
   ],
   "critical_domain_rules": [
    "Penny-perfect tie-out before signature",
    "No discrepancy without a cited source and policy reference",
    "No carrier inquiry without authorization on file"
   ],
   "ai_eval_dataset": [
    "Gold-standard fixture statements per carrier",
    "Reviewer-corrected historical matches and classifications"
   ],
   "regression_plan": "Every parser/prompt/model change re-runs the full fixture suite before touching a live client statement.",
   "contract_testing_plan": "Per-carrier statement schema contract tests run in CI on every parser change.",
   "manual_qa_checklist": [
    "10% second-pass sample of auto-matched lines",
    "Monthly red-team seeded-error check",
    "Every docket over $2,500 second-reviewed"
   ]
  },
  "mvp_roadmap": [
   {
    "phase": "Thin slice",
    "goal": "One end-to-end Commission Leakage Scan delivered and reviewer-signed",
    "features": [
     "Statement intake",
     "Single-carrier-format extraction",
     "Manual-assisted matching"
    ],
    "contexts": [
     "Intake & Normalization",
     "Reconciliation & Matching"
    ],
    "ai_needs": [
     "Extraction Agent v1"
    ],
    "human_workflows": [
     "Founder-run reviewer role"
    ],
    "data_needs": [
     "Fixture statements for 5 formats"
    ],
    "integrations": [
     "None — manual AMS export upload"
    ],
    "risks": [
     "Reviewer cycle time far above target at pilot 1"
    ],
    "exit_criteria": [
     "1 scan delivered within 10 business days, reviewer-signed"
    ]
   }
  ],
  "scaling_roadmap": [
   {
    "stage": "Pilot (1-10 clients)",
    "trigger": "First 10 pilot agencies onboarded",
    "architecture_change": "None — single monolith suffices",
    "operational_change": "Founder is the sole reviewer",
    "risk": "Reviewer bottleneck at any volume spike"
   },
   {
    "stage": "Early scale (10-50 clients)",
    "trigger": "Day-90 checkpoint targets met",
    "architecture_change": "Background job queue for statement extraction",
    "operational_change": "Contract a second insurance-accounting reviewer",
    "risk": "Parser library coverage gaps on new carriers slow onboarding"
   }
  ],
  "risk_register": [
   {
    "risk": "AMS vendor bundles reconciliation 'free' with a chase workflow",
    "likelihood": "medium-high",
    "impact": "high",
    "signal": "Applied Recon or a competing AMS module adds chase/recovery features",
    "mitigation": "AMS-agnostic positioning; recovery/chase as the human moat",
    "owner": "owner",
    "context": "Recovery & Delivery"
   },
   {
    "risk": "Scan-to-desk conversion underperforms",
    "likelihood": "medium",
    "impact": "severe",
    "signal": "Pilot cohort conversion below 25%",
    "mitigation": "Pilot gate at 25%; alternative packaging tested in cohort 2",
    "owner": "owner",
    "context": "product"
   },
   {
    "risk": "False-positive discrepancy sent to a carrier",
    "likelihood": "medium",
    "impact": "high",
    "signal": "Carrier disputes an inquiry as unfounded",
    "mitigation": "100% reviewer approval; evidence-link requirement; inquiry-not-demand language",
    "owner": "legal",
    "context": "Recovery & Delivery"
   }
  ],
  "adrs": [
   {
    "id": "ADR-001",
    "decision": "Adopt a modular monolith, not microservices, at launch",
    "status": "accepted",
    "context": "Founder-operated team; low ops burden required",
    "options": [
     "Modular monolith",
     "Microservices per bounded context",
     "No-code workflow tool"
    ],
    "chosen": "Modular monolith",
    "business_reason": "Fastest path to first paid pilot without a platform team",
    "technical_reason": "One deploy, one audit boundary, easy to reason about at this scale",
    "tradeoffs": [
     "[PLACEHOLDER] owner to complete"
    ],
    "risks": [
     "[PLACEHOLDER] owner to complete"
    ],
    "revisit_trigger": "Sustained CPU/latency pressure isolated to one module",
    "why": "One deploy, one audit boundary, easy to reason about at this scale",
    "consequences": "Will need extraction into services if reviewer-console load grows sharply",
    "reversal": "Would require a migration of the affected module's data model.",
    "revisit_when": "Sustained CPU/latency pressure isolated to one module"
   },
   {
    "id": "ADR-002",
    "decision": "Deterministic code owns all money math; the model never computes a final dollar figure",
    "status": "accepted",
    "context": "Penny-perfect tie-out is a hard trust requirement",
    "options": [
     "Model computes totals",
     "Deterministic code computes totals, model only extracts/classifies"
    ],
    "chosen": "Deterministic code computes totals",
    "business_reason": "A wrong dollar figure from a model is the single fastest way to lose a client's trust",
    "technical_reason": "Removes an entire class of hallucination risk from the highest-stakes output",
    "tradeoffs": "Slightly more engineering work per new transaction-type edge case",
    "risks": "Edge cases not yet coded fall through to reviewer manual calculation",
    "revisit_trigger": "None — this is a standing invariant, not revisited",
    "why": "Removes an entire class of hallucination risk from the highest-stakes output",
    "consequences": "Slightly more engineering work per new transaction-type edge case",
    "reversal": "Would require a migration of the affected module's data model.",
    "revisit_when": "None — this is a standing invariant, not revisited"
   }
  ],
  "self_audit": {
   "scores": [
    {
     "category": "domain_modeling",
     "score": 4,
     "weakness": "Carrier-quirk knowledge base is described but not yet instantiated with real carrier data",
     "improvement": "Populate from the first 5 pilot agencies' actual carrier mixes"
    },
    {
     "category": "ai_governance",
     "score": 4,
     "weakness": "Evaluator regression suite depends on fixture statements not yet collected at volume",
     "improvement": "Build the fixture library incrementally from each pilot's real (anonymized) statements"
    },
    {
     "category": "compliance_boundary",
     "score": 3,
     "weakness": "State-by-state collection-agency-statute review for the recovery-share rider is not yet complete",
     "improvement": "Complete counsel review in the first 5 operating states before offering the rider broadly"
    }
   ],
   "weakest_parts": [
    "State-by-state licensing review for the recovery-share rider",
    "Carrier-quirk knowledge base population"
   ],
   "biggest_assumptions": [
    "Scan-to-desk conversion reaches 25-40%",
    "Reviewer minutes per client fall as projected by day 90"
   ],
   "highest_risk_decisions": [
    "Offering the recovery-share rider before full state-by-state counsel review",
    "Relying on a single named reviewer at pilot scale"
   ],
   "needs_domain_expert": [
    "[PLACEHOLDER] owner to complete"
   ],
   "needs_legal": [
    "[PLACEHOLDER] owner to complete"
   ],
   "needs_prototype": [
    "[PLACEHOLDER] owner to complete"
   ],
   "validate_before_prod": [
    "[PLACEHOLDER] owner to complete"
   ]
  },
  "final_recommendations": [
   "Ship a modular-monolith, evidence-linked, reviewer-gated vertical slice for CommissionClear. Preserve the invariant that no Commission Ledger or carrier inquiry leaves the system without a signed human release. Do not launch commercially until owner-action facts close and at least one reviewer-released Monthly Reconciliation Pack has shipped.",
   "Do NOT default to microservices. Extract a module only when a specific pressure demands it.",
   "Do NOT allow AI outputs to leave the Reconciliation & Matching or Recovery & Delivery contexts without OutputValidator pass and citation coverage.",
   "Do NOT ship any public claim on the CommissionClear microsite while owner-action facts (entity, reviewer identity, trademark clearance) remain open.",
   "Do NOT reuse a competitor/customer pairing or a dollar figure in client-facing copy without a fresh-verification citation — this exact failure mode (a misattributed customer relationship) was found and corrected in this build."
  ],
  "extensions": {
   "service_business_reality_check": {
    "is_service_business": true,
    "paid_outcome_clear": true,
    "workflow_present": true,
    "ai_native_fit_score": 4.5,
    "red_flags": [
     "[PLACEHOLDER] owner to complete"
    ]
   },
   "ai_native_fit": {
    "score": 4.6,
    "why": "High-volume, document-heavy, rules-based matching with judgment concentrated in a small exception queue — the exact shape of work current frontier models do well, and margins expand as parsing/matching accuracy improves.",
    "disqualifiers": [
     "[PLACEHOLDER] owner to complete"
    ]
   },
   "domain_evidence_register": [
    {
     "claim": "52% of agencies receive direct-bill commission statements, up from 45% in 2022",
     "evidence_type": "primary-research summary",
     "source": "Big \"I\" Agency Universe Study (via IA Magazine)",
     "strength": "high",
     "gaps": "None — corroborated across two independent trade-press summaries"
    },
    {
     "claim": "Comulate serves large brokers and remains operational as of mid-2026",
     "evidence_type": "press + legal filing coverage",
     "source": "Comulate/Workday Ventures materials; federal court ruling coverage, Feb 2026",
     "strength": "high",
     "gaps": "Exact customer roster not independently verifiable — corrected one misattributed customer pairing this build"
    }
   ],
   "assumption_register": [
    {
     "assumption": "Scan-to-desk conversion reaches 25-40%",
     "impact_if_wrong": "severe — wedge economics fail",
     "how_to_validate": "10-agency pilot cohort with explicit pricing conversation",
     "blocking": true
    },
    {
     "assumption": "Reviewer minutes per client fall as parser coverage grows",
     "impact_if_wrong": "high — margin target missed",
     "how_to_validate": "Instrument reviewer minutes per cycle from pilot 1 onward",
     "blocking": false
    }
   ],
   "language_conflict_map": [
    {
     "term": "pack",
     "meaning_a": "Monthly Reconciliation Pack (this business's bundled deliverable: ledger + docket + report + payouts + posting file)",
     "context_a": "CommissionClear",
     "meaning_b": "A different bundled-deliverable term used by unrelated businesses elsewhere in the AINBIS portfolio",
     "context_b": "other portfolio businesses (not this one)",
     "resolution": "Always qualify as 'Monthly Reconciliation Pack' in CommissionClear copy; never bare 'pack' without the qualifier in cross-portfolio contexts"
    }
   ],
   "build_buy_integrate": [
    {
     "subdomain": "Reconciliation & Matching",
     "decision": "build",
     "reason": "Core differentiated IP — the parser/matching engine is the moat"
    },
    {
     "subdomain": "Referral & Outreach",
     "decision": "buy",
     "reason": "Off-the-shelf CRM suffices; not differentiating"
    }
   ],
   "core_protection_strategy": [
    "[PLACEHOLDER] owner to complete"
   ],
   "boundary_stress_tests": [
    {
     "scenario": "A carrier disputes an inquiry as a collection demand",
     "contexts_touched": [
      "Recovery & Delivery"
     ],
     "breaks_if": "The demand-language filter has a gap for a novel phrasing",
     "verdict": "Mitigated by reviewer approval as a second gate"
    }
   ],
   "unresolved_ownership": [
    {
     "concept": "Producer split sheet accuracy",
     "candidates": [
      "Agency Principal",
      "Insurance-Accounting Reviewer"
     ],
     "recommendation": "Agency Principal owns and approves the split sheet; CommissionClear only computes from it"
    }
   ],
   "published_language_contracts": [
    {
     "producer": "Intake & Normalization",
     "consumer": "Reconciliation & Matching",
     "contract": "Canonical normalized statement schema",
     "versioning": "Schema version pinned per carrier parser release"
    }
   ],
   "shared_kernel_warnings": [
    "None identified — bounded contexts communicate only via events, no shared kernel"
   ],
   "aggregate_stress_tests": [
    {
     "aggregate": "CommissionLedgerAggregate",
     "scenario": "Concurrent reviewer sign attempts on the same ledger",
     "invariant_at_risk": "Penny-perfect tie-out before signature",
     "verdict": "Mitigated by optimistic locking on the aggregate root"
    }
   ],
   "agent_stress_tests": [
    {
     "agent": "Inquiry Drafter Agent",
     "scenario": "A carrier's known aggressive collections department prompts an escalated tone",
     "failure_mode": "Draft reads as a threat despite passing the deterministic filter",
     "guardrail": "Reviewer approval catches tone issues the filter misses",
     "verdict": "Acceptable with reviewer gate"
    }
   ],
   "regulated_domain_handling": [
    {
     "regime": "State producer-licensing statutes",
     "applies_because": "CommissionClear performs back-office accounting adjacent to a licensed industry",
     "controls": [
      "No selling/soliciting/negotiating",
      "No consumer contact"
     ],
     "evidence_required": [
      "[PLACEHOLDER] owner to complete"
     ]
    },
    {
     "regime": "State collection-agency statutes",
     "applies_because": "Carrier inquiries could be miscategorized as third-party debt collection",
     "controls": [
      "Inquiries sent under agency's own name",
      "Administrative-agent authorization",
      "No demand language"
     ],
     "evidence_required": "Per-state counsel review before offering the recovery-share rider"
    }
   ],
   "unit_economics": {
    "price_model": "Flat monthly desk fee by volume tier + one-time scan + capped recovery-share rider",
    "unit_of_value": "reconciliation cycle (one client-month)",
    "gross_margin_pct": 62,
    "cost_drivers": [
     "Model inference (parse/match/draft)",
     "Reviewer minutes",
     "QA sampling"
    ],
    "breakeven_note": "COGS/client falls from $510 at launch to $245 by year 1 as parser coverage and auto-match rate improve"
   },
   "margin_leakage_map": [
    {
     "leakage": "Reviewer minutes not falling with parser coverage",
     "cause": "New carrier formats not yet in the fixture library",
     "impact": "Gross margin compression per new client",
     "mitigation": "Fixture library grows with every pilot; reuse across clients on the same carrier"
    }
   ],
   "slop_findings": [
    {
     "pattern": "Generic SaaS marketing phrasing",
     "status": "checked",
     "note": "Banned-phrase list enforced on the landing page (no 'leverage AI', 'streamline', etc.)"
    }
   ],
   "drift_checks": [
    {
     "stage": "build",
     "status": "checked",
     "findings": [
      "[PLACEHOLDER] owner to complete"
     ]
    }
   ],
   "gates": [
    {
     "id": "G1",
     "title": "No public claim before owner-action facts close",
     "passed": false,
     "checks": [
      {
       "name": "Entity confirmed",
       "ok": false,
       "evidence": "Pending owner action"
      },
      {
       "name": "Reviewer identity confirmed",
       "ok": false,
       "evidence": "Pending owner action"
      },
      {
       "name": "Trademark clearance",
       "ok": false,
       "evidence": "Pending owner action"
      }
     ]
    }
   ],
   "contradiction_scan": [
    {
     "id": "C1",
     "severity": "medium",
     "message": "Blueprint attributed Baldwin Group to Comulate; fresh sourcing shows Baldwin Group uses Ascend/ReSource Pro instead",
     "refs": [
      "business-plan.md fresh-verification notes"
     ]
    }
   ],
   "rubric": {
    "categories": [
     {
      "category": "domain_modeling",
      "score": 4,
      "min": 3,
      "passed": true
     },
     {
      "category": "ai_governance",
      "score": 4,
      "min": 3,
      "passed": true
     },
     {
      "category": "compliance_boundary",
      "score": 4,
      "min": 3,
      "passed": true
     },
     {
      "category": "unit_economics",
      "score": 4,
      "min": 3,
      "passed": true
     },
     {
      "category": "gtm_clarity",
      "score": 4,
      "min": 3,
      "passed": true
     }
    ],
    "pass": true,
    "average": 4.1
   },
   "foundry_package": {
    "version": "1.0.0",
    "checksum": "n/a-generated-locally",
    "counts": {
     "subdomains": 4,
     "bounded_contexts": 4,
     "aggregates": 7,
     "events": 6,
     "commands": 6,
     "policies": 4,
     "ai_agents": 4,
     "invariants": 4,
     "integrations": 4,
     "adrs": 2
    },
    "subset": {
     "subdomains": [
      "Reconciliation & Matching",
      "Recovery & Delivery",
      "Evidence & Compliance",
      "Referral & Outreach"
     ],
     "bounded_contexts": [
      "Intake & Normalization",
      "Reconciliation & Matching",
      "Recovery & Delivery",
      "Quality Assurance"
     ],
     "aggregates": [
      "CarrierStatementAggregate",
      "ReconciliationCycleAggregate",
      "DiscrepancyDocketAggregate",
      "CommissionLedgerAggregate",
      "CarrierInquiryAggregate",
      "SignoffAggregate",
      "RetractionAggregate"
     ],
     "events": [
      "statement.received",
      "statement.normalized",
      "reconciliation_cycle.matching_completed",
      "discrepancy.reviewer_approved",
      "commission_ledger.signed",
      "carrier_inquiry.sent"
     ],
     "commands": [
      "ReceiveStatement",
      "NormalizeStatement",
      "RunMatching",
      "ApproveDiscrepancy",
      "SignLedger",
      "SendCarrierInquiry"
     ],
     "policies": [
      "Auto-route low-confidence match to reviewer",
      "Block demand-language patterns",
      "Second-reviewer spot check",
      "Auto-escalate aging inquiry"
     ],
     "ai_agents": [
      "Extraction Agent",
      "Matching Agent",
      "Discrepancy Drafter Agent",
      "Inquiry Drafter Agent"
     ],
     "invariants": [
      "A Commission Ledger cannot be signed without tying to statement totals to the penny",
      "A CarrierInquiry cannot be sent without reviewer approval and agency authorization on file",
      "No discrepancy is published without a cited source-statement and AMS-policy reference",
      "CommissionClear never issues a coverage or claims-adjustment determination"
     ],
     "integrations": [
      "Agency management system (AMS) export",
      "Carrier statement portals",
      "QuickBooks / AMS posting-file import",
      "Carrier commission-department mailbox"
     ],
     "adrs": [
      "ADR-001",
      "ADR-002"
     ]
    }
   }
  }
 },
 "ddd_coverage": {
  "slug": "agency-direct-bill-commission-recovery-desk",
  "total": 17,
  "passed": 17,
  "pct": 100,
  "checks": [
   {
    "key": "actors",
    "label": "Actors",
    "count": 4,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "subdomains",
    "label": "Subdomains",
    "count": 4,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "bounded_contexts",
    "label": "Bounded Contexts",
    "count": 4,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "aggregates",
    "label": "Aggregates",
    "count": 7,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "events",
    "label": "Events",
    "count": 6,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "commands",
    "label": "Commands",
    "count": 6,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "policies",
    "label": "Policies",
    "count": 4,
    "min": 2,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "ai_agents",
    "label": "Ai Agents",
    "count": 4,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "invariants",
    "label": "Invariants",
    "count": 4,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "use_cases",
    "label": "Use Cases",
    "count": 2,
    "min": 2,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "human_roles",
    "label": "Human Roles",
    "count": 3,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "data_objects",
    "label": "Data Objects",
    "count": 3,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "risk_register",
    "label": "Risk Register",
    "count": 3,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "adrs",
    "label": "Adrs",
    "count": 2,
    "min": 2,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "mvp_roadmap",
    "label": "Mvp Roadmap",
    "count": 1,
    "min": 1,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "scaling_roadmap",
    "label": "Scaling Roadmap",
    "count": 2,
    "min": 2,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "context_map",
    "label": "Context Map",
    "count": 4,
    "min": 2,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   }
  ],
  "failingGates": [
   "[PLACEHOLDER] owner to complete"
  ]
 },
 "architecture": {
  "slug": "agency-direct-bill-commission-recovery-desk",
  "archetypes": [
   "reconciliation-and-recovery workflow application",
   "back-office document-intelligence service"
  ],
  "archetype_impact": "Reconciliation cycle (client + calendar month) is the global scoping parameter — every read/write is scoped by agency tenant and cycle, not just tenant alone.",
  "personality": [
   "numerate",
   "calm",
   "evidence-first",
   "no hype"
  ],
  "forces_ranked": [
   {
    "force": "Trust/accuracy (penny-perfect tie-out)",
    "why": "A wrong ledger is the single fastest way to lose a client"
   },
   {
    "force": "Founder-operability (low ops burden)",
    "why": "Founder-operated launch cannot support a platform team"
   },
   {
    "force": "Time-to-first-revenue",
    "why": "Pilot cohort must convert within 90 days to validate the model"
   },
   {
    "force": "Scalability beyond pilot",
    "why": "Lowest priority at launch; revisit at 20+ clients"
   }
  ],
  "tradeoffs": [
   "Modular monolith trades some future scaling ease for launch speed and audit simplicity",
   "Manual carrier follow-up at launch trades automation for learning real response patterns first"
  ],
  "quality_scenarios": [
   {
    "attribute": "accuracy",
    "assumption": "Every statement line ties to its source",
    "target": "Ledger tie-out to the penny before signature, 100% of releases"
   },
   {
    "attribute": "reviewability",
    "assumption": "A reviewer can reconstruct any evidence chain quickly",
    "target": "Under 5 minutes to trace any ledger line to its source statement"
   }
  ],
  "options": [
   {
    "style": "Modular monolith",
    "complexity": "low",
    "cost": "low",
    "ops_burden": "low",
    "team_fit": "high (founder-operated)",
    "scaling_path": "Extract modules under pressure",
    "security_impact": "Single audit boundary",
    "fits_here": true,
    "fits_when": "Founder/small-team launch",
    "wrong_here": false,
    "recommended": true
   },
   {
    "style": "Microservices per bounded context",
    "complexity": "high",
    "cost": "high",
    "ops_burden": "high",
    "team_fit": "low at launch",
    "scaling_path": "Already decomposed",
    "security_impact": "More boundaries to secure",
    "fits_here": false,
    "fits_when": "Large team, proven scale pressure",
    "wrong_here": true,
    "recommended": false
   },
   {
    "style": "No-code workflow tool",
    "complexity": "low",
    "cost": "low",
    "ops_burden": "low",
    "team_fit": "medium",
    "scaling_path": "Poor — hard to enforce deterministic gates",
    "security_impact": "Vendor-dependent",
    "fits_here": false,
    "fits_when": "No hard money-math invariant",
    "wrong_here": true,
    "recommended": false
   }
  ],
  "chosen_style": "modular monolith",
  "chosen_rationale": "Modular monolith with background jobs for bursty statement-extraction work — one audit boundary, low ops burden, easy per-context ownership as the team grows.",
  "rejected": [
   {
    "style": "Microservices per bounded context",
    "why_rejected": "Premature operational complexity for a founder-operated launch"
   },
   {
    "style": "No-code workflow tool",
    "why_rejected": "Cannot reliably enforce the deterministic penny-perfect gate"
   }
  ],
  "target": {
   "overview": "Single-region modular monolith, Postgres primary store, background job queue for extraction/matching, internal reviewer console, public marketing microsite.",
   "frontend": "Reviewer console (internal, authenticated) + public marketing microsite (static, self-contained)",
   "backend": "Single deployable service, module boundaries enforced by code convention and event-only cross-module calls",
   "data": "Postgres with row-level tenant security; object storage for statement files",
   "api": "Internal authenticated API for the reviewer console; no public API at launch",
   "authn_authz": "SSO + MFA for reviewers; row-level auth scaffolding for a future client portal",
   "integrations": "AMS export file ingestion; carrier statement mailbox/portal; QuickBooks/AMS posting-file export",
   "background_jobs": "Statement extraction, matching, aging-escalation checks",
   "object_storage": "Encrypted, per-agency-prefix isolated",
   "notifications": "Email only at launch (client comms + internal escalation alerts)",
   "search": "None at launch",
   "analytics": "Internal metrics dashboard only; no third-party analytics on the reviewer console",
   "ai": "Single frontier-model provider via a scripted extraction/matching/drafting pipeline, prompts + fixtures versioned in-repo",
   "observability": "Structured logs, RED metrics, model-call cost/latency spans",
   "deployment": "Single production region, multi-AZ, preview environment per PR",
   "security": "Row-level tenant isolation, encryption at rest/in transit, least-privilege access",
   "dr": "Daily backups, tested restore runbook, RPO 24h / RTO 4h at launch scale"
  },
  "modules": [
   {
    "name": "intake-normalization",
    "purpose": "Statement receipt, extraction, and tie-out.",
    "owned_domain": [
     "CarrierStatement"
    ],
    "application_services": [
     "ReceiveStatement",
     "NormalizeStatement"
    ],
    "infra_adapters": [
     "Mailbox listener",
     "Object storage adapter",
     "Extraction-model client"
    ],
    "public_interfaces": [
     "statement.normalized event"
    ],
    "forbidden_deps": [
     "Cannot call reconciliation-matching internals directly — event only"
    ],
    "responsibility": "Statement receipt, extraction, and tie-out.",
    "owned_data": [
     "CarrierStatement"
    ],
    "events_produced": [
     "statement.normalized event"
    ],
    "events_consumed": [
     "[PLACEHOLDER] owner to complete"
    ],
    "interfaces": [
     "statement.normalized event"
    ],
    "depends_on": [
     "[PLACEHOLDER] owner to complete"
    ],
    "entities": [
     "CarrierStatement"
    ],
    "failure_risks": [
     "Module-boundary violation via direct DB access"
    ],
    "scaling": "Extract to a service only under sustained isolated load pressure",
    "future_split_trigger": "Sustained CPU/latency pressure isolated to this module"
   },
   {
    "name": "reconciliation-matching",
    "purpose": "Matching, discrepancy classification, ledger tie-out.",
    "owned_domain": [
     "ReconciliationCycle",
     "DiscrepancyDocket",
     "CommissionLedger"
    ],
    "application_services": [
     "RunMatching",
     "ApproveDiscrepancy",
     "SignLedger"
    ],
    "infra_adapters": [
     "AMS-export parser",
     "Commission-schedule store"
    ],
    "public_interfaces": [
     "discrepancy.reviewer_approved event",
     "commission_ledger.signed event"
    ],
    "forbidden_deps": [
     "Cannot call recovery-delivery internals directly — event only"
    ],
    "responsibility": "Matching, discrepancy classification, ledger tie-out.",
    "owned_data": [
     "ReconciliationCycle",
     "DiscrepancyDocket",
     "CommissionLedger"
    ],
    "events_produced": [
     "discrepancy.reviewer_approved event",
     "commission_ledger.signed event"
    ],
    "events_consumed": [],
    "interfaces": [
     "discrepancy.reviewer_approved event",
     "commission_ledger.signed event"
    ],
    "depends_on": [],
    "entities": [
     "ReconciliationCycle",
     "DiscrepancyDocket",
     "CommissionLedger"
    ],
    "failure_risks": [
     "Module-boundary violation via direct DB access"
    ],
    "scaling": "Extract to a service only under sustained isolated load pressure",
    "future_split_trigger": "Sustained CPU/latency pressure isolated to this module"
   },
   {
    "name": "recovery-delivery",
    "purpose": "Carrier-inquiry drafting/sending, aging, pack assembly.",
    "owned_domain": [
     "CarrierInquiry",
     "ProducerPayoutStatement",
     "MonthlyReconciliationPack"
    ],
    "application_services": [
     "SendCarrierInquiry",
     "AssemblePack",
     "DeliverPack"
    ],
    "infra_adapters": [
     "Email-send adapter",
     "Posting-file generator"
    ],
    "public_interfaces": [
     "pack.delivered event"
    ],
    "forbidden_deps": [
     "Cannot bypass quality-assurance signoff gate"
    ],
    "responsibility": "Carrier-inquiry drafting/sending, aging, pack assembly.",
    "owned_data": [
     "CarrierInquiry",
     "ProducerPayoutStatement",
     "MonthlyReconciliationPack"
    ],
    "events_produced": [
     "pack.delivered event"
    ],
    "events_consumed": [],
    "interfaces": [
     "pack.delivered event"
    ],
    "depends_on": [],
    "entities": [
     "CarrierInquiry",
     "ProducerPayoutStatement",
     "MonthlyReconciliationPack"
    ],
    "failure_risks": [
     "Module-boundary violation via direct DB access"
    ],
    "scaling": "Extract to a service only under sustained isolated load pressure",
    "future_split_trigger": "Sustained CPU/latency pressure isolated to this module"
   },
   {
    "name": "quality-assurance",
    "purpose": "Signoff and retraction lifecycle.",
    "owned_domain": [
     "Signoff",
     "Retraction"
    ],
    "application_services": [
     "ApproveArtifact",
     "RetractArtifact"
    ],
    "infra_adapters": [
     "Signature-binding session store"
    ],
    "public_interfaces": [
     "ArtifactSigned event"
    ],
    "forbidden_deps": [
     "Cannot draft on behalf of any other module"
    ],
    "responsibility": "Signoff and retraction lifecycle.",
    "owned_data": [
     "Signoff",
     "Retraction"
    ],
    "events_produced": [
     "ArtifactSigned event"
    ],
    "events_consumed": [],
    "interfaces": [
     "ArtifactSigned event"
    ],
    "depends_on": [],
    "entities": [
     "Signoff",
     "Retraction"
    ],
    "failure_risks": [
     "Module-boundary violation via direct DB access"
    ],
    "scaling": "Extract to a service only under sustained isolated load pressure",
    "future_split_trigger": "Sustained CPU/latency pressure isolated to this module"
   }
  ],
  "data_architecture": {
   "primary_db": "Postgres",
   "secondary": [
    "Object storage for statement files"
   ],
   "cache": "None at launch",
   "search": "None at launch",
   "vector": "None at launch (retrieval is structured lookup, not embeddings, at this scale)",
   "object_storage": "Per-agency-prefix isolated bucket",
   "schema_strategy": "Migration-gated, reviewed per PR",
   "migrations": "Forward-only, reviewed",
   "backups": "Daily automated, tested restore quarterly",
   "retention": "7 years on signed ledgers/dockets; 13 months on agent-run logs",
   "audit_logs": "Append-only, hash-chained per reconciliation cycle",
   "soft_delete": "Used for client offboarding, hard-delete on retention expiry",
   "privacy": "Per-tenant row-level security",
   "encryption": "At rest and in transit",
   "multi_tenancy": "Logical isolation via tenant_id row-level security"
  },
  "api": {
   "style": "Internal REST",
   "public_vs_internal": "Internal only at launch",
   "versioning": "Path-versioned when a client portal ships",
   "rate_limiting": "Per-tenant budget caps on model-backed endpoints",
   "idempotency": "Idempotency keys on statement ingestion",
   "pagination": "Cursor-based on list endpoints",
   "error_format": "Structured JSON problem-details",
   "webhook_security": "N/A at launch",
   "retries": "Exponential backoff on model-provider calls",
   "contract_testing": "Per-carrier parser schema contract tests in CI",
   "backward_compat": "N/A at launch (no public API)",
   "contract_testing_plan": "Fixture-based regression suite run on every parser/prompt change"
  },
  "security": {
   "authn": "SSO + MFA for reviewers",
   "authz": "Role-based, server-side capability checks",
   "tenant_isolation": "Row-level security keyed on tenant_id",
   "secrets": "Managed secrets store, no secrets in code",
   "encryption": "At rest and in transit",
   "session": "Server-side session with short-lived tokens",
   "input_validation": "Schema validation on every ingestion path",
   "api_protection": "Rate limiting + auth on all internal endpoints",
   "audit_log": "Append-only, hash-chained",
   "admin_access": "Break-glass access logged and time-boxed",
   "supply_chain": "Dependency scanning in CI",
   "threat_model": [
    "Cross-tenant leak",
    "Reviewer identity spoofing",
    "Prompt injection via uploaded statements"
   ],
   "abuse_cases": [
    "Bulk fraudulent statement upload attempting to poison the matching engine"
   ],
   "zero_trust": "Server-side checks on every capability, never client-only",
   "asvs_notes": "Aligned to OWASP ASVS L2 controls for a B2B financial-data service"
  },
  "reliability": {
   "failure_modes": [
    "Model-provider outage mid-extraction",
    "Carrier portal credential expiry",
    "Statement queue backlog at month-end"
   ],
   "graceful_degradation": "Queue and retry rather than fail hard; reviewer notified of delayed cycles",
   "retry_policy": "Exponential backoff, max 5 attempts on model calls",
   "timeouts": "30s extraction timeout, background-job fallback beyond that",
   "circuit_breaker": "Trip on repeated model-provider failures, alert on-call",
   "queueing": "Background job queue for extraction/matching",
   "idempotency": "Idempotency keys on statement ingestion",
   "dlq": "Dead-letter queue for repeatedly failing extraction jobs",
   "transactions": "Aggregate-scoped transactions, no cross-aggregate transactions",
   "dr": "Daily backups, quarterly restore test",
   "incident_response": "Runbook: detect, contain, notify, root-cause, postmortem",
   "slos": [
    {
     "name": "p95 statement extraction latency",
     "target": "under 30s"
    },
    {
     "name": "Monthly pack on-time delivery",
     "target": "≥95% of cycles by the 5th business day"
    }
   ]
  },
  "scaling": {
   "mvp_can_stay_simple": [
    "Single Postgres instance",
    "In-process event dispatch"
   ],
   "modular_now": [
    "Module boundaries enforced by convention"
   ],
   "deferrable": [
    "Client-facing portal",
    "Public API",
    "Vector search"
   ],
   "breaks_first": "Reviewer throughput before infrastructure",
   "db_path": "Read replicas once reporting load grows",
   "jobs_path": "Managed queue once in-process dispatch saturates",
   "cache_path": "Add a cache layer only if read latency becomes a measured problem",
   "search_path": "Add full-text search only if client-portal search becomes a real need",
   "files_path": "Object storage scales natively",
   "api_path": "Add a versioned public API only when a client portal ships",
   "multi_region": "Not needed at this scale",
   "cost_control": "Per-tenant model-spend budget caps"
  },
  "ai": {
   "provider": "Single frontier-model provider (model-agnostic schemas/prompts, swappable within days)",
   "prompt_mgmt": "Versioned in-repo, immutable once published",
   "rag": "Structured per-agency + per-carrier retrieval, not embeddings-based at this scale",
   "vector": "Not used at this scale",
   "embeddings": "Not used at this scale",
   "eval": "Fixture-based regression suite per carrier",
   "hitl": "Reviewer gate on every discrepancy and carrier inquiry",
   "guardrails": "Deterministic output filters + structured validation",
   "prompt_injection": "Uploaded statement content treated as untrusted data, never instructions",
   "leakage": "Per-tenant retrieval partitioning",
   "fallback": "Dual-provider fallback path documented, not yet implemented at pilot scale",
   "latency_cost": "Tracked per AgentRun",
   "memory": "Session-scoped only, no persistent cross-client memory",
   "tool_permissions": "Extraction/matching/drafting agents have read-only access to their own context's data",
   "auditability": "Every AgentRun logged with prompt version + validator verdict",
   "citation": "Every discrepancy and eligibility-adjacent claim must cite a source"
  },
  "devops": {
   "environments": [
    "local",
    "preview (per-PR)",
    "staging",
    "production (single region + multi-AZ)"
   ],
   "cicd": "PR -> typecheck + unit + snapshot -> preview deploy -> main auto-deploys",
   "iac": "Declarative infra config checked into the repo",
   "secrets": "Managed secrets store",
   "preview_envs": "Per-PR ephemeral environments",
   "migrations": "Reviewed, forward-only",
   "rollback": "Blue/green deploy with fast rollback",
   "release_style": "Continuous deployment on main, feature-flagged risky changes",
   "feature_flags": "Used for prompt-version rollouts",
   "monitoring": "Structured logs + RED metrics",
   "alerting": "On-call paged on SLO breach",
   "logs": "Structured, tenant-scoped, PII-scrubbed",
   "error_tracking": "Source-mapped error tracking",
   "uptime": "Target 99.5% at pilot scale",
   "cost_monitoring": "Per-tenant model-spend dashboard"
  },
  "testing": {
   "unit": "Tie-out math and materiality thresholds",
   "integration": "Cross-module event contracts",
   "contract": "Per-carrier parser schema",
   "e2e": "Intake to delivery smoke test",
   "security": "Row-level isolation tests",
   "a11y": "axe-core on reviewer surfaces",
   "load": "Month-end volume simulation",
   "chaos": "Model-provider outage simulation",
   "migration": "Forward-only migration dry-run in CI",
   "backup_restore": "Quarterly restore drill",
   "ai_eval": "Fixture-based regression suite per carrier",
   "test_data": "Anonymized gold-standard statement fixtures"
  },
  "observability": {
   "logs": "Structured, tenant-scoped, PII-scrubbed",
   "metrics": "RED metrics per workflow",
   "traces": "Model-call spans with cost + latency",
   "audit_events": "Append-only, hash-chained per cycle",
   "business_events": "scan_requested, pack_delivered, discrepancy_approved",
   "error_tracking": "Source-mapped error tracking",
   "security_monitoring": "Cross-tenant access-attempt alerting",
   "cost_monitoring": "Per-tenant model-spend dashboard",
   "dashboards": [
    "Ops dashboard",
    "Economics dashboard"
   ],
   "alert_thresholds": [
    "Auto-match rate <80%",
    "Reviewer minutes >180/cycle"
   ],
   "triage": "On-call reviews alert, checks tenant scope, escalates per runbook"
  },
  "cost": {
   "drivers": [
    {
     "name": "Model inference per statement",
     "note": "Scales with statement volume, falls per-statement as parser coverage grows"
    },
    {
     "name": "Reviewer labor minutes",
     "note": "Falls with auto-match rate improvement"
    },
    {
     "name": "Object storage",
     "note": "Linear with client count, low absolute cost"
    }
   ],
   "likely_traps": [
    "Over-provisioning background workers before real volume data exists"
   ],
   "controls": [
    "Per-tenant budget caps",
    "Monthly cost-per-client dashboard review"
   ]
  },
  "multi_tenancy": {
   "model": "Shared infrastructure, logical isolation",
   "isolation": "Row-level security keyed on tenant_id",
   "tenant_aware_authz": "Every capability check includes tenant_id",
   "tenant_config": "Per-agency carrier list and commission-schedule config",
   "branding": "N/A at launch (internal-only console)",
   "tenant_export": "Full-cycle export available on request",
   "tenant_deletion": "Soft-delete then hard-delete on retention expiry",
   "tenant_audit": "Per-tenant audit log export",
   "noisy_neighbor": "Per-tenant concurrency and budget caps",
   "tenant_rate_limits": "Per-tenant model-call budget",
   "billing": "Stripe, flat monthly + one-time scan fee",
   "why_this_fits": "Small client count at launch makes logical isolation sufficient; a hard single-tenant requirement would trigger a per-client deployment exception."
  },
  "privacy_compliance": {
   "data_classification": "Financial/PII tiers documented in product.security.data_classifications",
   "minimization": "Only fields needed for matching/reconciliation retained",
   "consent": "Engagement letter + carrier-communication authorization",
   "access_logs": "Per-access logged with actor + timestamp",
   "audit_trails": "Append-only, hash-chained",
   "retention": "7 years on ledgers/dockets; 13 months on agent logs",
   "legal_hold": "Manual legal-hold flag overrides retention deletion",
   "right_to_delete": "Honored post-retention-window or on contract termination per engagement letter",
   "right_to_export": "Full-cycle export available on request",
   "sensitive_handling": "GLBA-adjacent NPI handling program",
   "boundaries": "No producer activity; no fund custody; no tax/legal advice",
   "residency": "US-only at launch",
   "vendor_risk": "Single model-provider risk documented; dual-provider fallback on the roadmap",
   "breach_response": "Documented incident-response runbook",
   "admin_controls": "Break-glass access logged and time-boxed",
   "evidence_collection": "Audit-log export within 24 hours of a breach or dispute"
  },
  "frontend": {
   "framework": "React (internal reviewer console)",
   "rendering": "Client-rendered SPA for the console; static self-contained HTML for the public microsite",
   "routing": "Client-side router for the console",
   "state": "Local + server-state cache",
   "server_state": "Fetched per reviewer session",
   "forms": "Native form elements with client + server validation",
   "error_handling": "Structured error boundaries",
   "components": "Design-token-driven component library",
   "design_system": "Semantic tokens per DESIGN-STANDARD.md",
   "auth_ui": "SSO redirect flow",
   "authz_aware_ui": "Capability-gated UI elements",
   "a11y": "WCAG 2.2 AA target",
   "i18n": "en-US only at launch",
   "performance": "Console not performance-critical (internal); microsite budget ≤120KB, no external requests",
   "bundling": "Standard bundler, code-split by module",
   "testing": "Component + e2e tests on reviewer surfaces",
   "offline": "Not supported at launch",
   "realtime": "Not needed at launch"
  },
  "backend": {
   "framework": "Node/TypeScript service",
   "layering": "domain / application / infra per module",
   "domain": "Aggregates + value objects per bounded context",
   "services": "Application services orchestrate domain + infra",
   "repositories": "One repository per aggregate root",
   "validation": "Schema validation at every boundary",
   "authorization": "Server-side capability checks only",
   "jobs": "Background job queue for extraction/matching",
   "events": "In-process event dispatch at launch",
   "files": "Object storage adapter",
   "email_sms": "Email adapter for client comms and carrier inquiries",
   "scheduled": "Aging-escalation checks run daily",
   "errors": "Structured error types per layer",
   "logging": "Structured, tenant-scoped, PII-scrubbed",
   "config": "Environment-based config, no secrets in code",
   "di": "Constructor-based dependency injection",
   "testing": "Unit + contract + e2e per module"
  },
  "diagrams": {
   "context_mermaid": "graph TD; Agency-->Intake; Intake-->Reconciliation; Reconciliation-->Recovery; Recovery-->QA",
   "container_mermaid": "graph TD; Console-->API; API-->Postgres; API-->ObjectStorage; API-->ModelProvider",
   "data_flow_mermaid": "graph LR; Statement-->Extraction-->Matching-->Docket-->Ledger-->Pack",
   "auth_flow_mermaid": "graph LR; Reviewer-->SSO-->MFA-->Session",
   "authz_flow_mermaid": "graph LR; Request-->RoleCheck-->TenantCheck-->Allow",
   "deployment_mermaid": "graph TD; PR-->Preview-->Main-->Production",
   "background_job_mermaid": "graph LR; Queue-->Worker-->Retry-->DLQ",
   "event_flow_mermaid": "graph LR; StatementNormalized-->MatchingCompleted-->DiscrepancyApproved-->LedgerSigned",
   "failure_flow_mermaid": "graph LR; Failure-->Retry-->CircuitBreaker-->Alert",
   "multi_tenant_flow_mermaid": "graph LR; Request-->TenantContext-->RowLevelSecurity-->Data",
   "ai_flow_mermaid": "graph LR; Statement-->ExtractionAgent-->MatchingAgent-->DrafterAgent-->Reviewer"
  },
  "adrs": [
   {
    "id": "ADR-001",
    "decision": "Adopt a modular monolith, not microservices, at launch",
    "status": "accepted",
    "context": "Founder-operated team; low ops burden required",
    "options": [
     "Modular monolith",
     "Microservices per bounded context",
     "No-code workflow tool"
    ],
    "chosen": "Modular monolith",
    "business_reason": "Fastest path to first paid pilot without a platform team",
    "technical_reason": "One deploy, one audit boundary, easy to reason about at this scale",
    "tradeoffs": "Will need extraction into services if reviewer-console load grows sharply",
    "risks": [
     "[PLACEHOLDER] owner to complete"
    ],
    "revisit_trigger": "Sustained CPU/latency pressure isolated to one module",
    "why": "One deploy, one audit boundary, easy to reason about at this scale",
    "consequences": [
     "[PLACEHOLDER] owner to complete"
    ],
    "reversal": "Would require a migration of the affected module's data model.",
    "revisit_when": "Sustained CPU/latency pressure isolated to one module"
   },
   {
    "id": "ADR-002",
    "decision": "Deterministic code owns all money math; the model never computes a final dollar figure",
    "status": "accepted",
    "context": "Penny-perfect tie-out is a hard trust requirement",
    "options": [
     "Model computes totals",
     "Deterministic code computes totals, model only extracts/classifies"
    ],
    "chosen": "Deterministic code computes totals",
    "business_reason": "A wrong dollar figure from a model is the single fastest way to lose a client's trust",
    "technical_reason": "Removes an entire class of hallucination risk from the highest-stakes output",
    "tradeoffs": "Slightly more engineering work per new transaction-type edge case",
    "risks": "Edge cases not yet coded fall through to reviewer manual calculation",
    "revisit_trigger": "None — this is a standing invariant, not revisited",
    "why": "Removes an entire class of hallucination risk from the highest-stakes output",
    "consequences": "Slightly more engineering work per new transaction-type edge case",
    "reversal": "Would require a migration of the affected module's data model.",
    "revisit_when": "None — this is a standing invariant, not revisited"
   }
  ],
  "roadmap": [
   {
    "phase": "Phase 0 — Discovery + pilot LOI",
    "weeks": "Weeks 1-2",
    "outcomes": [
     "3-5 pilot agency LOIs",
     "Evidence pack from each pilot agency",
     "Written ICP + pricing hypothesis"
    ],
    "exit_criteria": [
     "≥3 LOIs signed",
     "Owner-action ledger populated per agency",
     "Reviewer identity confirmed"
    ],
    "kill_criteria": [
     "<2 LOIs after 2 weeks",
     "No willingness-to-pay signal above pilot price"
    ],
    "build": [
     "3-5 pilot agency LOIs",
     "Evidence pack from each pilot agency",
     "Written ICP + pricing hypothesis"
    ],
    "defer": [
     "[PLACEHOLDER] owner to complete"
    ],
    "monitor": [
     "≥3 LOIs signed",
     "Owner-action ledger populated per agency",
     "Reviewer identity confirmed"
    ],
    "avoid": [
     "<2 LOIs after 2 weeks",
     "No willingness-to-pay signal above pilot price"
    ],
    "acceptable_debt": [
     "[PLACEHOLDER] owner to complete"
    ],
    "dangerous_debt": [
     "[PLACEHOLDER] owner to complete"
    ],
    "triggers_to_change": [
     "[PLACEHOLDER] owner to complete"
    ]
   },
   {
    "phase": "Phase 1 — Thin vertical slice",
    "weeks": "Weeks 3-4",
    "outcomes": [
     "Intake -> match -> reviewer signoff -> delivery working end-to-end for one AMS format",
     "Audit trail wired",
     "Instrumentation live"
    ],
    "exit_criteria": [
     "1 real Commission Leakage Scan delivered + reviewer-signed",
     "p95 workflow latency published"
    ],
    "kill_criteria": [
     "Reviewer signoff cycle >10 business days",
     "Evidence bundle cannot be reconstructed on demand"
    ],
    "build": [
     "Intake -> match -> reviewer signoff -> delivery working end-to-end for one AMS format",
     "Audit trail wired",
     "Instrumentation live"
    ],
    "defer": [],
    "monitor": [
     "1 real Commission Leakage Scan delivered + reviewer-signed",
     "p95 workflow latency published"
    ],
    "avoid": [
     "Reviewer signoff cycle >10 business days",
     "Evidence bundle cannot be reconstructed on demand"
    ],
    "acceptable_debt": "Manual carrier follow-up and onboarding at pilot scale",
    "dangerous_debt": "Skipping the reviewer-signoff gate under volume pressure",
    "triggers_to_change": "Kill/pivot criteria met at any phase gate"
   },
   {
    "phase": "Phase 2 — Pilot cohort",
    "weeks": "Weeks 3-8",
    "outcomes": [
     "10 pilot agencies scanned",
     "First standard-price desk conversion",
     "SOC 2 Type I scoping"
    ],
    "exit_criteria": [
     "≥1 standard-price contract",
     "Post-scan debrief trust signal captured",
     "Postmortem cadence in place"
    ],
    "kill_criteria": [
     "No standard-price conversion by Day 90",
     "Scan-to-desk conversion below 25%"
    ],
    "build": [
     "10 pilot agencies scanned",
     "First standard-price desk conversion",
     "SOC 2 Type I scoping"
    ],
    "defer": [],
    "monitor": [
     "≥1 standard-price contract",
     "Post-scan debrief trust signal captured",
     "Postmortem cadence in place"
    ],
    "avoid": [
     "No standard-price conversion by Day 90",
     "Scan-to-desk conversion below 25%"
    ],
    "acceptable_debt": "Manual carrier follow-up and onboarding at pilot scale",
    "dangerous_debt": "Skipping the reviewer-signoff gate under volume pressure",
    "triggers_to_change": "Kill/pivot criteria met at any phase gate"
   },
   {
    "phase": "Phase 3 — Recurring-desk scale-up",
    "weeks": "Weeks 9-13 (Day 90 checkpoint)",
    "outcomes": [
     "Public commercial launch of the microsite as 'ready'",
     "Recovery-share rider and Diligence Tie-Out line active",
     "Owner-action ledger closed for launch"
    ],
    "exit_criteria": [
     "COGS/rework/cycle-time measured against target",
     "Expansion beyond the pilot cohort gated on targets, not calendar time"
    ],
    "kill_criteria": [
     "Rework rate persistently above 3%",
     "Reviewer minutes per client not falling with volume"
    ],
    "build": [
     "Public commercial launch of the microsite as 'ready'",
     "Recovery-share rider and Diligence Tie-Out line active",
     "Owner-action ledger closed for launch"
    ],
    "defer": [],
    "monitor": [
     "COGS/rework/cycle-time measured against target",
     "Expansion beyond the pilot cohort gated on targets, not calendar time"
    ],
    "avoid": [
     "Rework rate persistently above 3%",
     "Reviewer minutes per client not falling with volume"
    ],
    "acceptable_debt": "Manual carrier follow-up and onboarding at pilot scale",
    "dangerous_debt": "Skipping the reviewer-signoff gate under volume pressure",
    "triggers_to_change": "Kill/pivot criteria met at any phase gate"
   }
  ],
  "anti_overengineering": {
   "flagged": [
    {
     "item": "Client-facing portal at launch",
     "why": "No client has asked for self-serve status; email/upload-link delivery is sufficient at pilot scale.",
     "simpler": "Defer to year 1, gated on client demand signal."
    },
    {
     "item": "Vector search / embeddings",
     "why": "Data volume at launch doesn't justify it; structured retrieval suffices.",
     "simpler": "Structured per-agency and per-carrier lookup."
    },
    {
     "item": "Microservices per bounded context",
     "why": "Premature operational complexity for a founder-operated launch.",
     "simpler": "Modular monolith with enforced module boundaries."
    }
   ]
  },
  "risks": [
   {
    "risk": "AMS vendor bundles reconciliation 'free' with a chase workflow",
    "likelihood": "medium-high",
    "impact": "high",
    "mitigation": "AMS-agnostic positioning; recovery/chase as the human moat",
    "detection": "Applied Recon or a competing AMS module adds chase/recovery features",
    "owner": "owner",
    "escalation": "Reviewer -> Senior Reviewer -> Owner -> Counsel",
    "fallback": "AMS-agnostic positioning; recovery/chase as the human moat",
    "category": "business"
   },
   {
    "risk": "Scan-to-desk conversion underperforms",
    "likelihood": "medium",
    "impact": "severe",
    "mitigation": "Pilot gate at 25%; alternative packaging tested in cohort 2",
    "detection": "Pilot cohort conversion below 25%",
    "owner": "owner",
    "escalation": "Reviewer -> Senior Reviewer -> Owner -> Counsel",
    "fallback": "Pilot gate at 25%; alternative packaging tested in cohort 2",
    "category": "business"
   },
   {
    "risk": "False-positive discrepancy sent to a carrier",
    "likelihood": "medium",
    "impact": "high",
    "mitigation": "100% reviewer approval; evidence-link requirement; inquiry-not-demand language",
    "detection": "Carrier disputes an inquiry as unfounded",
    "owner": "legal",
    "escalation": "Reviewer -> Senior Reviewer -> Owner -> Counsel",
    "fallback": "100% reviewer approval; evidence-link requirement; inquiry-not-demand language",
    "category": "business"
   }
  ],
  "rules": [
   "No cross-module database table sharing",
   "No model call computes final money math",
   "No public claim before owner-action facts close"
  ],
  "audit": {
   "product_fit": 4,
   "simplicity": 4,
   "security": 4,
   "reliability": 4,
   "scalability": 3,
   "maintainability": 4,
   "performance": 4,
   "cost": 4,
   "compliance": 3,
   "dx": 4,
   "ops_burden": 4,
   "extensibility": 4,
   "team_suitability": 4,
   "time_to_market": 4,
   "recommendation": {
    "verdict": "conditional-go",
    "stack": "Node/TypeScript + Postgres + single frontier-model provider",
    "style": "modular monolith",
    "database": "Postgres with row-level tenant security",
    "hosting": "Single-region, multi-AZ",
    "auth": "SSO + MFA for reviewers",
    "ai_approach": "Scripted extraction/matching/drafting pipeline with reviewer gates",
    "integrations": "AMS export ingestion, carrier statement intake, QuickBooks/AMS posting export",
    "build_first": [
     "Intake & Normalization",
     "Reconciliation & Matching"
    ],
    "revisit_later": [
     "Client-facing portal",
     "Public API"
    ],
    "avoid": [
     "Microservices",
     "Vector search at this scale"
    ],
    "biggest_risks": [
     "Reviewer bottleneck",
     "A carrier-facing claim proves incorrect"
    ],
    "top_10_rules": [
     "No cross-module database table sharing",
     "No model call computes final money math",
     "No public claim before owner-action facts close",
     "Deterministic code owns all money math",
     "Reviewer gate on every client- or carrier-facing output"
    ],
    "first_10_steps": [
     "Confirm the named insurance-accounting reviewer + engagement letter on file",
     "Populate owner-action ledger with entity, jurisdiction, contact inbox, privacy inbox",
     "Open pilot-cohort intake (cap 10) with explicit pricing conversation",
     "Write ICP + kill/pivot criteria in the plan file",
     "Stand up the evidence-linked intake -> match -> reviewer signoff loop",
     "Wire append-only audit log + hash-chained snapshots",
     "Add row-level auth + tenant-scoped retrieval indices",
     "Instrument scan-request, pack-delivery, and reviewer-signoff events",
     "Publish the microsite with FAQPage schema only and noindex until owner-facts close",
     "Schedule the Day-90 kill/pivot review with executive sponsor"
    ]
   }
  }
 },
 "design": {
  "slug": "agency-direct-bill-commission-recovery-desk",
  "archetypes": [
   "ledger / reconciliation desk",
   "back-office trust interface"
  ],
  "user_mindset": {
   "goals": "Find out fast whether carriers are underpaying, without operating new software",
   "session_length": "Short, task-focused (scan intake, monthly pack review)",
   "confidence": "Numerate, skeptical of unproven claims — wants evidence, not a dashboard",
   "interface_needs": "Clear evidence chain from statement line to ledger to signature"
  },
  "posture": [
   "calm",
   "numerate",
   "institutional-but-warm"
  ],
  "density": "compact",
  "trust_level": {
   "tier": "high",
   "sensitive_domains": [
    "Agency financial data",
    "Producer payout data"
   ],
   "implications": [
    "Every dollar figure must show its source",
    "No fabricated proof; honest placeholder slots until real cycles ship"
   ]
  },
  "differentiation": {
   "avoid": [
    "Insurtech-startup gradient look",
    "Wheat/tractor-style vertical clip-art equivalents (generic finance-SaaS iconography)",
    "Alarm-red urgency banners"
   ],
   "strategy": "A ledger aesthetic — deep teal/ink against warm parchment, serif numerals — that reads like a specialist's workbook, not a dashboard demo."
  },
  "territories": [
   {
    "name": "Ledger Desk",
    "color_mood": "deep teal + warm parchment + amber accent",
    "typography": "Serif numerals, sans body",
    "density": "compact",
    "component_feel": "workbook-like, artifact-shaped cards",
    "motion": "minimal, calm",
    "fits": "Reconciliation/back-office trust interfaces",
    "risks": "Could read as too formal for a younger buyer persona (not a concern here — buyer is an agency principal)"
   },
   {
    "name": "Filing Desk",
    "color_mood": "similar palette family used elsewhere in the portfolio",
    "typography": "Serif display",
    "density": "compact",
    "component_feel": "filing-tab metaphor",
    "motion": "minimal",
    "fits": "Deadline-driven filing businesses",
    "risks": "Wrong metaphor here — no single filing deadline exists in this business"
   },
   {
    "name": "Reconciliation Console",
    "color_mood": "cooler blue-gray, more software-dashboard feeling",
    "typography": "Sans-only",
    "density": "dense",
    "component_feel": "dashboard-like",
    "motion": "minimal",
    "fits": "A future client-facing portal, not the launch microsite",
    "risks": "Reads too much like software the client has to operate — against the done-for-you positioning"
   }
  ],
  "chosen_territory": "Ledger Desk",
  "chosen_rationale": "The Commission Ledger is the deliverable; the ledger-desk metaphor keeps every screen artifact-shaped, the way a producer or acquirer would want to see it.",
  "prioritized_components": [
   {
    "name": "Hero with cycle-status panel",
    "why": "Core to the conversion path from stat proof to pricing trust to CTA"
   },
   {
    "name": "Stat strip (real, sourced figures)",
    "why": "Core to the conversion path from stat proof to pricing trust to CTA"
   },
   {
    "name": "Deliverable cards",
    "why": "Core to the conversion path from stat proof to pricing trust to CTA"
   },
   {
    "name": "Pricing tiers with guarantee callout",
    "why": "Core to the conversion path from stat proof to pricing trust to CTA"
   },
   {
    "name": "Honest placeholder proof slots",
    "why": "Core to the conversion path from stat proof to pricing trust to CTA"
   },
   {
    "name": "FAQ",
    "why": "Core to the conversion path from stat proof to pricing trust to CTA"
   }
  ],
  "tokens": {
   "brand": "216 64% 28%",
   "brand-fg": "40 30% 97%",
   "surface": "40 30% 97%",
   "ink": "216 30% 14%",
   "muted": "216 14% 40%",
   "accent": "38 88% 46%"
  },
  "type": {
   "display": "Georgia (system serif stack)",
   "body": "system-ui",
   "fonts_url": ""
  },
  "signature": {
   "motif": "Mismatched statement cards resolving into one aligned ledger row",
   "render": "CSS-only shapes/borders, no imagery (120KB budget)"
  },
  "patterns": [
   {
    "name": "Card-based deliverable grid",
    "description": "See site/index.html implementation"
   },
   {
    "name": "Stepped how-it-works numerals",
    "description": "See site/index.html implementation"
   },
   {
    "name": "Dashed placeholder proof slots",
    "description": "See site/index.html implementation"
   }
  ],
  "states": [
   "matched (state-ok)",
   "at-risk/short-paid (state-risk)",
   "pending carrier response (state-pending)",
   "blocked/needs input (state-blocked)"
  ],
  "uniqueness_audit": {
   "app_specific_decisions": [
    "Ledger-teal + amber palette distinct from the portfolio's other palettes",
    "Statement-to-ledger visual motif specific to this business's workflow"
   ],
   "cliches_avoided": [
    "No generic insurtech gradient hero",
    "No stock handshake/office imagery"
   ],
   "scale_notes": "Palette and motif chosen to be visually distinct from sibling businesses in the same multi-tenant site."
  },
  "localization": [
   "en-US only at launch"
  ]
 },
 "seo": {
  "slug": "agency-direct-bill-commission-recovery-desk",
  "archetype": "outcome-priced back-office authority site",
  "archetype_impact": "Search fit is a back-office trust authority site, not a filing-deadline authority site. That means depth on carrier-format and discrepancy-classification specifics, evergreen (not deadline-driven) content cadence.",
  "authority_dna": {
   "site_archetype": "outcome-priced back-office authority site",
   "monetization_model": "B2B lead -> Commission Leakage Scan -> paid Reconciliation Desk engagement (not ad revenue; not affiliate).",
   "main_search_intents": [
    "informational",
    "commercial"
   ],
   "topical_authority_opportunity": "Own the \"insurance commission reconciliation\" topic cluster by covering direct-bill statement formats, carrier-quirk patterns, discrepancy classification, and producer-payout disputes better than any single trade-press explainer.",
   "local_seo_opportunity": "Not justified: buyers search by problem/AMS platform, not by city.",
   "global_national_opportunity": "National (US-first); state insurance regulation varies but the core service is not state-gated.",
   "easiest_ranking_path": "Long-tail, carrier-specific and AMS-specific queries (\"HawkSoft direct bill reconciliation\", \"why is my commission statement short\") where the SERP is dominated by vendor blog posts, not buyer-first guides.",
   "hardest_ranking_path": "Head terms like \"insurance commission software\" — dominated by aged SaaS vendor domains (Fintary, Commissionly, Core Commissions).",
   "trust_credibility_requirements": [
    "Named human reviewer with role + credentials",
    "Carrier/statement citations on every claim",
    "Last-reviewed date on regulatory/compliance pages",
    "Direct links to primary trade-press sources, not aggregators"
   ],
   "ymyl": true,
   "expert_review_needed": true,
   "site_structure": "Authority hub + narrow high-intent service page + linkable evidence assets. Not a directory. Not a marketplace.",
   "seo_moat": "Always-current per-AMS and per-carrier how-to pages with real anonymized teardown evidence, refreshed as the parser library grows."
  },
  "search_market": {
   "primary_markets": [
    "insurance commission reconciliation service",
    "direct bill commission recovery",
    "commission leakage scan"
   ],
   "secondary_markets": [
    "producer payout dispute resolution",
    "agency M&A commission diligence",
    "AMS commission reconciliation how-to"
   ],
   "low_competition_subtopics": [
    "carrier-specific statement quirks",
    "as-earned vs annualized commission leakage",
    "HawkSoft/EZLynx direct bill reconciliation how-to"
   ],
   "high_commercial_intent": [
    "done-for-you commission reconciliation service",
    "outsource insurance commission reconciliation",
    "commission recovery service for insurance agencies"
   ],
   "informational": [
    "what is direct bill commission reconciliation",
    "how to reconcile insurance commission statements",
    "why is my commission statement short"
   ],
   "local_intent": [
    "[PLACEHOLDER] owner to complete"
   ],
   "transactional": [
    "commission leakage scan pricing",
    "book a commission reconciliation consultation"
   ],
   "comparison": [
    "commission reconciliation service vs software",
    "CommissionClear vs Comulate vs ReSource Pro"
   ],
   "problem_solution": [
    "carrier underpaid my commission what to do",
    "producer payout dispute resolution"
   ],
   "near_me": [
    "[PLACEHOLDER] owner to complete"
   ],
   "long_tail": [
    "HawkSoft direct bill commission reconciliation",
    "as-earned commission chargeback explained",
    "AMS360 commission reconciliation how-to"
   ],
   "questions": [
    "what records does a commission reconciliation need?",
    "who reviews a commission leakage scan?",
    "how long does commission reconciliation take?"
   ],
   "emerging": [
    "AI-assisted commission statement extraction",
    "automated carrier inquiry drafting"
   ],
   "seasonal": [
    "tax-season commission book cleanup",
    "agency M&A diligence season commission verification"
   ],
   "underserved_serps": [
    "carrier-specific statement quirks",
    "producer payout dispute resolution"
   ],
   "weak_serps": [
    "commission leakage self-check",
    "commission reconciliation checklist"
   ],
   "forum_dominated_serps": [
    "why is my commission statement short",
    "carrier chargeback explained"
   ],
   "winnable_authoritative_serps": [
    "direct bill commission reconciliation definitive guide",
    "commission leakage scan evidence requirements"
   ],
   "avoid_initially": [
    "insurance commission software",
    "best commission tracking tools"
   ],
   "easy_wins": [
    "carrier-specific statement quirks",
    "commission reconciliation checklist",
    "producer payout dispute anatomy"
   ],
   "moderate": [
    "direct bill commission reconciliation definitive guide",
    "agency M&A commission diligence"
   ],
   "long_term_plays": [
    "insurance commission software comparison",
    "portfolio-level multi-agency reconciliation"
   ],
   "do_not_pursue": [
    "generic \"how to start a bookkeeping business\" content",
    "celebrity or trend-jacking posts",
    "AI-generated listicles"
   ]
  },
  "keyword_clusters": [
   {
    "primary": "direct bill commission reconciliation service",
    "related": [
     "done-for-you commission reconciliation",
     "outsource commission reconciliation"
    ],
    "intent": "commercial",
    "user_problem": "Agency suspects carrier underpayment and needs a done-for-you fix",
    "funnel": "BOFU",
    "business_value": "high",
    "ranking_difficulty": "medium",
    "conversion_potential": "high",
    "content_effort": "medium",
    "serp_weakness": "Dominated by enterprise SaaS vendor pages, not small-agency-focused content",
    "local_relevance": "low",
    "global_relevance": "high",
    "suggested_page_type": "Pillar / service page",
    "reason": "High buyer intent + weak SERP for our segment",
    "priority_score": 17,
    "priority": "P0",
    "bucket": "easy-win"
   },
   {
    "primary": "commission leakage scan",
    "related": [
     "commission leakage self-check",
     "how much commission am I missing"
    ],
    "intent": "commercial",
    "user_problem": "Wants a low-commitment diagnostic before a full engagement",
    "funnel": "TOFU",
    "business_value": "high",
    "ranking_difficulty": "low",
    "conversion_potential": "high",
    "content_effort": "low",
    "serp_weakness": "No existing competitor owns this exact term",
    "local_relevance": "low",
    "global_relevance": "high",
    "suggested_page_type": "Lead-magnet / calculator page",
    "reason": "Own a branded-term wedge outright",
    "priority_score": 16,
    "priority": "P0",
    "bucket": "easy-win"
   },
   {
    "primary": "why is my insurance commission statement short",
    "related": [
     "carrier underpaid commission",
     "producer payout dispute"
    ],
    "intent": "informational",
    "user_problem": "Immediate confusion moment after a light carrier check",
    "funnel": "TOFU",
    "business_value": "medium",
    "ranking_difficulty": "low",
    "conversion_potential": "medium",
    "content_effort": "low",
    "serp_weakness": "Forum-dominated, thin",
    "local_relevance": "low",
    "global_relevance": "high",
    "suggested_page_type": "How-to / FAQ page",
    "reason": "Easy win + strong lead-magnet fit",
    "priority_score": 14,
    "priority": "P0",
    "bucket": "easy-win"
   }
  ],
  "topical_authority_map": {
   "core_topics": [
    "Direct-bill commission reconciliation — definitive guide",
    "Carrier-quirk & discrepancy classification library",
    "Producer payout dispute resolution"
   ],
   "pillars": [
    {
     "name": "Direct-bill commission reconciliation — definitive guide",
     "core_intent": "informational",
     "audience": "agency principals and ops managers",
     "conversion_goal": "Self-check / scan request",
     "supporting_pages": [
      "What a chargeback should look like on your ledger",
      "As-earned vs annualized leakage",
      "Carrier statement formats explained"
     ],
     "internal_links": [
      "/",
      "/resources/self-check"
     ],
     "schema": [
      "Article",
      "BreadcrumbList",
      "FAQPage (where genuine)"
     ],
     "evidence_needed": [
      "Named reviewer",
      "Primary-source citations",
      "Worked example"
     ],
     "local_variants": [
      "[PLACEHOLDER] owner to complete"
     ],
     "national_variants": [
      "US-national (default)"
     ]
    },
    {
     "name": "Commission Leakage Scan evidence & trust",
     "core_intent": "commercial",
     "audience": "agency principals",
     "conversion_goal": "Book a scan",
     "supporting_pages": [
      "Anatomy of a Leakage Scan",
      "One carrier, 12 months, $X missing"
     ],
     "internal_links": [
      "/#diagnostic",
      "/resources/evidence"
     ],
     "schema": [
      "Article",
      "FAQPage",
      "BreadcrumbList"
     ],
     "evidence_needed": [
      "Worked evidence artifact",
      "Reviewer credential"
     ],
     "local_variants": [],
     "national_variants": [
      "US-national"
     ]
    }
   ],
   "supporting_page_types": [
    "definition / glossary",
    "how-to workflow",
    "edge-case handling",
    "worked example",
    "FAQ",
    "comparison (only when honest)",
    "evidence artifact / template"
   ]
  },
  "site_architecture": {
   "homepage_strategy": "Single-page conversion-focused microsite; deep content lives in a future /resources hub",
   "main_nav": [
    "Pricing",
    "FAQ",
    "Operating blueprint"
   ],
   "footer_nav": [
    "Compliance",
    "Operating blueprint"
   ],
   "hubs": [
    {
     "name": "Resources hub",
     "purpose": "House long-form authority content",
     "url": "/resources (future)"
    }
   ],
   "url_patterns": [
    "/agency-direct-bill-commission-recovery-desk/"
   ],
   "avoid_url_patterns": [
    "Thin per-carrier programmatic pages with no unique evidence"
   ]
  },
  "global_national": {
   "national_clusters": [
    "Direct-bill commission reconciliation"
   ],
   "linkable_assets": [
    "Commission Leakage Self-Check calculator"
   ],
   "original_research_ideas": [
    "Aggregate pilot-cohort leakage statistics once cohort completes"
   ],
   "international_needed": false,
   "international_notes": "US-only insurance distribution regulation; no international expansion in scope"
  },
  "local_seo": {
   "justified": false,
   "reason": "Buyers search by problem/AMS platform, not location",
   "gbp_categories_primary": [
    "[PLACEHOLDER] owner to complete"
   ],
   "gbp_categories_secondary": [
    "[PLACEHOLDER] owner to complete"
   ],
   "location_page_rules": [
    "[PLACEHOLDER] owner to complete"
   ],
   "citations": [
    "[PLACEHOLDER] owner to complete"
   ],
   "review_strategy": "No fabricated reviews; real testimonials only after pilot cohort completes with permission",
   "local_schema": [
    "[PLACEHOLDER] owner to complete"
   ]
  },
  "programmatic": {
   "recommended": false,
   "reason": "No large structured dataset justifies programmatic pages at launch",
   "rules": [
    "[PLACEHOLDER] owner to complete"
   ],
   "per_page_requirements": [
    "[PLACEHOLDER] owner to complete"
   ],
   "quality_gates": [
    "[PLACEHOLDER] owner to complete"
   ]
  },
  "page_templates": [
   {
    "page_type": "Pillar/service page",
    "purpose": "Convert a qualified visitor into a scan request",
    "target_intent": "commercial",
    "url_pattern": "/agency-direct-bill-commission-recovery-desk/",
    "title_pattern": "{Brand} — {outcome} for {audience}",
    "meta_description_pattern": "{Brand} for {audience}. {outcome} — {price/SLA}.",
    "h1_pattern": "{Outcome-led headline}",
    "outline": [
     "Hero",
     "Stat strip",
     "Pain",
     "Deliverables",
     "How it works",
     "Pricing",
     "Proof",
     "FAQ",
     "Compliance"
    ],
    "above_the_fold": [
     "[PLACEHOLDER] owner to complete"
    ],
    "internal_links": [
     "Operating blueprint dossier"
    ],
    "schema": [
     "FAQPage",
     "Service"
    ],
    "cta_strategy": "Single primary CTA (scan request), secondary deep-links only",
    "conversion_elements": [
     "Guarantee beside pricing",
     "Honest placeholder proof"
    ],
    "trust_elements": [
     "Compliance section",
     "Named reviewer (pending owner action)"
    ],
    "faq_opportunities": [
     "Objection-derived FAQ"
    ],
    "media": [
     "[PLACEHOLDER] owner to complete"
    ],
    "quality_requirements": [
     "No banned phrases",
     "Contrast-checked palette"
    ],
    "anti_thin_rules": [
     "Every claim sourced or explicitly placeholdered"
    ]
   }
  ],
  "on_page_rules": {
   "title_tag": "Primary keyword + brand, under 60 chars",
   "meta_description": "Under 155 chars, states the outcome",
   "headings": "One H1, ordered H2/H3",
   "intro": "Answer the query in the first 2 sentences",
   "snippet_targeting": "Direct-answer paragraphs above the fold",
   "tables_lists": "Used for pricing and comparison content only",
   "images": "None required at launch (text-first authority content)",
   "internal_links": "Link every supporting page back to the pillar",
   "external_citations": "Link primary trade-press/vendor sources by name",
   "author_attribution": "Named reviewer bio on YMYL pages",
   "freshness": "Quarterly re-verification of dollar figures and vendor claims",
   "cta_placement": "End of every page + inline after the core answer",
   "mobile": "Mobile-first responsive layout",
   "avoid": [
    "Keyword stuffing",
    "Thin AI-generated filler"
   ]
  },
  "entity_seo": {
   "main_entities": [
    "CommissionClear",
    "Reconciliation Desk",
    "Commission Leakage Scan"
   ],
   "related_entities": [
    "Comulate",
    "ReSource Pro",
    "Applied Recon",
    "AgencyBloc"
   ],
   "people": [
    "Named insurance-accounting reviewer"
   ],
   "orgs": [
    "Big \"I\"",
    "state insurance departments"
   ],
   "tools": [
    "EZLynx",
    "HawkSoft",
    "AMS360",
    "QQCatalyst",
    "Applied Epic"
   ],
   "regulations": [
    "State producer-licensing statutes",
    "State collection-agency statutes"
   ],
   "problems": [
    "Commission underpayment",
    "Producer payout disputes"
   ],
   "solutions": [
    "Reconciliation Desk",
    "Commission Leakage Scan"
   ],
   "processes": [
    "Intake",
    "Matching",
    "Discrepancy review",
    "Delivery"
   ],
   "alternatives": [
    "Enterprise SaaS",
    "BPO services",
    "Specialist bookkeeping firms"
   ],
   "synonyms": [
    "commission reconciliation",
    "direct-bill reconciliation",
    "commission recovery"
   ]
  },
  "schema_strategy": [
   {
    "type": "FAQPage",
    "where": "Homepage FAQ section",
    "required_fields": [
     "mainEntity",
     "acceptedAnswer"
    ],
    "caution": "Only genuine, answered questions — no fabricated Q&A"
   },
   {
    "type": "Service",
    "where": "Homepage, with a real-entity Organization provider",
    "required_fields": [
     "provider",
     "areaServed",
     "serviceType"
    ],
    "caution": "No review/rating/aggregateRating"
   }
  ],
  "internal_linking": {
   "pillar_to_cluster": "Every pillar links to its supporting pages",
   "cluster_to_pillar": "Every supporting page links back to its pillar",
   "cluster_to_cluster": "Cross-linked where the buyer journey naturally continues",
   "service_to_location": "N/A (no location pages)",
   "faq_to_commercial": "FAQ answers link to the pricing section",
   "breadcrumbs": "Present on all supporting content pages",
   "anchor_text_rules": [
    "Descriptive, not \"click here\""
   ]
  },
  "technical_seo": {
   "crawlability": "noindex at launch until owner-action facts close",
   "indexability": "Enabled post-launch review",
   "sitemaps": "Generated once indexable",
   "robots": "noindex,nofollow at launch",
   "canonicals": "Self-canonical",
   "pagination": "N/A",
   "faceted_nav": "N/A",
   "duplicate_control": "Single canonical URL per page",
   "redirects": "N/A at launch",
   "core_web_vitals": "LCP ≤2.5s, INP ≤200ms, CLS ≤0.1 budget enforced",
   "mobile": "Mobile-first responsive",
   "accessibility": "WCAG 2.2 AA",
   "js_seo": "Minimal JS, server-renderable content",
   "rendering": "Static self-contained HTML",
   "gsc_setup": "Pending owner action",
   "analytics_setup": "Pending owner action",
   "rank_tracking": "Pending owner action"
  },
  "eeat": {
   "author_bios": "Named reviewer bio pending owner action",
   "expert_reviewers": "Named insurance-accounting reviewer",
   "editorial_policy": "Facts cited to primary/trade-press sources; vendor-sponsored claims labeled",
   "fact_checking": "Quarterly re-verification cadence",
   "credentials": [
    "Insurance-accounting reviewer credentials — pending owner action"
   ],
   "citations": "Every load-bearing statistic cited by source name",
   "first_hand_proof": [
    "Anonymized pilot-cohort teardowns once available"
   ],
   "update_cadence": "Quarterly",
   "monetization_disclosure": "Service pricing disclosed on the pricing section itself",
   "ymyl_notes": "Treated as YMYL due to financial-advice-adjacent content; no coverage/legal/tax advice given"
  },
  "ai_search": {
   "principles": [
    "Answer the exact question asked, directly and first",
    "Cite named sources, not vague claims"
   ],
   "tactics": [
    "FAQ schema on genuine FAQs",
    "Definitive per-topic guides answer engines can cite"
   ],
   "do_not": [
    "Fabricate statistics",
    "Claim certifications not held"
   ]
  },
  "conversion": {
   "primary_cta": "Start a free Commission Leakage Scan",
   "secondary_cta": "See what's in the pack",
   "lead_magnets": [
    "Commission Leakage Self-Check",
    "Carrier Statement Survival Kit"
   ],
   "trust_elements": [
    "Guarantee + out-clause beside pricing",
    "Compliance section with licensing boundary"
   ],
   "per_page_paths": [
    {
     "path": "Homepage -> scan request",
     "page_type": "pillar"
    }
   ],
   "tracking": "data-event taxonomy per DESIGN-STANDARD §4"
  },
  "link_earning": {
   "digital_pr_ideas": [
    "Aggregate anonymized pilot-cohort leakage statistics as original research"
   ],
   "original_research": [
    "Average commission leakage by carrier mix (post-pilot)"
   ],
   "directories": [
    "State Big \"I\"/PIA association vendor resource pages"
   ],
   "expert_contributions": [
    "Guest posts on AMS user-community blogs"
   ],
   "partnerships": [
    "CPA/bookkeeper referral partners"
   ],
   "avoid": [
    "Paid link schemes",
    "Low-quality directory submissions"
   ]
  },
  "roadmap_90d": [
   {
    "phase": "Launch",
    "goal": "Publish core microsite",
    "pages": [
     "Homepage"
    ],
    "keywords_targeted": [
     "direct bill commission reconciliation service"
    ],
    "required_assets": [
     "Self-check lead magnet"
    ],
    "internal_links": [
     "[PLACEHOLDER] owner to complete"
    ],
    "difficulty": "low",
    "business_value": "high",
    "conversion_goal": "Scan requests",
    "why_first": "Foundation for every other page"
   }
  ],
  "roadmap_12m": [
   {
    "phase": "Authority hub",
    "goal": "Build /resources content cluster",
    "pages": [
     "Definitive guide",
     "Per-AMS how-tos"
    ],
    "keywords_targeted": [
     "carrier-specific statement quirks"
    ],
    "required_assets": [
     "Anonymized pilot-cohort statistics"
    ],
    "internal_links": [
     "Homepage"
    ],
    "difficulty": "medium",
    "business_value": "medium",
    "conversion_goal": "Organic scan requests",
    "why_first": "Compounding organic channel per the GTM kit"
   }
  ],
  "priority_pages": [
   {
    "rank": 1,
    "page_title": "CommissionClear homepage",
    "slug": "/agency-direct-bill-commission-recovery-desk/",
    "page_type": "pillar/service",
    "primary_keyword": "direct bill commission reconciliation service",
    "secondary_keywords": [
     "commission leakage scan"
    ],
    "intent": "commercial",
    "funnel": "BOFU",
    "business_value": "high",
    "difficulty": "medium",
    "conversion_potential": "high",
    "cta": "Start a free Commission Leakage Scan",
    "schema": [
     "FAQPage",
     "Service"
    ],
    "internal_links": [
     "/resources (future)"
    ],
    "required_proof": [
     "[PLACEHOLDER] owner to complete"
    ],
    "why_opportunity": "Owns the branded wedge term outright",
    "production_priority": "P0",
    "scope": "Launch"
   }
  ],
  "competitor_gaps": {
   "typical_competitor_types": [
    "Enterprise SaaS vendor blogs",
    "BPO service pages",
    "Generic bookkeeping content"
   ],
   "common_weaknesses": [
    "Written for large brokers, not the $500K-$5M agency",
    "No carrier-specific evidence"
   ],
   "how_to_beat_them": [
    "Publish small-agency-specific, carrier-specific, evidence-first content"
   ]
  },
  "metrics": {
   "weekly": [
    "Scan requests",
    "Self-check completions"
   ],
   "monthly": [
    "Organic scan requests",
    "Keyword ranking movement on P0 terms"
   ],
   "quarterly": [
    "Fresh-verification pass on all cited statistics"
   ],
   "annual": [
    "Full content-cluster audit"
   ]
  },
  "risks": [
   {
    "risk": "YMYL scrutiny on financial-outcome claims without named-reviewer attribution",
    "applies": true,
    "mitigation": "Named reviewer attribution and quarterly re-verification"
   },
   {
    "risk": "Competitor content targeting the same small-agency segment",
    "applies": true,
    "mitigation": "Named reviewer attribution and quarterly re-verification"
   }
  ],
  "first_20_pages": [
   "Homepage",
   "Commission Leakage Self-Check",
   "Carrier Statement Survival Kit",
   "Direct-bill reconciliation definitive guide"
  ],
  "first_10_tech_fixes": [
   "Confirm noindex removed only after owner-action facts close",
   "Verify FAQ schema validates"
  ],
  "first_10_authority_actions": [
   "Publish first 3 educational posts",
   "Launch the self-check lead magnet",
   "Pitch first association webinar"
  ],
  "final_recommendation": "Launch noindexed until owner-action facts (entity, reviewer identity, trademark clearance) close; then pursue a narrow, evidence-first authority strategy targeting the $500K-$5M agency segment the enterprise SEO content ignores.",
  "disclaimers": [
   "Not tax, legal, or insurance advice",
   "Vendor-sponsored statistics labeled as such",
   "No fabricated reviews or testimonials"
  ]
 },
 "microsite": {
  "category": "Insurance distribution / independent agency back-office finance",
  "shortTitle": "CommissionClear",
  "audience": "independent P&C-led insurance agency principals and ops/accounting managers, $500K-$5M annual commission revenue, 15-80 carrier appointments",
  "problem": "An independent agency gets 40+ carrier commission statements a month, in 40 different formats, and nobody has the hours to verify a single line item against the agency's own book of business. So the agency books statement totals as lump revenue and never checks whether carriers paid correctly. Missing and short-paid commissions go unchased forever, producer payout disputes have no statement-backed answer, and commission revenue can't tie to source statements at tax time or in an acquisition.",
  "offer": "On CommissionClear, agencies stop guessing and start getting a signed Commission Ledger every reconciliation cycle. Send us your AMS export and carrier statements; AI extracts and normalizes every line, matches it against your book of business, an insurance-accounting reviewer approves every discrepancy, and you get a Monthly Reconciliation Pack — ledger, docket, recovered-dollars report, payout statements, posting file — by the 5th business day. Carrier inquiries go out under your own name, never as a demand.",
  "faq": [
   {
    "q": "Is CommissionClear for the agency office or for a bookkeeper?",
    "a": "For the agency principal or ops/accounting manager directly. At 15-80 carrier appointments, nobody in-house has the hours or the insurance-specific knowledge to verify statements line by line. We do the reconciliation, matching, and carrier-inquiry chase; coverage or claims questions still route to your own licensed staff."
   },
   {
    "q": "How is a Monthly Reconciliation Pack defensible?",
    "a": "Every discrepancy claim traces to a source statement citation and an AMS-policy reference, and every dollar figure ties to your own carrier statements. Missing items ship as explicit evidence gaps, never invented. An insurance-accounting reviewer signs every Commission Ledger before it's delivered."
   },
   {
    "q": "What arrives at the end of a reconciliation cycle?",
    "a": "A Monthly Reconciliation Pack: the signed Commission Ledger, the Discrepancy Docket, a recovered-dollars report, producer payout statements, and a posting file your bookkeeper imports straight into QuickBooks or your AMS."
   },
   {
    "q": "What if we're also running a benefits or Medicare book with per-member-per-month commissions?",
    "a": "We screen both your standard and as-earned/PMPM commission structures against their own carrier-quirk rules in the same cycle. Mixed-structure books land in the Plus or Pro tier because the matching work is heavier."
   },
   {
    "q": "How fast, and what do you need from us?",
    "a": "5 business days per ongoing cycle (10 for the first Commission Leakage Scan). We need your AMS export, your carrier appointment list, your last 3 months of carrier statements, and a signed authorization so we can draft (and, if you choose, send) carrier inquiries in your name."
   },
   {
    "q": "Do you dispute claims or make coverage determinations?",
    "a": "No. We reconcile commission income and chase carrier inquiries only. Coverage and claims determinations stay with your own licensed staff; disputes beyond a routine inquiry go to your own counsel."
   },
   {
    "q": "Are you a debt collector acting on our behalf?",
    "a": "No. We are your authorized administrative agent under a written authorization you control and can revoke at any time. Every inquiry goes out under your agency's own name — this is receivables follow-up between contracted business parties, never third-party debt collection."
   },
   {
    "q": "What does it cost?",
    "a": "Commission Leakage Scan: $495 flat, credited to your first month, free for the first 10 pilot agencies. Reconciliation Desk: $600-$2,500/mo by statement volume. Never hourly, never a mandatory percentage of what you recover."
   },
   {
    "q": "Can this work outside a one-time scan?",
    "a": "Yes — the Reconciliation Desk is the recurring line: a monthly cycle for as long as you carry carrier appointments, not a one-time event tied to a single deadline."
   }
  ],
  "process": [
   {
    "title": "Intake: send your agency's records",
    "body": "Send your AMS export, carrier appointment list, and last 3 months of carrier statements, and sign a limited authorization so we can draft (and optionally send) carrier inquiries as your agent. Each document is logged and hashed on arrival; missing items are flagged before any work starts."
   },
   {
    "title": "Normalize and match",
    "body": "Each carrier statement is extracted into a common schema and tied out against its own stated total, then matched against your AMS book of business line by line."
   },
   {
    "title": "Classify in deterministic rules",
    "body": "AI drafts discrepancy classifications and carrier inquiries from your structured data. Deterministic code — not a language model — confirms every ledger ties to the penny, sets aging clocks, and screens for chargeback/rate-mismatch patterns."
   },
   {
    "title": "Reviewer release gate",
    "body": "An insurance-accounting reviewer certifies every release. Anything ambiguous — a low-confidence match, a high-value discrepancy, a first-time carrier — is held for a second reviewer before anything ships."
   },
   {
    "title": "Deliver and track",
    "body": "The Monthly Reconciliation Pack ships by the 5th business day; approved carrier inquiries go out the same day, with aging tracked automatically."
   }
  ],
  "northStarCta": {
   "label": "Start a free Commission Leakage Scan",
   "href": "#diagnostic",
   "secondary_label": "See what's in the pack",
   "secondary_href": "#deliverables"
  },
  "trust": {
   "standards": [
    "Documentation and reconciliation service — not a licensed producer, collection agency, or law firm",
    "Every discrepancy claim traces to a source citation; gaps ship as explicit notes",
    "Reviewer release on every pack; second reviewer on high-value dockets"
   ],
   "response_time": "5 business days per cycle (10 for the first scan)",
   "data_handling": "Per-agency isolated files, least-privilege access, hash-stamped originals, audit trail retained for 7 years"
  },
  "hook": "Free Commission Leakage Scan tells you exactly what carriers owe you — before you chase another carrier check.",
  "sub_headline": "You send your AMS export and carrier statements. You get back a signed Commission Ledger, a chased Discrepancy Docket, and a posting file your bookkeeper can use — in 5 business days, flat fee.",
  "dream_outcome": "A monthly, statement-backed Commission Ledger that ends every producer-payout argument and survives a CPA's or an acquirer's read.",
  "specific_pains": [
   "A 10-person agency gets 40+ statements a month in 40 different formats, and nobody has ever verified a single line item against the book of business.",
   "Ask for the reconciliation record on last quarter's commissions and someone opens a folder of inconsistent PDFs — that is the record a producer or an acquirer would find first.",
   "A general model can draft a plausible-looking discrepancy claim; only a versioned commission-schedule match with a reviewer release produces a ledger nobody disputes later.",
   "The agency also runs a benefits book with as-earned, PMPM commissions — miss that structure and you've reconciled the wrong math on part of the book.",
   "A producer reads the payout statement as a package: matched lines, discrepancy docket, and the reviewer's signature. Miss any piece and the argument starts over."
  ],
  "cost_of_inaction": "Every month without a reconciled ledger is another month of commissions nobody verified — some of them gone for good once a carrier's records age out. A producer dispute with no statement-backed answer costs trust every time it happens.",
  "mechanism": {
   "name": "The CommissionClear reconciliation-cycle engine",
   "steps": [
    {
     "title": "Intake: send your agency's records",
     "body": "Send your AMS export, carrier appointment list, and last 3 months of carrier statements, and sign a limited authorization so we can draft (and optionally send) carrier inquiries as your agent. Each document is logged and hashed on arrival; missing items are flagged before any work starts."
    },
    {
     "title": "Normalize and match",
     "body": "Each carrier statement is extracted into a common schema and tied out against its own stated total, then matched against your AMS book of business line by line."
    },
    {
     "title": "Classify in deterministic rules",
     "body": "AI drafts discrepancy classifications and carrier inquiries from your structured data. Deterministic code — not a language model — confirms every ledger ties to the penny, sets aging clocks, and screens for chargeback/rate-mismatch patterns."
    },
    {
     "title": "Reviewer release gate",
     "body": "An insurance-accounting reviewer certifies every release. Anything ambiguous — a low-confidence match, a high-value discrepancy, a first-time carrier — is held for a second reviewer before anything ships."
    },
    {
     "title": "Deliver and track",
     "body": "The Monthly Reconciliation Pack ships by the 5th business day; approved carrier inquiries go out the same day, with aging tracked automatically."
    }
   ]
  },
  "offer_stack": [
   {
    "item": "Monthly Reconciliation Pack per client, per cycle",
    "note": "Commission Ledger, Discrepancy Docket, recovered-dollars report, producer payout statements, posting file, reviewer release"
   },
   {
    "item": "Commission Leakage Scan",
    "note": "one-time 3-month lookback wedge, tied to a rule-versioned commission-schedule match; a carrier we can't confirm a discrepancy for ships as an explicit note, never a guess"
   },
   {
    "item": "Reviewer release on every pack",
    "note": "an insurance-accounting reviewer certifies every ledger; a second reviewer reviews any docket over $2,500 or a first-time carrier"
   },
   {
    "item": "Agency-authorized carrier chase",
    "note": "submitted directly to carrier commission departments under your signed authorization"
   },
   {
    "item": "Diligence Tie-Out add-on",
    "note": "for agency M&A season: organized, reviewer-attested revenue verification handed to a buyer's or seller's advisor — never a guarantee of any deal term"
   }
  ],
  "guarantee": "If a delivered Monthly Reconciliation Pack is missing any required tie-out, we correct and reissue it at no charge. The guarantee covers reconciliation completeness against the checklist we deliver against — not any specific recovered-dollar amount, carrier response, or legal outcome. Cancel before your first pack ships for a full refund of that cycle's fee.",
  "urgency": "There's no single filing deadline here — the cost is compounding, not cliff-edged: every reconciliation cycle without a Commission Ledger is a cycle of unverified commissions, some of which age past the point any carrier will still investigate them.",
  "objections": [
   {
    "q": "\"Aren't you a debt collector, or will you contact our carriers on your own authority?\"",
    "a": "No. CommissionClear is a documentation and reconciliation service. We draft carrier inquiries as your authorized administrative agent under a written authorization you control; we never act as a third-party collection agency or threaten legal action."
   },
   {
    "q": "\"Doesn't our AMS already handle this?\"",
    "a": "Most AMS platforms ship some reconciliation module, but it still requires a human to do the matching — it's a tool, not an outcome. Almost nobody at a small agency has the hours to actually run it every month. That's the specific gap we fill."
   },
   {
    "q": "\"Will we be relying on an AI-drafted ledger with no human check?\"",
    "a": "No. Every Monthly Reconciliation Pack is reviewed and signed by a named insurance-accounting reviewer before it's delivered. AI drafts; a human authorizes."
   },
   {
    "q": "\"Do you need a producer license to do this?\"",
    "a": "No. We perform back-office accounting and reconciliation only — no selling, soliciting, or negotiating insurance, and no contact with your insureds. That keeps this outside producer-licensing scope; see the compliance section for the full boundary."
   }
  ],
  "who_this_is_not_for": [
   "Agencies under 15 carrier appointments — statement volume is too low to find material leakage; we'll say so for free rather than sell a scan.",
   "Agencies wanting us to dispute an insurer's coverage determination or negotiate a claim — that's your own licensed staff's role; we reconcile commission income, never claims.",
   "Agencies wanting a guaranteed recovery number before the scan runs — nobody can honestly sell that, so we don't."
  ],
  "proof_pillars": [
   {
    "title": "Every claim tied to evidence",
    "body": "Every discrepancy traces to a source-statement citation and an AMS-policy reference in the evidence log. A carrier we can't confirm a discrepancy for is an explicit note, not a silent omission."
   },
   {
    "title": "Reviewer-released, every time",
    "body": "No pack auto-ships. A named insurance-accounting reviewer certifies every ledger; a second reviewer covers any high-value or first-time-carrier docket."
   },
   {
    "title": "Penny-perfect, by code",
    "body": "Every ledger's tie-out to statement totals is checked in deterministic code against the current commission schedule — the ledger renders the math, it doesn't describe it."
   }
  ],
  "stakes_line": "Unreconciled means unrecovered: carriers don't chase you to tell you they underpaid, and the longer a discrepancy sits, the harder it is to prove.",
  "deliverable": "Monthly Reconciliation Pack",
  "unit_of_work": "reconciliation cycle",
  "lexicon": {
   "regulator": "State Insurance Departments",
   "regulator_full": "State Insurance Departments (producer-licensing and collection-agency statute scope)",
   "statute": "State producer-licensing and collection-agency statutes",
   "statute_frame": "the intake-to-pack workflow where an unreconciled cycle is a self-inflicted forfeiture risk on the agency's own earned commissions.",
   "persona": "Agency Principal",
   "persona_moment": "You're the principal of a 10-person independent agency with 34 carrier appointments. A producer just emailed asking why their payout looks light again, and nobody has ever verified a single carrier statement against your own book of business.",
   "trigger_moment": "a producer payout dispute, a carrier check that 'looks light,' a tax-season book cleanup, or an agency-sale diligence request",
   "enforcement_stakes": "commissions age past the point any carrier will investigate them, and disputes go unresolved (outcomes vary case-by-case and are never guaranteed)",
   "retention": "the full audit trail of every reconciliation cycle and carrier inquiry",
   "cta_verb": "Start a free Commission Leakage Scan",
   "intake_checklist": [
    "AMS export of your full policy/commission book of business",
    "Carrier/MGA appointment list",
    "Last 3 months of carrier statements (PDF, portal CSV, or paper)",
    "Signed carrier-communication authorization"
   ],
   "regulator_faqs": [
    {
     "q": "Do carriers know CommissionClear is inquiring on our behalf?",
     "a": "Yes — every carrier inquiry states it is sent on your agency's behalf under your written authorization, which you control and can revoke at any time."
    },
    {
     "q": "Will a carrier treat a CommissionClear-drafted inquiry differently than one you send yourself?",
     "a": "No — it's evaluated the same either way. What changes is completeness and evidence: a reviewer-approved inquiry cites the specific statement line and expected amount, which resolves faster than an unevidenced question."
    }
   ],
   "trust_standards_specific": [
    "[PLACEHOLDER] owner to complete"
   ]
  },
  "proof_angle": {
   "id": "audit-readiness",
   "headline": "The next producer dispute or diligence request lands on a signed ledger, not a scramble — CommissionClear holds the evidence trail at rest.",
   "lever": "CommissionClear stores every match, discrepancy, and reviewer signature in an agency-indexed register a reviewer can walk without your help.",
   "outcome_verb": "answer",
   "outcome_frame": "answer a producer dispute or diligence request in a day instead of a week",
   "proof_promise": "The Commission Ledger is the answer — reviewer-signed, hash-stamped, and reproducible the day the question arrives."
  },
  "indexable": true,
  "ubiquitousLanguage": {
   "audience": "independent P&C-led insurance agency principals and ops/accounting managers, $500K-$5M annual commission revenue, 15-80 carrier appointments",
   "domain": "independent insurance agency commission reconciliation and recovery",
   "deliverable": "Monthly Reconciliation Pack + reviewer release",
   "reviewer": "insurance-accounting reviewer",
   "record": "reconciliation-cycle history register",
   "unit_of_work": "reconciliation cycle",
   "cta_primary": "Start a free Commission Leakage Scan",
   "cta_secondary": "See what's in the pack",
   "regulator": "State Insurance Departments",
   "regulator_full": "State Insurance Departments (producer-licensing and collection-agency statute scope)",
   "statute": "State producer-licensing and collection-agency statutes",
   "trigger_moment": "a producer payout dispute, a carrier check that looks light, or a tax-season/M&A diligence request",
   "event_intake_started": "agency_direct_bill_commission_recovery_desk_intake_started",
   "event_conversation_requested": "agency_direct_bill_commission_recovery_desk_conversation_requested"
  }
 },
 "evidence": [
  {
   "id": "agency-direct-bill-commission-recovery-desk-e1",
   "business_slug": "agency-direct-bill-commission-recovery-desk",
   "area": "Identity",
   "claim_or_finding": "Operating entity declared: Your Deputy, Obuke LLC, support@yourdeputy.com; CommissionClear is its service brand.",
   "status": "verified",
   "evidence": "Owner-supplied entity and support email; reflected in the landing-page footer and disclaimers.",
   "verification_command": "Owner submits entity + jurisdiction pack.",
   "fix_owner": "owner",
   "remediation": "Resolved — entity and contact declared. Remaining owner action: formal trademark/entity-name clearance for CommissionClear before scaling.",
   "severity": "info"
  },
  {
   "id": "agency-direct-bill-commission-recovery-desk-e2",
   "business_slug": "agency-direct-bill-commission-recovery-desk",
   "area": "Trust boundary",
   "claim_or_finding": "Public page is a validation microsite for a documentation/reconciliation-support service; not a licensed producer, collection agency, or law firm.",
   "status": "verified",
   "evidence": "Microsite carries an explicit trust-boundary and scope disclaimer block.",
   "verification_command": "Inspect /agency-direct-bill-commission-recovery-desk/ for trust boundary.",
   "fix_owner": "engineering",
   "remediation": "None — enforced by template.",
   "severity": "low"
  },
  {
   "id": "agency-direct-bill-commission-recovery-desk-e3",
   "business_slug": "agency-direct-bill-commission-recovery-desk",
   "area": "SEO integrity",
   "claim_or_finding": "No fabricated review, rating, or aggregateRating schema; no unclaimed-dollar-figure claims without primary-source support. A Service/Organization node is permitted because it reflects the real operating entity (Your Deputy, Obuke LLC).",
   "status": "verified",
   "evidence": "FAQPage + Service (real-entity Organization provider) schema planned; no review/rating/aggregateRating; marketing-compliance gate applied.",
   "verification_command": "View SEO Factory row for agency-direct-bill-commission-recovery-desk",
   "fix_owner": "engineering",
   "remediation": "None — enforced by SEO factory.",
   "severity": "low"
  },
  {
   "id": "agency-direct-bill-commission-recovery-desk-e4",
   "business_slug": "agency-direct-bill-commission-recovery-desk",
   "area": "Competitor/customer attribution correction",
   "claim_or_finding": "The source blueprint attributes The Baldwin Group to Comulate's customer base (\"sold to large brokers like Baldwin Group and IMA\"). Fresh verification (Ascend customer case study, corroborated by ReSource Pro materials) shows Baldwin Group's direct-bill automation runs on Ascend + ReSource Pro's Direct Bill Complete, not Comulate.",
   "status": "verified",
   "evidence": "Ascend customer case study (\"The Baldwin Group's seamless two month transition for direct bill processing\"); ReSource Pro/Ascend Direct Bill Complete press materials (Apr 2025).",
   "verification_command": "Re-fetch useascend.com and resourcepro.com Direct Bill Complete pages; compare stated customer roster against this build's copy.",
   "fix_owner": "engineering",
   "remediation": "Corrected everywhere the Baldwin Group/Comulate pairing appeared in this build's artifacts (business-plan.md fresh-verification notes; landing page and DNA avoid naming Baldwin Group as a Comulate customer). Comulate's broader budget-validation claim (large-broker customer base, Workday Ventures backing) stands independent of this correction.",
   "severity": "medium"
  },
  {
   "id": "agency-direct-bill-commission-recovery-desk-e5",
   "business_slug": "agency-direct-bill-commission-recovery-desk",
   "area": "Competitive landscape freshness",
   "claim_or_finding": "Applied Systems and Comulate were in active federal litigation as of Feb 2026 (a sandbox-account dispute); the court granted Applied narrow injunctive relief and rejected its broader reverse-engineering/derivative-product claims, leaving Comulate's antitrust counterclaim pending. Comulate remains operational.",
   "status": "verified",
   "evidence": "Comulate's own published summary of the Feb 12, 2026 ruling; Applied Systems May 2026 press release confirming continued Applied Recon investment.",
   "verification_command": "Re-fetch comulate.com/applied-vs-comulate and appliedsystems.com press releases for case status updates.",
   "fix_owner": "owner",
   "remediation": "Noted in business-plan.md as a fresh-verification finding; does not change the blueprint's core recommendation (both vendors remain active, validating enterprise-tier budget) but confirms the AMS-bundling risk (Risk Register R1/R5) is live, not hypothetical.",
   "severity": "low"
  },
  {
   "id": "agency-direct-bill-commission-recovery-desk-e6",
   "business_slug": "agency-direct-bill-commission-recovery-desk",
   "area": "Licensing boundary",
   "claim_or_finding": "CommissionClear never adjusts an insured loss or claim (a licensed adjuster/producer's exclusive function) and never guarantees a recovery amount or carrier response.",
   "status": "verified",
   "evidence": "Standard producer-licensing scope (selling/soliciting/negotiating) as described on NAIC and state DOI producer-licensing pages; verbatim disclaimer present on the landing page and compliance-checklist.md.",
   "verification_command": "Inspect /agency-direct-bill-commission-recovery-desk/ compliance section and builds/agency-direct-bill-commission-recovery-desk/compliance-checklist.md for verbatim disclaimer.",
   "fix_owner": "engineering",
   "remediation": "None — enforced by template and manual review.",
   "severity": "low"
  }
 ],
 "seo_pages": {
  "id": "seo-agency-direct-bill-commission-recovery-desk",
  "business_slug": "agency-direct-bill-commission-recovery-desk",
  "route": "/agency-direct-bill-commission-recovery-desk",
  "title": "CommissionClear — direct-bill commission reconciliation & recovery desk",
  "description": "CommissionClear for independent P&C and benefits agencies. A reconciled, reviewer-signed Commission Ledger and chased Discrepancy Docket from your own carrier statements — flat fee, 5 business days.",
  "canonical": "/agency-direct-bill-commission-recovery-desk",
  "og_title": "CommissionClear — Direct-Bill Commission Reconciliation & Recovery Desk for Independent Insurance Agencies",
  "og_description": "CommissionClear for independent P&C and benefits agencies. A reconciled, reviewer-signed Commission Ledger and chased Discrepancy Docket from your own carrier statements — flat fee, 5 business days.",
  "schema_type": "FAQPage",
  "schema_status": "pending-owner-facts",
  "sitemap_include": false,
  "noindex": true
 },
 "vertical_style": {
  "accent": "ledger-teal",
  "signature": "Ledger-desk tabs with a discrepancy-status chip",
  "layout": "Reconciliation desk index",
  "anti": "Insurtech gradient hero, stock handshake imagery, and alarm-red urgency banners"
 },
 "canva": {
  "slug": "agency-direct-bill-commission-recovery-desk",
  "territory": "Ledger Desk",
  "family": {
   "id": "insurance-back-office",
   "name": "Insurance distribution / back-office finance",
   "motion": "calm"
  },
  "tokens": {
   "brand": "216 64% 28%",
   "brand-fg": "40 30% 97%",
   "surface": "40 30% 97%",
   "ink": "216 30% 14%",
   "muted": "216 14% 40%",
   "accent": "38 88% 46%"
  },
  "type": {
   "display": "Georgia",
   "body": "Source Sans 3",
   "fonts_url": ""
  },
  "scale": {
   "h1": "clamp(2.5rem, 5.5vw, 4.25rem)",
   "h2": "clamp(1.75rem, 3vw, 2.5rem)",
   "h3": "clamp(1.25rem, 2vw, 1.5rem)",
   "body": "clamp(1rem, 1.1vw, 1.125rem)",
   "small": "0.8125rem",
   "tracking_display": "-0.02em",
   "tracking_body": "-0.005em",
   "weight_display": 700,
   "weight_body": 450
  },
  "spacing": {
   "card_padding": "1.75rem",
   "card_radius": "0.35rem",
   "card_shadow": "0 0 0 1px hsl(var(--ink) / 0.08)",
   "section_gap": "clamp(3.5rem, 8vw, 6.5rem)",
   "hero_gap": "clamp(1.25rem, 2vw, 2rem)"
  },
  "layout": {
   "hero": "split-primary",
   "card": "elevated-soft",
   "cta": "solid-brand",
   "archetype": "ledger",
   "card_silhouette": "flat-outline",
   "button_geometry": "rounded"
  },
  "background": {
   "hero_gradient": "radial-gradient(1100px 600px at 8% -10%, hsl(216 64% 28% / 0.14), transparent 60%), radial-gradient(800px 500px at 92% 0%, hsl(38 88% 46% / 0.10), transparent 55%)",
   "cta_gradient": "linear-gradient(135deg, hsl(216 64% 28%), hsl(38 88% 46%))",
   "section_wash": "linear-gradient(180deg, hsl(40 30% 97%) 0%, hsl(216 64% 28% / 0.04) 100%)"
  },
  "motif": "Statement-stack-to-ledger-row cover art"
 },
 "capabilities": {
  "marketing": true,
  "portal": false,
  "ops": true,
  "chatbot": false,
  "payments": false
 },
 "generated_at": "2026-07-13T09:00:00Z",
 "checksum": "sha256:generated-locally"
}