Skip to content

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.

Request this module

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

  1. 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

  2. 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

  3. 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?
No. Odoo Online cannot install modules that contain Python, so this runs on Odoo.sh or a self-hosted instance. Check the versions listed above for the series and edition it is verified against.
Does it raise the invoice and post to accounting?
No. The Invoice button on a case changes its state to Invoiced and nothing else. It writes no journal entry, no customer invoice and no sales order, and it takes no payment. The case totals are a statement, and the invoice is raised in Odoo Invoicing the usual way.
Can it handle pre-need trust funding?
Not as accounting. Pre-need is a need type on the case with itemised, price-locked arrangements, and the pre-need book gets a tile of its own. There is no trust ledger, no growth or interest accrual and no revenue recognition at the time of need.
Does the family get a portal login?
No. The module has no website or portal dependency, no controller and no public route. A family receives the printed statement with both itemised tables and the disclosure sentence on it, while staff work the records inside Odoo.

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