/checkPre-Screen an Insurance Claim
Triage an inbound claim against your policy book in seconds — classify the claim, assess coverage, flag risks, and identify missing evidence before it reaches a handler.
Who is this for
Claims teams and TPAs who want to auto-triage inbound claims before manual review. Your policy book is configured once via the dashboard — the engine matches the right policies automatically on every subsequent check.
What you'll do
- 1Post the claim description — the engine classifies it and matches your pre-configured policies automatically
- 2Read the initial triage: claim type, coverage assessment, risk flags, and evidence gaps
- 3Submit the missing evidence documents — get a final assessment with full coverage detail
Step 1 — Initial triage
Submit the claim description. The engine classifies the claim type, matches it against your policy book, and returns a triage with evidence requirements — all from a single call.
from curvestone import Agentagent = Agent() # reads CURVESTONE_API_KEY from envresult = agent.check(case_type="insurance_claim",depth="pre_screen",documents=[open("claim_description.txt", "rb"),],reference="CLM-2026-00419",)print(f"Triage: {result.triage}") # green | amber | redprint(f"Type: {result.classification}") # e.g. "Professional Indemnity — Cyber"print(f"Coverage: {result.findings['coverage']}")print(f"Missing: {len(result.evidence_gaps)}")
Initial triage response
The engine classifies the claim, matches policies, assesses coverage, and tells you exactly what evidence is still needed.
1{2 "id": "job_9vTx4mNpR3",3 "type": "check",4 "status": "completed",5 "triage": "amber",6 "reference": "CLM-2026-00419",7 "processing_time": "12s",8 "classification": "Professional Indemnity — Cyber Liability",9 "checks": [10 {11 "name": "Claim Classification",12 "triage": "green",13 "detail": "Cyber incident — data breach resulting from ransomware attack"14 },15 {16 "name": "Policy Match",17 "triage": "green",18 "detail": "Matched: Professional Indemnity Policy (PI-2024-0892), Section 4.2 — Cyber Incident Endorsement"19 },20 {21 "name": "Coverage Assessment",22 "triage": "amber",23 "detail": "Likely covered under cyber endorsement. Sub-limit of £500,000 applies. Estimated loss (£250,000) within sub-limit but excess of £25,000 applicable."24 },25 {26 "name": "Evidence Requirements",27 "triage": "red",28 "detail": "3 of 6 required evidence items not yet provided"29 }30 ],31 "evidence_gaps": [32 { "item": "Incident report from IT security team", "status": "missing" },33 { "item": "Financial impact assessment", "status": "missing" },34 { "item": "Timeline of events", "status": "missing" },35 { "item": "Claim notification form", "status": "provided" },36 { "item": "Policy schedule", "status": "auto_matched" },37 { "item": "Incident description", "status": "provided" }38 ],39 "flags": [40 { "severity": "high", "message": "Late notification — incident occurred 18 days before report" },41 { "severity": "medium", "message": "Estimated loss (£250,000) exceeds 50% of sub-limit" }42 ],43 "findings": {44 "coverage": "partially_covered",45 "policy_section": "Section 4.2 — Cyber Incident Endorsement",46 "sub_limit": 500000,47 "estimated_loss": 250000,48 "excess_applicable": 25000,49 "notification_deadline": "2026-01-29T00:00:00Z"50 },51 "cost": "£1.60"52}
Step 2 — Submit evidence
Once the handler has gathered the missing documents, submit them referencing the original job. The engine re-evaluates coverage with the full evidence set.
from curvestone import Agentagent = Agent()result = agent.check(case_type="insurance_claim",depth="full_check",job_id="job_9vTx4mNpR3", # references the initial triagedocuments=[open("it_security_report.pdf", "rb"),open("financial_impact.xlsx", "rb"),open("incident_timeline.pdf", "rb"),],reference="CLM-2026-00419",)print(f"Triage: {result.triage}")print(f"Coverage: {result.findings['coverage']}")print(f"Gaps: {len(result.evidence_gaps)}") # 0 — all provided
Final assessment
With all evidence provided, the engine delivers a complete coverage assessment ready for the claims handler.
1{2 "id": "job_2wRy8kLpS5",3 "type": "check",4 "status": "completed",5 "triage": "amber",6 "reference": "CLM-2026-00419",7 "processing_time": "38s",8 "classification": "Professional Indemnity — Cyber Liability",9 "checks": [10 {11 "name": "Claim Classification",12 "triage": "green",13 "detail": "Cyber incident — data breach resulting from ransomware attack"14 },15 {16 "name": "Policy Match",17 "triage": "green",18 "detail": "Matched: PI-2024-0892, Section 4.2 — Cyber Incident Endorsement"19 },20 {21 "name": "Coverage Assessment",22 "triage": "green",23 "detail": "Covered under cyber endorsement. Financial impact assessment confirms loss of £243,800 within £500,000 sub-limit."24 },25 {26 "name": "Evidence Requirements",27 "triage": "green",28 "detail": "All 6 required evidence items provided"29 },30 {31 "name": "Liability Indicators",32 "triage": "green",33 "detail": "No exclusion clauses triggered. Policyholder followed reasonable security protocols per IT report."34 },35 {36 "name": "Financial Summary",37 "triage": "green",38 "detail": "Net claim value £218,800 after £25,000 excess"39 }40 ],41 "evidence_gaps": [],42 "flags": [43 { "severity": "high", "message": "Late notification — incident occurred 18 days before report. Insurer discretion may apply." }44 ],45 "findings": {46 "coverage": "covered",47 "policy_section": "Section 4.2 — Cyber Incident Endorsement",48 "sub_limit": 500000,49 "confirmed_loss": 243800,50 "excess_applicable": 25000,51 "net_claim_value": 218800,52 "notification_deadline": "2026-01-29T00:00:00Z",53 "reserving_recommendation": 24380054 },55 "cost": "£3.20"56}
What happens
Automatic policy matching
Your policy book is configured once via the dashboard. When a claim arrives, the engine classifies the incident type and automatically matches it against the relevant policies, endorsements, and sub-limits — no need to specify which policy applies per request.
Two-phase workflow
The first call with pre_screen depth gives you an instant triage and tells the handler exactly what evidence to collect. The second call with full_check and the original job_id re-evaluates with the complete evidence set and returns a final coverage assessment.
Evidence gap detection
The evidence_gaps array lists every document the engine expects for this claim type, with a status of provided, auto_matched (from your policy book), or missing. This lets the handler chase documents immediately rather than discovering gaps mid-review.
Risk flags
High and medium severity flags surface issues like late notification, high-value claims relative to sub-limits, or potential exclusion triggers. These are designed for immediate handler attention before the claim progresses further.