Last updated: 21 October 2026
The beta MIS section is a ground-up rewrite of the money-facing reports. It answers one question per report with numbers that always add up:
The old reports are still available and unchanged. The only difference on the old landing page is the dialog that opens first and lets you choose between the old reports and the beta section. The beta pages are an additional section you can use side by side until you are ready to switch.
Sidebar → MIS Reports (/admin/mis-reports). A dialog appears asking whether you want the old reports or the new beta reports. During the beta, choosing Old reports leaves the old landing page exactly as it was.
The beta pages are:
| Page | URL |
|---|---|
| Revenue cockpit | /admin/mis-reports-beta |
| Financial status | /admin/mis-reports-beta/financial-status |
| Debitors | /admin/mis-reports-beta/debitors |
| Daily collection | /admin/mis-reports-beta/daily-collection |
| Leakage audit | /admin/mis-reports-beta/leakage |
| Profitability | /admin/mis-reports-beta/profitability |
| Item sub-head revenue | /admin/mis-reports-beta/item-sub-head |
| Month-end accounting pack | /admin/mis-reports-beta/accounting-pack |
| Admission / OPD month wise | /admin/mis-reports-beta/encounter-month-wise |
Every role that can open the old MIS section can open the beta section.
Inside the beta section, a row of pills at the top of every report — Revenue cockpit, Financial status, Debitors, Daily collection, Leakage audit, Profitability, Item sub-head, Month-end pack and Month wise — switches between them without going back to the landing page. The period you have chosen is carried across, so the same window stays applied.
The word "department" means two unrelated things in this system, and the beta reports keep them apart:
| Term | Where it comes from | Where you see it |
|---|---|---|
| Clinical department | The department you pick when registering an OPD visit or an admission (General by default) | Month wise and Daily collection — the Department column and filter |
| Item sub-head | The category and sub-head on the item master (for example Hospital · Cardiology) | Profitability and Item sub-head revenue |
A clinical department answers who saw the patient; an item sub-head answers what was billed. An invoice for a Cardiology encounter can carry any mix of item sub-heads, so never compare their totals with each other.
Clinical departments are stored from the moment this feature was released. Encounters created before it show as Not recorded — the department was never saved for them, and there is nothing to recover. Receipts with no encounter at all (counter sales) show a blank department, which is not the same as Not recorded.
These definitions are used consistently on every beta page, so the figures agree with each other.
| Term | Definition |
|---|---|
| Billed | Patient/payor INVOICE and pharmacy INVOICE_P vouchers minus CREDIT_NOTE and pharmacy CREDIT_NOTE_P vouchers in the selected period. Estimates and purchase invoices (PURCHASE) are excluded. |
| Collected (net) | RECEIPT vouchers minus PAYMENT refunds for patients and payors in the selected period. Vendor payments and doctor payouts are excluded. |
| Outstanding in period | Billed − Collected for the selected period. |
| Balance (ledger) | opening balance + total debits − total credits for the account, up to the as-of date. Estimates are excluded. |
| Total receivables | Sum of patient and payor ledger balances as of the as-of date. |
A payment from the hospital to a patient or payor is a refund. A payment to a vendor or a doctor is not counted as a refund in these reports.
All periods and as-of dates are Indian calendar dates, not UTC. A voucher entered at 11:30 pm IST on the last day of a month belongs to that month, even though the database stores the timestamp in UTC.
The period is always kept in the URL, so a reload, a bookmark or a link you share opens the same window and the same totals.
/admin/mis-reports-beta — the default landing page inside the beta section.
Every KPI is calculated by the database over the whole period — not by adding up the rows visible on the screen.
/admin/mis-reports-beta/financial-status
Shows, for the chosen period and as-of date:
This replaces the old Financial Status report, which understated payor receivables once an organisation had more than 500 payors.
/admin/mis-reports-beta/debitors — two tabs: Patients and Payors.
Each row is an account with:
| Column | Meaning |
|---|---|
| Opening | The account's opening balance |
| Debits | Total debit vouchers up to the as-of date |
| Credits | Total credit vouchers up to the as-of date |
| Balance | Opening + debits − credits |
Because opening balances are not dated, they sit in their own Opening bucket rather than being assigned a guessed age.
/admin/mis-reports-beta/daily-collection
One row per receipt or refund voucher, with tabs for All, OPD and Admission.
| Column | Meaning |
|---|---|
| Date | Voucher date in IST |
| Voucher | Voucher ID |
| UHID | Account ID of the patient or payor |
| Patient / payor | Account name |
| Mobile | Contact number on the account |
| Type | Patient or payor |
| Mode | The account the money moved through (for example cash or bank) |
| Department | The clinical department of the receipt's encounter; Not recorded when the encounter has none, blank for counter sales |
| Received | Receipt amount |
| Refund | Refund paid back |
| Net | Received − refund |
The Department filter narrows the whole page — rows, KPIs, totals and CSV — to one clinical department. Pick Not recorded to find money whose encounter has no department saved, and leave it on All departments to see everything.
The totals row and the KPI cards always cover the whole period, even when the table is paged.
/admin/mis-reports-beta/leakage — where money is lost between the price list and the collection. Four tabs:
| Tab | What it lists |
|---|---|
| Discounts | Invoice lines billed with a percentage discount |
| Price overrides | Invoice lines charged below the tariff or master price |
| Refunds | PAYMENT vouchers back to a patient or payor |
| Credit notes | CREDIT_NOTE (patient) and CREDIT_NOTE_P (pharmacy) vouchers |
The KPI strip always shows the whole period: gross billed, total discounts (with the percentage of billed), price shortfall, refunds and credit notes.
sale price × quantity × discount %, the same formula used when the invoice is created.The totals row and the KPI cards cover the whole period even when the table is paged, and the CSV contains every matching row.
/admin/mis-reports-beta/profitability — where revenue comes from and what it costs. Two tabs:
| Tab | Rows grouped by | Columns |
|---|---|---|
| Item sub-head | Item subhead (category · sub-head) | Item sub-head, Sub-head, Revenue, Direct cost, Margin, Margin %, Lines |
| Consultants | Attending doctor and referring doctor | Attending, Referring, Revenue, Cost, Margin, Margin %, Lines |
The tab reads Item sub-head, not "Department": it groups the item master's category and sub-head, not the clinical department chosen at registration. A line that does not carry its own sub-head (stored as zero) is grouped under the sub-head on its item's master record, and only lands in Unassigned when neither the line nor the master has one.
PAYMENT vouchers against doctor accounts and carry no invoice lines), and neither are salaries, rent or depreciation — so margin is not profit./admin/mis-reports-beta/item-sub-head — how much each item sub-head billed in the period, and how much of the total it is.
| Column | Meaning |
|---|---|
| Category | The item master's category (for example Hospital) |
| Sub-head | The item master's sub-head (for example Cardiology) |
| Billed | Invoice lines on that sub-head, including GST |
| Credit notes | Credit-note lines on that sub-head, including GST |
| Net | Billed − credit notes |
| Lines | How many invoice and credit-note lines the row covers |
| Share | The row's net as a percentage of net revenue for the whole period |
/admin/mis-reports-beta/accounting-pack — one page (and one PDF) an accountant can work from. Pick a month and year, then Download PDF for the same figures formatted for print.
| Section | What it shows |
|---|---|
| Headline | Billed, collected (net), outstanding in the month, total receivables, payables, money accounts, stock value |
| Revenue and collections | Invoices less credit notes, receipts, refunds and net collected |
| GST summary | Taxable value, CGST, SGST and IGST grouped by HSN/SAC and rate, using the percentages recorded on each invoice line |
| Trial balance | Opening, debits and credits in the month, and closing debit/credit per account type, with a difference line |
| Receivables aging | Patient and payor balances in Opening, 0–30, 31–60, 61–90 and 90+ buckets |
| Vendor payables | Each vendor with a balance, plus the exact count and total (the table shows the largest 200) |
| Stock valuation | Quantity and value per Pharmacy and Hospital item at the current master purchase price (the table shows the largest 200) |
Notes the pack makes explicit:
ESTIMATE vouchers) are excluded from every section./admin/mis-reports-beta/encounter-month-wise
Pick Admission or OPD, then a month. The report lists every encounter that had voucher activity in that month, one row each, with revenue, collection and balance.
| Column | Meaning |
|---|---|
| Encounter ID | The encounter's identifier |
| Encounter | The encounter name, such as OPD Consultation |
| Department | The clinical department chosen at registration; Not recorded when the encounter has none |
| Last voucher | The most recent voucher date for the encounter, in IST |
| Revenue | Invoices less credit notes, all-time for the encounter |
| Collection | Receipts less refunds from/to the patient or payor, all-time |
| Balance | Revenue − collection |
The Department filter narrows the rows and the totals to one clinical department. Not recorded collects the encounters created before departments were saved.
The amounts are all-time totals for the encounter, not just the selected month — this matches the old month-wise report's behaviour and is stated on the page.
Collection counts only receipts from and refunds to the patient or payor on that encounter. A vendor payment or doctor payout that also happens to carry the encounter's id is not counted, so it cannot change the encounter's balance.
Services on any row opens the encounter's itemised revenue — every category and sub-head it was billed for, with billed, credit notes and net, all-time. Use it to see what a single visit actually consisted of.
Every report table is paged on the server. The strip above the table shows Showing 1–100 of N, with Prev / Next and a rows per page selector offering 100, 250, 500 or 1,000.
Print prints only what is on screen. For a long report, set the page size to 1,000 first; for everything, use Download CSV (all rows).
| Old behaviour | Beta behaviour |
|---|---|
| Financial status summed only the first page of payors | Exact totals over all accounts |
| No totals or row counts | Exact totals and X–Y of N counts |
| CSV was only the current page | CSV contains every matching row |
| "Today" could be yesterday between midnight and 5:30 am IST | Dates are always IST calendar dates |
| Refunds and receipts shown together with no net figure | Received, refund and net columns |
| No aging of receivables | Opening / 0–30 / 31–60 / 61–90 / 90+ aging |
Why is total receivables different from billed minus collected for the period? They answer different questions. Billed minus collected covers only the selected period; total receivables includes opening balances and every unpaid voucher up to the as-of date.
Why does a patient's balance not equal their unpaid invoices? The balance is a ledger balance: opening balance plus every debit minus every credit. Advances and partial payments are already reflected, so it is not a list of open invoices.
Why do the aging buckets add up to the balance even though the patient paid part of an invoice? Collections are applied to the oldest invoice first (FIFO). Whatever remains after applying all collections is split into the age buckets, so the buckets always total the outstanding balance.
Why is a refund to a vendor missing from Daily collection? Only refunds to patients and payors are collections. Payments to vendors and doctors are payables, not refunds, and are excluded from this report.
What counts as a price override? An invoice line charged below the tariff named on the invoice — or, when no tariff is named, below the master sale price. Lines with no master item or with a zero list rate are excluded, so an unknown item is never reported as free. A zero-price line on an item that does have a price counts as a full shortfall.
Are refunds leakage? They are losses if they were avoidable, but the report does not judge that. It lists every refund to a patient or payor in the period so someone can look. Payments to vendors and doctors are not refunds and are excluded.
Why can't I see an invoice that I deleted? Deleting an invoice removes the voucher and its lines from the database and leaves no audit record. The leakage audit can only report on vouchers that still exist; recovering deleted ones would need a new audit-history feature.
Why is Profitability revenue lower than Billed on the cockpit? Profitability uses the item value before GST; Billed includes GST. Subtract GST (or compare against the GST summary in the month-end pack) to reconcile them.
Which department was a patient treated in, and how do I see its money? The clinical department is captured on the encounter at OPD/IPD registration and is shown on Month wise and Daily collection, with a filter on both. It is a clinical field — it does not change which item sub-head revenue lands under.
Why does an encounter show "Not recorded"? The encounter was created before departments were saved at registration. Only encounters registered after that point carry one, and there is nothing to recover for older visits. New registrations default to General when the department is left untouched, so they are never blank.
Why is a counter sale's department blank rather than "Not recorded"? A counter sale has no encounter, so there is no clinical department to look up. Blank means "no encounter"; Not recorded means "an encounter that has no department saved".
Why is a department's margin higher than expected? Some lines carry no purchase price — neither on the invoice nor on the master. Those lines are counted but cost nothing, so their margin is overstated. The Cost coverage KPI tells you how much of the period is affected.
Are doctor payments counted in Profitability?
No. Doctor payouts are PAYMENT vouchers against doctor accounts and have no invoice lines, so they are neither revenue nor cost. The margin shown is after consumable cost only — what the doctor is paid comes on top of it.
Which doctor counts as "attending" on a Profitability row?
The Consultant recorded on the invoice. It defaults to the encounter's attending doctor (ATND) when the bill is raised, and can be overwritten with any name or cleared on the invoice — a cleared Consultant is shown as Hospital / direct. A credit note raised from an invoice starts with that invoice's Consultant. Invoices created by an older version (or by an automated flow) have no stored Consultant, so they fall back to the encounter's attending doctor; when the encounter has several attending participants the first is used, so the same revenue is never counted twice. Profitability attribution is separate from doctor commission — see Doctor Revenue & Expense.
Why doesn't the month-end trial balance difference come to zero? Opening balances are undated and entered once per account. Every voucher is double-entry, so the only legitimate source of a difference is the sum of those opening balances. The pack reports the difference rather than hiding it.
Does the pack use FIFO for stock? No. Stock is valued at the current master purchase price for Pharmacy and Hospital items, which is simple and predictable but not FIFO or weighted average.