{
 "use_case": "medicare-call-record",
 "title": "Medicare sales call: benefits before the disclaimer, a dental allowance overstated, a final-expense pitch",
 "about": "A role-played sales call from a fictional agency (Prairie Lantern Benefits) for a fictional HMO, with its call sheet and the plan's Summary of Benefits. The agent pitches \"free premiums\" and a $3,000 dental allowance before the TPMO disclaimer, then a final-expense life policy. The disclaimer timing, the word free, the non-health pitch and the dental claim (the plan facts say $1,500) must be flagged, and the signed record must verify with the 1 Jun 2026 retention dates.",
 "licence": "Synthetic role-play written from 42 CFR 422/423 subpart V: Prairie Lantern Benefits, Northfield Harbor Health Plan, the plan and every person are fictional. Part of decosa-api, AGPL-3.0-or-later.",
 "inputs": [
  {
   "file": "inputs/transcript.txt",
   "what": "The call as [mm:ss] SPEAKER: text lines (or send diarizer segments)."
  },
  {
   "file": "inputs/call-sheet.json",
   "what": "When the call was placed and who asked for it, the agency's plan counts, the Scope of Appointment."
  },
  {
   "file": "inputs/plan-facts.json",
   "what": "The plan's Summary of Benefits as text: the benefit claims are checked against it."
  },
  {
   "file": "inputs/consent.json",
   "what": "How recording consent was obtained."
  }
 ],
 "steps": [
  {
   "id": "qa",
   "method": "POST",
   "path": "/medicare/check",
   "body": {
    "transcript": {
     "$file": "inputs/transcript.txt"
    },
    "call_sheet": {
     "$file": "inputs/call-sheet.json"
    },
    "plan_facts": {
     "$file": "inputs/plan-facts.json"
    },
    "consent": {
     "$file": "inputs/consent.json"
    },
    "title": "Rehearsal: PLB-2291 (fictional)"
   },
   "timeout": 300
  },
  {
   "id": "noconsent",
   "method": "POST",
   "path": "/medicare/check",
   "expect_status": 400,
   "body": {
    "transcript": {
     "$file": "inputs/transcript.txt"
    },
    "call_sheet": {
     "$file": "inputs/call-sheet.json"
    },
    "plan_facts": {
     "$file": "inputs/plan-facts.json"
    }
   }
  },
  {
   "id": "verify",
   "method": "POST",
   "path": "/record/verify",
   "auth": false,
   "body": {
    "record": {
     "$ref": "qa.record"
    }
   }
  },
  {
   "id": "tampered",
   "method": "POST",
   "path": "/record/verify",
   "auth": false,
   "body": {
    "record": {
     "$ref": "qa.record"
    }
   },
   "tamper": {
    "at": "record.statement.flags",
    "set": 0
   }
  }
 ],
 "checks": [
  {
   "says": "the TPMO disclaimer itself was said (only late)",
   "path": "qa.checklist[id=tpmo_disclaimer][0].answer",
   "equals": "yes"
  },
  {
   "says": "benefits were discussed before the TPMO disclaimer",
   "path": "qa.checklist[id=tpmo_disclaimer_timing][0].status",
   "equals": "flag"
  },
  {
   "says": "\"free premiums\" is flagged with a time",
   "path": "qa.checklist[id=free_misuse][0].status",
   "equals": "flag"
  },
  {
   "says": "the free flag points at a time in the call",
   "path": "qa.checklist[id=free_misuse][0].at",
   "exists": true
  },
  {
   "says": "the final-expense life pitch is flagged",
   "path": "qa.checklist[id=non_health][0].status",
   "equals": "flag"
  },
  {
   "says": "the $3,000 dental claim is flagged against the plan facts",
   "path": "qa.claims[claim~dental][0].status",
   "equals": "flag"
  },
  {
   "says": "a check without a consent statement is refused",
   "path": "noconsent.error",
   "contains": "consent is required"
  },
  {
   "says": "the audio is kept three years after the call",
   "path": "qa.retention.audio_until",
   "equals": "2029-11-05"
  },
  {
   "says": "audio or a complete transcript is kept six years after the call",
   "path": "qa.retain_until",
   "equals": "2032-11-05"
  },
  {
   "says": "the signed record verifies",
   "path": "verify.ok",
   "equals": true
  },
  {
   "says": "a record with its flag count changed no longer verifies",
   "path": "tampered.ok",
   "equals": false
  },
  {
   "says": "every model call has a signed receipt",
   "receipts": "signed",
   "min": 10
  }
 ]
}