Back to prompt library
Build a Storm Surge Loss Ledger Reconciler and Claimant Drafter — implementation
Linked challenge: Build a Storm Surge Loss Ledger Reconciler and Claimant Drafter
Prompt source
implementation91 lines11 sectionsNo variables1 code block
## Build
Reconcile commercial property damage claim ledgers against historical OpenFEMA disaster declarations. Formulate clear itemized claimant communication drafts explaining eligible flood assistance categories.
## User
Property Loss Reconciler
## Workflow
1. Import claimant loss itemizations listing asserted storm dates, damaged assets, and contractor quotes.
2. Fetch OpenFEMA DisasterDeclarationsSummaries via the REST API to confirm declared incident periods and county coverage.
3. Reconcile asserted claim dates against certified disaster declaration start and end date envelopes.
4. Draft structured claimant status letters detailing verified loss items and required supporting receipts.
## Interface
Web interface providing side-by-side comparison of claimed loss entries against FEMA disaster incident records with editable response text.
## Data
Query https://www.fema.gov/api/open/v2/DisasterDeclarationsSummaries with filtering parameters or replay normalized JSON responses.
Starter examples below are synthetic. They are not downloaded records.
## Source
[FEMA OpenFEMA](https://www.fema.gov/about/openfema/api)
Uses OpenFEMA v2 DisasterDeclarationsSummaries endpoint parameters ($filter, declarationDate, incidentBeginDate, incidentEndDate).
## Tools
anthropic-claude, requests, pandas.
Hosted Claude provides nuanced, empathetic, and regulatory-compliant prose drafting for sensitive policyholder communications.
Hosted Claude API (e.g. Sonnet 3.5) with JSON output enforcement.
## Deliverables
Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.
## Acceptance
- Verifies claim date falls within OpenFEMA incident start and end bounds for the specified county.
- Separates unreconciled dates or unlisted damage categories into an itemized information request list.
- Generates formal claimant correspondence without binding coverage determinations or payout commitments.
## Starter Examples
```json
[
{
"input": {
"claim_id": "CLM-SURGE-8841",
"county": "Galveston",
"state": "TX",
"loss_date": "2024-07-08",
"claimed_items": [
{
"item": "first_floor_drywall",
"amount_usd": 12500
},
{
"item": "dock_cleats",
"amount_usd": 3200
}
],
"fema_declaration": {
"disasterNumber": 4798,
"incidentBeginDate": "2024-07-05T00:00:00.000Z",
"incidentEndDate": "2024-07-10T23:59:59.000Z"
}
},
"expected_output": {
"claim_id": "CLM-SURGE-8841",
"incident_verified": true,
"disaster_number": 4798,
"reconciled_amount_usd": 15700,
"claimant_letter_draft": "Your loss on 2024-07-08 aligns with FEMA Disaster 4798. Please provide signed subcontractor itemized invoices for final ledger audit."
}
},
{
"input": {
"claim_id": "CLM-SURGE-8842",
"county": "Galveston",
"state": "TX",
"loss_date": "2024-08-15",
"claimed_items": [
{
"item": "submersible_pump",
"amount_usd": 4500
}
],
"fema_declaration": {
"disasterNumber": 4798,
"incidentBeginDate": "2024-07-05T00:00:00.000Z",
"incidentEndDate": "2024-07-10T23:59:59.000Z"
}
},
"expected_output": {
"claim_id": "CLM-SURGE-8842",
"incident_verified": false,
"disaster_number": 4798,
"reconciled_amount_usd": 0,
"claimant_letter_draft": "The reported loss date (2024-08-15) falls outside designated disaster window (2024-07-05 to 2024-07-10). Secondary documentation required."
}
}
]
```
## Safety
Drafts communications only. Does not approve claims, disburse insurance payments, or make final policyholder determinations.
Use mock external writes. Require human review before any real deployment.