{
 "version": "1.8.0",
 "slug": "freight-claims-recovery-desk",
 "title": "ClaimRoute — Freight Claims Recovery Desk for Small-to-Mid LTL/FTL Shippers",
 "vertical": "Freight logistics / carrier-liability freight claims recovery (LTL/FTL)",
 "seed": {
  "s": "freight-claims-recovery-desk",
  "t": "ClaimRoute — Freight Claims Recovery Desk for Small-to-Mid LTL/FTL Shippers",
  "v": "Freight logistics / carrier-liability freight claims recovery (LTL/FTL)",
  "r": "Medium-high",
  "m": "M"
 },
 "product": {
  "slug": "freight-claims-recovery-desk",
  "project_name": "ClaimRoute",
  "project_type": "done-for-you, contingency-priced freight claims recovery service",
  "vertical": "Freight logistics / carrier-liability freight claims recovery (LTL/FTL)",
  "audience": "operations/logistics managers and controllers at $5M-$150M-revenue manufacturers, distributors, and industrial/building-products wholesalers shipping 20 to a few thousand LTL/FTL shipments/month via common (non-private-fleet) carriers, no dedicated in-house claims specialist",
  "geography": "United States (federal Carmack Amendment framework, 49 U.S.C. § 14706) — pilot cohort launches in only 1-2 states, chosen to allow time for a state-by-state third-party collection/claims-recovery licensing review before wider geographic expansion",
  "scale_expectation": "5-8 pilot accounts capped for the first 60 days regardless of inbound demand; 10-pilot hardening checkpoint by Day 90; a standing after-20-pilots pause on new onboarding until COGS/claim, rework rate, escalation rate, and cycle time are measured — no hard external filing deadline the way a single-event business would have, since shipment damage/loss is a continuous flow",
  "core_workflows": [
   "Freight Claim Eligibility Check & intake",
   "Claim-type classification & carrier-liability verification",
   "Claim Packet assembly & carrier filing",
   "Deadline Clock monitoring & Denial Review"
  ],
  "discovery": {
   "one_line_purpose": "On ClaimRoute, a shipper forwards one damaged, short, or lost shipment's paperwork and gets back, within 24 hours, a plain answer: filable or not, and why. If it's filable, ClaimRoute classifies the claim, verifies carrier liability under the Carmack Amendment, tracks the Deadline Clock, assembles and files the Claim Packet, and a Claims Specialist personally handles every carrier response and every Denial Review through to Recovery.",
   "primary_users": [
    "operations, logistics, or controller-level decision-maker at the shipper (owns the freight/logistics cost line)",
    "Claims Specialist (the trained human who reviews every classification and personally handles every Denial Review)",
    "carrier claims department (external, receives the filed Claim Packet and correspondence)"
   ],
   "jobs_to_be_done": [
    "Get the money a carrier owes back on a damaged, short, or lost shipment without anyone on staff learning freight-claims procedure or chasing a carrier's claims department for weeks",
    "Stop feeling like the company is quietly writing off recoverable money every month because nobody has time to fight for it",
    "Be the ops leader who tightened up a leaky, invisible cost center without adding headcount",
    "Never miss a filing deadline again — the 5-business-day concealed-damage window and the bill-of-lading filing window are easy to blow through by accident"
   ],
   "value_prop": "ClaimRoute turns a damaged, short, or lost shipment into a filed, tracked, and recovered claim — the shipper forwards the paperwork; ClaimRoute classifies the claim type, verifies carrier liability and the applicable Deadline Clock under the Carmack Amendment, assembles and files the Claim Packet, and a Claims Specialist personally handles every carrier response and every Denial Review. ClaimRoute is paid only out of Recovery.",
   "competitors": [
    "Enterprise self-operated claims-automation SaaS (CorePiper, iNymbus) built for shippers with an IT function and their own claims team",
    "Broker-bundled claims desks (TransLogistics Inc, publicly reporting $1.2M+/year recovered across 914 claimed shipments in 2024) — done-for-you, but only for shippers who route freight through that broker's own brokerage",
    "An in-house freight/cargo claims specialist hire ($18-37/hour per a fresh Glassdoor/ZipRecruiter check, 284+ live postings) — a fixed cost most $5M-$150M shippers cannot justify below a certain claim volume",
    "The status quo: writing off the damaged, short, or lost shipment as a cost of doing business, the default behavior behind the roughly 50% of eligible claims estimated to never get filed at all"
   ],
   "differentiation": "Done-for-you claims recovery, not a tool to operate: a maintained Carrier Knowledge Base of carrier-by-carrier deadline/documentation/contact data, a Claims Specialist's personal sign-off on every Claim Packet and every Denial Review, contingency-only pricing with no cost to try, and a standalone, broker-agnostic model sized for the $5M-$150M shipper the enterprise SaaS vendors and the bundled brokers do not serve.",
   "positioning_statement": "For small-to-mid manufacturers and distributors who are structurally likely to miss a freight-claim filing deadline or leave a claim unfiled, ClaimRoute is the done-for-you, contingency-priced freight claims recovery desk that turns one forwarded shipment's paperwork into a filed, tracked, carrier-liability-correct claim and, when it resolves, a check — unlike enterprise claims-automation software the shipper must operate itself, or a broker-bundled desk available only to that broker's own customers."
  },
  "assumptions": [
   {
    "id": "freight-claims-recovery-desk-a1",
    "statement": "Shippers will pay a Contingency Fee for done-for-you claims recovery over continuing to write off freight losses, once shown a concrete Freight Claim Eligibility Check finding.",
    "confidence": "medium",
    "impact_if_wrong": "severe",
    "revisit_trigger": "First 8 pilot Eligibility Check conversations — reject the wedge if a willingness-to-engage signal is absent."
   },
   {
    "id": "freight-claims-recovery-desk-a2",
    "statement": "A claim can hit the 24-hour Eligibility Check turnaround and the 10-14 day filing-cycle target from shipper-supplied BOL/POD/photos alone, without shipper-side software integration.",
    "confidence": "medium",
    "impact_if_wrong": "high",
    "revisit_trigger": "First 10-14 pilot claims filed end-to-end."
   },
   {
    "id": "freight-claims-recovery-desk-a3",
    "statement": "Shippers tolerate AI-assisted extraction and classification when a Claims Specialist's sign-off is explicit on every Claim Packet before it reaches a carrier.",
    "confidence": "medium",
    "impact_if_wrong": "high",
    "revisit_trigger": "First Denial Review resolved off a ClaimRoute-filed claim."
   },
   {
    "id": "freight-claims-recovery-desk-a4",
    "statement": "Eligibility-Check-to-engaged-shipper conversion reaches a workable rate among warm, qualified leads.",
    "confidence": "low",
    "impact_if_wrong": "severe",
    "revisit_trigger": "Day-90 pilot-cohort conversion measurement (see launch-plan.md 90-day retrospective)."
   },
   {
    "id": "freight-claims-recovery-desk-a5",
    "statement": "Logical, per-shipper claim-record isolation (not dedicated infrastructure per shipper) is acceptable to the pilot cohort.",
    "confidence": "medium",
    "impact_if_wrong": "high",
    "revisit_trigger": "Any prospect (e.g. a multi-facility manufacturer) with a hard single-tenant compliance clause."
   }
  ],
  "unknowns": [
   {
    "id": "freight-claims-recovery-desk-u1",
    "question": "Which 1-2 states will the pilot cohort launch in, pending the collection/claims-recovery licensing review?",
    "blocks": "Any commercial engagement in those states; the launch-sequencing decision.",
    "resolution_path": "Founder selects pilot states before Counsel's Day-30 licensing review opens (launch-plan.md Week 4)."
   },
   {
    "id": "freight-claims-recovery-desk-u2",
    "question": "What is the true Eligibility-Check-to-engaged conversion rate among warm, qualified shipper leads?",
    "blocks": "Pricing hypothesis; scaling decision.",
    "resolution_path": "5-8 account pilot cohort with explicit Contingency Fee conversation, measured against the Day-90 retrospective."
   },
   {
    "id": "freight-claims-recovery-desk-u3",
    "question": "How much does Carrier Knowledge Base coverage actually reduce Claims Specialist review minutes by Day 90?",
    "blocks": "Unit-economics model; specialist-throughput assumptions.",
    "resolution_path": "Instrument specialist minutes per claim from pilot 1; compare to the 12min->5min classification and 8min->4min packet-approval targets in delivery-playbook.md."
   }
  ],
  "expert_panel": [
   {
    "role": "Product Strategy",
    "key_concern": "Is the Freight Claim Eligibility Check narrow enough to sell in weeks without a custom TMS integration?",
    "recommendation": "Launch scoped to one forwarded shipment at a time via email/upload form; expand to an automated shipment-feed pull only after the Monitoring Retainer tier proves demand.",
    "dissent": "May understate the recurring-revenue story to prospects expecting always-on monitoring from day one."
   },
   {
    "role": "Software Architecture",
    "key_concern": "Are we defaulting to a client-facing status portal the pilot doesn't need yet?",
    "recommendation": "Single deployable modular monolith; email/upload-link intake and email delivery only at launch, no shipper-facing portal.",
    "dissent": "May read as under-built to a broker-partnership prospect expecting a branded dashboard."
   },
   {
    "role": "Frontend / UX",
    "key_concern": "Is the evidence chain (BOL/POD line to classification to Claims Specialist sign-off) visible in every specialist-facing view?",
    "recommendation": "Every Claim Packet renders its source-document citations, classification rationale, and specialist sign-off in one glance.",
    "dissent": "Adds density a non-logistics specialist hire might call cluttered."
   },
   {
    "role": "Backend / Data",
    "key_concern": "Is the audit trail append-only and reconstructable for a denied claim or a litigation referral years later?",
    "recommendation": "Event-sourced audit log for every claim-lifecycle state transition; hash-chained Claim Packet snapshots retained for the life of the claim plus the 2-year Carmack lawsuit deadline.",
    "dissent": "More write-path complexity than plain CRUD; requires schema discipline as new carrier formats are onboarded."
   },
   {
    "role": "AI / ML",
    "key_concern": "Are claim-type classifications and liability determinations grounded in the Carrier Knowledge Base and never a free-form guess?",
    "recommendation": "Retrieval-first classification citing the specific BOL/POD facts; deterministic date-math and dollar arithmetic in code, never the model; mandatory Claims Specialist gate before any carrier-facing filing.",
    "dissent": "Slower per-claim than a fully automated tool; may frustrate a shipper expecting instant filing."
   },
   {
    "role": "Security",
    "key_concern": "Is one shipper's shipment, financial, and correspondence data isolated from every other shipper's?",
    "recommendation": "Row-level auth, per-shipper retrieval partitioning, log-scrubbing of financial figures and carrier correspondence.",
    "dissent": "None recorded this run."
   }
  ],
  "strategy": {
   "business_model": "Contingency Fee only — tiered 25%/20%/15% of Recovery by claim size (or flat 15% for accounts filing 10+ claims/quarter), paid only out of Recovery; an optional Monitoring Retainer ($99-$499/month) with a reduced 10-15% Contingency Fee; never hourly, no flat per-claim fee as the primary model",
   "revenue_streams": [
    "Standard tiered Contingency Fee on filed, resolved claims",
    "Pilot-cohort flat 15% Contingency Fee (first 5-8 accounts)",
    "Monitoring Retainer ($99-$499/month, reduced 10-15% Contingency Fee)",
    "Freight-bill/parcel audit add-on (planned expansion)",
    "Carrier-selection consulting (planned expansion, using accumulated Carrier Knowledge Base data)"
   ],
   "moat": [
    "Carrier Knowledge Base — carrier-by-carrier deadline/documentation/contact data, compounding with every claim filed",
    "A Claims Specialist's carrier relationships and denial-fighting persistence, an operational habit no chatbot session replicates",
    "Contingency-only pricing that removes the incentive for a shipper to DIY a claim letter",
    "Standalone, broker-agnostic positioning — unlike TransLogistics Inc's bundled-brokerage model"
   ],
   "gtm": [
    "Founder-led educational content (10-post series on claim types, deadlines, and denial reasons) anchored to the Freight Claim Eligibility Check as a zero-risk entry point",
    "Trade-association and freight-broker partnership outreach (warm shortlist of 3-5 targets)",
    "Answer-engine/AEO-optimized FAQ content answering exact buyer phrasing (\"how do I file a freight claim,\" \"why was my freight claim denied\")"
   ],
   "pricing_hypothesis": "25% of Recovery under $2,500, 20% $2,500-$10,000, 15% over $10,000 or for 10+ claims/quarter; pilot cohort flat 15% regardless of size; optional Monitoring Retainer $99-$499/mo with reduced 10-15% Contingency Fee — priced inside the 15-35% range observed in adjacent commercial collection/audit-recovery markets and the 20-50% range Recoupex charges on international ocean/air cargo claims, applied to the domestic LTL/FTL Carmack Amendment niche Recoupex does not serve.",
   "kill_criteria": [
    "No signed pilot account in the first 4 weeks of qualified outreach",
    "Claims Specialist median review time exceeds the QC-gate targets after pilot 5 (delivery-playbook.md)",
    "No standard-tier Contingency Fee conversion by Day 90",
    "A filed claim or carrier inquiry causes a documented, ClaimRoute-caused reputational or shipper-relationship incident"
   ]
  },
  "security": {
   "stride": [
    {
     "threat": "Spoofing",
     "scenario": "Attacker impersonates a Claims Specialist to approve a fabricated classification or sign off on a Claim Packet.",
     "mitigation": "SSO with MFA; specialist sign-offs bound to a cryptographic session claim, not a form field."
    },
    {
     "threat": "Tampering",
     "scenario": "Historical Claim Packet or correspondence log entries edited after the fact to hide a filing error.",
     "mitigation": "Append-only audit log; hash-chained Claim Packet snapshots; diff view on every specialist surface."
    },
    {
     "threat": "Repudiation",
     "scenario": "A Claims Specialist denies approving a classification or Claim Packet that later proves wrong.",
     "mitigation": "Signed attestations with server-side timestamp + specialist identity; export bundle includes a signature manifest."
    },
    {
     "threat": "Information Disclosure",
     "scenario": "Cross-shipper leak of one shipper's shipment/financial data through shared indices, logs, or prompts.",
     "mitigation": "Shipper-scoped row-level auth; PII/financial-data scrubbing in logs; retrieval indices partitioned per shipper."
    },
    {
     "threat": "Denial of Service",
     "scenario": "A runaway extraction job or a bulk shipment-feed import exhausts shared workers during a volume spike.",
     "mitigation": "Per-tenant concurrency + budget caps; circuit breaker on model calls; degrade-gracefully queue."
    },
    {
     "threat": "Elevation of Privilege",
     "scenario": "A standard operator acquires Claims Specialist-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-shipper isolation; Claims-Handling Authorization on file before any carrier correspondence; deletion-schedule runbook published.",
   "compliance_targets": [
    "State-by-state third-party collection/claims-recovery licensing review before multi-state expansion (the single most important open legal item)",
    "Public-adjuster licensing scope confirmation per state (Carmack claims are carrier-liability, not insurance-policy claims — an inferred reading pending counsel)",
    "Unauthorized-practice-of-law boundary — litigation and formal arbitration referred to independent licensed counsel, with no fee-splitting retained",
    "FDCPA-adjacent professional-conduct norms followed in all carrier correspondence, though the statute itself governs consumer debt, not B2B commercial cargo claims"
   ],
   "data_classifications": [
    "Shipment data — BOL, POD, damage/shortage photos (sensitive business data)",
    "Carrier correspondence (sensitive, third-party-sourced)",
    "Invoice/purchase valuation data (sensitive financial)",
    "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 shipper + request IDs",
    "RED metrics per workflow",
    "Error tracking with source maps",
    "Model-call spans with cost + latency",
    "Weekly SLO review, with a claim-volume-spike capacity review"
   ],
   "testing_pyramid": [
    "Unit tests on Deadline Clock date-math and completeness-gate modules",
    "Component tests on the Claims Specialist review/exception-queue surfaces",
    "Contract tests on the carrier-statement/documentation schema per Carrier Knowledge Base entry",
    "End-to-end smoke test on the intake -> classify -> specialist sign-off -> filing path"
   ],
   "accessibility_tests": [
    "axe-core in CI on specialist-facing surfaces",
    "Keyboard-only walkthrough per workflow",
    "Prefers-reduced-motion honored"
   ],
   "performance_budget": "p95 workflow latency published per module; BOL/POD 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 claim classification or carrier inquiry released without Claims Specialist approval",
    "Carrier-correspondence language read as a demand or collection threat rather than a claim inquiry",
    "An error in a filed Claim Packet attributed to AI rather than owned by the Claims Specialist"
   ],
   "ethical_guardrails": [
    "Human Claims Specialist approval required before any classification or Claim Packet ships to a carrier",
    "Deterministic output filter blocks demand/collection-style language in every drafted carrier correspondence",
    "AI-usage disclosure available in the Claims-Handling Authorization where relevant"
   ]
  },
  "governance": {
   "ownership": [
    {
     "area": "Product + roadmap",
     "owner": "Founder"
    },
    {
     "area": "Architecture + platform",
     "owner": "Engineering Lead"
    },
    {
     "area": "Claim classification + specialist workflow",
     "owner": "Named Claims Specialist"
    },
    {
     "area": "Compliance + privacy",
     "owner": "Counsel (part-time/as-needed)"
    },
    {
     "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",
    "Claims Specialist playbook + sign-off 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., file-claim-with-carrier)"
   ],
   "change_control": "ADR-per-major-decision; migrations require review; production deploys gated on green CI + owner-action ledger check."
  },
  "risk_register": [
   {
    "id": "freight-claims-recovery-desk-r1",
    "risk": "State third-party collection/claims-recovery licensing applies to ClaimRoute in a pilot or expansion state",
    "likelihood": "medium",
    "impact": "severe",
    "mitigation": "Launch in only 1-2 reviewed states; Counsel's written licensing opinion required before claims-handling activity proceeds",
    "contingency": "Pause claims-handling activity in the affected state; obtain the required license/bond before resuming",
    "owner": "legal"
   },
   {
    "id": "freight-claims-recovery-desk-r2",
    "risk": "AI hallucination in a delivered claim classification or carrier inquiry",
    "likelihood": "medium",
    "impact": "high",
    "mitigation": "Retrieval-first pipeline + structured output validation + Claims Specialist gate",
    "contingency": "Specialist-triggered rollback + regeneration; incident postmortem published to the shipper",
    "owner": "engineering"
   },
   {
    "id": "freight-claims-recovery-desk-r3",
    "risk": "Cross-shipper freight/financial data leak",
    "likelihood": "low",
    "impact": "severe",
    "mitigation": "Row-level auth + per-shipper retrieval indices + log-scrubbing",
    "contingency": "Breach-notification runbook; forced credential rotation; scoped shipper kill switch",
    "owner": "engineering"
   },
   {
    "id": "freight-claims-recovery-desk-r4",
    "risk": "Pilot shipper churns before converting to standard-tier pricing",
    "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": "freight-claims-recovery-desk-r5",
    "risk": "An enterprise SaaS vendor or AMS/TMS platform ships free, good-enough claims automation with a chase workflow",
    "likelihood": "medium-high",
    "impact": "high",
    "mitigation": "Broker-agnostic, done-for-you positioning; Denial Review persistence as the human moat software won't replicate",
    "contingency": "Reposition around the operational grind competitors' software leaves the shipper to do themselves",
    "owner": "owner"
   }
  ],
  "roadmap": [
   {
    "phase": "Phase 0 — Stand up the operating spine",
    "weeks": "Week 1 (Days 1-7)",
    "outcomes": [
     "Intake inbox, Claims-Handling Authorization template, spreadsheet tracker, and Eligibility Check landing page live and tested",
     "First 3 educational content pieces published",
     "Warm-network outreach sent"
    ],
    "exit_criteria": [
     "Mailbox tested with one dummy submission",
     "Counsel sign-off on the Authorization template",
     "One full test submission processed end-to-end through to an Eligibility Check answer"
    ],
    "kill_criteria": [
     "Any of the operating-spine items not ready by Day 7 — outreach held even if it slips past Day 7"
    ]
   },
   {
    "phase": "Phase 1 — Onboard the pilot cohort, file the first claims",
    "weeks": "Weeks 2-4 (Days 8-30)",
    "outcomes": [
     "5-8 pilot accounts signed and active in 1-2 states",
     "First Claim Packets filed under heavy founder involvement",
     "State licensing review opened",
     "5-pilot hardening checklist documented"
    ],
    "exit_criteria": [
     "Pilot cap enforced at 8 accounts regardless of inbound demand",
     "Founder personally reviews every classification before filing",
     "Any gap raised by 2+ pilot accounts has a corresponding rule fix"
    ],
    "kill_criteria": [
     "Fewer than 2 signed pilots after 2 weeks of qualified outreach",
     "No willingness-to-engage signal above pilot pricing"
    ]
   },
   {
    "phase": "Phase 2 — Hold the cap, prove the model",
    "weeks": "Weeks 5-8 (Days 31-60)",
    "outcomes": [
     "Claim Packets filed and tracked for the full pilot cohort",
     "First feedback debriefs completed",
     "First Recoveries land and Contingency Fee invoiced at the pilot flat 15% rate",
     "Written licensing opinion obtained for the pilot states"
    ],
    "exit_criteria": [
     "Fee invoiced only after Recovery is confirmed paid by the carrier",
     "No claims-handling activity requiring a license proceeds without written clearance"
    ],
    "kill_criteria": [
     "Pilot-cohort recovery rate stalls far below the 35-45% manual-baseline floor",
     "Rework rate persistently above target"
    ]
   },
   {
    "phase": "Phase 3 — Formalize SOPs, hire the first Claims Specialist",
    "weeks": "Weeks 9-13 (Days 61-90)",
    "outcomes": [
     "First paid Claims Specialist hired and independently handling routine classifications",
     "Written SOPs, exception-queue workflow, and reviewer-assignment checklists formalized",
     "Carrier Knowledge Base coverage complete for the full pilot cohort",
     "Monitoring Retainer tier launched",
     "90-day retrospective completed"
    ],
    "exit_criteria": [
     "Specialist shadows Founder on at least 5 live claims before unsupervised classification",
     "Every carrier used by the pilot cohort has a Carrier Knowledge Base entry",
     "Licensing review complete (final, not interim) for the pilot states"
    ],
    "kill_criteria": [
     "Escalation-to-outside-counsel rate exceeds 5%",
     "Recovery rate or cycle time not improving toward the Day-90 targets"
    ]
   }
  ],
  "metrics": {
   "north_star": "Filed, tracked Claim Packets resulting in Recovery per week, per shipper, with zero shipper-caught material errors",
   "leading": [
    "Pilot shipper Claims-Handling Authorizations signed",
    "Eligibility-Check-request-to-answer cycle time (target: 24 hours)",
    "Claims Specialist review time per claim",
    "Evidence-checklist completeness per Claim Packet",
    "Owner-action ledger closure rate"
   ],
   "lagging": [
    "Standard-tier Contingency Fee accounts signed",
    "Eligibility-Check-to-engaged conversion (measured at the Day-90 retrospective)",
    "Claim recovery rate (target ≥60% at maturity vs. the 35-45% manual industry baseline)",
    "Average cycle time (target 10-14 days vs. the 47-day manual baseline)"
   ],
   "guardrails": [
    "Model spend per shipper per week",
    "PII/financial data in logs (target: 0)",
    "Cross-shipper access attempts (target: 0)",
    "Escalation-to-outside-counsel rate (target: <5%)"
   ]
  },
  "executive_review": {
   "consensus": "Ship a thin, evidence-linked, Claims-Specialist-gated vertical slice for ClaimRoute, wedged on the Freight Claim Eligibility Check. Prefer a boring, single-region modular monolith. Do not launch commercially past the pilot-state footprint until Counsel's written licensing opinion is in hand and at least one Claims-Specialist-signed Claim Packet has resolved.",
   "dissent": "Founder and Counsel disagree on launch tempo — Counsel recommends waiting for the full state-by-state collection-agency-statute review before onboarding any account beyond the initial 1-2 pilot states.",
   "go_no_go": "conditional-go",
   "top_3_risks": [
    "State third-party collection/claims-recovery licensing applies in a pilot or expansion state",
    "AI hallucination in a delivered claim classification or carrier inquiry",
    "Cross-shipper freight/financial data leak"
   ],
   "first_10_steps": [
    "Stand up the intake inbox, Claims-Handling Authorization template, and Eligibility Check landing page",
    "Populate the owner-action ledger with entity, jurisdiction, contact inbox, privacy inbox",
    "Open pilot-cohort intake (cap 8) with an explicit Contingency Fee conversation",
    "Write the pilot-state selection and kill/pivot criteria into the launch plan",
    "Stand up the evidence-linked intake -> classify -> specialist sign-off -> filing loop",
    "Wire the append-only audit log + hash-chained Claim Packet snapshots",
    "Add row-level auth + shipper-scoped retrieval indices",
    "Instrument Eligibility-Check-request, packet-filed, and specialist-sign-off events",
    "Publish the microsite noindexed until owner-action facts close",
    "Schedule the Day-90 kill/pivot review with the Founder"
   ]
  }
 },
 "project_site": {
  "slug": "freight-claims-recovery-desk",
  "app_name": "ClaimRoute freight claims recovery desk",
  "archetype": "claims recovery desk",
  "archetype_label": "freight claims recovery & filing desk",
  "reader_role": "Operations / Logistics Manager",
  "one_sentence_app": "ClaimRoute Desk is a claims recovery desk for operations and logistics managers who need one damaged, short, or lost shipment turned into a filed, tracked, carrier-liability-correct claim before the Deadline Clock runs out.",
  "homepage_sequence": [
   "scene",
   "workflow",
   "instrument",
   "offer",
   "proof",
   "qualification",
   "objections"
  ],
  "hero": {
   "frame_label": "Freight logistics · freight claims recovery & filing desk",
   "eyebrow": "Ops/logistics manager or controller / shipment arrived damaged, short, or missing",
   "interface_title": "ClaimRoute freight claims recovery desk",
   "primary_panel_title": "Claim #CR-2026-000482 · LTL shipment · Deadline Clock running",
   "primary_panel_body": "Open claim run: classify this shipment's claim type, verify carrier liability under the Carmack Amendment, then stage the Claim Packet for Claims Specialist release.",
   "side_panel_title": "Before this ships",
   "side_panel_items": [
    "Claim type classified with a cited BOL/POD fact",
    "Required-evidence checklist satisfied or exception logged",
    "Claims Specialist has signed off on classification and liability"
   ],
   "status_metric": "REVIEW",
   "status_label": "specialist release gate active"
  },
  "language": {
   "problem_heading": "The ops manager's moment",
   "mechanism_heading": "Inside the ClaimRoute recovery desk",
   "proof_heading": "Why this survives a carrier's denial or a controller's read",
   "offer_heading": "What leaves the room",
   "objection_heading": "The hard questions",
   "qualification_heading": "Who should not use this",
   "cta_close": "Get your free Freight Claim Eligibility Check — reviewed by a real Claims Specialist, filed and tracked through to Recovery."
  },
  "modules": [
   {
    "name": "Freight Claim Eligibility Check",
    "job": "Turns a forwarded shipment's paperwork into a named claim record with a filable/not-filable answer within 24 hours.",
    "artifact": "eligibility record"
   },
   {
    "name": "Claim Packet",
    "job": "Holds the bill of lading, proof of delivery, evidence, and itemized valuation, tied to a cited liability determination, signed by the Claims Specialist.",
    "artifact": "filing package"
   },
   {
    "name": "Deadline Clock",
    "job": "Tracks the 5-business-day concealed-damage notice, the bill of lading's filing window, and the carrier's 30-day acknowledgment and 120-day resolution clocks, escalating as each approaches.",
    "artifact": "tracked deadline record"
   }
  ],
  "checkpoints": [
   {
    "label": "claim-type classification",
    "pass": "classified with a cited BOL/POD fact",
    "fail": "routed to a second Claims Specialist"
   },
   {
    "label": "required-evidence completeness",
    "pass": "deterministic rule, packet cleared for filing",
    "fail": "blocked, routed to exception queue with a named missing item"
   },
   {
    "label": "Claim Packet",
    "pass": "Claims Specialist releases (second specialist above the senior-review threshold)",
    "fail": "stays in review"
   }
  ],
  "signature_scene": "You're the operations manager at a 40-person distributor. A pallet came in from an LTL carrier last week with the corner crushed, and the receiving team photographed it out of habit — but nobody knows if the five-day window to report it has already closed, what type of claim this even is, or who at the carrier to even call. Forty shipments a month, a dozen different carriers, and nobody's job is to catch this. This page is built like the recovery desk that shipment needed before the clock ran out."
 },
 "ddd": {
  "slug": "freight-claims-recovery-desk",
  "project_name": "ClaimRoute",
  "business_understanding": {
   "summary": "ClaimRoute — a shipper forwards one damaged, short, or lost shipment's paperwork and ClaimRoute classifies the claim type, verifies carrier liability under the Carmack Amendment, tracks the Deadline Clock, assembles and files the Claim Packet, and a Claims Specialist personally handles every carrier response and every Denial Review through to Recovery.",
   "customer_profile": "small-to-mid U.S. manufacturers, distributors, and industrial/building-products wholesalers, $5M-$150M revenue, shipping 20 to a few thousand LTL/FTL shipments/month via common carriers, no dedicated in-house claims specialist",
   "customer_pain": "A shipment arrives damaged, short, or never arrives; correctly classifying the claim type, gathering evidence, and filing inside a narrow, carrier-specific deadline window is tedious and easy to miss; most shippers have no one whose job it is to do this systematically, so roughly half of eligible claims are never filed, and of those filed without discipline, LTL denial rates run 50-60% and manual recovery rates run only 35-45% of claimed value.",
   "paid_outcome": "A filed, carrier-acknowledged Claim Packet with a tracked Deadline Clock, escalation on non-response, and — when the claim resolves — a Recovery check routed to the shipper, minus the Contingency Fee; reconstructable on demand, defensible to a carrier or the shipper's own controller.",
   "value_creation": "AI compresses BOL/POD extraction, claim-type classification, and Claim Packet drafting; deterministic code owns every date computation, dollar figure, and completeness gate; humans own Claims Specialist sign-off, Denial Review negotiation judgment, and anything carrier-facing; the platform binds them with an append-only audit trail and per-shipper isolation.",
   "why_ai_native": "The extract-classify-file-chase loop is only economical with a bounded AI layer feeding deterministic rules. A pure-manual specialist hire cannot hit contingency-only pricing at the claim volumes small/mid shippers generate; a pure-automated SaaS cannot draft a carrier inquiry a shipper will trust, hold the specialist-approval gate, or absorb the judgment calls (denial negotiation, litigation-referral timing) that keep the claim defensible.",
   "operational_risks": [
    "Claims Specialist bottleneck during a shipment-volume spike across many shippers at once",
    "Prompt injection via uploaded BOL/POD/photo document content",
    "Cross-shipper retrieval leak",
    "Complete records unobtainable at scale (claims stuck in evidence-gap status)",
    "A carrier correspondence read as a demand rather than a routine claim inquiry, damaging the shipper's carrier relationship"
   ],
   "assumptions": [
    "Shippers will pay a Contingency Fee for evidence-linked, human-reviewed claims recovery over continuing to write off freight losses unfiled.",
    "The workflow can be reconstructed from shipper-supplied BOL/POD/photos and the Carrier Knowledge Base within the 24-hour Eligibility Check and 10-14 day filing-cycle targets.",
    "The vertical tolerates AI-assisted drafts when Claims Specialist approval is explicit and every carrier-facing send is authorized under the Claims-Handling Authorization.",
    "Logical, per-shipper claim isolation (not dedicated infrastructure per shipper) is acceptable for the first cohort.",
    "Demand persists as a continuous shipment-flow need, not a one-time event — unlike a single-deadline filing business."
   ],
   "validation_questions": [
    "Which 1-2 states will the pilot cohort launch in, pending the licensing review?",
    "Which carriers and claim-type mixes are in scope for launch?",
    "What is the actual Eligibility-Check-to-engaged conversion rate at pilot pricing vs. standard pricing?",
    "Which existing systems (shipper TMS, email) must this integrate with day one?",
    "Is there a data-residency or on-prem constraint for any pilot shipper's shipment data?"
   ]
  },
  "domain_discovery": {
   "actors": [
    {
     "actor": "Shipper Contact (Ops/Logistics Manager or Controller)",
     "role": "Owns the claims-recovery engagement; supplies shipment records and authorizes carrier correspondence",
     "goals": [
      "Recover missing/short-paid/lost-shipment value",
      "Avoid losing staff hours to claim filing and deadline tracking",
      "Have a defensible, filed claim for carrier disputes and internal review"
     ],
     "decisions": [
      "Whether to engage ClaimRoute",
      "Which shipment records to supply",
      "Whether to sign the Claims-Handling Authorization"
     ],
     "pain_points": [
      "No time for deadline tracking or claim-type classification",
      "Doesn't know which carriers are shortchanging the company on claims"
     ]
    },
    {
     "actor": "Claims Specialist",
     "role": "Reviews AI-classified claims and drafted Claim Packets; signs off before filing or carrier correspondence; personally handles every Denial Review",
     "goals": [
      "Release only evidence-backed, correctly classified Claim Packets",
      "Protect the shipper's carrier relationships",
      "Recover as much of every valid claim as possible"
     ],
     "decisions": [
      "Approve, escalate, or request more evidence on a classification",
      "Decide whether a denied claim is worth re-appealing, escalating, or referring to outside counsel"
     ],
     "pain_points": [
      "Volume spikes during a shipment-damage cluster",
      "Ambiguous concealed-vs-visible damage boundary cases requiring judgment"
     ]
    },
    {
     "actor": "Shipper's Own Counsel (external, referral-only)",
     "role": "Receives litigation/arbitration referrals when a claim proceeds past administrative negotiation",
     "goals": [
      "Resolve the litigated dispute on the shipper's behalf"
     ],
     "decisions": [
      "Whether to accept the referred matter"
     ],
     "pain_points": [
      "Receiving a referral without a complete evidence and correspondence history"
     ]
    },
    {
     "actor": "Carrier Claims Department (external)",
     "role": "Receives the filed Claim Packet and any follow-up correspondence",
     "goals": [
      "Resolve claims without escalation"
     ],
     "decisions": [
      "Acknowledge, pay, deny, or request more documentation on a claim"
     ],
     "pain_points": [
      "High inquiry volume across many shippers and claim formats"
     ]
    }
   ],
   "glossary": [
    {
     "term": "Freight Claim Eligibility Check",
     "definition": "The free, 24-hour diagnostic: one shipment in, a filable/not-filable answer out.",
     "used_by": "Shipper Contact",
     "context": "Intake & Normalization",
     "example": "Eligibility Check for the LTL shipment delivered damaged on July 8",
     "notes": "Never called 'assessment', 'audit', or 'review'."
    },
    {
     "term": "Claim",
     "definition": "The formal demand filed against a carrier for one shipment's loss, damage, or non-delivery.",
     "used_by": "Claims Specialist, Shipper Contact",
     "context": "Claim Classification & Liability",
     "example": "Claim #CR-2026-000482, Concealed Damage, $4,200 declared value",
     "notes": "Never called 'case', 'ticket', or 'file'."
    },
    {
     "term": "Claim Packet",
     "definition": "The assembled BOL + POD + evidence + itemized valuation + narrative filed with the carrier.",
     "used_by": "Claims Specialist, Shipper Contact",
     "context": "Filing & Deadline-Monitoring",
     "example": "Claim Packet filed with the carrier July 15",
     "notes": "Never called 'submission' or 'report'."
    },
    {
     "term": "Deadline Clock",
     "definition": "The tracked statutory/contractual window — 5-business-day concealed-damage notice, up to 9-month filing window, 30-day carrier acknowledgment, 120-day carrier resolution.",
     "used_by": "AI + rules, Claims Specialist",
     "context": "Filing & Deadline-Monitoring",
     "example": "Deadline Clock: acknowledgment due August 14, resolution due November 12",
     "notes": "Never called 'timeline' or 'schedule'."
    }
   ],
   "decisions": [
    {
     "decision": "Is this shipment a Visible Damage, Concealed Damage, Shortage, or Non-Delivery claim?",
     "who": "AI drafts, Claims Specialist confirms",
     "inputs": [
      "[PLACEHOLDER] owner to complete"
     ],
     "rule": "Classification prompt cites the deciding BOL/POD fact; ambiguous cases lower the confidence score rather than guess",
     "output": "Claim-type classification with cited rationale",
     "risk": "Wrong claim type applies the wrong deadline/documentation path"
    },
    {
     "decision": "Is the Claim Packet ready to file?",
     "who": "Deterministic code gates, Claims Specialist approves",
     "inputs": "Required-evidence checklist per claim type, Deadline Clock state",
     "rule": "Completeness rule: every required document present or a named exception logged; Concealed Damage claims blocked if the 5-day notice window lapsed with no prior notice",
     "output": "Filed Claim Packet",
     "risk": "Filed packet with a missing document causing an avoidable denial"
    }
   ],
   "events": [
    {
     "event": "ShipmentDataNormalized",
     "meaning": "A shipment's BOL/POD/photos are extracted into structured fields, ready for classification",
     "trigger": "Extraction Agent completes parsing + completeness pre-check",
     "downstream": [
      "[PLACEHOLDER] owner to complete"
     ]
    },
    {
     "event": "ClaimTypeClassified",
     "meaning": "A shipment's claim is classified into one of the four claim types with a cited rationale",
     "trigger": "Classification Agent completes claim-type + liability determination",
     "downstream": "Claim Packet drafting begins; Deadline Clock calculated"
    }
   ]
  },
  "subdomains": [
   {
    "name": "Claim Classification & Liability",
    "type": "core",
    "description": "Shipment-data normalization, claim-type classification, carrier-liability determination against the Carmack Amendment.",
    "reason": "This is the paid outcome's first gate — the classification and liability call determines everything downstream.",
    "business_value": "Direct revenue driver; every filed claim starts here.",
    "recommendation": "Build in-house, deterministic-rules-first.",
    "ai_involvement": "Extraction, classification, liability-drafting",
    "human_involvement": "Claims Specialist review and approval",
    "risks": [
     "Missed classification causing a wrong deadline path",
     "Incomplete evidence causing a shipper-caught error"
    ],
    "validation_questions": [
     "What is the real Claims Specialist review time per claim at volume?"
    ]
   },
   {
    "name": "Filing & Deadline-Monitoring",
    "type": "core",
    "description": "Claim Packet assembly, carrier filing, and Deadline Clock tracking/escalation.",
    "reason": "Differentiates ClaimRoute from a shipper DIY-ing a claim letter — this is the filing-and-tracking discipline layer.",
    "business_value": "Drives conversion (free Eligibility Check -> filed claim) and Recovery.",
    "recommendation": "Build in-house; maintain the Carrier Knowledge Base from day one.",
    "ai_involvement": "Drafts packets and follow-up correspondence",
    "human_involvement": "Claims Specialist approves every filing; escalation judgment",
    "risks": [
     "Missed filing SLA"
    ],
    "validation_questions": [
     "How often do carriers acknowledge within the 30-day window?"
    ]
   },
   {
    "name": "Denial & Negotiation",
    "type": "core",
    "description": "Denial Review, appeal/escalation judgment, and litigation-referral decisions.",
    "reason": "This is the human-chokepoint moat that closes the gap between manual and automated recovery rates.",
    "business_value": "Directly drives the 35-45% -> 60%+ recovery-rate improvement the business is built on.",
    "recommendation": "Build thin tooling (denial-reason categorization, rebuttal drafts); keep the negotiation itself entirely human.",
    "ai_involvement": "Drafts denial-reason categorization and a suggested rebuttal",
    "human_involvement": "Claims Specialist personally handles every negotiation and litigation-referral decision",
    "risks": [
     "Weak negotiation leaving Recovery unclaimed",
     "Referring too early wastes attorney fees; too late risks the 2-year Carmack lawsuit deadline"
    ],
    "validation_questions": [
     "What share of denials are actually fixable on appeal vs. genuinely lost?"
    ]
   },
   {
    "name": "Carrier Knowledge",
    "type": "supporting",
    "description": "Maintained, carrier-by-carrier deadline/documentation/contact database and historical denial-pattern log.",
    "reason": "Necessary complement to filing and classification but not itself the sold outcome.",
    "business_value": "Compounds accuracy and speed with every claim filed across every shipper.",
    "recommendation": "Build incrementally from real pilot-cohort carrier mixes.",
    "ai_involvement": "Assembles and updates carrier profiles from claim outcomes",
    "human_involvement": "Claims Specialist confirms deadline rules per carrier at intake",
    "risks": [
     "Stale deadline rule applied after a carrier tariff change"
    ],
    "validation_questions": [
     "Which carriers need re-verification most often?"
    ]
   },
   {
    "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": "Claim Classification & Liability",
   "secondary_cores": [
    "Filing & Deadline-Monitoring",
    "Denial & Negotiation"
   ],
   "supporting_may_become_core": [
    "Carrier Knowledge"
   ],
   "generic_do_not_distract": [
    "Referral & Outreach",
    "CRM/pipeline tracking"
   ],
   "rationale": "The paid outcome is a filed, correctly classified, carrier-liability-correct Claim Packet, so Claim Classification & Liability is the primary core. Filing & Deadline-Monitoring and Denial & Negotiation are secondary cores because the deadline discipline and denial-fighting persistence are the human-plus-AI moat that differentiates ClaimRoute from software the shipper would have to operate itself. Carrier Knowledge could become core as the database matures into a licensable data asset, but starts as supporting. Referral & Outreach uses off-the-shelf tooling deliberately to keep engineering focus on the classification and recovery engine."
  },
  "bounded_contexts": [
   {
    "name": "Intake & Normalization",
    "purpose": "Turn a forwarded shipment's documents into a normalized, completeness-checked claim record ready for classification.",
    "subdomain": "Claim Classification & Liability (core)",
    "type": "core",
    "owned_language": [
     "shipment",
     "Eligibility Check",
     "completeness check"
    ],
    "owns": [
     "Shipment intake lifecycle",
     "Normalization state",
     "Required-evidence completeness"
    ],
    "does_not_own": [
     "Claim-type classification",
     "Specialist sign-off"
    ],
    "primary_actors": [
     "Shipper Contact",
     "Extraction Agent"
    ],
    "entities": [
     "Shipment",
     "Claim"
    ],
    "value_objects": [
     "ConfidenceScore",
     "DocumentsReceived"
    ],
    "aggregates": [
     "ShipmentAggregate"
    ],
    "domain_services": [
     "Shipment normalizer",
     "Completeness checker"
    ],
    "application_services": [
     "ReceiveClaimIntake",
     "NormalizeShipmentData",
     "CheckCompleteness"
    ],
    "commands": [
     "ReceiveClaimIntake",
     "NormalizeShipmentData"
    ],
    "domain_events": [
     "claim.intake_received",
     "shipment.data_normalized",
     "shipment.completeness_check_failed"
    ],
    "policies": [
     "Auto-flag missing required document against the claim type's evidence checklist"
    ],
    "specifications": [
     "RequiredEvidenceCompletenessSpec"
    ],
    "invariants": [
     "A Shipment cannot proceed to classification until its required-evidence checklist is satisfied or a named exception is logged"
    ],
    "ai_agents": [
     "Extraction Agent"
    ],
    "human_roles": [
     "Shipper Contact"
    ],
    "data_owned": [
     "Shipment",
     "Claim"
    ],
    "inputs": [
     "Forwarded/uploaded BOL, POD, damage/shortage photos, invoice value"
    ],
    "outputs": [
     "Normalized canonical shipment records"
    ],
    "external_integrations": [
     "Monitored intake mailbox",
     "Upload form",
     "Shipper TMS feed (Monitoring Retainer accounts)"
    ],
    "risks": [
     "A malformed document silently mis-extracted",
     "Missing document for the claim type goes unnoticed"
    ],
    "interfaces": [
     "-> Claim Classification & Liability (ShipmentDataNormalized)"
    ]
   },
   {
    "name": "Claim Classification & Liability",
    "purpose": "Classify the claim type, verify carrier liability under the Carmack Amendment, and draft the Claim Packet narrative and valuation.",
    "subdomain": "Claim Classification & Liability (core)",
    "type": "core",
    "owned_language": [
     "Claim",
     "Claim type",
     "Claim Packet",
     "liability determination"
    ],
    "owns": [
     "Classification engine",
     "Liability determination",
     "Claim Packet drafting"
    ],
    "does_not_own": [
     "Specialist identity",
     "Billing"
    ],
    "primary_actors": [
     "Claims Specialist",
     "Classification Agent"
    ],
    "entities": [
     "Claim",
     "ClaimPacket"
    ],
    "value_objects": [
     "ConfidenceScore",
     "ClaimTypeClassification"
    ],
    "aggregates": [
     "ClaimAggregate",
     "ClaimPacketAggregate"
    ],
    "domain_services": [
     "Classification engine",
     "Deadline Clock calculator"
    ],
    "application_services": [
     "ClassifyClaimType",
     "CalculateDeadlineClock",
     "AssembleClaimPacket",
     "ApprovePacket"
    ],
    "commands": [
     "ClassifyClaimType",
     "AssembleClaimPacket",
     "ApprovePacket",
     "RequestPacketRevision"
    ],
    "domain_events": [
     "claim.type_classified",
     "claim.deadline_clock_calculated",
     "packet.assembled",
     "packet.approved_by_specialist",
     "packet.revision_requested"
    ],
    "policies": [
     "Auto-route classifications below 70% confidence to a second Claims Specialist"
    ],
    "specifications": [
     "RequiredEvidenceCompletenessSpec",
     "EvidenceCitationSpec"
    ],
    "invariants": [
     "A Claim Packet cannot be filed without Claims Specialist sign-off on classification and liability",
     "No dollar figure in a filed Claim Packet is ever LLM-computed"
    ],
    "ai_agents": [
     "Classification Agent",
     "Packet Drafting Agent",
     "Deadline Clock Agent"
    ],
    "human_roles": [
     "Claims Specialist"
    ],
    "data_owned": [
     "Claim",
     "ClaimPacket"
    ],
    "inputs": [
     "Normalized shipment data",
     "Carrier Knowledge Base"
    ],
    "outputs": [
     "Approved Claim Packet with cited liability determination"
    ],
    "external_integrations": [
     "Carrier Knowledge Base (internal)"
    ],
    "risks": [
     "Wrong claim-type classification causes a wrong deadline path",
     "False liability claim reaches a carrier"
    ],
    "interfaces": [
     "-> Filing & Deadline-Monitoring (PacketApprovedBySpecialist)"
    ]
   },
   {
    "name": "Filing & Deadline-Monitoring",
    "purpose": "File the approved Claim Packet with the carrier and monitor the Deadline Clock through to resolution.",
    "subdomain": "Filing & Deadline-Monitoring (core)",
    "type": "core",
    "owned_language": [
     "Deadline Clock",
     "Claim Packet",
     "carrier acknowledgment"
    ],
    "owns": [
     "Filing lifecycle",
     "Deadline Clock tracking",
     "Escalation triggers"
    ],
    "does_not_own": [
     "Claim-type classification (upstream)"
    ],
    "primary_actors": [
     "Claims Specialist",
     "Deadline Clock Agent"
    ],
    "entities": [
     "ClaimPacket",
     "Claim"
    ],
    "value_objects": [
     "DeadlineWindow",
     "AcknowledgmentStatus"
    ],
    "aggregates": [
     "ClaimPacketAggregate"
    ],
    "domain_services": [
     "Filing dispatcher",
     "Deadline Clock monitor"
    ],
    "application_services": [
     "FileClaimWithCarrier",
     "RecordCarrierAcknowledgment",
     "MonitorDeadlineClock"
    ],
    "commands": [
     "FileClaimWithCarrier",
     "RecordCarrierAcknowledgment"
    ],
    "domain_events": [
     "claim.filed_with_carrier",
     "claim.carrier_acknowledgment_received",
     "claim.carrier_response_deadline_approaching"
    ],
    "policies": [
     "Auto-draft follow-up correspondence at T-10 and T-3 days on each Deadline Clock window"
    ],
    "specifications": [
     "DeadlineClockAccuracySpec"
    ],
    "invariants": [
     "A Claim cannot be filed if its Concealed Damage 5-business-day notice window has lapsed with no prior notice on file"
    ],
    "ai_agents": [
     "Deadline Clock Agent"
    ],
    "human_roles": [
     "Claims Specialist"
    ],
    "data_owned": [
     "ClaimPacket"
    ],
    "inputs": [
     "Approved Claim Packet",
     "Carrier Knowledge Base submission-format preferences"
    ],
    "outputs": [
     "Filed claim with a tracked Deadline Clock"
    ],
    "external_integrations": [
     "Carrier claims-department portal/email/fax"
    ],
    "risks": [
     "Missed acknowledgment/resolution deadline",
     "Wrong submission channel/format causes rejection"
    ],
    "interfaces": [
     "-> Denial & Negotiation (ClaimDenied)",
     "-> Carrier Knowledge (CarrierAcknowledgmentReceived)"
    ]
   },
   {
    "name": "Denial & Negotiation",
    "purpose": "Handle every claim denial or lowball offer through appeal, escalation, or litigation referral.",
    "subdomain": "Denial & Negotiation (core)",
    "type": "core",
    "owned_language": [
     "Denial Review",
     "litigation referral"
    ],
    "owns": [
     "Denial Review lifecycle",
     "Litigation-referral decisions"
    ],
    "does_not_own": [
     "Claim filing (upstream)"
    ],
    "primary_actors": [
     "Claims Specialist",
     "Denial Analysis Agent"
    ],
    "entities": [
     "DenialReview"
    ],
    "value_objects": [
     "DenialReasonCode",
     "RebuttalDraft"
    ],
    "aggregates": [
     "DenialReviewAggregate"
    ],
    "domain_services": [
     "Denial-reason categorizer"
    ],
    "application_services": [
     "MakeDenialReviewDecision",
     "MakeLitigationReferral"
    ],
    "commands": [
     "MakeDenialReviewDecision",
     "MakeLitigationReferral"
    ],
    "domain_events": [
     "claim.denied",
     "denial_review.decision_made",
     "claim.litigation_referral_made",
     "claim.resolved_paid"
    ],
    "policies": [
     "Any claim where carrier liability itself (not just amount) is legally contested is referred to independent counsel"
    ],
    "specifications": [
     "LitigationReferralTriggerSpec"
    ],
    "invariants": [
     "Litigation-referral decisions are never automated",
     "No fee-sharing is retained on any attorney-handled outcome"
    ],
    "ai_agents": [
     "Denial Analysis Agent"
    ],
    "human_roles": [
     "Claims Specialist"
    ],
    "data_owned": [
     "DenialReview"
    ],
    "inputs": [
     "ClaimDenied event",
     "Carrier's stated denial reason"
    ],
    "outputs": [
     "Denial Review decision (appeal / escalate / refer / close)",
     "Resolved claim outcome"
    ],
    "external_integrations": [
     "Independent licensed transportation/cargo-claims attorney (referral only)"
    ],
    "risks": [
     "Referring too early wastes attorney fees; too late risks the 2-year Carmack lawsuit deadline"
    ],
    "interfaces": [
     "-> Carrier Knowledge (CarrierKnowledgeBaseUpdated)"
    ]
   },
   {
    "name": "Carrier Knowledge",
    "purpose": "Maintain the carrier-by-carrier deadline/documentation/contact database and historical denial-pattern log used by every other context.",
    "subdomain": "Carrier Knowledge (supporting)",
    "type": "supporting",
    "owned_language": [
     "Carrier Knowledge Base",
     "carrier profile"
    ],
    "owns": [
     "Carrier deadline rules",
     "Documentation preferences",
     "Historical denial patterns"
    ],
    "does_not_own": [
     "Claim filing decisions"
    ],
    "primary_actors": [
     "Claims Specialist"
    ],
    "entities": [
     "CarrierProfile"
    ],
    "value_objects": [
     "DeadlineRuleSet",
     "DenialPatternRecord"
    ],
    "aggregates": [
     "CarrierProfileAggregate"
    ],
    "domain_services": [
     "Carrier-profile updater"
    ],
    "application_services": [
     "UpdateCarrierKnowledgeBase"
    ],
    "commands": [
     "UpdateCarrierKnowledgeBase"
    ],
    "domain_events": [
     "carrier_knowledge_base.updated"
    ],
    "policies": [
     "Quarterly re-verification of every active carrier's deadline rules"
    ],
    "specifications": [
     "CarrierProfileFreshnessSpec"
    ],
    "invariants": [
     "Every deadline figure in a CarrierProfile carries a source and a last-confirmed date"
    ],
    "ai_agents": [],
    "human_roles": [
     "Claims Specialist"
    ],
    "data_owned": [
     "CarrierProfile"
    ],
    "inputs": [
     "Every carrier response (acknowledgment, denial reason, settlement offer, timing)"
    ],
    "outputs": [
     "Updated carrier deadline/documentation/contact profiles"
    ],
    "external_integrations": [],
    "risks": [
     "Stale deadline rule applied after a carrier tariff change"
    ],
    "interfaces": [
     "<- Filing & Deadline-Monitoring (CarrierAcknowledgmentReceived)",
     "<- Denial & Negotiation (CarrierKnowledgeBaseUpdated)"
    ]
   }
  ],
  "context_map": [
   {
    "upstream": "Intake & Normalization",
    "downstream": "Claim Classification & Liability",
    "relationship": "Customer-Supplier",
    "integration_pattern": "Domain event (ShipmentDataNormalized) consumed by the classification engine",
    "translation_notes": "Canonical shipment 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 (ShipmentDataNormalized) consumed by the classification 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": "Claim Classification & Liability",
    "downstream": "Filing & Deadline-Monitoring",
    "relationship": "Customer-Supplier",
    "integration_pattern": "Domain event (PacketApprovedBySpecialist) triggers filing",
    "translation_notes": "Only specialist-approved packets cross the boundary.",
    "pattern": "Customer-Supplier",
    "contract_type": "domain event",
    "data_exchanged": "Canonical schema payload only",
    "events_exchanged": [
     "Domain event (PacketApprovedBySpecialist) triggers filing"
    ],
    "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": "Filing & Deadline-Monitoring",
    "downstream": "Denial & Negotiation",
    "relationship": "Customer-Supplier",
    "integration_pattern": "Domain event (ClaimDenied) triggers Denial Review",
    "translation_notes": "Only carrier-issued denials cross the boundary; acknowledgments and payments do not route here.",
    "pattern": "Customer-Supplier",
    "contract_type": "domain event",
    "data_exchanged": "Canonical schema payload only",
    "events_exchanged": [
     "Domain event (ClaimDenied) triggers Denial Review"
    ],
    "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": "Filing & Deadline-Monitoring",
    "downstream": "Carrier Knowledge",
    "relationship": "Customer-Supplier",
    "integration_pattern": "CarrierAcknowledgmentReceived event feeds the carrier profile",
    "translation_notes": "Carrier Knowledge conforms to the canonical event schema; it does not query Filing & Deadline-Monitoring's tables.",
    "pattern": "Customer-Supplier",
    "contract_type": "domain event",
    "data_exchanged": "Canonical schema payload only",
    "events_exchanged": [
     "CarrierAcknowledgmentReceived event feeds the carrier profile"
    ],
    "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": "Shipper email/upload intake",
    "direction": "inbound",
    "pattern": "Monitored mailbox + upload form; automated TMS feed for Monitoring Retainer accounts",
    "risk": "Malformed or incomplete document set",
    "owner_context": "Intake & Normalization",
    "data_in": [
     "[PLACEHOLDER] owner to complete"
    ],
    "data_out": [
     "[PLACEHOLDER] owner to complete"
    ],
    "trigger": "Shipment forwarded",
    "internal_model": "Canonical shipment/claim schema",
    "acl_strategy": "Extraction Agent translates raw documents to canonical schema",
    "failure_strategy": "Retry then manual fallback",
    "audit_need": "Every intake logged with document hash and timestamp"
   },
   {
    "system": "Carrier claims-department portal/email/fax",
    "direction": "outbound",
    "pattern": "Agency-authorized submission per carrier's documented preference",
    "risk": "Wrong channel/format causes rejection",
    "owner_context": "Filing & Deadline-Monitoring",
    "data_in": "N/A",
    "data_out": "Filed Claim Packet, follow-up correspondence",
    "trigger": "Claims Specialist approval",
    "internal_model": "Canonical shipment/claim schema",
    "acl_strategy": "Per-carrier submission-format adapter from the Carrier Knowledge Base",
    "failure_strategy": "Retry then manual fallback",
    "audit_need": "Every submission logged with timestamp and payload hash"
   },
   {
    "system": "Carrier acknowledgment/response channel",
    "direction": "inbound",
    "pattern": "Email/portal notification parsed into structured status",
    "risk": "Missed or delayed acknowledgment parsing",
    "owner_context": "Filing & Deadline-Monitoring",
    "data_in": "Carrier acknowledgment, denial reason, settlement offer",
    "data_out": "N/A",
    "trigger": "Carrier responds",
    "internal_model": "Canonical shipment/claim schema",
    "acl_strategy": "Response parser normalizes carrier-specific reply formats",
    "failure_strategy": "Retry then manual fallback",
    "audit_need": "Every carrier response logged with timestamp and payload hash"
   },
   {
    "system": "Independent licensed transportation/cargo-claims attorney",
    "direction": "outbound",
    "pattern": "Clean referral handoff, no fee-sharing retained",
    "risk": "Incomplete evidence/correspondence handoff",
    "owner_context": "Denial & Negotiation",
    "data_in": "N/A",
    "data_out": "Referral packet + full correspondence history",
    "trigger": "Litigation-referral decision",
    "internal_model": "Canonical shipment/claim schema",
    "acl_strategy": "Referral packet compiled from the full claim audit trail",
    "failure_strategy": "Manual handoff confirmation",
    "audit_need": "Referral decision + rationale logged"
   }
  ],
  "event_storm": [
   {
    "seq": 1,
    "command": "ReceiveClaimIntake",
    "event": "claim.intake_received",
    "actor": "Shipper Contact",
    "context": "Intake & Normalization",
    "aggregate": "ShipmentAggregate",
    "policy": "None",
    "downstream": "Completeness pre-check against the claim type's evidence checklist",
    "risk": "Duplicate shipment ingestion"
   },
   {
    "seq": 2,
    "command": "NormalizeShipmentData",
    "event": "shipment.data_normalized",
    "actor": "Extraction Agent",
    "context": "Intake & Normalization",
    "aggregate": "ShipmentAggregate",
    "policy": "Deterministic completeness gate",
    "downstream": "Classification engine invoked",
    "risk": "Misread field on a scanned/paper BOL"
   },
   {
    "seq": 3,
    "command": "ClassifyClaimType",
    "event": "claim.type_classified",
    "actor": "Classification Agent",
    "context": "Claim Classification & Liability",
    "aggregate": "ClaimAggregate",
    "policy": "Auto-route sub-70%-confidence classifications to a second specialist",
    "downstream": "Deadline Clock calculated; Claim Packet drafting begins",
    "risk": "Wrong claim type auto-accepted"
   },
   {
    "seq": 4,
    "command": "ApprovePacket",
    "event": "packet.approved_by_specialist",
    "actor": "Claims Specialist",
    "context": "Claim Classification & Liability",
    "aggregate": "ClaimPacketAggregate",
    "policy": "None",
    "downstream": "Claim filed with carrier",
    "risk": "Specialist approves under time pressure without full evidence check"
   },
   {
    "seq": 5,
    "command": "FileClaimWithCarrier",
    "event": "claim.filed_with_carrier",
    "actor": "Claims Specialist",
    "context": "Filing & Deadline-Monitoring",
    "aggregate": "ClaimPacketAggregate",
    "policy": "Required-evidence completeness gate",
    "downstream": "Deadline Clock monitoring begins",
    "risk": "Filed packet with a stale completeness check"
   },
   {
    "seq": 6,
    "command": "MakeDenialReviewDecision",
    "event": "denial_review.decision_made",
    "actor": "Claims Specialist",
    "context": "Denial & Negotiation",
    "aggregate": "DenialReviewAggregate",
    "policy": "Legally-contested-liability auto-refers to independent counsel",
    "downstream": "Carrier Knowledge Base updated with the denial pattern",
    "risk": "Denial Review decided without the 2-year Carmack lawsuit deadline tracked"
   }
  ],
  "critical_path": [
   "claim.intake_received -> shipment.data_normalized -> claim.type_classified -> packet.approved_by_specialist -> claim.filed_with_carrier -> claim.resolved_paid"
  ],
  "exception_flows": [
   "A required document below the completeness threshold -> routed to the exception queue, blocks classification until resolved",
   "A claim-type classification below 70% confidence -> automatic second-specialist review, never auto-approved"
  ],
  "escalation_flows": [
   "A claim valued at or above the senior-review threshold ($10,000, pending first-cohort data) -> second Claims Specialist pass before filing",
   "A carrier disputes liability itself (not just the amount) -> referred to the shipper's own independent counsel"
  ],
  "retry_flows": [
   "Carrier acknowledgment not received by T-10 days -> automated reminder drafted; unresolved past the resolution deadline -> Claims Specialist escalation"
  ],
  "manual_override_flows": [
   "Founder/senior Claims Specialist can force-hold any Claim Packet pre-filing regardless of an automated completeness pass, if a data-integrity issue is suspected"
  ],
  "commands": [
   {
    "name": "ReceiveClaimIntake",
    "issued_by": "Shipper Contact / monitored mailbox",
    "preconditions": [
     "Shipper onboarded",
     "Claims-Handling Authorization on file"
    ],
    "aggregate": "ShipmentAggregate",
    "success_event": "claim.intake_received",
    "failure_event": "ClaimIntakeRejected",
    "authorization": "Engaged shipper",
    "validation": "File type allowed; carrier recognized or flagged new",
    "audit": "Documents hashed and logged"
   },
   {
    "name": "NormalizeShipmentData",
    "issued_by": "Extraction Agent",
    "preconditions": [
     "Claim intake received"
    ],
    "aggregate": "ShipmentAggregate",
    "success_event": "shipment.data_normalized",
    "failure_event": "NormalizationFailed",
    "authorization": "System",
    "validation": "Required-evidence checklist satisfied for the inferred claim type",
    "audit": "Extraction run logged with confidence scores"
   },
   {
    "name": "ClassifyClaimType",
    "issued_by": "Classification Agent",
    "preconditions": [
     "Shipment normalized"
    ],
    "aggregate": "ClaimAggregate",
    "success_event": "claim.type_classified",
    "failure_event": "ClassificationAmbiguous",
    "authorization": "System",
    "validation": "Confidence score attached; deciding fact cited",
    "audit": "Classification decision logged with confidence and citation"
   },
   {
    "name": "ApprovePacket",
    "issued_by": "Claims Specialist",
    "preconditions": [
     "Claim Packet drafted",
     "Required-evidence checklist satisfied"
    ],
    "aggregate": "ClaimPacketAggregate",
    "success_event": "packet.approved_by_specialist",
    "failure_event": "PacketRevisionRequested",
    "authorization": "Named Claims Specialist role",
    "validation": "Evidence citation present; completeness gate passes",
    "audit": "Specialist identity + timestamp logged"
   },
   {
    "name": "FileClaimWithCarrier",
    "issued_by": "Claims Specialist / automation",
    "preconditions": [
     "Packet approved by specialist",
     "Claims-Handling Authorization on file"
    ],
    "aggregate": "ClaimPacketAggregate",
    "success_event": "claim.filed_with_carrier",
    "failure_event": "FilingRejected",
    "authorization": "Shipper-authorized administrative agent",
    "validation": "Submission channel/format matches carrier profile",
    "audit": "Filing method + timestamp logged"
   },
   {
    "name": "MakeDenialReviewDecision",
    "issued_by": "Claims Specialist",
    "preconditions": [
     "ClaimDenied event received"
    ],
    "aggregate": "DenialReviewAggregate",
    "success_event": "denial_review.decision_made",
    "failure_event": "DenialReviewDeferred",
    "authorization": "Named Claims Specialist role",
    "validation": "Denial reason categorized; litigation-referral trigger criteria checked",
    "audit": "Decision + rationale logged"
   }
  ],
  "policies": [
   {
    "name": "Auto-route low-confidence classification to a second specialist",
    "trigger": "claim.type_classified",
    "condition": "classification confidence below 70%",
    "action": "Enqueue to a second Claims Specialist for independent review",
    "context": "Claim Classification & Liability",
    "ai_involvement": "flags only",
    "human_approval": false
   },
   {
    "name": "Block demand-language patterns",
    "trigger": "carrier correspondence drafting",
    "condition": "Draft contains demand/collection/legal-threat language pattern",
    "action": "Reject draft before it reaches specialist approval",
    "context": "Filing & Deadline-Monitoring",
    "ai_involvement": "author (blocked by deterministic filter)",
    "human_approval": false
   },
   {
    "name": "Senior-specialist spot check",
    "trigger": "packet.approved_by_specialist",
    "condition": "Claim value at or above the senior-review threshold",
    "action": "Route to a second Claims Specialist before filing",
    "context": "Claim Classification & Liability",
    "ai_involvement": "none",
    "human_approval": true
   },
   {
    "name": "Auto-escalate approaching Deadline Clock",
    "trigger": "claim.filed_with_carrier",
    "condition": "T-10 or T-3 days from the acknowledgment or resolution deadline",
    "action": "Draft follow-up correspondence for specialist review",
    "context": "Filing & Deadline-Monitoring",
    "ai_involvement": "flags only",
    "human_approval": false
   }
  ],
  "aggregates": [
   {
    "name": "ShipmentAggregate",
    "root": "Shipment",
    "context": "Intake & Normalization",
    "purpose": "Guard shipment receipt + normalization + completeness state.",
    "entities": [
     "Shipment"
    ],
    "value_objects": [
     "ConfidenceScore",
     "DocumentsReceived"
    ],
    "invariants": [
     "A Shipment cannot proceed to classification until its required-evidence checklist is satisfied or a named exception is logged"
    ],
    "commands": [
     "ReceiveClaimIntake",
     "NormalizeShipmentData"
    ],
    "events": [
     "claim.intake_received",
     "shipment.data_normalized"
    ],
    "repository": "ShipmentRepository",
    "transaction_boundary": "One shipment per transaction"
   },
   {
    "name": "ClaimAggregate",
    "root": "Claim",
    "context": "Claim Classification & Liability",
    "purpose": "Own the claim's classification and liability-determination lifecycle.",
    "entities": [
     "Claim"
    ],
    "value_objects": [
     "ClaimTypeClassification"
    ],
    "invariants": [
     "A Claim cannot be filed without Claims Specialist sign-off on classification and liability"
    ],
    "commands": [
     "ClassifyClaimType"
    ],
    "events": [
     "claim.type_classified",
     "claim.deadline_clock_calculated"
    ],
    "repository": "ClaimRepository",
    "transaction_boundary": "One claim per transaction"
   },
   {
    "name": "ClaimPacketAggregate",
    "root": "ClaimPacket",
    "context": "Claim Classification & Liability",
    "purpose": "Own Claim Packet drafting, specialist approval, filing, and Deadline Clock state.",
    "entities": [
     "ClaimPacket"
    ],
    "value_objects": [
     "DeadlineWindow"
    ],
    "invariants": [
     "No dollar figure in a filed Claim Packet is ever LLM-computed",
     "A Claim Packet cannot be filed if a Concealed Damage 5-business-day notice window has lapsed with no prior notice on file"
    ],
    "commands": [
     "AssembleClaimPacket",
     "ApprovePacket",
     "FileClaimWithCarrier"
    ],
    "events": [
     "packet.assembled",
     "packet.approved_by_specialist",
     "claim.filed_with_carrier"
    ],
    "repository": "ClaimPacketRepository",
    "transaction_boundary": "One packet per transaction"
   },
   {
    "name": "DenialReviewAggregate",
    "root": "DenialReview",
    "context": "Denial & Negotiation",
    "purpose": "Own the denial-review decision and litigation-referral lifecycle.",
    "entities": [
     "DenialReview"
    ],
    "value_objects": [
     "DenialReasonCode",
     "RebuttalDraft"
    ],
    "invariants": [
     "Litigation-referral decisions are never automated",
     "No fee-sharing is retained on any attorney-handled outcome"
    ],
    "commands": [
     "MakeDenialReviewDecision",
     "MakeLitigationReferral"
    ],
    "events": [
     "claim.denied",
     "denial_review.decision_made",
     "claim.litigation_referral_made"
    ],
    "repository": "DenialReviewRepository",
    "transaction_boundary": "One denial review per transaction"
   },
   {
    "name": "CarrierProfileAggregate",
    "root": "CarrierProfile",
    "context": "Carrier Knowledge",
    "purpose": "Own the carrier's deadline rules, documentation preferences, and denial-pattern history.",
    "entities": [
     "CarrierProfile"
    ],
    "value_objects": [
     "DeadlineRuleSet"
    ],
    "invariants": [
     "Every deadline figure in a CarrierProfile carries a source and a last-confirmed date"
    ],
    "commands": [
     "UpdateCarrierKnowledgeBase"
    ],
    "events": [
     "carrier_knowledge_base.updated"
    ],
    "repository": "CarrierProfileRepository",
    "transaction_boundary": "One carrier profile per transaction"
   }
  ],
  "invariants": [
   {
    "invariant": "A Claim Packet cannot be filed without Claims Specialist sign-off on classification and liability",
    "context": "Claim Classification & Liability",
    "aggregate": "ClaimPacketAggregate",
    "why": "No claim ever ships to a carrier on an AI-only judgment call",
    "enforcement": "Deterministic code gate on the FileClaimWithCarrier command"
   },
   {
    "invariant": "No dollar figure in a filed Claim Packet is ever LLM-computed",
    "context": "Claim Classification & Liability",
    "aggregate": "ClaimPacketAggregate",
    "why": "A wrong valuation figure is the single fastest way to lose a shipper's trust and a carrier's confidence",
    "enforcement": "Deterministic arithmetic outside the model; the drafting prompt only narrates the result"
   },
   {
    "invariant": "A Concealed Damage claim cannot be filed if its 5-business-day notice window has lapsed with no prior notice on file",
    "context": "Filing & Deadline-Monitoring",
    "aggregate": "ClaimPacketAggregate",
    "why": "Filing a claim that is already procedurally dead wastes the shipper's time and ClaimRoute's credibility",
    "enforcement": "Deterministic code gate on the FileClaimWithCarrier command"
   },
   {
    "invariant": "No discrepancy or carrier correspondence is published without a cited source document",
    "context": "Claim Classification & Liability",
    "aggregate": "ClaimAggregate",
    "why": "Prevents an unevidenced claim from reaching a shipper or a carrier",
    "enforcement": "Output validator rejects any classification or draft missing a source citation"
   },
   {
    "invariant": "Litigation-referral decisions are never automated",
    "context": "Denial & Negotiation",
    "aggregate": "DenialReviewAggregate",
    "why": "Hard legal chokepoint — only a human decides when a claim needs a licensed attorney",
    "enforcement": "No LitigationReferralMade command is ever issued by an AI agent"
   }
  ],
  "ai_agents": [
   {
    "name": "Extraction Agent",
    "context": "Intake & Normalization",
    "responsibility": "Extract and normalize structured shipment fields from BOLs, PODs, invoices, and photos (scanned or digital) into the canonical schema.",
    "inputs": [
     "Uploaded/forwarded shipment documents"
    ],
    "outputs": [
     "Structured shipment fields with per-field confidence score and _source citation"
    ],
    "tools": [
     "OCR",
     "document-AI"
    ],
    "forbidden_actions": [
     "Guessing a declared value, delivery date, or damage description not written in a source document"
    ],
    "memory_scope": "Single shipment extraction run",
    "retrieval_sources": [
     "None — per-document extraction only"
    ],
    "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": "Claims Specialist confirms during exception review",
    "failure_modes": [
     "Misread scanned/paper BOL",
     "Wrong carrier-format assumption"
    ],
    "audit_logs": [
     "Every extraction run logged with document hash and confidence scores"
    ],
    "metrics": [
     "Extraction accuracy vs. specialist-corrected value"
    ],
    "versioning": "Prompt versioned independently of the underlying model"
   },
   {
    "name": "Classification Agent",
    "context": "Claim Classification & Liability",
    "responsibility": "Classify the shipment into exactly one of Visible Damage, Concealed Damage, Shortage, or Non-Delivery, citing the deciding fact.",
    "inputs": [
     "Normalized shipment record",
     "documents_received"
    ],
    "outputs": [
     "Claim type, confidence score, one-sentence cited rationale"
    ],
    "tools": [
     "Carrier Knowledge Base lookup"
    ],
    "forbidden_actions": [
     "Guessing between Visible Damage and Concealed Damage without lowering confidence"
    ],
    "memory_scope": "Single claim classification",
    "retrieval_sources": [
     "Carrier Knowledge Base"
    ],
    "validations": [
     "Output must cite the deciding BOL/POD fact"
    ],
    "confidence_scoring": "0.0-1.0, auto-proceeds >=90%, second-specialist review <70%",
    "escalation_triggers": [
     "Record ambiguous between two claim types"
    ],
    "human_approval": "Claims Specialist confirms every classification before it enters a Claim Packet",
    "failure_modes": [
     "Misclassifying Concealed Damage as Visible Damage"
    ],
    "audit_logs": [
     "Every classification logged with citation and confidence"
    ],
    "metrics": [
     "Classification accuracy vs. specialist-corrected value"
    ],
    "versioning": "Prompt versioned independently of the underlying model"
   },
   {
    "name": "Packet Drafting Agent",
    "context": "Claim Classification & Liability",
    "responsibility": "Draft the Claim Packet narrative, liability statement, and itemized valuation from the shipment record.",
    "inputs": [
     "Classified claim",
     "invoice/purchase value",
     "Carrier Knowledge Base"
    ],
    "outputs": [
     "Draft Claim Packet narrative with open_items flagged"
    ],
    "tools": [
     "Carmack Amendment liability-statement template"
    ],
    "forbidden_actions": [
     "Inventing a value, date, or carrier statement not present in the shipment record"
    ],
    "memory_scope": "Single claim packet draft",
    "retrieval_sources": [
     "Carrier Knowledge Base"
    ],
    "validations": [
     "Every packet cites source documents for its valuation and narrative"
    ],
    "confidence_scoring": "N/A (deterministic completeness gate, not a confidence score)",
    "escalation_triggers": [
     "Missing document detected at packet-assembly time"
    ],
    "human_approval": "Claims Specialist approves, edits, or requests more evidence before filing",
    "failure_modes": [
     "Narrative omits a material fact present in the source documents"
    ],
    "audit_logs": [
     "Every draft + specialist edit + approval logged"
    ],
    "metrics": [
     "Specialist edit rate on drafts"
    ],
    "versioning": "Prompt versioned independently of the underlying model"
   },
   {
    "name": "Deadline Clock Agent",
    "context": "Filing & Deadline-Monitoring",
    "responsibility": "Compute the concealed-damage notice, formal filing, carrier-acknowledgment, and carrier-resolution deadlines and narrate the deterministic date-math result.",
    "inputs": [
     "delivery_date",
     "claim_type",
     "CarrierProfile deadline_rules"
    ],
    "outputs": [
     "Deadline Clock dates with narrated rationale"
    ],
    "tools": [
     "Deterministic date-math function"
    ],
    "forbidden_actions": [
     "Performing date arithmetic itself in prose instead of calling the deterministic function"
    ],
    "memory_scope": "Single claim's deadline computation",
    "retrieval_sources": [
     "CarrierProfile"
    ],
    "validations": [
     "Every deadline traces to a source (bol_language, tariff, or confirmed_at_intake)"
    ],
    "confidence_scoring": "N/A (deterministic, not a model judgment)",
    "escalation_triggers": [
     "Carrier deadline rule not yet confirmed at intake"
    ],
    "human_approval": "Claims Specialist confirms unconfirmed default assumptions per carrier",
    "failure_modes": [
     "Stale or unconfirmed carrier deadline rule applied"
    ],
    "audit_logs": [
     "Every Deadline Clock computation logged"
    ],
    "metrics": [
     "Deadline-miss rate"
    ],
    "versioning": "Prompt versioned independently of the underlying model"
   },
   {
    "name": "Denial Analysis Agent",
    "context": "Denial & Negotiation",
    "responsibility": "Categorize a carrier's denial reason and draft a suggested rebuttal for Claims Specialist review.",
    "inputs": [
     "Carrier's stated denial reason",
     "Claim Packet",
     "Carrier Knowledge Base denial patterns"
    ],
    "outputs": [
     "Denial-reason category",
     "Draft rebuttal"
    ],
    "tools": [
     "Carrier Knowledge Base historical_denial_patterns lookup"
    ],
    "forbidden_actions": [
     "Deciding whether to appeal, escalate, or refer — that stays entirely human"
    ],
    "memory_scope": "Single denial review",
    "retrieval_sources": [
     "Carrier Knowledge Base"
    ],
    "validations": [
     "Draft rebuttal must cite the original Claim Packet's evidence"
    ],
    "confidence_scoring": "Qualitative (fixable / not-fixable / needs-specialist-judgment)",
    "escalation_triggers": [
     "Denial reason not covered by known patterns"
    ],
    "human_approval": "Claims Specialist owns every negotiation and litigation-referral decision",
    "failure_modes": [
     "Misjudging a fixable denial as not-fixable"
    ],
    "audit_logs": [
     "Every categorization + rebuttal draft logged"
    ],
    "metrics": [
     "Successful-rebuttal rate by denial-reason category"
    ],
    "versioning": "Prompt versioned independently of the underlying model"
   }
  ],
  "prompt_chain_map": [
   "Intake -> Extraction Agent (extract + score) -> Classification Agent (classify + cite) -> Deadline Clock Agent (compute) -> Packet Drafting Agent (draft) -> OutputValidator -> Claims Specialist (approve or escalate)",
   "ClaimDenied -> Denial Analysis Agent (categorize + draft rebuttal) -> Claims Specialist (decide appeal/escalate/refer)"
  ],
  "rag_map": [
   "Carrier Knowledge Base (shared, versioned) -> retrieval router -> carrier-scoped hits -> Classification Agent and Deadline Clock Agent",
   "Per-shipper shipment/claim history (shipper-scoped) -> retrieval router -> shipper-scoped hits -> Extraction Agent"
  ],
  "ai_evaluation": [
   "Gold-standard fixture set of won-claim packets and labeled classifications, per carrier/claim-type",
   "Regression requirements on classification accuracy + evidence-citation coverage",
   "Every prompt release requires a passing evaluator run against the fixture library before a model swap ships"
  ],
  "hallucination_controls": [
   "Retrieval-first (no free-form classification without a cited BOL/POD fact)",
   "Structured-output validator enforces citation-per-claim",
   "Confidence-scored escalation on extraction and classification",
   "Claims Specialist gate on every classification and every filed Claim Packet",
   "Deterministic filter blocks any demand/collection-style language before it reaches the specialist"
  ],
  "human_in_the_loop_plan": [
   "Claims Specialist sign-off on every Claim Packet before filing",
   "Claims Specialist approval on every classification before it enters a packet",
   "Second-specialist co-review on sub-70%-confidence classifications and above-threshold-value claims",
   "Founder 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": "Shipper Contact",
    "responsibilities": [
     "Supply BOL/POD/photos/invoice value",
     "Sign the Claims-Handling Authorization",
     "Confirm carrier correspondence authorization"
    ],
    "contexts": [
     "Intake & Normalization"
    ],
    "decisions_owned": [
     "Whether to engage ClaimRoute",
     "Which records to supply",
     "Whether to authorize a specific carrier correspondence"
    ],
    "ai_support": [
     "[PLACEHOLDER] owner to complete"
    ],
    "approval_authority": "Authorizes the engagement and the Claims-Handling Authorization",
    "escalation_authority": "None (escalates to ClaimRoute, not from it)",
    "quality_metrics": [
     "Intake completeness"
    ],
    "workload_risks": [
     "Volume-spike time scarcity"
    ]
   },
   {
    "role": "Claims Specialist",
    "responsibilities": [
     "Review AI-drafted classifications and packets",
     "Verify evidence sufficiency",
     "Sign off before filing or carrier correspondence",
     "Personally handle every Denial Review"
    ],
    "contexts": [
     "Claim Classification & Liability",
     "Filing & Deadline-Monitoring",
     "Denial & Negotiation"
    ],
    "decisions_owned": [
     "Approve, escalate, or reject a classification or packet",
     "Appeal / escalate / refer a denied claim"
    ],
    "ai_support": "Extraction, classification, packet-drafting, and denial-analysis agents",
    "approval_authority": "Sole authority to approve a Claim Packet for filing",
    "escalation_authority": "Escalates litigation/insolvency/liability-contested matters to independent counsel",
    "quality_metrics": [
     "Shipper-caught material error rate",
     "Review cycle time"
    ],
    "workload_risks": [
     "Volume spike during a shipment-damage cluster"
    ]
   },
   {
    "role": "Senior Claims Specialist",
    "responsibilities": [
     "Second-pass review on sub-70%-confidence classifications",
     "Second review on above-threshold-value claims",
     "Litigation-referral final confirmation"
    ],
    "contexts": [
     "Claim Classification & Liability",
     "Denial & Negotiation"
    ],
    "decisions_owned": [
     "Second-review confirmation",
     "Litigation-referral final sign-off"
    ],
    "ai_support": "None (human-only by design)",
    "approval_authority": "Second-signoff authority on high-value or low-confidence claims",
    "escalation_authority": "Escalates to Founder",
    "quality_metrics": [
     "Escalation-to-outside-counsel rate"
    ],
    "workload_risks": [
     "Contractor-bench availability at scale"
    ]
   }
  ],
  "human_review_checkpoints": [
   "AI draft -> Claims Specialist approval",
   "Public release -> owner acceptance",
   "Litigation referral -> senior-specialist confirmation",
   "Prompt rollout -> ops + evaluator"
  ],
  "escalation_matrix": [
   "AI -> Claims Specialist -> Senior Claims Specialist -> Founder -> Independent counsel",
   "Liability-contested or litigation/arbitration matter -> Claims Specialist -> Independent counsel"
  ],
  "manual_override_rules": [
   "Any manual override captured as an explicit override event with actor + reason",
   "No override may bypass the Claims Specialist sign-off or Claims-Handling Authorization invariant"
  ],
  "separation_of_duties": [
   "Extraction/Classification/Drafting Agents cannot approve filings; Claims Specialist cannot draft on behalf of AI without an override event; Senior Claims Specialist cannot silently close a litigation referral"
  ],
  "quality_control_workflow": [
   "Weekly specialist calibration meeting",
   "Monthly evaluator regression report",
   "Monthly denial postmortem converting recurring root causes into SOP/rule/Carrier Knowledge Base updates"
  ],
  "data_objects": [
   {
    "name": "Shipment",
    "meaning": "One shipment's BOL/POD/damage-evidence record for one claim",
    "owner_context": "Intake & Normalization",
    "writers": [
     "Extraction Agent",
     "Shipper Contact"
    ],
    "readers": [
     "Claims Specialist",
     "Claim Classification & Liability"
    ],
    "source_of_truth": "Intake & Normalization context",
    "retention": "Life of the claim plus the 2-year Carmack lawsuit deadline",
    "privacy": "Sensitive business/financial data, shipper-isolated",
    "audit": "Every field change logged"
   },
   {
    "name": "ClaimPacket",
    "meaning": "One claim's assembled BOL + POD + evidence + valuation + narrative, specialist-approved and filed",
    "owner_context": "Claim Classification & Liability",
    "writers": [
     "Packet Drafting Agent",
     "Claims Specialist"
    ],
    "readers": [
     "Shipper Contact",
     "Filing & Deadline-Monitoring"
    ],
    "source_of_truth": "Claim Classification & Liability context",
    "retention": "Life of the claim plus the 2-year Carmack lawsuit deadline",
    "privacy": "Sensitive",
    "audit": "Full version history retained"
   },
   {
    "name": "CarrierProfile",
    "meaning": "One carrier's maintained deadline rules, documentation preferences, contacts, and historical denial patterns",
    "owner_context": "Carrier Knowledge",
    "writers": [
     "Denial Analysis Agent",
     "Claims Specialist"
    ],
    "readers": [
     "Claim Classification & Liability",
     "Filing & Deadline-Monitoring"
    ],
    "source_of_truth": "Carrier Knowledge context",
    "retention": "Life of the business (continuously updated)",
    "privacy": "Internal operational data",
    "audit": "Every profile update logged with source and confirmation date"
   }
  ],
  "read_models": [
   "SpecialistDashboard read model (per Claims Specialist): claims in queue, in review, filed this week",
   "SpecialistQueue read model: classifications/packets 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 shipper: claims filed, cycle time, shipper-caught error status, Recovery dollars",
   "Ops report: AI cost per claim, escalation rate, specialist load"
  ],
  "data_duplication_notes": [
   "Claims Specialist identity is stored in the onboarding/roster record, referenced by Denial & Negotiation — that context does not own it",
   "OwnerActionLedger duplicates minimal facts into read models for Claim Classification & Liability consumption"
  ],
  "data_retention": [
   "Claim, ClaimPacket, and Denial Review records: life of the claim plus the 2-year Carmack lawsuit deadline",
   "AgentRun logs: 13 months rolling",
   "Shippers + sessions: life of account + 2 years"
  ],
  "data_quality_risks": [
   "Silent schema drift from a carrier changing its documentation-submission format",
   "Stale Carrier Knowledge Base deadline rule applied after a tariff change (mitigated by quarterly re-verification)",
   "Missing evidence cross-links after a legacy shipper-history import"
  ],
  "use_cases": [
   {
    "name": "Run a Freight Claim Eligibility Check",
    "actor": "Shipper Contact",
    "context": "Intake & Normalization",
    "goal": "Get a filable/not-filable answer within 24 hours",
    "preconditions": [
     "BOL, POD, damage/shortage photos (if applicable), and invoice value supplied"
    ],
    "main_flow": [
     "Intake checklist completed",
     "Shipment extracted and normalized",
     "Completeness and deadline-window check runs",
     "Claims Specialist confirms the answer",
     "Eligibility Check result delivered"
    ],
    "alternative_flows": [
     "Not filable -> plain-language reason given, no fee retained"
    ],
    "business_rules": [
     "24-hour turnaround target"
    ],
    "ai_role": "Extraction, completeness check, preliminary deadline-window computation",
    "human_role": "Claims Specialist confirms the answer",
    "commands": [
     "ReceiveClaimIntake",
     "NormalizeShipmentData"
    ],
    "events": [
     "shipment.data_normalized"
    ],
    "aggregates": [
     "ShipmentAggregate"
    ],
    "success": "Eligibility Check answer delivered within SLA",
    "failure_handling": "Missing inputs trigger an automated follow-up naming the specific missing item",
    "audit": "Full audit trail from intake to Eligibility Check answer"
   },
   {
    "name": "File and track a Claim Packet through Recovery",
    "actor": "Claims Specialist",
    "context": "Filing & Deadline-Monitoring",
    "goal": "File a specialist-approved Claim Packet and track it to a Recovery or a Denial Review",
    "preconditions": [
     "Claim classified",
     "Claims-Handling Authorization on file"
    ],
    "main_flow": [
     "Claim Packet assembled",
     "Claims Specialist approves",
     "Claim filed with the carrier",
     "Deadline Clock monitored",
     "Resolution recorded (paid or denied)"
    ],
    "alternative_flows": [
     "Denied -> Denial Review opened",
     "Above senior-review threshold -> second specialist pass first"
    ],
    "business_rules": [
     "Required-evidence completeness gate before filing"
    ],
    "ai_role": "Extraction, classification, packet drafting, deadline monitoring",
    "human_role": "Claims Specialist approves and files; personally handles every denial",
    "commands": [
     "ApprovePacket",
     "FileClaimWithCarrier",
     "MakeDenialReviewDecision"
    ],
    "events": [
     "packet.approved_by_specialist",
     "claim.filed_with_carrier",
     "claim.resolved_paid"
    ],
    "aggregates": [
     "ClaimPacketAggregate",
     "DenialReviewAggregate"
    ],
    "success": "Claim filed on time with a signed-off packet, resolved to Recovery or a documented Denial Review",
    "failure_handling": "Missed filing SLA triggers the error-SLA acknowledgment process",
    "audit": "Full claim audit trail retained"
   }
  ],
  "architecture": {
   "style": "Modular monolith with background jobs for bursty shipment-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 reliably enforce the deterministic completeness/deadline gates)"
   ],
   "backend_modules": [
    "intake-normalization",
    "claim-classification-liability",
    "filing-deadline-monitoring",
    "denial-negotiation",
    "carrier-knowledge"
   ],
   "frontend_modules": [
    "specialist-console (internal only at launch)",
    "marketing microsite (public)"
   ],
   "api_boundaries": [
    "Internal specialist console API (authenticated)",
    "No public API at launch — intake is upload-link/email only"
   ],
   "database_strategy": "Single Postgres instance, shipper_id row-level security on every table",
   "event_bus": "In-process event dispatch at launch; durable queue once claim volume requires async fan-out",
   "queue": "Background job queue for shipment extraction and classification (bursty, damage-cluster-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-shipper claim history retrieval + shared Carrier Knowledge Base",
   "file_storage": "Encrypted object storage, per-shipper prefix isolation",
   "authn_authz": "SSO with MFA for specialists; row-level tenant auth for shipper-facing surfaces (year-1 status portal)",
   "admin_dashboard": "Internal only at launch (founder + Claims Specialist)",
   "client_portal": "None at launch (email/upload-link delivery); read-only claim-status portal planned year 1",
   "operator_dashboard": "SpecialistQueue read model surfaced in the internal console",
   "observability": "Structured logs + RED metrics + model-call cost/latency spans",
   "audit_logging": "Append-only, hash-chained per claim",
   "deployment": "Single production region, multi-AZ; preview environment per PR"
  },
  "module_structure": {
   "tree": "src/{intake-normalization,claim-classification-liability,filing-deadline-monitoring,denial-negotiation,carrier-knowledge}/{domain,application,infra}",
   "modules": [
    {
     "name": "intake-normalization",
     "purpose": "Shipment receipt, extraction, and completeness checking.",
     "owned_domain": [
      "Shipment"
     ],
     "application_services": [
      "ReceiveClaimIntake",
      "NormalizeShipmentData"
     ],
     "infra_adapters": [
      "Mailbox listener",
      "Object storage adapter",
      "Extraction-model client"
     ],
     "public_interfaces": [
      "shipment.data_normalized event"
     ],
     "forbidden_deps": [
      "Cannot call claim-classification-liability internals directly — event only"
     ]
    },
    {
     "name": "claim-classification-liability",
     "purpose": "Classification, liability determination, packet drafting/approval.",
     "owned_domain": [
      "Claim",
      "ClaimPacket"
     ],
     "application_services": [
      "ClassifyClaimType",
      "AssembleClaimPacket",
      "ApprovePacket"
     ],
     "infra_adapters": [
      "Carrier Knowledge Base client",
      "Deadline Clock calculator"
     ],
     "public_interfaces": [
      "claim.type_classified event",
      "packet.approved_by_specialist event"
     ],
     "forbidden_deps": [
      "Cannot call filing-deadline-monitoring internals directly — event only"
     ]
    },
    {
     "name": "filing-deadline-monitoring",
     "purpose": "Carrier filing, Deadline Clock tracking, escalation.",
     "owned_domain": [
      "ClaimPacket"
     ],
     "application_services": [
      "FileClaimWithCarrier",
      "RecordCarrierAcknowledgment"
     ],
     "infra_adapters": [
      "Carrier submission-channel adapter",
      "Deadline-alert scheduler"
     ],
     "public_interfaces": [
      "claim.filed_with_carrier event"
     ],
     "forbidden_deps": [
      "Cannot bypass the Claims Specialist approval gate"
     ]
    },
    {
     "name": "denial-negotiation",
     "purpose": "Denial Review and litigation-referral lifecycle.",
     "owned_domain": [
      "DenialReview"
     ],
     "application_services": [
      "MakeDenialReviewDecision",
      "MakeLitigationReferral"
     ],
     "infra_adapters": [
      "Attorney-referral packet generator"
     ],
     "public_interfaces": [
      "denial_review.decision_made event"
     ],
     "forbidden_deps": [
      "Cannot draft on behalf of any other module"
     ]
    },
    {
     "name": "carrier-knowledge",
     "purpose": "Carrier profile maintenance and denial-pattern history.",
     "owned_domain": [
      "CarrierProfile"
     ],
     "application_services": [
      "UpdateCarrierKnowledgeBase"
     ],
     "infra_adapters": [
      "Carrier-profile store"
     ],
     "public_interfaces": [
      "carrier_knowledge_base.updated event"
     ],
     "forbidden_deps": [
      "Cannot issue filing or classification commands"
     ]
    }
   ],
   "dependency_rules": [
    "Modules communicate only via domain events or explicit application-service calls, never shared database tables",
    "carrier-knowledge has no outbound dependency that mutates any other module's aggregates"
   ]
  },
  "security_governance": {
   "controls": [
    {
     "risk": "Cross-shipper data leak",
     "context": "Claim Classification & Liability",
     "impact": "severe",
     "control": "Row-level security on every shipper-scoped table; retrieval indices partitioned per shipper",
     "audit": "Access logged with shipper_id + session_id"
    },
    {
     "risk": "Claims Specialist identity spoofing",
     "context": "Filing & Deadline-Monitoring",
     "impact": "severe",
     "control": "SSO + MFA; approval bound to authenticated session, not a form field",
     "audit": "Signature manifest logged per Claim Packet"
    },
    {
     "risk": "Demand-language carrier correspondence sent",
     "context": "Filing & Deadline-Monitoring",
     "impact": "high",
     "control": "Deterministic filter blocks demand/collection/legal-threat patterns before specialist 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 shipper data"
   ],
   "prompt_injection_defense": [
    "Uploaded BOL/POD/photo content treated as untrusted input, never as instructions",
    "Extraction output schema-validated before use downstream"
   ],
   "sensitive_data_handling": [
    "Financial/PII scrubbed from logs",
    "Per-shipper object-storage prefix isolation",
    "Encryption at rest and in transit"
   ],
   "access_control_matrix": [
    {
     "role": "Shipper Contact",
     "context": "Intake & Normalization",
     "capabilities": [
      "Upload shipment documents",
      "View own claim status"
     ]
    },
    {
     "role": "Claims Specialist",
     "context": "Claim Classification & Liability, Filing & Deadline-Monitoring, Denial & Negotiation",
     "capabilities": [
      "Approve classifications",
      "Approve and file Claim Packets",
      "Decide Denial Reviews"
     ]
    },
    {
     "role": "Senior Claims Specialist",
     "context": "Denial & Negotiation",
     "capabilities": [
      "Second-review high-value/low-confidence claims",
      "Confirm litigation referrals"
     ]
    }
   ],
   "audit_log_requirements": [
    "Every command + payload hash logged with actor identity",
    "13-month rolling retention on AgentRun logs; claim-plus-2-year retention on filed packets"
   ]
  },
  "observability": {
   "metrics": [
    {
     "metric": "Auto-classification rate (>=90% confidence)",
     "type": "leading",
     "context": "Claim Classification & Liability",
     "why": "Directly drives Claims Specialist minutes per claim",
     "target": "≥85%",
     "alert_threshold": "<70%"
    },
    {
     "metric": "Claims Specialist minutes per claim",
     "type": "leading",
     "context": "Claim Classification & Liability",
     "why": "Core unit-economics driver",
     "target": "≤10 min avg by day 90",
     "alert_threshold": ">25 min"
    },
    {
     "metric": "Shipper-caught material error rate",
     "type": "lagging",
     "context": "Filing & Deadline-Monitoring",
     "why": "Trust and retention driver",
     "target": "<0.5%",
     "alert_threshold": ">1%"
    }
   ],
   "dashboards": [
    "Ops dashboard: claims in flight, specialist queue depth",
    "Economics dashboard: COGS/claim, gross margin trend"
   ],
   "audit_reports": [
    "Monthly filed-claim audit export per shipper"
   ],
   "quality_review_reports": [
    "Monthly red-team seeded-error catch rate"
   ],
   "ai_evaluation_reports": [
    "Monthly evaluator regression report per carrier/claim-type"
   ],
   "client_outcome_reports": [
    "Recovery report per shipper per quarter"
   ]
  },
  "testing_strategy": {
   "tests": [
    {
     "type": "unit",
     "validates": "Deadline Clock date-math and completeness-gate thresholds",
     "context": "Filing & Deadline-Monitoring",
     "example": "Concealed Damage claim blocked if today() > delivery_date + 5 business days with no prior notice"
    },
    {
     "type": "contract",
     "validates": "Carrier submission-format schema",
     "context": "Filing & Deadline-Monitoring",
     "example": "Gold-standard fixture packet per carrier re-run on every prompt change"
    },
    {
     "type": "e2e",
     "validates": "Full intake -> classify -> specialist sign-off -> filing path",
     "context": "cross-context",
     "example": "Smoke test against 5 sample claim-type/carrier combinations"
    }
   ],
   "critical_domain_rules": [
    "Completeness gate before classification",
    "Deadline gate before filing",
    "No claim ships without a cited source and Claims Specialist sign-off"
   ],
   "ai_eval_dataset": [
    "Gold-standard fixture shipments per carrier/claim-type",
    "Specialist-corrected historical classifications"
   ],
   "regression_plan": "Every parser/prompt/model change re-runs the full fixture suite before touching a live shipper's claim.",
   "contract_testing_plan": "Per-carrier submission-format contract tests run in CI on every adapter change.",
   "manual_qa_checklist": [
    "10% second-pass sample of auto-classified claims",
    "Monthly red-team seeded-error check",
    "Every claim above the senior-review threshold second-reviewed"
   ]
  },
  "mvp_roadmap": [
   {
    "phase": "Thin slice",
    "goal": "One end-to-end Freight Claim Eligibility Check delivered and specialist-signed",
    "features": [
     "Shipment intake",
     "Single-carrier-format extraction",
     "Manual-assisted classification"
    ],
    "contexts": [
     "Intake & Normalization",
     "Claim Classification & Liability"
    ],
    "ai_needs": [
     "Extraction Agent v1"
    ],
    "human_workflows": [
     "Founder-run Claims Specialist role"
    ],
    "data_needs": [
     "Fixture shipments for 5 claim-type/carrier combinations"
    ],
    "integrations": [
     "None — manual email/upload intake"
    ],
    "risks": [
     "Specialist cycle time far above target at pilot 1"
    ],
    "exit_criteria": [
     "1 Eligibility Check delivered within 24 hours, specialist-confirmed"
    ]
   }
  ],
  "scaling_roadmap": [
   {
    "stage": "Pilot (1-8 accounts)",
    "trigger": "First 5-8 pilot shippers onboarded",
    "architecture_change": "None — single monolith suffices",
    "operational_change": "Founder is the sole Claims Specialist",
    "risk": "Specialist bottleneck at any volume spike"
   },
   {
    "stage": "Early scale (10-20 accounts)",
    "trigger": "Day-90 checkpoint targets met",
    "architecture_change": "Background job queue for extraction/classification",
    "operational_change": "Contract a second Claims Specialist",
    "risk": "Carrier Knowledge Base coverage gaps on new carriers slow onboarding"
   }
  ],
  "risk_register": [
   {
    "risk": "A carrier or industry-standard vendor bundles claims automation 'free' with a shipper's existing TMS",
    "likelihood": "medium-high",
    "impact": "high",
    "signal": "CorePiper or iNymbus adds a done-for-you chase workflow",
    "mitigation": "Broker-agnostic, done-for-you positioning; Denial Review persistence as the human moat",
    "owner": "owner",
    "context": "Denial & Negotiation"
   },
   {
    "risk": "Eligibility-Check-to-engaged conversion underperforms",
    "likelihood": "medium",
    "impact": "severe",
    "signal": "Pilot cohort conversion below target at the Day-90 retrospective",
    "mitigation": "Pilot flat-rate offer; alternative packaging tested in cohort 2",
    "owner": "owner",
    "context": "product"
   },
   {
    "risk": "False or premature liability claim sent to a carrier",
    "likelihood": "medium",
    "impact": "high",
    "signal": "Carrier disputes a claim as unfounded",
    "mitigation": "100% Claims Specialist approval; evidence-citation requirement; inquiry-not-demand language",
    "owner": "legal",
    "context": "Filing & Deadline-Monitoring"
   }
  ],
  "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 the first paid pilot claim 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 specialist-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 date math and dollar figures; the model never computes a final deadline or valuation",
    "status": "accepted",
    "context": "A missed deadline or wrong valuation is a hard trust requirement",
    "options": [
     "Model computes dates/totals",
     "Deterministic code computes dates/totals, model only extracts/classifies/narrates"
    ],
    "chosen": "Deterministic code computes dates/totals",
    "business_reason": "A wrong deadline or dollar figure from a model is the single fastest way to lose a shipper's trust and a claim's validity",
    "technical_reason": "Removes an entire class of hallucination risk from the highest-stakes output",
    "tradeoffs": "Slightly more engineering work per new carrier-tariff edge case",
    "risks": "Edge cases not yet coded fall through to specialist 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 carrier-tariff 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 Knowledge Base is described but not yet instantiated with real carrier data",
     "improvement": "Populate from the first 5-8 pilot shippers' actual carrier mixes"
    },
    {
     "category": "ai_governance",
     "score": 4,
     "weakness": "Evaluator regression suite depends on fixture shipments not yet collected at volume",
     "improvement": "Build the fixture library incrementally from each pilot claim (anonymized)"
    },
    {
     "category": "compliance_boundary",
     "score": 3,
     "weakness": "State-by-state collection/claims-recovery-statute review is not yet complete",
     "improvement": "Complete counsel review in the 1-2 pilot states before any wider expansion"
    }
   ],
   "weakest_parts": [
    "State-by-state licensing review for multi-state expansion",
    "Carrier Knowledge Base population"
   ],
   "biggest_assumptions": [
    "Eligibility-Check-to-engaged conversion reaches a workable rate",
    "Claims Specialist minutes per claim fall as projected by Day 90"
   ],
   "highest_risk_decisions": [
    "Operating claims-handling activity ahead of the final written licensing opinion in the pilot states",
    "Relying on a single named Claims Specialist 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, Claims-Specialist-gated vertical slice for ClaimRoute. Preserve the invariant that no Claim Packet or carrier correspondence leaves the system without a signed human release. Do not launch commercially past the 1-2 pilot states until Counsel's written licensing opinion is in hand and at least one specialist-signed Claim Packet has resolved.",
   "Do NOT default to microservices. Extract a module only when a specific pressure demands it.",
   "Do NOT allow AI outputs to leave the Claim Classification & Liability or Filing & Deadline-Monitoring contexts without OutputValidator pass and citation coverage.",
   "Do NOT ship any public claim on the ClaimRoute microsite while owner-action facts (entity, Claims Specialist identity, trademark clearance) remain open.",
   "Do NOT reuse the blueprint's originally suggested (and rejected) brand name anywhere in this build — it collided with a live adjacent-niche competitor's domain name and was corrected to ClaimRoute across every artifact."
  ],
  "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 classification with judgment concentrated in a small Denial Review/litigation-referral chokepoint — the exact shape of work current frontier models do well, and margins expand as extraction/classification accuracy improves.",
    "disqualifiers": [
     "[PLACEHOLDER] owner to complete"
    ]
   },
   "domain_evidence_register": [
    {
     "claim": "The U.S. LTL market was $114.03B in 2025, forecast to reach $144.97B by 2031 (4.08% CAGR)",
     "evidence_type": "market-research report",
     "source": "Mordor Intelligence, United States LTL Market",
     "strength": "high",
     "gaps": "Cross-checked against a second market-research listing (GM Insights) for order of magnitude only"
    },
    {
     "claim": "284+ live 'freight claims specialist' job postings nationally, wages tightened to $18-37/hr on fresh re-check (vs. $17-45/hr in the original blueprint research)",
     "evidence_type": "job-board listing",
     "source": "Glassdoor and ZipRecruiter, accessed July 2026",
     "strength": "high",
     "gaps": "Listing counts and wage ranges fluctuate over time and should be re-checked before final GTM planning"
    }
   ],
   "assumption_register": [
    {
     "assumption": "Eligibility-Check-to-engaged conversion reaches a workable rate",
     "impact_if_wrong": "severe — wedge economics fail",
     "how_to_validate": "5-8 account pilot cohort with an explicit Contingency Fee conversation",
     "blocking": true
    },
    {
     "assumption": "Claims Specialist minutes per claim fall as Carrier Knowledge Base coverage grows",
     "impact_if_wrong": "high — margin target missed",
     "how_to_validate": "Instrument specialist minutes per claim from pilot 1 onward",
     "blocking": false
    }
   ],
   "language_conflict_map": [
    {
     "term": "Recovery",
     "meaning_a": "Dollars a carrier pays out on a resolved freight claim (ClaimRoute's term)",
     "context_a": "ClaimRoute",
     "meaning_b": "A different recovered-dollars term used by unrelated businesses elsewhere in the AINBIS portfolio",
     "context_b": "other portfolio businesses (not this one)",
     "resolution": "Always qualify as 'Recovery' (capitalized, ClaimRoute's defined term) in ClaimRoute copy; never assume it means the same thing in a cross-portfolio context"
    }
   ],
   "build_buy_integrate": [
    {
     "subdomain": "Claim Classification & Liability",
     "decision": "build",
     "reason": "Core differentiated IP — the classification/liability engine and Carrier Knowledge Base are 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 a filed claim as a collection demand",
     "contexts_touched": [
      "Filing & Deadline-Monitoring"
     ],
     "breaks_if": "The demand-language filter has a gap for a novel phrasing",
     "verdict": "Mitigated by Claims Specialist approval as a second gate"
    }
   ],
   "unresolved_ownership": [
    {
     "concept": "Invoice/purchase valuation accuracy",
     "candidates": [
      "Shipper Contact",
      "Claims Specialist"
     ],
     "recommendation": "Shipper Contact owns and supplies the valuation; ClaimRoute only computes the claim math from it"
    }
   ],
   "published_language_contracts": [
    {
     "producer": "Intake & Normalization",
     "consumer": "Claim Classification & Liability",
     "contract": "Canonical normalized shipment schema",
     "versioning": "Schema version pinned per extraction-model release"
    }
   ],
   "shared_kernel_warnings": [
    "None identified — bounded contexts communicate only via events, no shared kernel"
   ],
   "aggregate_stress_tests": [
    {
     "aggregate": "ClaimPacketAggregate",
     "scenario": "Concurrent specialist approval attempts on the same packet",
     "invariant_at_risk": "No Claim Packet is filed without a single clean specialist sign-off",
     "verdict": "Mitigated by optimistic locking on the aggregate root"
    }
   ],
   "agent_stress_tests": [
    {
     "agent": "Denial Analysis Agent",
     "scenario": "A carrier's known aggressive claims department prompts an escalated rebuttal tone",
     "failure_mode": "Draft reads as a threat despite passing the deterministic filter",
     "guardrail": "Claims Specialist approval catches tone issues the filter misses",
     "verdict": "Acceptable with specialist gate"
    }
   ],
   "regulated_domain_handling": [
    {
     "regime": "State public-adjuster licensing statutes",
     "applies_because": "ClaimRoute performs carrier-liability claims work adjacent to, but distinct from, insurance-claims adjusting",
     "controls": [
      "Never uses 'adjuster' terminology",
      "No cargo-insurance claims accepted"
     ],
     "evidence_required": [
      "[PLACEHOLDER] owner to complete"
     ]
    },
    {
     "regime": "State third-party collection/claims-recovery statutes",
     "applies_because": "Carrier correspondence could be miscategorized as third-party debt collection",
     "controls": [
      "Correspondence sent under shipper-authorized administrative-agent standing",
      "No demand language",
      "Claims-Handling Authorization on file"
     ],
     "evidence_required": "Per-state counsel review before operating in any new state"
    }
   ],
   "unit_economics": {
    "price_model": "Tiered Contingency Fee (25%/20%/15% by claim size, or flat 15% for 10+ claims/quarter) plus an optional reduced-rate Monitoring Retainer",
    "unit_of_value": "resolved claim (paid or denied-and-closed)",
    "gross_margin_pct": 60,
    "cost_drivers": [
     "Model inference (extract/classify/draft)",
     "Claims Specialist minutes",
     "QA sampling"
    ],
    "breakeven_note": "COGS/claim falls as Carrier Knowledge Base coverage and auto-classification rate improve toward the Day-90 targets"
   },
   "margin_leakage_map": [
    {
     "leakage": "Claims Specialist minutes not falling with Carrier Knowledge Base coverage",
     "cause": "New carrier formats not yet in the fixture library",
     "impact": "Gross margin compression per new shipper",
     "mitigation": "Fixture library grows with every pilot claim; reused across shippers 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": true,
       "evidence": "Your Deputy, Obuke LLC; support@yourdeputy.com — declared in the landing-page footer"
      },
      {
       "name": "Claims Specialist identity confirmed",
       "ok": false,
       "evidence": "Pending owner action"
      },
      {
       "name": "Trademark clearance",
       "ok": false,
       "evidence": "Pending owner action — ClaimRoute name collision-checked (no collision found) but not yet formally cleared"
      }
     ]
    }
   ],
   "contradiction_scan": [
    {
     "id": "C1",
     "severity": "medium",
     "message": "The blueprint's originally suggested brand name was rejected after a fresh collision check found a live competitor's domain name in adjacent trucking detention-pay recovery, with a near-mirror word order creating high buyer-confusion risk — brand.md documents the correction to 'ClaimRoute'.",
     "refs": [
      "brand.md naming rationale",
      "compliance-checklist.md naming note"
     ]
    }
   ],
   "rubric": {
    "categories": [
     {
      "category": "domain_modeling",
      "score": 4,
      "min": 3,
      "passed": true
     },
     {
      "category": "ai_governance",
      "score": 4,
      "min": 3,
      "passed": true
     },
     {
      "category": "compliance_boundary",
      "score": 3,
      "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": 3.8
   },
   "foundry_package": {
    "version": "1.0.0",
    "checksum": "n/a-generated-locally",
    "counts": {
     "subdomains": 5,
     "bounded_contexts": 5,
     "aggregates": 5,
     "events": 6,
     "commands": 6,
     "policies": 4,
     "ai_agents": 5,
     "invariants": 5,
     "integrations": 4,
     "adrs": 2
    },
    "subset": {
     "subdomains": [
      "Claim Classification & Liability",
      "Filing & Deadline-Monitoring",
      "Denial & Negotiation",
      "Carrier Knowledge",
      "Referral & Outreach"
     ],
     "bounded_contexts": [
      "Intake & Normalization",
      "Claim Classification & Liability",
      "Filing & Deadline-Monitoring",
      "Denial & Negotiation",
      "Carrier Knowledge"
     ],
     "aggregates": [
      "ShipmentAggregate",
      "ClaimAggregate",
      "ClaimPacketAggregate",
      "DenialReviewAggregate",
      "CarrierProfileAggregate"
     ],
     "events": [
      "claim.intake_received",
      "shipment.data_normalized",
      "claim.type_classified",
      "packet.approved_by_specialist",
      "claim.filed_with_carrier",
      "claim.resolved_paid"
     ],
     "commands": [
      "ReceiveClaimIntake",
      "NormalizeShipmentData",
      "ClassifyClaimType",
      "ApprovePacket",
      "FileClaimWithCarrier",
      "MakeDenialReviewDecision"
     ],
     "policies": [
      "Auto-route low-confidence classification to a second specialist",
      "Block demand-language patterns",
      "Senior-specialist spot check",
      "Auto-escalate approaching Deadline Clock"
     ],
     "ai_agents": [
      "Extraction Agent",
      "Classification Agent",
      "Packet Drafting Agent",
      "Deadline Clock Agent",
      "Denial Analysis Agent"
     ],
     "invariants": [
      "A Claim Packet cannot be filed without Claims Specialist sign-off on classification and liability",
      "No dollar figure in a filed Claim Packet is ever LLM-computed",
      "A Concealed Damage claim cannot be filed if its 5-business-day notice window has lapsed with no prior notice on file",
      "No discrepancy or carrier correspondence is published without a cited source document",
      "Litigation-referral decisions are never automated"
     ],
     "integrations": [
      "Shipper email/upload intake",
      "Carrier claims-department portal/email/fax",
      "Carrier acknowledgment/response channel",
      "Independent licensed transportation/cargo-claims attorney"
     ],
     "adrs": [
      "ADR-001",
      "ADR-002"
     ]
    }
   }
  }
 },
 "ddd_coverage": {
  "slug": "freight-claims-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": 5,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "bounded_contexts",
    "label": "Bounded Contexts",
    "count": 5,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "aggregates",
    "label": "Aggregates",
    "count": 5,
    "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": 5,
    "min": 3,
    "ok": true,
    "gate": "domain",
    "unblock": "Not needed — check passes at current counts."
   },
   {
    "key": "invariants",
    "label": "Invariants",
    "count": 5,
    "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": "freight-claims-recovery-desk",
  "archetypes": [
   "claims-recovery workflow application",
   "back-office document-intelligence service"
  ],
  "archetype_impact": "The claim (one shipment's damage/loss event) is the global scoping parameter — every read/write is scoped by shipper tenant and claim, not just tenant alone.",
  "personality": [
   "numerate",
   "calm",
   "evidence-first",
   "no hype"
  ],
  "forces_ranked": [
   {
    "force": "Deadline accuracy (no missed Deadline Clock)",
    "why": "A missed filing deadline is unrecoverable — the single fastest way to lose a claim entirely"
   },
   {
    "force": "Founder-operability (low ops burden)",
    "why": "Founder-operated launch cannot support a platform team"
   },
   {
    "force": "Time-to-first-recovery",
    "why": "Pilot cohort must produce a Recovery within 90 days to validate the model"
   },
   {
    "force": "Scalability beyond pilot",
    "why": "Lowest priority at launch; revisit at 20+ pilot accounts"
   }
  ],
  "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 carrier response patterns first"
  ],
  "quality_scenarios": [
   {
    "attribute": "accuracy",
    "assumption": "Every filed claim ties to a cited BOL/POD fact",
    "target": "100% of filed Claim Packets cite their source documents"
   },
   {
    "attribute": "reviewability",
    "assumption": "A Claims Specialist can reconstruct any claim's evidence chain quickly",
    "target": "Under 5 minutes to trace any claim line to its source document"
   }
  ],
  "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 deadline/completeness gates",
    "security_impact": "Vendor-dependent",
    "fits_here": false,
    "fits_when": "No hard date-math/money-math invariant",
    "wrong_here": true,
    "recommended": false
   }
  ],
  "chosen_style": "modular monolith",
  "chosen_rationale": "Modular monolith with background jobs for bursty shipment-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 Deadline Clock and completeness gates"
   }
  ],
  "target": {
   "overview": "Single-region modular monolith, Postgres primary store, background job queue for extraction/classification, internal specialist console, public marketing microsite.",
   "frontend": "Specialist 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 shipment/claim documents",
   "api": "Internal authenticated API for the specialist console; no public API at launch",
   "authn_authz": "SSO + MFA for specialists; row-level auth scaffolding for a future shipper status portal",
   "integrations": "Shipper email/upload intake; carrier claims-department portal/email/fax; shipper TMS feed (Monitoring Retainer accounts, year 1)",
   "background_jobs": "Shipment extraction, classification, Deadline Clock alert checks",
   "object_storage": "Encrypted, per-shipper-prefix isolated",
   "notifications": "Email only at launch (shipper comms + internal escalation alerts)",
   "search": "None at launch",
   "analytics": "Internal metrics dashboard only; no third-party analytics on the specialist console",
   "ai": "Single frontier-model provider via a scripted extraction/classification/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": "Shipment receipt, extraction, and completeness checking.",
    "owned_domain": [
     "Shipment"
    ],
    "application_services": [
     "ReceiveClaimIntake",
     "NormalizeShipmentData"
    ],
    "infra_adapters": [
     "Mailbox listener",
     "Object storage adapter",
     "Extraction-model client"
    ],
    "public_interfaces": [
     "shipment.data_normalized event"
    ],
    "forbidden_deps": [
     "Cannot call claim-classification-liability internals directly — event only"
    ],
    "responsibility": "Shipment receipt, extraction, and completeness checking.",
    "owned_data": [
     "Shipment"
    ],
    "events_produced": [
     "shipment.data_normalized event"
    ],
    "events_consumed": [
     "[PLACEHOLDER] owner to complete"
    ],
    "interfaces": [
     "shipment.data_normalized event"
    ],
    "depends_on": [
     "[PLACEHOLDER] owner to complete"
    ],
    "entities": [
     "Shipment"
    ],
    "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": "claim-classification-liability",
    "purpose": "Classification, liability determination, packet drafting/approval.",
    "owned_domain": [
     "Claim",
     "ClaimPacket"
    ],
    "application_services": [
     "ClassifyClaimType",
     "AssembleClaimPacket",
     "ApprovePacket"
    ],
    "infra_adapters": [
     "Carrier Knowledge Base client",
     "Deadline Clock calculator"
    ],
    "public_interfaces": [
     "claim.type_classified event",
     "packet.approved_by_specialist event"
    ],
    "forbidden_deps": [
     "Cannot call filing-deadline-monitoring internals directly — event only"
    ],
    "responsibility": "Classification, liability determination, packet drafting/approval.",
    "owned_data": [
     "Claim",
     "ClaimPacket"
    ],
    "events_produced": [
     "claim.type_classified event",
     "packet.approved_by_specialist event"
    ],
    "events_consumed": [],
    "interfaces": [
     "claim.type_classified event",
     "packet.approved_by_specialist event"
    ],
    "depends_on": [],
    "entities": [
     "Claim",
     "ClaimPacket"
    ],
    "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": "filing-deadline-monitoring",
    "purpose": "Carrier filing, Deadline Clock tracking, escalation.",
    "owned_domain": [
     "ClaimPacket"
    ],
    "application_services": [
     "FileClaimWithCarrier",
     "RecordCarrierAcknowledgment"
    ],
    "infra_adapters": [
     "Carrier submission-channel adapter",
     "Deadline-alert scheduler"
    ],
    "public_interfaces": [
     "claim.filed_with_carrier event"
    ],
    "forbidden_deps": [
     "Cannot bypass the Claims Specialist approval gate"
    ],
    "responsibility": "Carrier filing, Deadline Clock tracking, escalation.",
    "owned_data": [
     "ClaimPacket"
    ],
    "events_produced": [
     "claim.filed_with_carrier event"
    ],
    "events_consumed": [],
    "interfaces": [
     "claim.filed_with_carrier event"
    ],
    "depends_on": [],
    "entities": [
     "ClaimPacket"
    ],
    "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": "denial-negotiation",
    "purpose": "Denial Review and litigation-referral lifecycle.",
    "owned_domain": [
     "DenialReview"
    ],
    "application_services": [
     "MakeDenialReviewDecision",
     "MakeLitigationReferral"
    ],
    "infra_adapters": [
     "Attorney-referral packet generator"
    ],
    "public_interfaces": [
     "denial_review.decision_made event"
    ],
    "forbidden_deps": [
     "Cannot draft on behalf of any other module"
    ],
    "responsibility": "Denial Review and litigation-referral lifecycle.",
    "owned_data": [
     "DenialReview"
    ],
    "events_produced": [
     "denial_review.decision_made event"
    ],
    "events_consumed": [],
    "interfaces": [
     "denial_review.decision_made event"
    ],
    "depends_on": [],
    "entities": [
     "DenialReview"
    ],
    "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": "carrier-knowledge",
    "purpose": "Carrier profile maintenance and denial-pattern history.",
    "owned_domain": [
     "CarrierProfile"
    ],
    "application_services": [
     "UpdateCarrierKnowledgeBase"
    ],
    "infra_adapters": [
     "Carrier-profile store"
    ],
    "public_interfaces": [
     "carrier_knowledge_base.updated event"
    ],
    "forbidden_deps": [
     "Cannot issue filing or classification commands"
    ],
    "responsibility": "Carrier profile maintenance and denial-pattern history.",
    "owned_data": [
     "CarrierProfile"
    ],
    "events_produced": [
     "carrier_knowledge_base.updated event"
    ],
    "events_consumed": [],
    "interfaces": [
     "carrier_knowledge_base.updated event"
    ],
    "depends_on": [],
    "entities": [
     "CarrierProfile"
    ],
    "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 shipment/claim documents"
   ],
   "cache": "None at launch",
   "search": "None at launch",
   "vector": "None at launch (retrieval is structured lookup, not embeddings, at this scale)",
   "object_storage": "Per-shipper-prefix isolated bucket",
   "schema_strategy": "Migration-gated, reviewed per PR",
   "migrations": "Forward-only, reviewed",
   "backups": "Daily automated, tested restore quarterly",
   "retention": "Life of claim + 2-year Carmack lawsuit deadline on filed packets; 13 months on agent-run logs",
   "audit_logs": "Append-only, hash-chained per claim",
   "soft_delete": "Used for shipper offboarding, hard-delete on retention expiry",
   "privacy": "Per-tenant row-level security",
   "encryption": "At rest and in transit",
   "multi_tenancy": "Logical isolation via shipper_id row-level security"
  },
  "api": {
   "style": "Internal REST",
   "public_vs_internal": "Internal only at launch",
   "versioning": "Path-versioned when a shipper status portal ships",
   "rate_limiting": "Per-tenant budget caps on model-backed endpoints",
   "idempotency": "Idempotency keys on shipment 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 submission-format contract tests in CI",
   "backward_compat": "N/A at launch (no public API)",
   "contract_testing_plan": "Fixture-based regression suite run on every adapter/prompt change"
  },
  "security": {
   "authn": "SSO + MFA for specialists",
   "authz": "Role-based, server-side capability checks",
   "tenant_isolation": "Row-level security keyed on shipper_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-shipper leak",
    "Claims Specialist identity spoofing",
    "Prompt injection via uploaded shipment documents"
   ],
   "abuse_cases": [
    "Bulk fraudulent shipment upload attempting to poison the classification 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",
    "Shipment-extraction queue backlog during a damage cluster"
   ],
   "graceful_degradation": "Queue and retry rather than fail hard; specialist notified of delayed claims",
   "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/classification",
   "idempotency": "Idempotency keys on shipment 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 shipment extraction latency",
     "target": "under 30s"
    },
    {
     "name": "Eligibility Check answer delivery",
     "target": "≥95% within 24 hours"
    }
   ]
  },
  "scaling": {
   "mvp_can_stay_simple": [
    "Single Postgres instance",
    "In-process event dispatch"
   ],
   "modular_now": [
    "Module boundaries enforced by convention"
   ],
   "deferrable": [
    "Shipper-facing status portal",
    "Public API",
    "Vector search"
   ],
   "breaks_first": "Claims Specialist 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 a shipper status portal search becomes a real need",
   "files_path": "Object storage scales natively",
   "api_path": "Add a versioned public API only when a shipper 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-shipper + 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/claim-type",
   "hitl": "Claims Specialist gate on every classification and every filed Claim Packet",
   "guardrails": "Deterministic output filters + structured validation",
   "prompt_injection": "Uploaded shipment document 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-shipper memory",
   "tool_permissions": "Extraction/classification/drafting agents have read-only access to their own context's data",
   "auditability": "Every AgentRun logged with prompt version + validator verdict",
   "citation": "Every classification and every 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": "Deadline Clock date-math and completeness-gate thresholds",
   "integration": "Cross-module event contracts",
   "contract": "Per-carrier submission-format schema",
   "e2e": "Intake to filing smoke test",
   "security": "Row-level isolation tests",
   "a11y": "axe-core on specialist surfaces",
   "load": "Damage-cluster 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/claim-type",
   "test_data": "Anonymized gold-standard shipment 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 claim",
   "business_events": "eligibility_check_requested, claim_filed, claim_resolved_paid",
   "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-classification rate <70%",
    "Specialist minutes >25/claim"
   ],
   "triage": "On-call reviews alert, checks tenant scope, escalates per runbook"
  },
  "cost": {
   "drivers": [
    {
     "name": "Model inference per shipment",
     "note": "Scales with claim volume, falls per-claim as Carrier Knowledge Base coverage grows"
    },
    {
     "name": "Claims Specialist labor minutes",
     "note": "Falls with auto-classification-rate improvement"
    },
    {
     "name": "Object storage",
     "note": "Linear with shipper count, low absolute cost"
    }
   ],
   "likely_traps": [
    "Over-provisioning background workers before real volume data exists"
   ],
   "controls": [
    "Per-tenant budget caps",
    "Monthly cost-per-claim dashboard review"
   ]
  },
  "multi_tenancy": {
   "model": "Shared infrastructure, logical isolation",
   "isolation": "Row-level security keyed on shipper_id",
   "tenant_aware_authz": "Every capability check includes shipper_id",
   "tenant_config": "Per-shipper carrier list and claim-history config",
   "branding": "N/A at launch (internal-only console)",
   "tenant_export": "Full-claim 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": "Contingency-Fee invoicing on Recovery, plus Monitoring Retainer flat billing",
   "why_this_fits": "Small shipper count at launch makes logical isolation sufficient; a hard single-tenant requirement would trigger a per-shipper deployment exception."
  },
  "privacy_compliance": {
   "data_classification": "Financial/PII tiers documented in product.security.data_classifications",
   "minimization": "Only fields needed for classification/filing retained",
   "consent": "Claims-Handling Authorization + carrier-communication authorization",
   "access_logs": "Per-access logged with actor + timestamp",
   "audit_trails": "Append-only, hash-chained",
   "retention": "Life of claim + 2-year Carmack lawsuit deadline on filed packets; 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 the Claims-Handling Authorization",
   "right_to_export": "Full-claim export available on request",
   "sensitive_handling": "Freight/financial data isolation program",
   "boundaries": "No cargo-insurance claims activity; no litigation representation; no fund custody beyond Recovery pass-through",
   "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 specialist 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 specialist 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 specialist 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/classification",
   "events": "In-process event dispatch at launch",
   "files": "Object storage adapter",
   "email_sms": "Email adapter for shipper comms and carrier correspondence",
   "scheduled": "Deadline Clock alert 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; Shipper-->Intake; Intake-->Classification; Classification-->Filing; Filing-->DenialNegotiation",
   "container_mermaid": "graph TD; Console-->API; API-->Postgres; API-->ObjectStorage; API-->ModelProvider",
   "data_flow_mermaid": "graph LR; Shipment-->Extraction-->Classification-->ClaimPacket-->Filing-->Resolution",
   "auth_flow_mermaid": "graph LR; Specialist-->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; ShipmentDataNormalized-->ClaimTypeClassified-->PacketApprovedBySpecialist-->ClaimFiledWithCarrier",
   "failure_flow_mermaid": "graph LR; Failure-->Retry-->CircuitBreaker-->Alert",
   "multi_tenant_flow_mermaid": "graph LR; Request-->TenantContext-->RowLevelSecurity-->Data",
   "ai_flow_mermaid": "graph LR; Shipment-->ExtractionAgent-->ClassificationAgent-->PacketDraftingAgent-->ClaimsSpecialist"
  },
  "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 the first paid pilot claim 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 specialist-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 date math and dollar figures; the model never computes a final deadline or valuation",
    "status": "accepted",
    "context": "A missed deadline or wrong valuation is a hard trust requirement",
    "options": [
     "Model computes dates/totals",
     "Deterministic code computes dates/totals, model only extracts/classifies/narrates"
    ],
    "chosen": "Deterministic code computes dates/totals",
    "business_reason": "A wrong deadline or dollar figure from a model is the single fastest way to lose a shipper's trust and a claim's validity",
    "technical_reason": "Removes an entire class of hallucination risk from the highest-stakes output",
    "tradeoffs": "Slightly more engineering work per new carrier-tariff edge case",
    "risks": "Edge cases not yet coded fall through to specialist 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 carrier-tariff 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 — Stand up the operating spine",
    "weeks": "Week 1 (Days 1-7)",
    "outcomes": [
     "Intake inbox, Claims-Handling Authorization template, spreadsheet tracker, and Eligibility Check landing page live and tested",
     "First 3 educational content pieces published",
     "Warm-network outreach sent"
    ],
    "exit_criteria": [
     "Mailbox tested with one dummy submission",
     "Counsel sign-off on the Authorization template",
     "One full test submission processed end-to-end through to an Eligibility Check answer"
    ],
    "kill_criteria": [
     "Any of the operating-spine items not ready by Day 7 — outreach held even if it slips past Day 7"
    ],
    "build": [
     "Intake inbox, Claims-Handling Authorization template, spreadsheet tracker, and Eligibility Check landing page live and tested",
     "First 3 educational content pieces published",
     "Warm-network outreach sent"
    ],
    "defer": [
     "[PLACEHOLDER] owner to complete"
    ],
    "monitor": [
     "Mailbox tested with one dummy submission",
     "Counsel sign-off on the Authorization template",
     "One full test submission processed end-to-end through to an Eligibility Check answer"
    ],
    "avoid": [
     "Any of the operating-spine items not ready by Day 7 — outreach held even if it slips past Day 7"
    ],
    "acceptable_debt": [
     "[PLACEHOLDER] owner to complete"
    ],
    "dangerous_debt": [
     "[PLACEHOLDER] owner to complete"
    ],
    "triggers_to_change": [
     "[PLACEHOLDER] owner to complete"
    ]
   },
   {
    "phase": "Phase 1 — Onboard the pilot cohort, file the first claims",
    "weeks": "Weeks 2-4 (Days 8-30)",
    "outcomes": [
     "5-8 pilot accounts signed and active in 1-2 states",
     "First Claim Packets filed under heavy founder involvement",
     "State licensing review opened",
     "5-pilot hardening checklist documented"
    ],
    "exit_criteria": [
     "Pilot cap enforced at 8 accounts regardless of inbound demand",
     "Founder personally reviews every classification before filing",
     "Any gap raised by 2+ pilot accounts has a corresponding rule fix"
    ],
    "kill_criteria": [
     "Fewer than 2 signed pilots after 2 weeks of qualified outreach",
     "No willingness-to-engage signal above pilot pricing"
    ],
    "build": [
     "5-8 pilot accounts signed and active in 1-2 states",
     "First Claim Packets filed under heavy founder involvement",
     "State licensing review opened",
     "5-pilot hardening checklist documented"
    ],
    "defer": [],
    "monitor": [
     "Pilot cap enforced at 8 accounts regardless of inbound demand",
     "Founder personally reviews every classification before filing",
     "Any gap raised by 2+ pilot accounts has a corresponding rule fix"
    ],
    "avoid": [
     "Fewer than 2 signed pilots after 2 weeks of qualified outreach",
     "No willingness-to-engage signal above pilot pricing"
    ],
    "acceptable_debt": "Manual carrier follow-up and shipper onboarding at pilot scale",
    "dangerous_debt": "Skipping the Claims Specialist sign-off gate under volume pressure",
    "triggers_to_change": "Kill/pivot criteria met at any phase gate"
   },
   {
    "phase": "Phase 2 — Hold the cap, prove the model",
    "weeks": "Weeks 5-8 (Days 31-60)",
    "outcomes": [
     "Claim Packets filed and tracked for the full pilot cohort",
     "First feedback debriefs completed",
     "First Recoveries land and Contingency Fee invoiced at the pilot flat 15% rate",
     "Written licensing opinion obtained for the pilot states"
    ],
    "exit_criteria": [
     "Fee invoiced only after Recovery is confirmed paid by the carrier",
     "No claims-handling activity requiring a license proceeds without written clearance"
    ],
    "kill_criteria": [
     "Pilot-cohort recovery rate stalls far below the 35-45% manual-baseline floor",
     "Rework rate persistently above target"
    ],
    "build": [
     "Claim Packets filed and tracked for the full pilot cohort",
     "First feedback debriefs completed",
     "First Recoveries land and Contingency Fee invoiced at the pilot flat 15% rate",
     "Written licensing opinion obtained for the pilot states"
    ],
    "defer": [],
    "monitor": [
     "Fee invoiced only after Recovery is confirmed paid by the carrier",
     "No claims-handling activity requiring a license proceeds without written clearance"
    ],
    "avoid": [
     "Pilot-cohort recovery rate stalls far below the 35-45% manual-baseline floor",
     "Rework rate persistently above target"
    ],
    "acceptable_debt": "Manual carrier follow-up and shipper onboarding at pilot scale",
    "dangerous_debt": "Skipping the Claims Specialist sign-off gate under volume pressure",
    "triggers_to_change": "Kill/pivot criteria met at any phase gate"
   },
   {
    "phase": "Phase 3 — Formalize SOPs, hire the first Claims Specialist",
    "weeks": "Weeks 9-13 (Days 61-90)",
    "outcomes": [
     "First paid Claims Specialist hired and independently handling routine classifications",
     "Written SOPs, exception-queue workflow, and reviewer-assignment checklists formalized",
     "Carrier Knowledge Base coverage complete for the full pilot cohort",
     "Monitoring Retainer tier launched",
     "90-day retrospective completed"
    ],
    "exit_criteria": [
     "Specialist shadows Founder on at least 5 live claims before unsupervised classification",
     "Every carrier used by the pilot cohort has a Carrier Knowledge Base entry",
     "Licensing review complete (final, not interim) for the pilot states"
    ],
    "kill_criteria": [
     "Escalation-to-outside-counsel rate exceeds 5%",
     "Recovery rate or cycle time not improving toward the Day-90 targets"
    ],
    "build": [
     "First paid Claims Specialist hired and independently handling routine classifications",
     "Written SOPs, exception-queue workflow, and reviewer-assignment checklists formalized",
     "Carrier Knowledge Base coverage complete for the full pilot cohort",
     "Monitoring Retainer tier launched",
     "90-day retrospective completed"
    ],
    "defer": [],
    "monitor": [
     "Specialist shadows Founder on at least 5 live claims before unsupervised classification",
     "Every carrier used by the pilot cohort has a Carrier Knowledge Base entry",
     "Licensing review complete (final, not interim) for the pilot states"
    ],
    "avoid": [
     "Escalation-to-outside-counsel rate exceeds 5%",
     "Recovery rate or cycle time not improving toward the Day-90 targets"
    ],
    "acceptable_debt": "Manual carrier follow-up and shipper onboarding at pilot scale",
    "dangerous_debt": "Skipping the Claims Specialist sign-off gate under volume pressure",
    "triggers_to_change": "Kill/pivot criteria met at any phase gate"
   }
  ],
  "anti_overengineering": {
   "flagged": [
    {
     "item": "Shipper-facing status portal at launch",
     "why": "No shipper has asked for self-serve status; email/upload-link delivery is sufficient at pilot scale.",
     "simpler": "Defer to year 1, gated on shipper demand signal."
    },
    {
     "item": "Vector search / embeddings",
     "why": "Data volume at launch doesn't justify it; structured retrieval suffices.",
     "simpler": "Structured per-shipper 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": "A carrier or an enterprise SaaS vendor bundles claims automation 'free' with a shipper's existing TMS",
    "likelihood": "medium-high",
    "impact": "high",
    "mitigation": "Broker-agnostic, done-for-you positioning; Denial Review persistence as the human moat",
    "detection": "CorePiper or iNymbus adds a done-for-you chase workflow",
    "owner": "owner",
    "escalation": "Claims Specialist -> Senior Claims Specialist -> Owner -> Counsel",
    "fallback": "Broker-agnostic positioning; Denial Review persistence as the human moat",
    "category": "business"
   },
   {
    "risk": "Eligibility-Check-to-engaged conversion underperforms",
    "likelihood": "medium",
    "impact": "severe",
    "mitigation": "Pilot flat-rate offer; alternative packaging tested in cohort 2",
    "detection": "Pilot cohort conversion below target at Day-90",
    "owner": "owner",
    "escalation": "Claims Specialist -> Senior Claims Specialist -> Owner -> Counsel",
    "fallback": "Pilot flat-rate offer; alternative packaging tested in cohort 2",
    "category": "business"
   },
   {
    "risk": "False-positive or premature liability claim sent to a carrier",
    "likelihood": "medium",
    "impact": "high",
    "mitigation": "100% Claims Specialist approval; evidence-citation requirement; inquiry-not-demand language",
    "detection": "Carrier disputes a claim as unfounded",
    "owner": "legal",
    "escalation": "Claims Specialist -> Senior Claims Specialist -> Owner -> Counsel",
    "fallback": "100% Claims Specialist approval; evidence-citation requirement; inquiry-not-demand language",
    "category": "business"
   }
  ],
  "rules": [
   "No cross-module database table sharing",
   "No model call computes a final deadline date or dollar figure",
   "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 specialists",
    "ai_approach": "Scripted extraction/classification/drafting pipeline with Claims Specialist gates",
    "integrations": "Shipper email/upload intake, carrier claims-department filing channels, shipper TMS feed (year 1)",
    "build_first": [
     "Intake & Normalization",
     "Claim Classification & Liability"
    ],
    "revisit_later": [
     "Shipper-facing status portal",
     "Public API"
    ],
    "avoid": [
     "Microservices",
     "Vector search at this scale"
    ],
    "biggest_risks": [
     "Claims Specialist bottleneck",
     "A carrier-facing claim proves incorrect"
    ],
    "top_10_rules": [
     "No cross-module database table sharing",
     "No model call computes a final deadline date or dollar figure",
     "No public claim before owner-action facts close",
     "Deterministic code owns all date math and dollar figures",
     "Claims Specialist gate on every claim- or carrier-facing output"
    ],
    "first_10_steps": [
     "Confirm the named Claims Specialist + engagement terms on file",
     "Populate owner-action ledger with entity, jurisdiction, contact inbox, privacy inbox",
     "Open pilot-cohort intake (cap 8) with an explicit Contingency Fee conversation",
     "Write ICP + kill/pivot criteria in the plan file",
     "Stand up the evidence-linked intake -> classify -> specialist sign-off loop",
     "Wire append-only audit log + hash-chained Claim Packet snapshots",
     "Add row-level auth + shipper-scoped retrieval indices",
     "Instrument eligibility-check-request, claim-filed, and specialist-sign-off events",
     "Publish the microsite with FAQPage schema only and noindex until owner-facts close",
     "Schedule the Day-90 kill/pivot review with the Founder"
    ]
   }
  }
 },
 "design": {
  "slug": "freight-claims-recovery-desk",
  "archetypes": [
   "claims / recovery desk",
   "back-office evidence-desk interface"
  ],
  "user_mindset": {
   "goals": "Find out fast whether a damaged/short/lost shipment is worth pursuing, without operating new software",
   "session_length": "Short, task-focused (forward a shipment, check claim status)",
   "confidence": "Numerate, skeptical of unproven claims — wants a specific deadline and a specific claim type, not a dashboard",
   "interface_needs": "Clear evidence chain from BOL/POD fact to claim classification to Claims Specialist sign-off"
  },
  "posture": [
   "calm",
   "numerate",
   "loading-dock practical"
  ],
  "density": "compact",
  "trust_level": {
   "tier": "high",
   "sensitive_domains": [
    "Shipper financial/valuation data",
    "Carrier correspondence"
   ],
   "implications": [
    "Every claim classification must show its source fact",
    "No fabricated proof; honest placeholder slots until real pilot claims ship"
   ]
  },
  "differentiation": {
   "avoid": [
    "Insurtech-startup gradient look",
    "Generic logistics-SaaS iconography (trucks/boxes clip-art)",
    "Alarm-red urgency banners"
   ],
   "strategy": "A loading-dock, evidence-desk aesthetic — steel navy + manila paper + safety-amber — that reads like a specialist's claim binder, not a dashboard demo."
  },
  "territories": [
   {
    "name": "Loading Dock Desk",
    "color_mood": "steel navy + manila paper + safety-amber",
    "typography": "Serif display, sans body",
    "density": "compact",
    "component_feel": "artifact-shaped claim-packet cards",
    "motion": "minimal, calm",
    "fits": "Claims recovery / evidence-desk trust interfaces",
    "risks": "Could read as too industrial for a younger buyer persona (not a concern here — buyer is an ops/logistics manager)"
   },
   {
    "name": "Filing Cabinet",
    "color_mood": "muted gray-green + kraft-paper tan",
    "typography": "Sans display",
    "density": "compact",
    "component_feel": "filing-tab metaphor",
    "motion": "minimal",
    "fits": "A generic document-heavy compliance business",
    "risks": "Wrong metaphor here — reads too bureaucratic and undersells the deadline-driven recovery urgency"
   },
   {
    "name": "Claims Dashboard",
    "color_mood": "cooler blue-gray, software-dashboard feeling",
    "typography": "Sans-only",
    "density": "dense",
    "component_feel": "dashboard-like",
    "motion": "minimal",
    "fits": "A future shipper-facing status portal, not the launch microsite",
    "risks": "Reads too much like software the shipper has to operate — against the done-for-you positioning"
   }
  ],
  "chosen_territory": "Loading Dock Desk",
  "chosen_rationale": "The Claim Packet is the deliverable; the loading-dock/evidence-desk metaphor keeps every screen artifact-shaped, the way an ops manager or a carrier's claims department would want to see it.",
  "prioritized_components": [
   {
    "name": "Hero with claim-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": "204 79% 20%",
   "brand-fg": "40 27% 96%",
   "surface": "40 27% 96%",
   "ink": "209 37% 12%",
   "muted": "206 14% 32%",
   "accent": "24 78% 36%"
  },
  "type": {
   "display": "Georgia (system serif stack)",
   "body": "system-ui",
   "fonts_url": ""
  },
  "signature": {
   "motif": "A stack of mismatched shipping documents resolving into one filed, tabbed Claim Packet",
   "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": [
   "filed / on track (state-ok)",
   "deadline approaching (state-risk)",
   "awaiting carrier response (state-pending)",
   "missing document / exception queue (state-blocked)"
  ],
  "uniqueness_audit": {
   "app_specific_decisions": [
    "Steel-navy + manila + safety-amber palette distinct from the portfolio's other palettes",
    "Statement-stack-to-claim-packet visual motif specific to this business's workflow"
   ],
   "cliches_avoided": [
    "No generic insurtech gradient hero",
    "No stock trucking/warehouse 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": "freight-claims-recovery-desk",
  "archetype": "outcome-priced claims-recovery authority site",
  "archetype_impact": "Search fit is a deadline-driven, evidence-first authority site, not a generic logistics-SaaS site. That means depth on claim-type, carrier-deadline, and denial-reason specifics, with an evergreen educational content cadence anchored to the Carmack Amendment's fixed procedural rules.",
  "authority_dna": {
   "site_archetype": "outcome-priced claims-recovery authority site",
   "monetization_model": "B2B lead -> Freight Claim Eligibility Check -> Contingency Fee on Recovery (not ad revenue; not affiliate).",
   "main_search_intents": [
    "informational",
    "commercial"
   ],
   "topical_authority_opportunity": "Own the \"freight claims recovery\" topic cluster by covering claim-type classification, Carmack Amendment deadlines, BOL/POD evidence standards, and denial-reason anatomy better than any single carrier or broker blog post.",
   "local_seo_opportunity": "Not justified: buyers search by problem/carrier, not by city.",
   "global_national_opportunity": "National (US-first); the Carmack Amendment is a federal framework, not state-gated, though third-party collection licensing varies by state.",
   "easiest_ranking_path": "Long-tail, claim-type-specific and deadline-specific queries (\"concealed damage 5 day rule\", \"why was my freight claim denied\") where the SERP is dominated by carrier/broker blog posts, not buyer-first done-for-you offers.",
   "hardest_ranking_path": "Head terms like \"freight claims software\" — dominated by aged enterprise SaaS vendor domains (CorePiper, iNymbus).",
   "trust_credibility_requirements": [
    "Named Claims Specialist with role",
    "BOL/POD/carrier 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-carrier Deadline Clock and denial-reason pages with real anonymized teardown evidence, refreshed as the Carrier Knowledge Base grows."
  },
  "search_market": {
   "primary_markets": [
    "freight claims recovery service",
    "freight claim eligibility check",
    "LTL freight claim denial help"
   ],
   "secondary_markets": [
    "carrier deadline tracking",
    "concealed damage claim filing",
    "freight bill audit (planned expansion)"
   ],
   "low_competition_subtopics": [
    "concealed damage 5 day rule",
    "carrier-specific claim denial reasons",
    "BOL exception notation requirements"
   ],
   "high_commercial_intent": [
    "done-for-you freight claim filing service",
    "contingency freight claims recovery",
    "freight claims recovery for small shippers"
   ],
   "informational": [
    "what counts as concealed damage on a freight shipment",
    "how to file a freight claim under the Carmack Amendment",
    "why was my freight claim denied"
   ],
   "local_intent": [
    "[PLACEHOLDER] owner to complete"
   ],
   "transactional": [
    "freight claim eligibility check",
    "book a freight claim review"
   ],
   "comparison": [
    "freight claims recovery service vs software",
    "ClaimRoute vs CorePiper vs iNymbus"
   ],
   "problem_solution": [
    "carrier denied my freight claim what to do",
    "shipment arrived damaged who is liable"
   ],
   "near_me": [
    "[PLACEHOLDER] owner to complete"
   ],
   "long_tail": [
    "5 business day concealed damage notice rule",
    "bill of lading filing deadline freight claim",
    "carrier 120 day resolution clock explained"
   ],
   "questions": [
    "what documents does a freight claim need?",
    "who reviews a freight claim eligibility check?",
    "how long does a freight claim take to resolve?"
   ],
   "emerging": [
    "AI-assisted freight claim document extraction",
    "automated carrier deadline tracking"
   ],
   "seasonal": [
    "[PLACEHOLDER] owner to complete"
   ],
   "underserved_serps": [
    "carrier-specific denial-reason anatomy",
    "concealed damage vs visible damage distinction"
   ],
   "weak_serps": [
    "freight claim self-check",
    "freight claim filing checklist"
   ],
   "forum_dominated_serps": [
    "why was my freight claim denied",
    "carrier missed the acknowledgment deadline"
   ],
   "winnable_authoritative_serps": [
    "freight claims recovery definitive guide",
    "freight claim eligibility check evidence requirements"
   ],
   "avoid_initially": [
    "freight claims software",
    "best TMS for claims management"
   ],
   "easy_wins": [
    "concealed damage 5 day rule",
    "freight claim filing checklist",
    "denial-reason anatomy"
   ],
   "moderate": [
    "freight claims recovery definitive guide",
    "carrier deadline tracking how-to"
   ],
   "long_term_plays": [
    "freight claims software comparison",
    "multi-carrier claims portfolio management"
   ],
   "do_not_pursue": [
    "generic \"how to start a logistics business\" content",
    "celebrity or trend-jacking posts",
    "AI-generated listicles"
   ]
  },
  "keyword_clusters": [
   {
    "primary": "freight claims recovery service",
    "related": [
     "done-for-you freight claim filing",
     "outsource freight claims"
    ],
    "intent": "commercial",
    "user_problem": "Shipper suspects a filable claim 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-shipper-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": "freight claim eligibility check",
    "related": [
     "is my freight claim filable",
     "freight claim deadline check"
    ],
    "intent": "commercial",
    "user_problem": "Wants a low-commitment diagnostic before committing to a full claim",
    "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 / diagnostic page",
    "reason": "Own a branded-term wedge outright",
    "priority_score": 16,
    "priority": "P0",
    "bucket": "easy-win"
   },
   {
    "primary": "why was my freight claim denied",
    "related": [
     "freight claim denial reasons",
     "carrier denied my claim"
    ],
    "intent": "informational",
    "user_problem": "Immediate confusion moment after a carrier denial letter",
    "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": [
    "Freight claims recovery — definitive guide",
    "Claim-type & Carmack Amendment deadline library",
    "Denial-reason anatomy & appeal resolution"
   ],
   "pillars": [
    {
     "name": "Freight claims recovery — definitive guide",
     "core_intent": "informational",
     "audience": "ops/logistics managers and controllers",
     "conversion_goal": "Eligibility Check request",
     "supporting_pages": [
      "The 5-business-day concealed damage rule",
      "Visible damage vs. concealed damage vs. shortage vs. non-delivery",
      "What actually has to be in a compliant BOL exception notation"
     ],
     "internal_links": [
      "/",
      "/resources/self-check"
     ],
     "schema": [
      "Article",
      "BreadcrumbList",
      "FAQPage (where genuine)"
     ],
     "evidence_needed": [
      "Named Claims Specialist",
      "Primary-source citations",
      "Worked example"
     ],
     "local_variants": [
      "[PLACEHOLDER] owner to complete"
     ],
     "national_variants": [
      "US-national (default)"
     ]
    },
    {
     "name": "Eligibility Check evidence & trust",
     "core_intent": "commercial",
     "audience": "ops/logistics managers",
     "conversion_goal": "Book an Eligibility Check",
     "supporting_pages": [
      "Anatomy of a filed Claim Packet",
      "One carrier, one shipment, $X recovered"
     ],
     "internal_links": [
      "/#diagnostic",
      "/resources/evidence"
     ],
     "schema": [
      "Article",
      "FAQPage",
      "BreadcrumbList"
     ],
     "evidence_needed": [
      "Worked evidence artifact",
      "Specialist 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": [
    "/freight-claims-recovery-desk/"
   ],
   "avoid_url_patterns": [
    "Thin per-carrier programmatic pages with no unique evidence"
   ]
  },
  "global_national": {
   "national_clusters": [
    "Freight claims recovery"
   ],
   "linkable_assets": [
    "Freight Claim Eligibility Self-Check"
   ],
   "original_research_ideas": [
    "Aggregate pilot-cohort recovery-rate statistics once cohort completes"
   ],
   "international_needed": false,
   "international_notes": "US-only Carmack Amendment framework; no international expansion in scope at launch (Recoupex already serves international ocean/air claims)"
  },
  "local_seo": {
   "justified": false,
   "reason": "Buyers search by problem/carrier, 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 an Eligibility Check request",
    "target_intent": "commercial",
    "url_pattern": "/freight-claims-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 (Eligibility Check request), secondary deep-links only",
    "conversion_elements": [
     "Guarantee beside pricing",
     "Honest placeholder proof"
    ],
    "trust_elements": [
     "Compliance section",
     "Named Claims Specialist (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 Claims Specialist 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": [
    "ClaimRoute",
    "Freight Claim Eligibility Check",
    "Claim Packet"
   ],
   "related_entities": [
    "CorePiper",
    "iNymbus",
    "TransLogistics Inc",
    "Recoupex"
   ],
   "people": [
    "Named Claims Specialist"
   ],
   "orgs": [
    "FMCSA",
    "state collection-agency licensing boards"
   ],
   "tools": [
    "TMS (shipper-side, integration target for Monitoring Retainer accounts)"
   ],
   "regulations": [
    "Carmack Amendment, 49 U.S.C. § 14706",
    "State third-party collection/claims-recovery statutes"
   ],
   "problems": [
    "Freight claim denial",
    "Missed Deadline Clock"
   ],
   "solutions": [
    "Freight Claim Eligibility Check",
    "Claim Packet filing",
    "Denial Review"
   ],
   "processes": [
    "Intake",
    "Classification",
    "Filing",
    "Denial Review"
   ],
   "alternatives": [
    "Enterprise self-operated claims SaaS",
    "Broker-bundled claims desk",
    "In-house claims specialist hire"
   ],
   "synonyms": [
    "freight claims recovery",
    "cargo claim recovery",
    "LTL claim 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 Claims Specialist bio pending owner action",
   "expert_reviewers": "Named Claims Specialist",
   "editorial_policy": "Facts cited to primary/trade-press sources; vendor-sponsored claims labeled",
   "fact_checking": "Quarterly re-verification cadence",
   "credentials": [
    "Claims Specialist 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": "Contingency Fee pricing disclosed on the pricing section itself",
   "ymyl_notes": "Treated as YMYL due to financial-recovery-adjacent content; no legal 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": "Get Your Free Eligibility Check",
   "secondary_cta": "See what comes back",
   "lead_magnets": [
    "Freight Claim Eligibility Self-Check",
    "Concealed Damage 5-Day Clock Checklist"
   ],
   "trust_elements": [
    "Guarantee + out-clause beside pricing",
    "Compliance section with licensing boundary"
   ],
   "per_page_paths": [
    {
     "path": "Homepage -> Eligibility Check request",
     "page_type": "pillar"
    }
   ],
   "tracking": "data-event taxonomy per DESIGN-STANDARD §4"
  },
  "link_earning": {
   "digital_pr_ideas": [
    "Aggregate anonymized pilot-cohort recovery statistics as original research"
   ],
   "original_research": [
    "Average recovery rate by carrier and claim type (post-pilot)"
   ],
   "directories": [
    "Trade-association vendor resource pages (building products, industrial distribution)"
   ],
   "expert_contributions": [
    "Guest posts on freight-broker/3PL community blogs"
   ],
   "partnerships": [
    "Freight broker/3PL referral partners"
   ],
   "avoid": [
    "Paid link schemes",
    "Low-quality directory submissions"
   ]
  },
  "roadmap_90d": [
   {
    "phase": "Launch",
    "goal": "Publish core microsite",
    "pages": [
     "Homepage"
    ],
    "keywords_targeted": [
     "freight claims recovery service"
    ],
    "required_assets": [
     "Self-check lead magnet"
    ],
    "internal_links": [
     "[PLACEHOLDER] owner to complete"
    ],
    "difficulty": "low",
    "business_value": "high",
    "conversion_goal": "Eligibility Check requests",
    "why_first": "Foundation for every other page"
   }
  ],
  "roadmap_12m": [
   {
    "phase": "Authority hub",
    "goal": "Build /resources content cluster",
    "pages": [
     "Definitive guide",
     "Per-claim-type how-tos"
    ],
    "keywords_targeted": [
     "concealed damage 5 day rule"
    ],
    "required_assets": [
     "Anonymized pilot-cohort statistics"
    ],
    "internal_links": [
     "Homepage"
    ],
    "difficulty": "medium",
    "business_value": "medium",
    "conversion_goal": "Organic Eligibility Check requests",
    "why_first": "Compounding organic channel per the GTM kit"
   }
  ],
  "priority_pages": [
   {
    "rank": 1,
    "page_title": "ClaimRoute homepage",
    "slug": "/freight-claims-recovery-desk/",
    "page_type": "pillar/service",
    "primary_keyword": "freight claims recovery service",
    "secondary_keywords": [
     "freight claim eligibility check"
    ],
    "intent": "commercial",
    "funnel": "BOFU",
    "business_value": "high",
    "difficulty": "medium",
    "conversion_potential": "high",
    "cta": "Get Your Free Eligibility Check",
    "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",
    "Broker/carrier service pages",
    "Generic logistics content"
   ],
   "common_weaknesses": [
    "Written for large shippers with IT teams, not the $5M-$150M shipper",
    "No carrier-specific evidence"
   ],
   "how_to_beat_them": [
    "Publish small/mid-shipper-specific, carrier-specific, evidence-first content"
   ]
  },
  "metrics": {
   "weekly": [
    "Eligibility Check requests",
    "Self-check completions"
   ],
   "monthly": [
    "Organic Eligibility Check 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 recovery-outcome claims without named-specialist attribution",
    "applies": true,
    "mitigation": "Named Claims Specialist attribution and quarterly re-verification"
   },
   {
    "risk": "Competitor content targeting the same small/mid-shipper segment",
    "applies": true,
    "mitigation": "Named Claims Specialist attribution and quarterly re-verification"
   }
  ],
  "first_20_pages": [
   "Homepage",
   "Freight Claim Eligibility Self-Check",
   "Concealed Damage 5-Day Clock Checklist",
   "Freight claims recovery 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 trade-association/broker partnership conversation"
  ],
  "final_recommendation": "Launch noindexed until owner-action facts (entity, Claims Specialist identity, trademark clearance) close; then pursue a narrow, evidence-first authority strategy targeting the $5M-$150M shipper segment the enterprise claims-SaaS content ignores.",
  "disclaimers": [
   "Not legal advice",
   "Vendor-sponsored statistics labeled as such",
   "No fabricated reviews or testimonials"
  ]
 },
 "microsite": {
  "category": "Freight logistics / carrier-liability freight claims recovery (LTL/FTL)",
  "shortTitle": "ClaimRoute",
  "audience": "operations/logistics managers and controllers at $5M-$150M manufacturers, distributors, and industrial/building-products wholesalers shipping 20 to a few thousand LTL/FTL shipments/month via common carriers, no dedicated in-house claims specialist",
  "problem": "A shipment shows up damaged, short, or missing, and recovering the money the carrier owes requires correctly classifying the claim type, gathering evidence, and filing inside a narrow, carrier-specific deadline window — most ops teams have no one whose job it is to do this systematically. Roughly half of eligible freight claims are estimated to never get filed at all, and of those filed without discipline, LTL denial rates run 50-60% and manual recovery rates run only 35-45% of claimed value.",
  "offer": "On ClaimRoute, shippers forward one shipment's paperwork and get back, within 24 hours, a plain filable/not-filable answer. If it's filable, ClaimRoute classifies the claim, verifies carrier liability under the Carmack Amendment, tracks the Deadline Clock, assembles and files the Claim Packet, and a Claims Specialist personally handles every carrier response and every Denial Review. ClaimRoute is paid only out of Recovery — no recovery, no fee.",
  "faq": [
   {
    "q": "Are you a public adjuster or insurance claims adjuster?",
    "a": "No. ClaimRoute is neither, and we don't use that terminology to describe ourselves. A Carmack Amendment freight claim is a claim against a common carrier under a bill of lading, not an insurance policy claim — a different regulatory category."
   },
   {
    "q": "Do you negotiate with carriers as our representative?",
    "a": "Yes, under a signed Claims-Handling Authorization — a limited power of attorney you control — we correspond with carrier claims departments on your behalf. If a claim ever proceeds to litigation or formal arbitration, we refer it to an independent, licensed transportation attorney; we don't represent you in court and we don't take a fee on a litigated outcome."
   },
   {
    "q": "What if our shipment is past the filing deadline?",
    "a": "We check the applicable Deadline Clock before doing anything else. If the concealed-damage notice window or the bill of lading's filing window has already passed, we tell you within 24 hours, at no cost, and explain why it's unlikely to be filable rather than taking your time on a claim with disclosed low odds."
   },
   {
    "q": "Is this ever an hourly or flat fee?",
    "a": "Never hourly, and no flat per-claim fee as the primary model. You're only charged a Contingency Fee — 25%, 20%, or 15% depending on claim size — when a claim is actually paid. If we don't recover anything, you owe nothing."
   },
   {
    "q": "What do you need from us to start?",
    "a": "The bill of lading, proof of delivery, damage or shortage photos, invoice or purchase value, the carrier name, the delivery date, and any existing carrier correspondence for one shipment — plus a signed Claims-Handling Authorization before we correspond with a carrier on your behalf."
   },
   {
    "q": "What if the carrier refuses to deal with a third party?",
    "a": "Most carriers accept a properly authorized third-party claims agent. If a specific carrier insists on dealing with you directly, we draft the full Claim Packet for you to submit under your own name — you still get the classification, Deadline Clock accuracy, and packet quality, just filed in your name."
   },
   {
    "q": "Our AP or ops team already files claims sometimes — why do we need you?",
    "a": "Ask what percentage got paid, and how long they took. Under the industry's manual baseline, LTL denial rates run 50-60% and claims take an average of 47 days to resolve — mostly from documentation gaps and missed deadlines, not real liability disputes."
   },
   {
    "q": "What does it cost?",
    "a": "25% of Recovery on claims under $2,500, 20% on $2,500-$10,000, 15% above that or for 10+ claims/quarter — charged only once a claim is paid. Optional Monitoring Retainer: $99-$499/month for accounts with recurring shipment volume, with a reduced 10-15% Contingency Fee."
   },
   {
    "q": "Can this work outside a one-time claim?",
    "a": "Yes — the Monitoring Retainer covers proactive OS&D monitoring across your full shipment feed and deadline-clock calendaring across every carrier you use, for shippers with recurring claim volume rather than one-off forwarding."
   }
  ],
  "process": [
   {
    "title": "Forward: send your shipment's paperwork",
    "body": "Send the bill of lading, proof of delivery, damage or shortage photos, and invoice value for one shipment, by email or upload — no account setup required. Each document is logged and hashed on arrival."
   },
   {
    "title": "Classify: claim type and liability",
    "body": "We determine the claim type — visible damage, concealed damage, shortage, or non-delivery — verify carrier liability under the Carmack Amendment, and calculate the exact Deadline Clock that applies."
   },
   {
    "title": "Claims Specialist review",
    "body": "A Claims Specialist reviews the classification and liability determination before anything is sent to a carrier — nothing is filed without human sign-off."
   },
   {
    "title": "File and track",
    "body": "The Claim Packet is filed with the carrier; you get a confirmation and an expected-timeline summary, and the Deadline Clock is monitored until resolution."
   },
   {
    "title": "Resolve",
    "body": "If paid, funds are collected and you're paid out minus the Contingency Fee. If denied, your Claims Specialist reviews the denial through a Denial Review and fights it, escalates, or — rarely — refers it to independent counsel."
   }
  ],
  "northStarCta": {
   "label": "Get Your Free Eligibility Check",
   "href": "#diagnostic",
   "secondary_label": "See what comes back",
   "secondary_href": "#deliverables"
  },
  "trust": {
   "standards": [
    "Claims recovery service — not a licensed public adjuster, collection agency, or law firm",
    "Every claim classification traces to a cited BOL/POD fact; gaps ship as explicit notes",
    "Claims Specialist release on every filed claim; second specialist above the senior-review threshold"
   ],
   "response_time": "24 hours for the Eligibility Check answer; 10-14 days per filed claim cycle",
   "data_handling": "Per-shipper isolated files, least-privilege access, hash-stamped originals, audit trail retained for the life of the claim plus the 2-year Carmack lawsuit deadline"
  },
  "hook": "Free Eligibility Check tells you within 24 hours whether the carrier owes you money — before the deadline clock runs out.",
  "sub_headline": "You send the bill of lading, proof of delivery, and photos for one shipment. You get back a filable/not-filable answer in 24 hours, and — if it's filable — a filed, tracked claim and, when it resolves, a Recovery check. No recovery, no fee.",
  "dream_outcome": "Every damaged, short, or lost shipment turned into a filed, tracked claim before its deadline clock runs out — with a check at the end, not a write-off.",
  "specific_pains": [
   "A 40-person distributor gets a damaged pallet in from an LTL carrier, and nobody knows if the five-day concealed-damage window has already closed.",
   "Ask who's tracking the carrier's 30-day acknowledgment and 120-day resolution clock across a dozen carriers, and the honest answer is nobody.",
   "A general model can draft a plausible-looking claim letter; only a carrier-liability-correct classification with a Claims Specialist's sign-off produces a claim a carrier can't easily deny on a technicality.",
   "The company also ships FTL freight with different carriers and different tariff deadlines — miss that and you've applied the wrong filing window to part of the claim.",
   "A carrier's claims department reads a submission as a package: BOL, POD, evidence, and a liability statement. Miss any piece and the denial starts there."
  ],
  "cost_of_inaction": "Every shipment left unfiled is a claim that ages past the point any carrier will still investigate it — the 5-business-day concealed-damage window and the bill of lading's filing window don't wait for someone to have a spare hour.",
  "mechanism": {
   "name": "The ClaimRoute claims-recovery engine",
   "steps": [
    {
     "title": "Forward: send your shipment's paperwork",
     "body": "Send the bill of lading, proof of delivery, damage or shortage photos, and invoice value for one shipment, by email or upload — no account setup required. Each document is logged and hashed on arrival."
    },
    {
     "title": "Classify: claim type and liability",
     "body": "We determine the claim type — visible damage, concealed damage, shortage, or non-delivery — verify carrier liability under the Carmack Amendment, and calculate the exact Deadline Clock that applies."
    },
    {
     "title": "Claims Specialist review",
     "body": "A Claims Specialist reviews the classification and liability determination before anything is sent to a carrier — nothing is filed without human sign-off."
    },
    {
     "title": "File and track",
     "body": "The Claim Packet is filed with the carrier; you get a confirmation and an expected-timeline summary, and the Deadline Clock is monitored until resolution."
    },
    {
     "title": "Resolve",
     "body": "If paid, funds are collected and you're paid out minus the Contingency Fee. If denied, your Claims Specialist reviews the denial through a Denial Review and fights it, escalates, or — rarely — refers it to independent counsel."
    }
   ]
  },
  "offer_stack": [
   {
    "item": "Freight Claim Eligibility Check",
    "note": "free, 24-hour filable/not-filable answer with the specific reason if not"
   },
   {
    "item": "Claim Packet",
    "note": "bill of lading, proof of delivery, itemized valuation, and evidence, assembled and filed in the format the specific carrier requires"
   },
   {
    "item": "Deadline Clock tracking",
    "note": "every carrier's 30-day acknowledgment and 120-day resolution window, monitored and escalated automatically"
   },
   {
    "item": "Denial Review",
    "note": "if a carrier denies or lowballs, a Claims Specialist personally reviews the reason and fights it"
   },
   {
    "item": "Full correspondence log",
    "note": "every document, classification, sign-off, and carrier exchange, retained with a timestamped audit trail"
   }
  ],
  "guarantee": "No recovery, no fee — period. There is no minimum engagement, no cancellation fee, and no cost to submit a shipment for a Freight Claim Eligibility Check. This is not a guarantee that any specific claim will be paid: carrier liability and dollar recovery depend on the facts of each shipment.",
  "urgency": "There's no single filing deadline across the whole business — the cost compounds, not cliffs: every unfiled shipment is a claim aging toward the point a carrier will no longer investigate it, and the 5-business-day concealed-damage window in particular is unforgiving.",
  "objections": [
   {
    "q": "\"Aren't you a debt collector, or will you contact our carriers on your own authority?\"",
    "a": "No. ClaimRoute is a claims-documentation and filing service. We correspond with carriers as your authorized administrative agent under a signed Claims-Handling Authorization you control; we never act as a third-party collection agency or threaten legal action."
   },
   {
    "q": "\"Doesn't our freight broker or TMS already handle this?\"",
    "a": "Some brokers bundle a claims desk, but only for shippers routing freight through that broker's own brokerage. Enterprise claims software exists too, but it's a tool your own team has to configure and run. ClaimRoute is standalone and done-for-you either way."
   },
   {
    "q": "\"Will we be relying on an AI-drafted claim with no human check?\"",
    "a": "No. Every Claim Packet is reviewed and approved by a named Claims Specialist before it's filed. AI drafts; a human authorizes."
   },
   {
    "q": "\"Do you need to be a licensed adjuster to do this?\"",
    "a": "No. A Carmack Amendment freight claim is a claim against a common carrier under a bill of lading, not an insurance policy claim — a different regulatory category from insurance-claims adjusting. See the compliance section for the full boundary."
   }
  ],
  "who_this_is_not_for": [
   "Shippers wanting help with a cargo-insurance claim — that's a different, licensed activity ClaimRoute doesn't perform.",
   "A shipment where the concealed-damage notice window or the bill of lading's filing deadline has already passed — we'll tell you that for free rather than take on a claim we know is unlikely to recover.",
   "Anyone wanting a guaranteed recovery number before a claim is even reviewed — nobody can honestly promise that, so we don't.",
   "Claims that are already in litigation or arbitration — those stay with your own attorney; we don't provide legal representation."
  ],
  "proof_pillars": [
   {
    "title": "Every claim tied to evidence",
    "body": "Every classification traces to a cited BOL/POD fact in the claim record. A claim type we can't confirm is an explicit note, not a silent guess."
   },
   {
    "title": "Specialist-released, every time",
    "body": "No Claim Packet auto-files. A named Claims Specialist certifies every classification and liability call before anything reaches a carrier."
   },
   {
    "title": "Deadline-correct, by code",
    "body": "Every Deadline Clock is computed in deterministic code against the Carrier Knowledge Base — the system renders the date math, it doesn't guess at it."
   }
  ],
  "stakes_line": "Unfiled means unrecovered: carriers don't chase you to tell you they owe you money, and the longer a claim sits, the harder it is to prove.",
  "deliverable": "Claim Packet",
  "unit_of_work": "filed claim",
  "lexicon": {
   "regulator": "FMCSA / State collection-agency licensing boards",
   "regulator_full": "Federal Motor Carrier Safety Administration framework (Carmack Amendment) and State third-party collection/claims-recovery licensing boards",
   "statute": "The Carmack Amendment (49 U.S.C. § 14706) and State third-party collection/claims-recovery statutes",
   "statute_frame": "the intake-to-filing workflow where an unfiled shipment is a self-inflicted forfeiture of recoverable money.",
   "persona": "Ops/Logistics Manager",
   "persona_moment": "You're the operations manager at a 40-person distributor. A pallet came in from an LTL carrier last week with the corner crushed, and nobody knows if the five-day window to report it has already closed.",
   "trigger_moment": "a shipment arriving damaged, short, or missing, with a Deadline Clock already running",
   "enforcement_stakes": "claims age past the point any carrier will still investigate them, and denials go unresolved (outcomes vary case-by-case and are never guaranteed)",
   "retention": "the full audit trail of every claim and every carrier correspondence",
   "cta_verb": "Get Your Free Eligibility Check",
   "intake_checklist": [
    "Bill of lading (BOL)",
    "Proof of delivery (POD)",
    "Damage/shortage photos (if applicable)",
    "Invoice/purchase value",
    "Carrier name and delivery date",
    "Signed Claims-Handling Authorization"
   ],
   "regulator_faqs": [
    {
     "q": "Do carriers know ClaimRoute is filing on our behalf?",
     "a": "Yes — every filing states it is submitted on your behalf under your signed Claims-Handling Authorization, which you control and can revoke at any time."
    },
    {
     "q": "Will a carrier treat a ClaimRoute-filed claim differently than one you file yourself?",
     "a": "No — it's evaluated the same either way. What changes is completeness and evidence: a specialist-approved Claim Packet cites the specific BOL/POD facts and liability basis, which resolves faster than an unevidenced submission."
    }
   ],
   "trust_standards_specific": [
    "[PLACEHOLDER] owner to complete"
   ]
  },
  "proof_angle": {
   "id": "deadline-discipline",
   "headline": "The next damaged shipment lands on a tracked Deadline Clock, not a guess — ClaimRoute holds the filing discipline at rest.",
   "lever": "ClaimRoute stores every classification, filing, and specialist sign-off in a shipper-indexed claim record a specialist can walk without your help.",
   "outcome_verb": "recover",
   "outcome_frame": "recover a claim in weeks instead of writing it off in silence",
   "proof_promise": "The Claim Packet is the answer — specialist-approved, hash-stamped, and reproducible the day a carrier asks a question."
  },
  "indexable": true,
  "ubiquitousLanguage": {
   "audience": "operations/logistics managers and controllers at $5M-$150M manufacturers, distributors, and industrial/building-products wholesalers, no dedicated in-house claims specialist",
   "domain": "freight claims recovery under the Carmack Amendment (LTL/FTL)",
   "deliverable": "Claim Packet + Claims Specialist release",
   "reviewer": "Claims Specialist",
   "record": "claim history register",
   "unit_of_work": "filed claim",
   "cta_primary": "Get Your Free Eligibility Check",
   "cta_secondary": "See what comes back",
   "regulator": "FMCSA / State collection-agency licensing boards",
   "regulator_full": "Federal Motor Carrier Safety Administration framework (Carmack Amendment) and State third-party collection/claims-recovery licensing boards",
   "statute": "The Carmack Amendment (49 U.S.C. § 14706) and State third-party collection/claims-recovery statutes",
   "trigger_moment": "a shipment arriving damaged, short, or missing, with a Deadline Clock already running",
   "event_intake_started": "freight_claims_recovery_desk_intake_started",
   "event_conversation_requested": "freight_claims_recovery_desk_conversation_requested"
  }
 },
 "evidence": [
  {
   "id": "freight-claims-recovery-desk-e1",
   "business_slug": "freight-claims-recovery-desk",
   "area": "Identity",
   "claim_or_finding": "Operating entity declared: Your Deputy, Obuke LLC, support@yourdeputy.com; ClaimRoute 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 ClaimRoute before scaling.",
   "severity": "info"
  },
  {
   "id": "freight-claims-recovery-desk-e2",
   "business_slug": "freight-claims-recovery-desk",
   "area": "Naming correction",
   "claim_or_finding": "The source blueprint's originally suggested brand name was rejected after a fresh collision check found a live competitor's domain name in adjacent trucking detention-pay claim recovery — the near-mirror word order in the same trucking-recovery space created high buyer-confusion risk. The corrected, final brand name is ClaimRoute.",
   "status": "verified",
   "evidence": "brand.md name-candidate collision-screen table; compliance-checklist.md naming note; no occurrence of the rejected working name anywhere in this build's shipped artifacts.",
   "verification_command": "Grep all build artifacts and the live site for the rejected working name recorded in brand.md — expect zero matches.",
   "fix_owner": "engineering",
   "remediation": "Corrected everywhere the blueprint's original name appeared; brand.md documents the collision finding and the ClaimRoute rationale.",
   "severity": "medium"
  },
  {
   "id": "freight-claims-recovery-desk-e3",
   "business_slug": "freight-claims-recovery-desk",
   "area": "Trust boundary",
   "claim_or_finding": "Public page is a validation microsite for a claims-documentation and filing service; not a licensed public adjuster, collection agency, or law firm.",
   "status": "verified",
   "evidence": "Microsite carries an explicit trust-boundary and compliance/scope disclaimer block.",
   "verification_command": "Inspect /freight-claims-recovery-desk/ for the trust boundary.",
   "fix_owner": "engineering",
   "remediation": "None — enforced by template.",
   "severity": "low"
  },
  {
   "id": "freight-claims-recovery-desk-e4",
   "business_slug": "freight-claims-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 the SEO factory row for freight-claims-recovery-desk",
   "fix_owner": "engineering",
   "remediation": "None — enforced by the SEO factory.",
   "severity": "low"
  },
  {
   "id": "freight-claims-recovery-desk-e5",
   "business_slug": "freight-claims-recovery-desk",
   "area": "Competitive landscape freshness",
   "claim_or_finding": "Recoupex (recoupex.com), a real done-for-you, contingency-priced cargo-claims recovery company charging 20-50% on a no-win-no-fee basis, was found during fresh research. It validates contingency pricing as a workable model but serves only international ocean/air cargo claims, not domestic LTL/FTL Carmack Amendment claims — it is pricing-model evidence, not a direct competitor for ClaimRoute's ICP.",
   "status": "verified",
   "evidence": "business-plan.md Competitive Landscape section, citing a direct fetch of recoupex.com.",
   "verification_command": "Re-fetch recoupex.com and confirm it still serves international ocean/air cargo claims only, not domestic LTL/FTL.",
   "fix_owner": "owner",
   "remediation": "Noted in business-plan.md and offer-and-pricing.md as a fresh-verification finding; does not change ClaimRoute's core positioning but confirms contingency pricing has real market precedent adjacent to, not inside, this niche.",
   "severity": "low"
  },
  {
   "id": "freight-claims-recovery-desk-e6",
   "business_slug": "freight-claims-recovery-desk",
   "area": "Licensing boundary",
   "claim_or_finding": "ClaimRoute never adjusts an insured loss or claim (a licensed public adjuster's exclusive function), never guarantees a Recovery amount or carrier response, and operates on the inferred (not yet counsel-confirmed) reading that a Carmack Amendment freight claim is carrier-liability recovery under a federal statute, not an insurance-policy claim.",
   "status": "verified",
   "evidence": "Standard public-adjuster-licensing scope (per NAIC Public Adjuster Licensing Model Act materials) as described in compliance-checklist.md; verbatim disclaimer present on the landing page.",
   "verification_command": "Inspect /freight-claims-recovery-desk/ compliance section and builds/freight-claims-recovery-desk/compliance-checklist.md for verbatim disclaimer.",
   "fix_owner": "engineering",
   "remediation": "None — enforced by template and manual review; state-by-state third-party collection/claims-recovery licensing review remains Pending Counsel Review per compliance-checklist.md Section 2.2.",
   "severity": "medium"
  },
  {
   "id": "freight-claims-recovery-desk-e7",
   "business_slug": "freight-claims-recovery-desk",
   "area": "Labor-market data freshness",
   "claim_or_finding": "284+ live \"freight claims specialist\" job postings nationally were confirmed on a fresh re-check, with the posted wage range tightening to $18-37/hour on ZipRecruiter (vs. the $17-45/hour range in the original blueprint research); Glassdoor still shows 284 listings.",
   "status": "verified",
   "evidence": "business-plan.md Risks section fresh-check note.",
   "verification_command": "Re-check Glassdoor and ZipRecruiter listing counts and wage ranges before finalizing GTM hiring-cost assumptions.",
   "fix_owner": "owner",
   "remediation": "Noted as a minor update worth tracking as a hiring-cost input, not a business risk in itself.",
   "severity": "info"
  }
 ],
 "seo_pages": {
  "id": "seo-freight-claims-recovery-desk",
  "business_slug": "freight-claims-recovery-desk",
  "route": "/freight-claims-recovery-desk",
  "title": "ClaimRoute — freight claims recovery & filing desk",
  "description": "ClaimRoute for small-to-mid manufacturers and distributors. A filed, tracked, carrier-liability-correct freight claim from your own shipment paperwork — contingency-priced, no recovery no fee.",
  "canonical": "/freight-claims-recovery-desk",
  "og_title": "ClaimRoute — Freight Claims Recovery Desk for Small-to-Mid LTL/FTL Shippers",
  "og_description": "ClaimRoute for small-to-mid manufacturers and distributors. A filed, tracked, carrier-liability-correct freight claim from your own shipment paperwork — contingency-priced, no recovery no fee.",
  "schema_type": "FAQPage",
  "schema_status": "pending-owner-facts",
  "sitemap_include": false,
  "noindex": true
 },
 "vertical_style": {
  "accent": "safety-amber",
  "signature": "Loading-dock claim-packet tabs with a Deadline Clock status chip",
  "layout": "Claims recovery desk index",
  "anti": "Insurtech gradient hero, stock trucking/warehouse imagery, and alarm-red urgency banners"
 },
 "canva": {
  "slug": "freight-claims-recovery-desk",
  "territory": "Loading Dock Desk",
  "family": {
   "id": "freight-logistics-claims",
   "name": "Freight logistics / claims recovery",
   "motion": "calm"
  },
  "tokens": {
   "brand": "204 79% 20%",
   "brand-fg": "40 27% 96%",
   "surface": "40 27% 96%",
   "ink": "209 37% 12%",
   "muted": "206 14% 32%",
   "accent": "24 78% 36%"
  },
  "type": {
   "display": "Georgia",
   "body": "system-ui",
   "fonts_url": ""
  },
  "scale": {
   "h1": "clamp(1.85rem, 4.2vw, 2.9rem)",
   "h2": "clamp(1.45rem, 3vw, 2rem)",
   "h3": "clamp(1.15rem, 2vw, 1.4rem)",
   "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.4rem",
   "card_radius": "0.5rem",
   "card_shadow": "0 0 0 1px hsl(209 37% 12% / 0.09)",
   "section_gap": "clamp(2.5rem, 6vw, 4.5rem)",
   "hero_gap": "clamp(1.25rem, 2vw, 2rem)"
  },
  "layout": {
   "hero": "split-primary",
   "card": "elevated-soft",
   "cta": "solid-accent",
   "archetype": "loading-dock",
   "card_silhouette": "flat-outline",
   "button_geometry": "rounded"
  },
  "background": {
   "hero_gradient": "radial-gradient(1100px 600px at 8% -10%, hsl(204 79% 20% / 0.14), transparent 60%), radial-gradient(800px 500px at 92% 0%, hsl(24 78% 36% / 0.10), transparent 55%)",
   "cta_gradient": "linear-gradient(135deg, hsl(204 79% 20%), hsl(24 78% 36%))",
   "section_wash": "linear-gradient(180deg, hsl(40 27% 96%) 0%, hsl(204 79% 20% / 0.04) 100%)"
  },
  "motif": "Mismatched-documents-to-filed-claim-packet cover art"
 },
 "capabilities": {
  "marketing": true,
  "portal": false,
  "ops": true,
  "chatbot": false,
  "payments": false
 },
 "generated_at": "2026-07-13T09:56:00Z",
 "checksum": "sha256:generated-locally"
}