Per-diem & institutional billing
Outcome
A multi-day institutional stay — ICF, ICF-IID, residential, hospital — is recorded with admission, discharge, leaves of absence, and any required occurrence / value codes, then billed as a UB-04 / 837I per the program's billing period (daily / weekly / monthly / span).
Prerequisites
| Scope | What it lets you do |
|---|---|
clinical.encounter.read | View encounters and stays |
clinical.encounter.write | Edit institutional context |
billing.claim.write | Build / submit institutional claims |
A program configured with institutionalBillingPeriod (see
5.1 — Payers, programs & contracts).
The setting drives how the platform groups per-diem charges into a claim.
Where to find institutional context
The Claim detail page has an Institutional tab visible only when the
underlying claim's filing type is INSTITUTIONAL. The page also exposes a
Per-diem panel in the sidebar that shows the LOS calculation.
Institutional context fields
| Field | Where it travels |
|---|---|
| Admit date / time | DTP*435 ADM |
| Admit type | Header — emergency / urgent / elective. |
| Admit source | Header. |
| DRG | HI*DR segment in the 2300 loop. |
| Discharge date / hour / status | DTP*096 DIS and CL103. |
| Length of stay (LOS) | Computed; not transmitted explicitly but drives covered-day count. |
| Leave of absence (LOA) dates | OCC-74 occurrence code + dates. |
| Covered / non-covered days | VAL-80 / VAL-81 value amounts. |
| Diagnosis pointers | HI*BK (principal), HI*BF (additional). |
| Procedure codes (ICD-10-PCS) | HI*BBR (principal), HI*BBQ (other). |
The platform auto-emits these segments when the corresponding context fields are set on the claim. Setting only some fields is allowed — the platform skips segments whose fields are blank.
Steps to record a stay
Open the member at
/members/:id. Click+ New stay(under the Encounters tab).Fill the admission: facility, admit date / time, admit type, admit source, principal diagnosis. Save.
As the stay progresses, leaves of absence get recorded:
- From the stay's Stay detail page, click
+ Add LOAwith the start / end date and the reason. - The platform automatically creates the
OCC-74row that will travel on the eventual claim.
- From the stay's Stay detail page, click
At discharge, click
Dischargeand fill discharge date, hour, status. The stay closes and the per-diem charges become eligible for claim build.
Steps to bill the stay
Open the stay → click
Build claim(or visit/charges/bulk-entrywhere the per-diem charges show up grouped under the stay).Pick the billing period if the program supports more than one. Common choices:
Period What goes on the claim DAILYOne claim per day. WEEKLYAll days in a 7-day window. MONTHLYAll days in a calendar month. SPANAdmission through discharge as a single claim. The default comes from
institutionalBillingPeriodon the program config; override per-claim if needed.Confirm institutional context. The Institutional tab shows what the platform will emit. Edit any field that is wrong; the platform validates:
- DRG must be a valid code from the master DRG table.
- LOA dates must fall within admit / discharge.
- Covered + non-covered days must equal LOS.
Build / submit as in 2.1 — Build & submit a claim.
Validation
| Check | Expected |
|---|---|
| Stay closes cleanly on discharge | Yes; admit/discharge dates rendered as ISO. |
LOA rows produce OCC-74 segments | Yes; visible on the Submission tab's EDI download. |
| Covered + non-covered days sum to LOS | Yes; validation blocks save if not. |
837I includes HI*DR when DRG is set | Yes. |
Per-diem grouping matches institutionalBillingPeriod | Yes. |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Claim built as 837P instead of 837I | Filing type on the program is PROFESSIONAL | Edit the program config (5.1) to INSTITUTIONAL. |
| Save returns "DRG not in master table" | Typo or out-of-date master | Correct the DRG; or have a tenant admin refresh the DRG master. |
| Per-diem charges missing for some covered days | LOA was recorded for those days | Review LOA windows; if recorded incorrectly, edit and rebuild. |
| Claim rejected: "occurrence code 74 has no associated date" | LOA without a paired date | Edit the LOA; ensure both start and end are filled. |