/evaluate
Evaluate a claim against every applicable jurisdiction
Runs every rule module registered for the claim category and returns each verdict, ranked, with the reasoning trace intact.
More than one regime frequently applies to the same facts — a Paris-to-New-York delay is covered by both EU261 and the Montreal Convention. The response reconciles them in groups rather than naively summing: bestTotal is what is realistically recoverable, and theoreticalMax is the arithmetic sum, shown only as an upper bound.
Request body
- EvaluateRequest
- Required.
- application/json
Responses
- Evaluation complete
- application/json·EvaluateResponse
- 200
- The request did not match the expected shape
- application/problem+json·Problem
- 422
- Too many requests
- application/problem+json·ProblemRetry-After — Seconds to wait
- 429
curl -sS 'https://duesday.sohamaggarwal.com/api/v1/evaluate' \
-H 'Content-Type: application/json' \
-d '{
"claim": {
"category": "flight-disruption",
"legs": [
{
"carrier": "LH",
"flightNumber": "400",
"origin": "FRA",
"destination": "JFK",
"scheduledDeparture": "2025-06-14T13:20:00Z",
"scheduledArrival": "2025-06-14T16:05:00Z",
"actualArrival": "2025-06-14T20:17:00Z"
}
],
"disruption": "delayed",
"arrivalDelayMinutes": 252,
"cause": "technical-fault",
"passengerCount": 1,
"incidentDate": "2025-06-14"
},
"asOf": "2025-06-20"
}'const result = await client.evaluate(
{
"category": "flight-disruption",
"legs": [
{
"carrier": "LH",
"flightNumber": "400",
"origin": "FRA",
"destination": "JFK",
"scheduledDeparture": "2025-06-14T13:20:00Z",
"scheduledArrival": "2025-06-14T16:05:00Z",
"actualArrival": "2025-06-14T20:17:00Z"
}
],
"disruption": "delayed",
"arrivalDelayMinutes": 252,
"cause": "technical-fault",
"passengerCount": 1,
"incidentDate": "2025-06-14"
} as ClaimInput,
{ asOf: '2025-06-20' },
);
for (const evaluation of result.actionable) {
console.log(evaluation.ruleId, evaluation.verdict, evaluation.award);
}