{"schema_version":"1","site":"https://decosa.ai","id":"prior-auth-check","num":"102","name":"Prior-auth pre-check and packet","tool_name":"Check a prior auth before you send it","short":"Prior-auth pre-check","blurb":"For prior-authorization coordinators and medical assistants, before a request goes out. Give it the payer's own published medical policy (pasted, or the PDF) and the chart. It finds the criteria section for the service, then marks each criterion met with a chart quote, missing with the record to get, or not met with the line that contradicts it, and says plainly: ready to send, get these records first, or not supported on this chart. It answers the payer's form questions with chart quotes for you to copy into the portal yourself, writes a one-page peer-to-peer brief, and drafts a letter of medical necessity only when every criterion is met, each sentence checked against the chart and the policy. Licensed criteria (InterQual, MCG) are never reproduced: a policy that points to them gets a plain \"can't check\". It never suggests codes or changes to a note, and never touches a payer portal.","status":"preview","labels":{"industry":["healthcare"],"job":["review","draft"],"input":["text","files"],"deploy":["selfhost"],"status":"preview","output":["text","record"],"data":["phi"],"hardware":"gpu-96","licence":"permissive"},"industries":["healthcare"],"runs_in":["selfhost"],"part_of":[],"built_from":["grounding","typed-judgment","signed-record","formfill"],"models":"Qwen3.8-27B","where":"Self-host for real patients (hosted demo: synthetic charts only; confidential access can't take patient data yet)","hardware":"1x RTX PRO 6000 (96 GB) for Qwen3.8-27B; the policy reader, the decision clock and the signed record need no GPU","final_artifact":"Send, get records first, or not supported; each criterion with its quote; form values to copy; a peer-to-peer brief; a letter of medical necessity when the chart supports it; a Markdown packet and a signed record.","self_host_first":true,"verification":{"receipt_coverage":"full","summary":"Receipt per model call; every criterion quote found word for word in the policy, every met or not-met answer quoted from the chart, not-met answers re-checked; every letter sentence grounded; signed hash-chained record","manual_qa":{"hosted":{"date":"2026-09-28","result":"partial","p50_ms":41300,"p95_ms":105500,"runs":16,"receipts_per_run":null,"cost_per_run_usd":0.0136},"selfhost":{"date":"2026-09-28","result":"pass","method":"fresh clone of decosa-api into a clean directory on our server, api image built from docker/api/Dockerfile, run with a named data volume, direct route to the local Qwen3.8-27B, local signing; torn down after","notes":"The rehearsal bundle passed 8/8 (CPAP ready with a letter citing the AHI 26.5, CPAP not supported with no letter, the not-met criterion quoting 3.6, the record verifies and fails once changed, every receipt attested) in 28.2 s; the lumbar MRI sample came back ready in 17.5 s and the InterQual sample can't-check in 2.9 s, all receipts attested. Model-server startup was not re-run."},"known_limits":["Time and cost from the latest held-out run (4 checks at a time on the shared gateway); replaced by production measurements after launch.","Accuracy is below the target set for this tool (95% of requirements right): a person checks every criterion before sending.","Synthetic charts written against real policy excerpts; not measured on real charts or with coordinators' labels.","Licensed criteria (InterQual, MCG) are out of scope; a policy that points to them gets can't check."],"nightly_covers":null},"nightly":"https://api.decosa.ai/verify/status"},"eval_summary":{"metrics":[{"name":"Decision right, latest fresh set","value":"14 of 16","unit":null,"n":16,"split":"test","note":"4 real policies never used while building; run once after the cold-user fixes"},{"name":"Requests that should have waited, called ready","value":"1 of 11","unit":null,"n":11,"split":"test","note":"latest set; earlier sets 4 of 21 and 10 of 31"},{"name":"Decision right, earlier fresh set","value":"24 of 35","unit":null,"n":35,"split":"test","note":"7 real policies; run once after the guards"},{"name":"Decision right, first held-out set","value":"45 of 60","unit":null,"n":60,"split":"test","note":"12 real policies; run once before the guards"},{"name":"Undocumented read as not met","value":"0 of 111","unit":null,"n":111,"split":"test","note":"all three sets; the appeal engine's main error was 6 of 80"},{"name":"Letter sentences rated unsupported","value":"8 of 512","unit":null,"n":512,"split":"test","note":"blind reviewer, all three sets; 0 of 46 on the latest"}],"dataset":"Synthetic charts written blind against 23 real published payer policies and sections (Aetna, Cigna, UnitedHealthcare, CMS LCDs); charts CC0, policies quoted with their sources","held_out":true,"caveats":["Synthetic charts; real charts are longer and messier.","Each set was run once; fixes were made after each and measured on the next, fresh set. The latest set is small (16).","Requirement status right 91% to 94%, below the 95% target; 10% to 19% of requirements not found."],"date":"2026-09-28","doc_url":"https://decosa.ai/metrics/evals/prior-auth-check"},"stack":{"summary":"For prior-authorization coordinators, medical assistants and the physicians who take the peer-to-peer call. Give it the payer's published medical policy (pasted, or the PDF) and the chart. It finds the criteria section for the requested service, removes code tables, and splits the criteria into requirements, alternatives and exclusions. Each is checked against the chart: met with a chart quote the code finds word for word, missing with the record to get, or not met with the line that contradicts it. Every not-met answer is re-checked, a met answer resting only on a letter of medical necessity doesn't count, and a criterion with a threshold needs the value in its quote. The call is a rule: every requirement met means ready to send; one the chart contradicts means not supported on this chart; one it doesn't show means get that record first. It answers the payer's form questions with chart quotes, to copy into the payer's form or portal yourself, writes a one-page peer-to-peer brief from the verified quotes, and drafts a letter of medical necessity only when every criterion is met, each sentence checked against the chart and the policy. Licensed criteria (InterQual, MCG) are never reproduced: a policy that points to them gets a plain \"can't check\". It never suggests codes or changes to a note and never touches a payer portal. A person checks it, the clinician signs, the practice sends it.","tagline":"The payer's own policy and the chart in, before you send: each criterion met, missing or not met with quotes, and a plain call on whether to send.","deployment":"self-host-first","regulatory_note":"Charts are protected health information under HIPAA: run it on the practice's own hardware (confidential access can't take patient data until a business associate agreement is in place); the hosted demo takes synthetic charts only. Decision clocks read on 28 Sep 2026 (Cornell LII, eCFR text): employer group plans must decide a pre-service claim within 15 days of receiving it, extendable once by 15 days (29 CFR 2560.503-1(f)(2)(iii)(A)), and an urgent one within 72 hours ((f)(2)(i)); ACA individual coverage follows the same rules (45 CFR 147.136(b)(3)(i)); Medicare Advantage: 7 calendar days for a standard request for an item or service subject to its prior-authorization rules from 1 Jan 2026 (42 CFR 422.568(b)(1)(ii)) and 72 hours expedited (422.572(a)); Medicaid managed care: the state's time frame, no more than 7 calendar days for rating periods from 1 Jan 2026 (42 CFR 438.210(d)(1)(i)(B)) and 72 hours expedited ((d)(2)(i)). These are federal maximums; state law, plan documents and provider contracts can be shorter. Payer medical policies are quoted from the payer's published text with its source; licensed criteria sets (InterQual, MCG) are not included and never reproduced. CPT is an AMA code set: the tool takes codes as you enter them, removes descriptor rows from policy text and never suggests codes. Payer portals' terms of use generally forbid automation, so it never logs in to, fills or submits a portal. Not medical, coding or legal advice, and it never predicts the payer's decision.","components":[{"id":"llm","role":"Picks the criteria section of a long policy, splits the policy into requirements, alternatives and exclusions, checks each against the chart, re-checks every not-met answer (and every exclusion answered met), answers the payer's form questions, drafts the letter of medical necessity when the chart supports every criterion, and judges every letter sentence (the grounding judge)","name":"Qwen3.8-27B (NVIDIA NVFP4)","hf_repo":"nvidia/Qwen3.8-27B-NVFP4","license":"Apache-2.0","params":"27.8B","quant":"NVFP4 (MLP) + FP8 (attention/GDN), FP8 KV cache, MTP speculative decoding k=3","vram_gb":57,"memory_gb_estimate":null,"engine":"vLLM 0.29.0","receipt_coverage":"strong","in_hosted_demo":true,"tiers":["standard"],"alternative_to":null},{"id":"llm-lite","role":"Lite tier: the same pipeline on a 48 GB card","name":"Gemma 4 26B A4B (instruction-tuned)","hf_repo":"google/gemma-4-26B-A4B-it","license":"Apache-2.0 (model card also links the Gemma 4 licence page)","params":"25.2B","quant":"BF16 weights; FP8 at load time (vLLM --quantization fp8) to fit a 48 GB card","vram_gb":null,"memory_gb_estimate":null,"engine":"vLLM 0.29.0 (Gemma4ForConditionalGeneration is in its model registry)","receipt_coverage":"none","in_hosted_demo":false,"tiers":["lite"],"alternative_to":null},{"id":"llm-best","role":"Best tier: a larger model for long charts and dense payer policies","name":"DeepSeek-V4-Flash (NVIDIA NVFP4)","hf_repo":"nvidia/DeepSeek-V4-Flash-NVFP4","license":"MIT","params":"284B","quant":"NVFP4 experts + FP8 (about 159-176 GB of weights)","vram_gb":192,"memory_gb_estimate":null,"engine":"vLLM B12X community build, TP2 on 2x RTX PRO 6000, MTP draft fixed by the kit's patches","receipt_coverage":"none","in_hosted_demo":false,"tiers":["best"],"alternative_to":null},{"id":"glm-wanted","role":"Second judge, from another family","name":"GLM-5.3-Flash","hf_repo":"zai-org/GLM-5.3-Flash","license":"MIT","params":"321B","quant":"NVFP4 on NVIDIA (nvidia/GLM-5.3-Flash-NVFP4, about 170-186 GB, unconfirmed); MLX 4-bit on a Mac (165 GB)","vram_gb":null,"memory_gb_estimate":170,"engine":"SGLang SM120 build, TP2 on 2x 96 GB (vLLM is broken on sm_120 for this model, and the SGLang build hung on our server), or mlx-lm on a Mac with 192 GB or more","receipt_coverage":"none","in_hosted_demo":false,"tiers":["wanted"],"alternative_to":null}],"tiers":[{"id":"lite","label":"Lite · one 48 GB card","summary":"The same pipeline on a smaller mixture-of-experts model. Faster and cheaper; accuracy on this task unknown.","components":["llm-lite"],"hardware":"1x L40S or RTX 6000 Ada 48 GB (not measured)","quality_evidence":[{"metric":"decision and criteria accuracy","value":"not measured yet","source":null}],"latency_note":"not measured yet","in_hosted_demo":false,"receipt_coverage":"partial","receipt_note":"Direct route: calls are attested by the box's key; no gateway receipts.","hosting":null},{"id":"standard","label":"Standard · the hosted demo, one 96 GB card","summary":"Qwen3.8-27B finds the section, maps and checks the criteria, answers the form and drafts the letter; the quote checks, the recommendation, the clock and the brief are plain code. Every model call receipted.","components":["llm"],"hardware":"1x RTX PRO 6000 Blackwell 96 GB","quality_evidence":[{"metric":"latest fresh held-out set (16 synthetic charts, 4 real policies, run once after the cold-user fixes): decision right","value":"14/16; unsupported requests called ready 1/11; supported called ready 4/5","source":"decosa-api docs/evals/prior-auth-check.md, measured on our server 2026-09-28, gateway route"},{"metric":"earlier fresh set (35 charts, 7 policies, after the guards) / first set (60 charts, 12 policies, before them)","value":"24/35 (unsupported called ready 4/21) / 45/60 (10/31)","source":"decosa-api docs/evals/prior-auth-check.md"},{"metric":"requirement status right (of requirements the model found)","value":"91.1%, 91.8%, 93.6%; 81% to 90% of gold requirements found","source":"decosa-api docs/evals/prior-auth-check.md"},{"metric":"undocumented read as not met (the appeal engine's main error, 6 of 80 cases)","value":"0 of 111 cases","source":"decosa-api docs/evals/prior-auth-check.md"},{"metric":"letter sentences rated unsupported by a blind reviewer","value":"6/375, 2/91, 0/46","source":"decosa-api docs/evals/prior-auth-check.md"}],"latency_note":"measured on our server under a shared gateway: seconds per packet, under a minute at the slow end; a packet with a letter makes a couple of dozen model calls","in_hosted_demo":true,"receipt_coverage":"strong","receipt_note":"Hosted: gateway-signed receipt per model call. Self-hosted: attested by the box's key.","hosting":null},{"id":"best","label":"Best · DeepSeek-V4-Flash on two more cards","summary":"A larger model for long charts and dense payer policies.","components":["llm-best"],"hardware":"2x RTX PRO 6000 96 GB","quality_evidence":[{"metric":"decision and criteria accuracy","value":"not measured yet","source":null}],"latency_note":"not measured yet","in_hosted_demo":false,"receipt_coverage":"partial","receipt_note":"Not a hosted model: calls are attested by the box's key only.","hosting":null},{"id":"wanted","label":"Wanted · two large judges from different families","summary":"DeepSeek-V4-Flash and GLM-5.3-Flash each read the file, and a finding stands when they agree; disagreements go to the reviewer. Patient records stay on your own hardware, never on community providers. Not served yet.","components":["llm-best","glm-wanted"],"hardware":"Your own hardware: 2x 96 GB cards for DeepSeek-V4-Flash plus 2x 96 GB for GLM-5.3-Flash, or one Mac Studio with 512 GB holding both 4-bit builds (156 + 165 GB, sizes from our Mac; not run together yet). Estimate.","quality_evidence":[{"metric":"decision and criteria accuracy","value":"not measured yet","source":null}],"latency_note":"not measured yet","in_hosted_demo":false,"receipt_coverage":"none","receipt_note":"On your own hardware its calls are attested by the box's key only: not a hosted model there, so no gateway receipts. Never sent to community providers.","hosting":"own-hardware"}],"alternates":[],"services":[{"name":"decosa-api","port":8445,"image":"${DECOSA_REGISTRY}/decosa-api:0.1.0","purpose":"The policy reader, the quote checks, the recommendation rule, the decision clock, the brief, grounding, signing and the HTTP API (/priorauth/*). No GPU. Binds 127.0.0.1 by default."},{"name":"decosa-llm","port":8000,"image":"${DECOSA_REGISTRY}/decosa-llm:0.1.0","purpose":"vLLM OpenAI endpoint for Qwen3.8-27B. Internal to the compose network."}],"tools":[{"name":"decosa denial appeal packet (vertical 60)","url":"https://decosa.ai/apps/denial-appeal-packet","license":"AGPL-3.0-or-later (decosa-api)","purpose":"The criteria engine: criteria mapping with verbatim policy quotes, the verbatim chart-quote rule, the date-window check and the letter check; subclassed, not copied."},{"name":"decosa grounding (vertical 17)","url":"https://decosa.ai/apps/grounding","license":"AGPL-3.0-or-later (decosa-api)","purpose":"Judges every letter sentence against the chart, the policy and the denial, and cites the span; imported, not copied."},{"name":"decosa typed-judgment (vertical 24)","url":"https://decosa.ai/apps/typed-judgment","license":"AGPL-3.0-or-later (decosa-api)","purpose":"Answer parsing and the stated-confidence probability for each criterion check."},{"name":"decosa record (vertical 07) and POST /record/verify","url":"https://decosa.ai/apps/record","license":"AGPL-3.0-or-later (decosa-api)","purpose":"The hash chain and the Ed25519-signed packet; anyone can re-check it."},{"name":"pypdfium2","url":"https://github.com/pypdfium2-team/pypdfium2","license":"Apache-2.0 or BSD-3-Clause","purpose":"The policy PDF's text layer, on CPU."},{"name":"eCFR (via Cornell LII): 29 CFR 2560.503-1; 45 CFR 147.136; 42 CFR 422.568, 422.572, 438.210","url":"https://www.law.cornell.edu/cfr/text/42/422.568","license":"public law","purpose":"The decision clocks, quoted in /priorauth/info with the date they were read."},{"name":"Payer medical policies (Aetna CPB 0004, Cigna 0051, UnitedHealthcare panniculectomy)","url":"https://www.aetna.com/cpb/medical/data/1_99/0004.html","license":"the payers' published policies, quoted in excerpt with their source for the demo","purpose":"The demo samples' policies; your own policies are pasted or uploaded."}],"hardware":[{"tier":"1x RTX PRO 6000 Blackwell 96 GB","fits":true,"notes":"Measured: the hosted demo's Qwen3.8-27B runs on one of these cards on our server."},{"tier":"1x L40S / RTX 6000 Ada 48 GB","fits":null,"notes":"Not measured. FP8 Qwen3.8-27B with a shorter context, or Gemma 4 26B A4B (lite)."},{"tier":"CPU only","fits":true,"notes":"The policy reader without a long-policy section pick, the decision clock, the signed record and verification need no GPU; checking the chart needs the model."}],"latency":[{"lane":"one check, shared gateway, 4 at a time (16 fresh held-out cases)","typical_ms":41300,"source":"decosa-api docs/evals/prior-auth-check.md: p50 41.3 s, p95 105.5 s, 2026-09-28, gateway route"},{"lane":"one check, shared gateway, 4 at a time (35 fresh held-out cases)","typical_ms":57500,"source":"decosa-api docs/evals/prior-auth-check.md: p50 57.5 s, p95 109.7 s"}],"benchmark":{"title":"Does it say \"don't send\" when it should?","intro":"Synthetic charts written blind against 23 real published payer policies and sections (Aetna, Cigna, UnitedHealthcare, CMS LCDs), each labelled twice (author and blind reviewer agreed on all 744 requirements). Prompts were written on 4 other policies. Three sets were each run once: before the guards (60 cases), after them (35), and after fixes from two blind coordinator tests (16).","rows":[{"label":"Decision right, latest set","value":"14 of 16","detail":"earlier sets: 24 of 35, 45 of 60"},{"label":"Unsupported requests it called ready","value":"1 of 11","detail":"earlier sets: 4 of 21, 10 of 31"},{"label":"Supported requests it called ready","value":"4 of 5","detail":"earlier sets: 8 of 14, 26 of 29"},{"label":"Undocumented read as not met","value":"0 of 111 cases","detail":"the appeal engine's main error was 6 of 80"},{"label":"Cost per check","value":"about $0.014","detail":"median on the latest set, gateway list price; p95 $0.027"}],"points":[{"heading":"Where it fails","text":"It misses requirements hidden in footnotes, appendices and tables (13% to 19% aren't found), misreads a table lookup (a resection-weight scale by body surface area), and still calls a few unsupported requests ready. Treat ready as \"nothing obviously missing\", not a guarantee."},{"heading":"What it does not show","text":"Synthetic charts, one author per policy, no labels from working coordinators. Real charts are longer and messier. Check it on your own recent requests before relying on it."}],"source":"decosa-api docs/evals/prior-auth-check.md, 28 Sep 2026"},"notes":[]},"buyer_facts":[{"label":"What it gives you","value":"A call (ready to send, get records first, not supported on this chart, can't check), each criterion met, missing or not met with the policy and chart quotes, what record to get, form values with their chart lines to copy, a peer-to-peer brief, a letter of medical necessity when the chart supports it, the federal decision clock, a Markdown packet and a signed record."},{"label":"What it does not do","value":"It doesn't submit, fax or touch a payer portal, predict the payer's decision, know which services need authorization, suggest codes, or fetch policies (paste them or upload the PDF). It never includes InterQual or MCG criteria. It never suggests adding to or changing a note. Scanned charts and scanned policy PDFs need OCR first."},{"label":"Data retention","value":"Nothing kept on the server. Policies, charts and results live in memory for the request; logs carry counts only. You keep the signed record with the request."},{"label":"What leaves the box (hosted demo)","value":"The policy section and the chart go to Qwen3.8-27B through Decosa's gateway, whose receipts hold hashes, not text. Self-hosted, nothing leaves. The hosted demo is for synthetic charts only."},{"label":"Model calls per check","value":"One criteria map (plus one section pick for a long policy), one check per criterion, a re-check per not-met answer and per exclusion answered met, one form call; with a letter, one draft and one grounding call per sentence: 17 to 20 calls at the median, up to about 50."},{"label":"Typical run cost","value":"About a cent or two per check at the gateway list price (held-out runs); more with long policies and a letter. Each run shows its own measured cost."},{"label":"Measured accuracy","value":"On the latest fresh held-out set (16 synthetic charts, 4 real policies): 14 decisions right; 1 of 11 requests that should have waited called ready. Earlier sets: 24 of 35 and 45 of 60. Measured 28 Sep 2026; see the eval."}],"data_handling":{"page":"/data#prior-auth-check","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":"Nothing kept on the server. Policies, charts and results live in memory for the request; logs carry counts only. You keep the signed record with the request.","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":"/clinics/prior-auth-check","input":"runner","lanes":[{"id":"criteria","title":"Criteria against the chart","kind":"list"},{"id":"recommendation","title":"Send, get records first, or not supported","kind":"list"},{"id":"form","title":"For the payer's form","kind":"list"},{"id":"brief","title":"Peer-to-peer brief","kind":"markdown"},{"id":"letter","title":"Letter of medical necessity","kind":"markdown"},{"id":"record","title":"Signed record","kind":"json"}],"samples":[{"n":1,"id":"cpap-ready","title":"Cpap ready","deep_link":"/clinics/prior-auth-check?sample=1&autorun=0"},{"n":2,"id":"lumbar-mri-ready","title":"Lumbar mri ready","deep_link":"/clinics/prior-auth-check?sample=2&autorun=0"},{"n":3,"id":"bariatric-missing-eval","title":"Bariatric missing eval","deep_link":"/clinics/prior-auth-check?sample=3&autorun=0"},{"n":4,"id":"epidural-gather","title":"Epidural gather","deep_link":"/clinics/prior-auth-check?sample=4&autorun=0"},{"n":5,"id":"cpap-not-supported","title":"Cpap not supported","deep_link":"/clinics/prior-auth-check?sample=5&autorun=0"},{"n":6,"id":"proprietary-criteria","title":"Proprietary criteria","deep_link":"/clinics/prior-auth-check?sample=6&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/prior-auth-check-hosted.md","selfhost":"/prompts/prior-auth-check-selfhost.md","assemble":"/prompts/prior-auth-check-assemble.md","mac":null},"rehearsal":{"bundle":"/samples/prior-auth-check.zip","bundle_url":"https://decosa.ai/samples/prior-auth-check.zip","folder":"/samples/prior-auth-check/","expected":"/samples/prior-auth-check/expected.json","files":["/samples/prior-auth-check/expected.json","/samples/prior-auth-check/inputs/not-supported-records.json","/samples/prior-auth-check/inputs/policy.json","/samples/prior-auth-check/inputs/ready-records.json"],"bytes":6348,"checks":["the supported request is ready to send","a letter of medical necessity is drafted and cites the AHI","the unsupported request is not supported on this chart","and no letter is drafted for it","the not-met criterion quotes the 3.6 index","the signed record verifies","a record whose decision was changed no longer verifies","every model call has a signed receipt"],"licence":"Synthetic charts (CC0): patients, notes and clinicians are invented. Policy: an excerpt of Aetna CPB 0004 (the payer's published medical policy, https://www.aetna.com/cpb/medical/data/1_99/0004.html), quoted for demonstration with its source. Part of decosa-api, AGPL-3.0-or-later.","about":"Two synthetic CPAP requests checked against the CPAP section of Aetna Clinical Policy Bulletin 0004 (Obstructive Sleep Apnea in Adults), before sending. In the first, an attended in-lab sleep study shows an AHI of 26.5 over more than 6 hours of sleep: the check must say ready to send, quote the study, and draft a letter of medical necessity. In the second, the home sleep test index is 3.6 events per hour, below the policy minimum, while a physician letter asserts the criteria are met: the check must say not supported on this chart and draft no letter. The signed record must verify, and fail once changed.","run":{"containers":"docker compose exec api python scripts/rehearse.py prior-auth-check","checkout":"python scripts/rehearse.py prior-auth-check --bundle prior-auth-check.zip --base-url http://127.0.0.1:8445","mac":".venv/bin/python scripts/rehearse.py prior-auth-check"},"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=prior-auth-check","data":"/api/hardware.json","tiers":[{"id":"lite","gpu_gb":40,"basis":"estimate","unknown":[]},{"id":"standard","gpu_gb":57.6,"basis":"stack","unknown":[]},{"id":"best","gpu_gb":192,"basis":"stack","unknown":[]},{"id":"wanted","gpu_gb":384,"basis":"estimate","unknown":[]}],"mac":null},"links":{"page":"/clinics/prior-auth-check","json":"/use-cases/prior-auth-check.json","metrics":"/metrics/prior-auth-check","console":"/clinics/prior-auth-check","console_sample":"/clinics/prior-auth-check?sample=1&autorun=0","stack":"/clinics/prior-auth-check#stack","try_live":"/clinics/prior-auth-check","watch":"/clinics/prior-auth-check","build":"/clinics/prior-auth-check#build","self_host":"/clinics/prior-auth-check#self-host","prompts":{"hosted":"/prompts/prior-auth-check-hosted.md","selfhost":"/prompts/prior-auth-check-selfhost.md","assemble":"/prompts/prior-auth-check-assemble.md","mac":null}}}