Funeral Home
Cash advances kept out of revenue, and disclosed on the family's statement.
The short answer
Funeral Home is Odoo case management for independent homes and mortuaries, built around one distinction: charges for the home's own work against money collected on somebody else's behalf. A flag on each arrangement line keeps cash advances out of revenue everywhere they would otherwise be summed, and the printed statement discloses them separately, in the wording the FTC Funeral Rule asks for.
Last updated
What it is for
A funeral bill is two kinds of money on one sheet of paper. Some of it is work the home did: the professional service fee, the casket, the hour at the graveside. The rest belongs to somebody else, and the home only collects it and passes it on. The cemetery's opening and closing fee, the newspaper's death notice, the celebrant's honorarium, the registrar's certified copies. Book both as revenue and the total reported as earned includes money that was never the home's. Nobody notices at first. The figure is correct on the family's invoice and wrong everywhere it gets summed, so the margin the owner believes they have is better than the one they have.
- Platform
- Odoo
- Category
- Regulated records
- Works with
- Odoo 18 · Odoo 19
- Technical name
funeral_home- Status
- Direct from webbox
- Pricing
- Paid
What is inside it
- 01
The cash-advance split
The flag sits on the arrangement line rather than the case, because one burial mixes both kinds of charge. Tick it and that line leaves the home's revenue wherever it would have appeared.
- 02
The board
Twelve tiles, led by revenue net of cash advances, and a test asserts that ordering. Each tile opens exactly the rows it counted, including a seven-day diary counted from midnight today.
- 03
Gross beside net
A second board under Reporting reads the same book gross: cases opened, total billed, average per case before the split, home charges, and the cash-advance share of billing.
- 04
Cases
Intake, arranging, scheduled, completed, invoiced, with cancel off to the side. The service date is computed as the earliest scheduled arrangement, so no director keys it twice.
- 05
Packages
Pick a package and its lines land as typed, ordered arrangements, clearing whatever was there first. The package price is typed on the header, because a package is sold as a package.
- 06
The statement
One PDF: two itemised tables and a three-line total. Cash advances print under their own heading and read None when there were none, because an absent section is easy to miss.
What it looks like in practice
-
One burial mixes the home's work with other people's invoices
A completed case carries six arrangement lines. Three of them are the home's own work and three are somebody else's invoice, which is why no case-level switch could describe it honestly.
The cash-advance flag on each line drives three stored case totals: what the family was billed, how much of it is the home's charges, and how much passed through. Home charges are the subtraction, so the two halves cannot drift apart while somebody edits lines.
- Professional services
- 1,950
- Casket
- 3,200
- Graveside hour
- 600
- Home charges
- 5,750
- Cash advances
- 1,980
- Billed
- 7,730
Figures from the module's own demo data, on a fresh install. Install with demo data and open Cases, then CASE00001.
The cash-advance splitThe statement
-
Two boards report different totals for the same book, and both are right
The gross board shows home charges across every case on file. The cockpit shows the same stored field over only the cases actually delivered, so the owner sees two numbers.
Total billed minus home charges is the money that passed through the till on other people's behalf. The net figure leads the cockpit because a board burying the honest number under a bigger one has undone the work, and the gross reading gets its own screen.
- Home charges, all cases
- $54.4k
- Home charges, delivered
- $38.6k
- Total billed
- 64,015
- Passed through
- 9,660
Figures from the module's own demo data, on a fresh install. Install with demo data and compare the dashboard against Reporting then Case Analysis.
Gross beside netThe board
-
A case that sold merchandise has no service date yet
A casket line carries no date at all, so the list of arrangement dates on that case contains a false value.
The service date compute filters those out before taking a minimum, because a bare minimum returns nothing and Odoo reads that as 1970, which would drop the case silently out of the diary. Two tests hold it, one asserting a dated ceremony wins over an undated casket.
Behaviour of the shipped code.
CasesThe board
What it deliberately does not do
- It does not invoice or post to the ledger
- The Invoice button writes one field: the state becomes Invoiced. No journal entry, no customer invoice, no sales order and no payment. The invoice itself is raised in Odoo Invoicing as normal.
- No pre-need trust or insurance accounting
- Pre-need is a need type on the case plus itemised, price-locked arrangements. There is no trust ledger, no interest accrual, no state funding rules and no revenue recognition at the time of need.
- It prints one FTC document, not the set
- The Statement of Goods and Services Selected is implemented. There is no printable General Price List, Casket Price List or Outer Burial Container Price List.
- No scheduling engine and no double-booking check
- No calendar or gantt view, and no staff, vehicle, chapel or retort modelled as a resource. Two services can be entered in the same chapel at the same hour and nothing objects.
- Merchandise is a price list, not inventory
- The catalog holds a name, a category, a price and an archive flag. Selecting a casket on a case decrements nothing.
Questions
Can I install this on Odoo Online?
Does it raise the invoice and post to accounting?
Can it handle pre-need trust funding?
Does the family get a portal login?
Have something to build?
Tell us the problem. We'll come back with a plan, a price, and who'd actually build it.
- Free scoping call
- Reply within 1 business day
- No lock-in