{"schema_version":"1","site":"https://decosa.ai","id":"settlement-video","num":"173","name":"Settlement video from the case file","tool_name":"Make a settlement video","short":"Settlement video","blurb":"For plaintiff's personal-injury lawyers taking a case to mediation. Start from the matter's medical chronology (every entry already cited to a page and box), the itemized bills and the client's signed statement and photos. An open model drafts a 7-scene script and names the entries each line rests on; the cites are attached in code. Every line is checked against what it cites, every date, count and amount is checked against the record, and the bills are added up in code, with a statement's wrong total, duplicate charges, charges before the injury and charges with no matching record flagged. The lawyer edits, reorders and approves each scene and picks the narration: their own recording, their voice with their recorded consent, or a stock house voice. Frames are drawn from the exhibits (no video-generation model), and the MP4 ships with content credentials and a cite sheet. A drafting aid; the lawyer decides.","status":"live","labels":{"industry":["legal"],"job":["generate","draft"],"input":["files"],"deploy":["selfhost"],"status":"live","output":["media","record"],"data":["phi","privileged"],"hardware":"gpu-96","licence":"permissive"},"industries":["legal"],"runs_in":["selfhost"],"part_of":[],"built_from":["document-reader","grounding","numeric-grounding","consent-gate","content-credentials","signed-record"],"models":"Qwen3.8-27B (script and per-line grounding) · document reader (bills and statement) · Kokoro-82M house voices or Chatterbox (the attorney's consented voice), CPU · Pillow + ffmpeg renderer (no generative video model)","where":"Self-host or the confidential API for real client files; the hosted demo takes synthetic matters only","hardware":"1x RTX PRO 6000 (96 GB) for Qwen3.8-27B and the document reader (as for the medical chronology); the voices, the checks and the renderer run on CPU","final_artifact":"An MP4 settlement video with content credentials, a cite sheet PDF listing every line with its exhibit, page and box, and a signed decosa.record.v1.","self_host_first":true,"verification":{"receipt_coverage":"full","summary":"Receipt per model call; every line's cites attached in code and checked; bills tied out in code; consent-ledger decisions for the voice, the photos and the statement; C2PA on the MP4; signed hash-chained record","manual_qa":{"hosted":{"date":"2026-09-30","result":"pass","p50_ms":103504,"p95_ms":110047,"runs":5,"receipts_per_run":23,"cost_per_run_usd":0.00961},"selfhost":{"date":"2026-09-29","result":"pass","method":"fresh clone of the branch into a clean directory, run with the host's Python environment (no container build: the server's root disk was full at the time), direct route to the local Qwen3.8-27B, the running document reader, local signing, real-matters mode on","notes":"The rehearsal bundle passed 11/11 in 38.5 s (draft, tie-out flags, render, record verified and failed when changed) and the smoke module passed in 19.9 s."},"known_limits":["Hosted numbers are the whole sample task measured on production (draft + one line re-checked + render with a house voice, through the production API), run 5 times in a row on 30 Sep 2026 (all passed); with 5 runs the slowest-1-in-20 figure is simply the slowest run.","Measured on synthetic matters only; real records, bills and photos are not measured, and the lawyer's review time (10-20 minutes estimated) has not been timed with a lawyer.","When the chronology misses a visit, a real charge on that day is flagged as having no matching visit and left out of the default total until the lawyer puts it back (4 of 11 eval matters, $186-594).","A printed statement total on a degraded scan or fax is sometimes unreadable; the tool says so and the video uses the sum of the lines.","A child's photo is refused until a guardian consent path for this purpose is approved.","No causation, future-care, wage-loss or billed-versus-paid figures: only what the chronology and the itemized bills hold."],"nightly_covers":null},"nightly":"https://api.decosa.ai/verify/status"},"eval_summary":{"metrics":[{"name":"Cites on the right page, rendered lines","value":"376 / 376","unit":null,"n":376,"split":"test","note":"6 held-out synthetic matters; prompts and checks frozen before"},{"name":"Dates in rendered lines right","value":"53 / 53","unit":null,"n":53,"split":"test","note":null},{"name":"Cites on the right page, matters written blind by another agent","value":"143 / 144","unit":null,"n":144,"split":"heldout","note":"139 / 144 by the writer's answer key; on review, four of the five unmatched cites were on the right page (findings the key did not list)"},{"name":"Cites on the right page, post-fix held-out matters","value":"201 / 201","unit":null,"n":201,"split":"test","note":"3 new seeds run once after two fixes made on the first held-out run"},{"name":"Every itemized charge read and summed to the cent","value":"11 / 11","unit":"matters","n":11,"split":"test","note":"the default total also leaves out charges with no matching visit; it equals the key in 7 / 11 because the chronology missed 1-3 visits in four matters"},{"name":"Planted bill problems flagged","value":"43 / 44","unit":null,"n":44,"split":"test","note":"before the injury 11/11, duplicate 11/11, no matching visit 11/11 (7 false flags), statement total off 10/11 (one total on a scan was unreadable and said so)"},{"name":"Rendered lines a blind judge found supported by their cites","value":"77 / 80","unit":null,"n":80,"split":"test","note":"3 partly, 0 not supported, 0 misleading; Claude Code Opus 5.5, blind, saw at most six cites per line"},{"name":"Lines held back for the lawyer","value":"13 / 135","unit":null,"n":135,"split":"test","note":"4 right to hold, 3 dates outside what the line cites, 6 over-strict (3 from a pronoun issue since fixed; 0 over-strict in the post-fix split)"}],"dataset":"6 held-out and 3 post-fix synthetic matters from the chronology generator (records, itemized bills with planted problems, a signed client statement), plus 2 matters written blind by another agent (38 pages); each run end to end: chronology, the client's recorded consent, then the draft.","held_out":true,"caveats":["Synthetic matters only; the generated ones share an author and a template family with the tool.","The blind matters were written by another agent but rendered with the same page renderer.","Answer keys are page-level; box placement comes from the chronology, whose own eval measured it.","The lawyer's review time is an estimate, not timed with a lawyer.","Two fixes were made after the first held-out run (the judge's statement wording, re-reads of unsure bill regions); the post-fix split and the blind split were run once after them."],"date":"2026-09-29","doc_url":"https://decosa.ai/metrics/evals/settlement-video"},"stack":{"summary":"For plaintiff's personal-injury lawyers taking a case to mediation. It starts from the matter's medical chronology, itemized bills, the client's signed statement and photos, drafts a 7-scene script where every line carries its exhibit, page and box, checks each line against what it cites, adds up the bills in code, and renders an MP4 drawn from the exhibits after the lawyer edits and approves every scene. No video-generation model is used.","tagline":"A narrated settlement video from the chronology, the bills and the client's own words, every fact cited to its exhibit page and the bills tied out in code.","deployment":"self-host-first","regulatory_note":"Written 29 Sep 2026. Settlement communications are generally inadmissible to prove or disprove a disputed claim's validity or amount under Federal Rule of Evidence 408 (https://www.law.cornell.edu/rules/fre/rule_408, read 29 Sep 2026); states have their own versions, and whether and how to label a video is the lawyer's call. Medical records are protected health information in a covered entity's hands (45 CFR Parts 160 and 164, https://www.hhs.gov/hipaa/for-professionals/privacy/index.html); a firm holds them under its own duties of confidentiality, so real matters run self-hosted or on the confidential API, never the hosted demo. The client's photos and statement are shown only with the client's recorded consent (consent ledger), and any generated narration voice is disclosed in the video and its content credential. It is a drafting aid, not legal advice, and it never writes a demand amount.","components":[{"id":"settlement","role":"The script checks (refs, cites attached in code, numbers, spinal levels and doses), the bills tie-out, the scene plan, the frames and the cite sheet (no model; CPU)","name":"decosa-api settlement video (decosa_api/verticals/settlement), importing the grounding, numeric-grounding, consent-ledger, provenance and record blocks","hf_repo":null,"license":"AGPL-3.0-or-later","params":null,"quant":null,"vram_gb":0,"memory_gb_estimate":null,"engine":"Python 3.12; Pillow draws every frame (1280x720, 30 fps) from the plan, ffmpeg (libx264, AAC) encodes; scenes render in parallel processes","receipt_coverage":"partial","in_hosted_demo":null,"tiers":["lite","standard"],"alternative_to":null},{"id":"model","role":"The 7-scene script (one call: which chronology entries and statement paragraphs each line rests on) and one grounding verdict per line against the cited record text; re-reads of bill and statement regions the parser was unsure of","name":"Qwen3.8-27B (NVFP4)","hf_repo":"nvidia/Qwen3.8-27B-NVFP4","license":"Apache-2.0","params":"27.8B","quant":"NVFP4 (MLP NVFP4, GDN/attention FP8) + FP8 KV cache; MTP head, 3 draft tokens","vram_gb":20,"memory_gb_estimate":null,"engine":"vLLM 0.29.0, temperature 0, thinking off, JSON answers, image input for scanned pages","receipt_coverage":"strong","in_hosted_demo":true,"tiers":["lite","standard"],"alternative_to":null},{"id":"layout","role":"Finds the regions of each bill and statement page (tables, text) with their boxes","name":"Docling 2.130 with the Heron layout model (document reader block)","hf_repo":"docling-project/docling-layout-heron","license":"MIT (Docling) + Apache-2.0 (weights)","params":null,"quant":"FP32","vram_gb":1,"memory_gb_estimate":null,"engine":"docling-ibm-models on CUDA in the docreader service (services/docreader), our server's GPU0","receipt_coverage":"partial","in_hosted_demo":true,"tiers":["lite","standard"],"alternative_to":null},{"id":"parser","role":"Reads the bill tables as cells and the statement's paragraphs","name":"PaddleOCR-VL-1.6 (0.9B, document reader block)","hf_repo":"PaddlePaddle/PaddleOCR-VL-1.6","license":"Apache-2.0","params":"0.9B","quant":"BF16","vram_gb":4.4,"memory_gb_estimate":null,"engine":"vLLM 0.29.0 behind the docreader service (production on our server's GPU0 since 27 Sep; 4.4 GB peak measured)","receipt_coverage":"partial","in_hosted_demo":true,"tiers":["lite","standard"],"alternative_to":null},{"id":"house-voice","role":"The stock house voice that reads the approved script, when the lawyer picks it","name":"Kokoro-82M (stock voicepacks am_michael, af_heart)","hf_repo":"hexgrad/Kokoro-82M","license":"Apache-2.0","params":"82M","quant":"FP32","vram_gb":0,"memory_gb_estimate":null,"engine":"kokoro 0.9.4 on CPU in its own venv (services/studio_core/kokoro_pages.py)","receipt_coverage":"partial","in_hosted_demo":true,"tiers":["standard"],"alternative_to":null},{"id":"consented-voice","role":"The attorney's own voice, generated from the attorney's consent recording, only with an active consent-ledger entry for this matter","name":"Chatterbox Multilingual","hf_repo":"ResembleAI/chatterbox","license":"MIT","params":null,"quant":"FP32","vram_gb":0,"memory_gb_estimate":null,"engine":"chatterbox-tts 0.1.4 on CPU (DECOSA_SETTLE_TTS_DEVICE=cpu); Perth implicit watermark on","receipt_coverage":"partial","in_hosted_demo":true,"tiers":["standard"],"alternative_to":null}],"tiers":[{"id":"lite","label":"Lite · captions or your own recording, no voice models","summary":"The same script, checks, tie-out, renderer, cite sheet and record, narrated by the attorney's own recording or captions only; no Kokoro or Chatterbox runtime to install.","components":["settlement","model","layout","parser"],"hardware":"1x GPU with about 26 GB free for Qwen3.8-27B and the reader, plus 8+ CPU cores for the frames","quality_evidence":[{"metric":"Script, checks and tie-out","value":"same as standard (the voice does not change them)","source":"decosa-api docs/evals/settlement-video.md"},{"metric":"Render time, captions only","value":"not measured separately; frames and encoding took 41-43 s of the 60-68 s renders","source":"decosa-api docs/evals/settlement-video.md, render table"}],"latency_note":"measured: frames and encode in under a minute for a short video on many CPU cores; narration with a house voice adds a little more","in_hosted_demo":false,"receipt_coverage":"strong","receipt_note":"Every model call is receipted; the record and the C2PA credential are signed by the instance.","hosting":null},{"id":"standard","label":"Standard · reader, model, house voices and the consented clone (hosted demo)","summary":"What the hosted demo runs on synthetic matters: the document reader for the bills and statement, Qwen3.8-27B for the script and the per-line checks, Kokoro-82M house voices and Chatterbox for the attorney's consented voice on CPU, and the renderer.","components":["settlement","model","layout","parser","house-voice","consented-voice"],"hardware":"1x RTX PRO 6000 96 GB (measured on shared cards) and 32 CPU cores","quality_evidence":[{"metric":"Cites on the right page, lines that render (6 held-out synthetic matters)","value":"376 / 376","source":"decosa-api docs/evals/settlement-video.md, held-out seeds, 29 Sep 2026"},{"metric":"Cites on the right page, 2 matters written blind by another agent","value":"143 / 144 on review (139 / 144 by the writer's key)","source":"decosa-api docs/evals/settlement-video.md, blind split"},{"metric":"Dates in rendered lines that match the answer key (all splits)","value":"100 / 100","source":"decosa-api docs/evals/settlement-video.md: 53 held out, 17 blind, 30 post-fix"},{"metric":"Every itemized charge read and summed to the cent","value":"11 / 11 matters","source":"decosa-api docs/evals/settlement-video.md: the default total also leaves out charges with no matching visit, which equals the key in 7 / 11 (the chronology missed 1-3 visits in the others)"},{"metric":"Planted bill problems flagged (before the injury, duplicate, no matching visit, statement total off)","value":"11/11, 11/11, 11/11, 10/11","source":"decosa-api docs/evals/settlement-video.md, all splits"},{"metric":"Rendered lines a blind judge found supported by their cited text","value":"77 / 80 (3 partly, 0 not supported)","source":"decosa-api docs/evals/settlement-video.md, Claude Code Opus 5.5 blind, held-out sample"}],"latency_note":"measured on the pre-release server, gateway route: the draft in under a minute, the render in about a minute for a short video with a house voice","in_hosted_demo":true,"receipt_coverage":"strong","receipt_note":"Every model call goes through our gateway with its own signed receipt; the record carries the receipt ids.","hosting":null}],"alternates":[],"services":[{"name":"decosa-api","port":8445,"image":"${DECOSA_REGISTRY}/decosa-api:<tag> plus the Kokoro layer (docker/drama/Dockerfile)","purpose":"GET /settlement/info, /settlement/samples; POST /settlement/draft (SSE or JSON), /settlement/check, /settlement/bills, /settlement/render; GET /settlement/jobs/{id} and its files; POST /settlement/consent (self-host). Deletes drafts and videos after two hours."},{"name":"decosa-docreader (+ PaddleOCR-VL on vLLM)","port":8497,"image":"built from services/docreader; parser on vllm/vllm-openai@sha256:c2914767605584b6d8f45686b82de173ecc99e781897aa3d0a66dacd72c51ae1","purpose":"Bill and statement pages in, regions with boxes out."},{"name":"vLLM (Qwen3.8-27B)","port":8000,"image":"${DECOSA_REGISTRY}/decosa-llm:0.1.0","purpose":"The script and the per-line grounding verdicts."}],"tools":[{"name":"Federal Rule of Evidence 408","url":"https://www.law.cornell.edu/rules/fre/rule_408","license":"US government work","purpose":"Settlement communications, cited in the regulatory note (read 29 Sep 2026)."},{"name":"Stand-in photos (Wikimedia Commons)","url":"https://commons.wikimedia.org/","license":"Public domain and CC0 (per file)","purpose":"The sample matter's photos: a trail, a garden, a guitar and a pill organizer, with no person in any of them (licences in data/photos/licences.json)."},{"name":"Lato","url":"https://www.latofonts.com/","license":"SIL Open Font License 1.1","purpose":"The video's typeface (the fonts-lato package in the api image; DejaVu otherwise)."}],"hardware":[{"tier":"1x RTX PRO 6000 Blackwell 96 GB","fits":true,"notes":"Measured on our server: the model through the shared gateway on one card, the document reader on another shared card; the voices, checks and frames on CPU (32 cores)."},{"tier":"1x 48 GB card","fits":true,"notes":"Estimate: Qwen3.8-27B NVFP4 (about 20 GB with a small KV cache) plus about 6 GB for the reader. Not measured."},{"tier":"CPU only","fits":false,"notes":"The model and the page parser need a GPU. The renderer, voices and checks run on CPU: about a minute of drawing and encoding for a 3-minute video on our server."}],"latency":[{"lane":"draft (script and per-line checks), held-out matters, gateway","typical_ms":23650,"source":"measured on our server 2026-09-29 (pre-release server): 16.6-31.0 s over 6 held-out synthetic matters, 15-18 model calls each"},{"lane":"render with a house voice, the Whitlock sample","typical_ms":64700,"source":"measured on our server 2026-09-29: 61.3 s and 68.1 s for 3:20 and 3:17 videos (narration about 17 s on CPU, frames and encoding about 42 s on 32 cores)"}],"benchmark":null,"notes":["On six held-out synthetic matters every cite of every line that would render pointed at a page where the answer key has that fact (376 of 376), every stated date matched (53 of 53), and every itemized charge was read and summed to the cent.","On two matters written blind by another agent, 143 of 144 cites were on the right page on review; a blind judge found 77 of 80 sampled lines supported by their cited text and none unsupported.","Planted bill problems were flagged 43 of 44 times; the flag for charges with no matching visit also fires when the chronology missed a visit (7 false flags), and those charges are left out of the default total until the lawyer puts them back.","A blind plaintiff's-attorney persona would use it on mid-value cases after changes (most now made); a blind adjuster persona said it does not move the number but makes the specials easy to trust and verify."]},"buyer_facts":[{"label":"Data retention","value":"Drafts, page images, photos and videos are kept for two hours on the server that made them, then deleted (Delete now removes a render at once). The signed record holds hashes and receipt ids, never record text, names or photos; logs carry counts, timings and ids only. The hosted demo takes synthetic matters only."},{"label":"What leaves the box","value":"Self-hosted on the direct route: nothing. The model, the document reader, the voices and the renderer run on the same machine. Hosted: record text and page images go through the Decosa API, and only synthetic matters are accepted."},{"label":"What every line on screen carries","value":"The exhibit, page and box it rests on, attached in code, and a check against the cited text; bill amounts are sums in code. Lines that fail are held back until the lawyer fixes or removes them; only the closing scenes may carry the lawyer's own words, labelled as such."},{"label":"What it will not do","value":"Generate a person, a face, a reenactment or 'what the crash looked like'; edit or generate from the client's photos; show a child's photo (refused for now); write a demand amount; render before every scene is approved."}],"data_handling":{"page":"/data#settlement-video","self_host":{"level":"confidential","leaves":"nothing","summary":"Runs on your machine; nothing is sent to Decosa or a third party by default."},"hosted":{"level":"operator-processed","demo_only":true,"summary":"Hosted demo on sample or public data only; self-host for real data.","gpus":"operator-contracted","third_parties":[],"retention":"Drafts, page images, photos and videos are kept for two hours on the server that made them, then deleted (Delete now removes a render at once). The signed record holds hashes and receipt ids, never record text, names or photos; logs carry counts, timings and ids only. The hosted demo takes synthetic matters only.","used_for_training":false,"encrypted_while_processed":false},"sealed_tier":{"applies":false,"note":"The sealed tier (raw chat only, never use-case pipelines) is paused at launch (/docs/sealed-tier)."},"external_calls":[]},"console":{"href":"/legal/settlement-video","input":"settlement","lanes":[{"id":"script","title":"The script, scene by scene, every line cited and checked","kind":"list"},{"id":"bills","title":"The bills tie-out","kind":"list"},{"id":"raise","title":"What the other side will raise","kind":"list"},{"id":"video","title":"The video, the cite sheet and the signed record","kind":"list"}],"samples":[{"n":1,"id":"whitlock","title":"Whitlock v. Harmon (fictional): rear-end collision, 5 providers, bills and a signed statement","deep_link":"/legal/settlement-video?sample=1&autorun=0"}],"deep_link_params":{"sample":"1-based index into samples, or a sample id","autorun":"1 = start the run once the sample is loaded; 0 (default) = only preselect","reduce-motion":"1 = turn off animations"}},"api":{"base":"https://api.decosa.ai","contract":"/api/contract.json","contract_markdown":"/api/contract.md","reference":"/docs/api","keys":"/account/keys"},"prompts":{"hosted":"/prompts/settlement-video-hosted.md","selfhost":"/prompts/settlement-video-selfhost.md","assemble":"/prompts/settlement-video-assemble.md","mac":null},"rehearsal":{"bundle":"/samples/settlement-video.zip","bundle_url":"https://decosa.ai/samples/settlement-video.zip","folder":"/samples/settlement-video/","expected":"/samples/settlement-video/expected.json","files":["/samples/settlement-video/expected.json"],"bytes":1951,"checks":["the bills tie to $24,331.00 in code","the statement whose printed total is off its own lines is flagged","the duplicate therapy charge is flagged and counted once","the 2022 charge before the injury is left out","the therapy charge with no matching record is flagged","most lines pass the checks and carry cites","the other side's points are listed for the lawyer (the 138-day gap among them)","the render finishes","the cite sheet lists the cited lines","the signed record verifies","a changed record fails"],"licence":"Synthetic: the client, providers, dates, bills and statement are invented (decosa_api/verticals/chronology/synth.py, decosa_api/verticals/settlement/synth.py). Stand-in photos: public domain or CC0, no person shown (decosa_api/verticals/settlement/data/photos/licences.json). Part of decosa-api, AGPL-3.0-or-later.","about":"Dana Whitlock is fictional (the medical chronology's sample packet). The matter adds itemized bills from five providers and her signed statement, plus stand-in photos with no person in them. The run drafts the 7-scene script from the chronology (every line cited and checked), ties the bills out in code, then renders the approved lines with captions only (no narration) and signs a record. Planted in the bills: one statement's printed total is $18 off its own lines, one therapy charge is billed twice, a 2022 visit comes before the injury, and one therapy charge falls in the break in care with no record. It takes about a minute: one script call, one check per line, and about 3 minutes of frames drawn on CPU. The sample matter ships with the API (GET /settlement/samples/whitlock): the chronology report, Exhibits 1-7 and the stand-in photos, so the bundle needs no input files.","run":{"containers":"docker compose exec api python scripts/rehearse.py settlement-video","checkout":"python scripts/rehearse.py settlement-video --bundle settlement-video.zip --base-url http://127.0.0.1:8445","mac":".venv/bin/python scripts/rehearse.py settlement-video"},"guidance":"Set up with a coding agent (we recommend Claude Code with Claude Opus 5.5; any capable coding agent works) on mock data only, run the rehearsal until every check passes, then run your own data locally yourself. Never give the agent real data during setup."},"hardware_fit":{"check":"/self-host/hardware?use=settlement-video","data":"/api/hardware.json","tiers":[{"id":"lite","gpu_gb":63,"basis":"stack","unknown":[]},{"id":"standard","gpu_gb":63,"basis":"stack","unknown":[]}],"mac":null},"links":{"page":"/legal/settlement-video","json":"/use-cases/settlement-video.json","metrics":"/metrics/settlement-video","console":"/legal/settlement-video","console_sample":"/legal/settlement-video?sample=1&autorun=0","stack":"/legal/settlement-video#stack","try_live":"/legal/settlement-video","watch":"/legal/settlement-video","build":"/legal/settlement-video#build","self_host":"/legal/settlement-video#self-host","prompts":{"hosted":"/prompts/settlement-video-hosted.md","selfhost":"/prompts/settlement-video-selfhost.md","assemble":"/prompts/settlement-video-assemble.md","mac":null}}}