AZMedAppz
Sign inSet up a practice
Free · the columns that matter

An IPD package price list that survives the argument

What a package price list has to say before it stops being disputed at discharge: what the price covers, how many days of it, and — the column everybody leaves out — what it does not cover.

An illustration of a clinic toolkit: calculators, checklists, guides and reports

The 8 columns

These are the fields MedAppz stores against a package, so a list built this way loads into the product without being reworked — and, more usefully, a list built this way has already had the argument at the desk instead of at the discharge counter.

Package codeYour own short code, unique in the hospital. TKR-STD, LSCS-A, CABG-2.Two packages with the same name and different prices is how a payer ends up quoting the wrong one back at you.billing.package.code — unique per hospital
Package nameWhat a patient and a TPA would both call it. "Total knee replacement — single, standard implant".The name is what goes on the estimate and on the bill. If it needs a footnote to be understood, it needs to be two packages.billing.package.name
Bills asThe line on your existing price list that the package writes onto the bill.The package line is an ordinary bill line with an ordinary code and tax rate. Without this it is a number floating outside your own catalogue.billing.package.service_item_id → catalog.service_item
PriceThe agreed number, in rupees. One price per package per payer arrangement.A package price is the negotiation itself, not the sum of the lines inside it — which is exactly why it must be written down once rather than recomputed.billing.package.price
Days coveredHow many inpatient days the price includes. Leave blank only if it genuinely covers the whole stay.This is the single commonest source of a package dispute. Beyond the covered days the bed and nursing charges become billable again, and a patient who was never told that reads it as a bill that grew overnight.billing.package.covered_days
IncludesWhat the price covers — as a whole charge category where you can, and as a named item where you must.A list of inclusions with no categories has to be maintained item by item forever, and it drifts the first time you add a service.billing.package_item, covered = true
ExcludesWhat the price does not cover. Implants, blood products, high-end antibiotics, an unplanned ICU day.The column every list leaves out, and the one every dispute is about. Writing "everything except implants" is two rows, not a list of everything that is not an implant.billing.package_item, covered = false
NoteThe sentence a counsellor would say out loud. "Second implant billed at list. Readmission within 30 days for the same complaint is covered."If it is said at the counter and not written here, it will be remembered differently by the two people who were there.billing.package.note

The categories a rule may name

A closed list, on purpose. Naming a whole category is what lets one row cover a department — and what stops an inclusion list from having to be maintained item by item forever.

  • Bed — the daily charge for the bed class
  • Nursing — the daily nursing charge
  • Monitoring — the daily monitoring charge
  • Consultation — visits by the treating and visiting doctors
  • Procedure — the operation and anything else done
  • Investigation — laboratory and imaging
  • Pharmacy — drugs issued to the patient
  • Consumable — everything used and not returned
  • Package — a package inside a package
  • Other — what none of the above describes

The three rules that decide what is covered

An exclusion beats an inclusionSo "all investigations included, except histopathology" is two rows: the category included, the named item excluded. You never have to list what is not excluded.A named item beats a categoryThe specific always wins over the general, which is what lets one row carry a whole department and one more row carve out the exception in it.One rule per thingA package can name a category once and an item once. Two rules for the same thing would be a package nobody could predict the answer of, so the database refuses the second.

One row, filled in

Package codeTKR-STDPackage nameTotal knee replacement — single knee, standard implantBills asYour existing "Total knee replacement" service linePrice₹ ______________ (yours — this template carries no prices)Days covered4IncludesBed · Nursing · Monitoring · Consultation · Procedure · Investigation · Pharmacy · ConsumableExcludesImplant (named item) · Blood and blood products (named item)NoteBeyond day 4 the bed, nursing and monitoring charges resume at list. A second implant is billed at list.

After the list

Publish it where a patient will actually lookA price list in a PDF on a shelf is a price list nobody reads. RateCard publishes the same tariff as one link and one code for the wall, at the rate effective when you import it and stamped with that date — a published card is frozen, so it cannot change under somebody standing in the waiting room reading it.Turn it into an estimate they can hold you toPriceQuote resolves every line through the same engine that bills, with the assumptions stated and a validity date. An expired quote refuses acceptance, because an expired price is a new quote.Let the running bill do the arithmeticOn an inpatient bill, the lines a package covers stay on the bill marked as included and drop out of the total — which is what an Indian package bill looks like on paper — and the bed-days past the covered window come back as ordinary charges.

What this does not do

The columns come from what MedAppz stores against a package, so a list built this way maps onto the product without rework. It carries no prices: a package price is a negotiation, not a number anybody else can supply. Tax treatment is yours and your accountant’s — the template has a column for the code and the rate you are told to use.

Get the blank template as one printable page, ready to fill in

Everything above stays free and open — this page works without giving us anything. Tell us who you are and the printable version opens right here, on this page, with no email to wait for.

We use your name, phone number and clinic name for one thing: to answer this enquiry about MedAppz. It is stored on our own server, in the single region our trust centre names, and it is not sold or passed to anyone else.

Email us

You can withdraw either at any time: write to hello@medappz.com, or tell whoever calls you, and we will delete what you gave us.

The other free tools