Back to home

Documentation

How MessMeal works

Everything about the calculation model — meal units, the pooled rate, fixed-cost splits, balances and settlements — explained step by step.

Overview

MessMeal is a household meal-cost splitter. Every day you record who ate which meals, and every bazaar (grocery) run and fixed bill gets logged with its cost. At any moment the app computes each person's fair share and suggests the minimum set of payments to settle everyone up.

The core principle: one pooled meal rate per period. Instead of a rate that jumps day by day, the whole period shares a single rate — simple, transparent, and it always reconciles exactly with the total spent.

Getting started

Create a mess (your household), pick your currency, and add the people who eat there. Then invite housemates with a link so everyone can log meals from their own account. No email is sent — you share the invite link yourself.

People come first: meals and payments are attributed per person, so add your household members before logging anything.

Meals & units

For each person and each day you mark breakfast, lunch and dinner. Tapping a meal cycles it: empty → Full → Half → empty. A person can also carry extras (guest meals, extra portions) as any number.

Units are what everything else is priced against:

Full = 1 unit · Half = 0.5 units · Extra = any number

A day's units for a person = their meal units that day plus their extras. The period's total units is the sum over every person and every logged day.

Bazaar & the meal rate

Bazaar entries are your grocery costs, optionally tagged with a note (vegetables, fish, rice…). The entire period's bazaar is divided by the entire period's meal units to give one pooled rate:

meal rate = total bazaar cost ÷ total meal units

Each person's meal cost is then their units × rate. Because everyone is priced at the same rate, rate × total units = total bazaar always holds — the dashboard stats, per-person breakdown and exports can never disagree.

Meals logged on a day with no bazaar shopping are not free: they still count toward total units, which lowers the pooled rate for everyone and adds to that person's share immediately.

Edge case: if a period has bazaar costs but zero meal units (nobody logged meals), the cost can't be split by units — it falls back to an even split across the household and the rate is reported as 0.

Fixed costs

Fixed costs are the recurring bills — internet, electricity, gas, rent. They are split evenly, but per month across that month's household roster:

person's fixed share (a month) = that month's fixed costs ÷ that month's roster size

If you lived in the house for August only, you carry none of September's internet bill — even in a combined view of both months.

Contributions & balances

A contribution records money a person put in (usually by paying for the bazaar or a bill), stamped with an explicit date so it lands in the right month. A person's balance is simply:

balance = total contributions − total cost

Where total cost = (meal units × rate) + fixed-cost shares. A positive balance means the person is owed money; negative means they owe.

Settlements

Settling up naively (everyone who owes pays everyone who is owed) can take many transfers. MessMeal runs a greedy debt-simplification: it repeatedly matches the largest debtor with the largest creditor, producing the minimum number of transactions that clears every balance to zero — cents-accurate.

Months & combined periods

Each month has its own roster of people (a new month automatically starts with the previous month's people). The period selector lets you view a single month, all time, or a custom combination of months.

Combining months changes nothing in the math: the pooled rate simply spans a wider set of entries, each month's fixed costs still split across that month's own roster, and the person list becomes the union of the rosters.

Worked example

Four people in September. Total bazaar for the month is ৳12,000 and together they logged 240 meal units.

meal rate = 12,000 ÷ 240 = ৳50 per unit

  • Rahim ate 62 units → 62 × 50 = ৳3,100
  • Karim ate 70 units → 70 × 50 = ৳3,500
  • Selim ate 58 units → 58 × 50 = ৳2,900
  • Jasim ate 50 units → 50 × 50 = ৳2,500

Internet is ৳2,000 for the month → ৳500 each. Adding that, Rahim's total cost is ৳3,600. If Rahim contributed ৳4,000 during the month, his balance is +৳400 — he is owed ৳400, and the settle-up list tells him exactly who pays him.

Roles & edit windows

The mess owner (and any admins they appoint) can edit all costs and contributions and manage people and members. Regular members can log and edit meals — but only for today and yesterday — so history can't quietly change. Older days are admin-only. Any member may leave the mess at any time.

PDF reports

The Export PDF button generates a full report for whatever period you're viewing: summary stats, balances, the daily meal-units matrix (single-month), fixed-cost categories, per-person breakdowns, the raw bazaar and contribution logs, and the settle-up plan. It renders from the exact same computed data the screen shows, so the PDF always matches the dashboard.

Ready to try it on your own mess?

1-month free trial · no credit card required.

Start free trial