Recipe
Split a shared grocery run — fairly
AI reads every grocery item, assign each to whoever consumes it, settle up in one tap. Solves the "you grabbed lunch + dinner stuff for the whole week" math.
Last reviewed: January 2026

Grocery splits are oddly hard. A roommate or partner does the big shop; the receipt has 40+ items; some are shared (eggs, bread, milk), some are individual (one person's protein powder, another's beer). Equal split feels unfair; itemizing manually is 30 minutes of work. Split The Bill's OCR + item-level assignment compresses that to ~3 minutes total. This recipe shows the full flow for a Costco-scale grocery run with 40-50 items.
Step-by-step
- 1
Take a clear photo of the receipt at checkout
Grocery receipts are LONG — sometimes a meter of thermal paper. Lay it flat on a clean surface, take 1-2 photos covering the whole length if needed (the AI handles multi-page well, but lay them in correct order).
Lighting matters more here than at restaurants because grocery receipts often have very small print. Daylight or normal indoor lighting works; avoid extreme angles.
- 2
Upload from the New Bill screen
New bill → upload photo(s). The OCR extracts every line item with quantity + price. For receipts with 40+ items this takes ~10 seconds.
Review the table. Items with "?" badges are the OCR's uncertainty markers — typically items with abbreviated names, foreign words, or unusual barcoded products. Edit any that matter for splitting.
- 3
Categorize the bill
Set Category to "groceries". This separates this bill from restaurants / utilities / transport in the dashboard's spending-by-category widget. After a few months you have a clear view of food spending.
For the grocery run specifically, you can also tag individual items with their per-item category (food / drink / household / personal_care) via the per-item picker — useful if you later want to filter "household supplies only" out of the mix.
- 4
Assign items to who actually consumes them
This is the longest step. For each item: tap to assign to one or more people.
Common categories: - Shared household (eggs, bread, milk, cleaning supplies) → split equally across everyone in the apartment - Person A only (their specific protein powder, their cigarettes, their cat food) → assign to A alone - Person B + C only (a snack two roommates share, but A doesn't eat) → split between just those two
The app's real-time totals at the bottom show each person's running tally as you assign — so you spot if something's off ("wait, why does A owe $200 of a $300 bill?") immediately.
- 5
Handle the bulk-pack edge case
Costco-style bulk packs (a 12-pack of paper towels, a flat of seltzer water) sometimes get rung up as ONE line at $35 instead of "12 × $2.92". For those, treat the whole line as a single shared item — split equally across everyone who uses it.
If one person is hoarding the whole pack ("those are MY seltzers"), edit the line's assignment to that person alone. The math handles either case identically.
- 6
Send Pay buttons to the others
When done, settle up via the Pay buttons. For ongoing roommate situations, batch the grocery shares with rent + utilities at quarterly settle-ups; for one-off "I covered the cookout shopping for the BBQ" situations, settle immediately.
For non-app peers, share the public link so they can see what they owe + tap Pay without signing up.
The 80/20 of grocery splits
In practice, 80% of grocery items are shared (and split equally) and 20% are individual (and assigned to one person). Don't obsess over the assignment — most receipts have a few obvious individual purchases (the protein powder, the specific brand of yogurt) and a long tail of shared stuff.
Practical shortcut: assign all items to "everyone, equally" first (one click in the wizard), then re-assign just the obviously individual items. Saves 80% of the per-item tapping for the same 95% accuracy.
For cohabiting couples / families, this often collapses entirely — most groceries are "ours", split equally is the default. Item-level becomes useful only when there's a true individual purchase someone wants tracked.
When grocery splits get political
Real-world friction in grocery splits comes from disagreements about category, not amount. Examples:
- One person buys "the expensive olive oil"; the other thinks "we'd be fine with regular oil" → resentment that the bill is higher than it needs to be. - One person buys $80 of meat; the other is vegetarian → debate over whether vegetarian roommate should subsidize meat. - One person uses 80% of the cleaning supplies; the other claims the assignment is unfair.
The math tool can't resolve these — they're social. But making the per-item breakdown visible (rather than hidden in a flat-equal split) tends to surface them faster, which is good. Disagreements happen earlier, when they're still cheap to negotiate.
Tricks for huge receipts (Costco / Carrefour Express / etc.)
Snap multiple photos. Long receipts (1m+ of thermal paper) don't need to be ONE photo. Take 2-3 photos covering the whole receipt; upload all of them; the OCR concatenates.
Use the dashboard for trends. Once a few grocery bills are categorized, check the spending-by-category widget on the dashboard (`/`). You'll spot patterns ("we're spending $700/month on groceries — is that normal for our household size?") that aren't visible from any single receipt.
For "we forgot to track 1 thing", do a correction bill. Don't go back and edit the original — just create a small correction bill for the missing item. Cleaner audit trail.
Frequently asked questions
Does the OCR handle long receipts well?▾
Yes. We've specifically tested with Costco / Carrefour / Lidl receipts up to ~80 items. Take multiple photos if the receipt is too long for one frame; the OCR concatenates. Items with "?" badges flag uncertain reads — edit before splitting.
Can I tag individual items with their per-item category?▾
Yes — open any item row in the bill detail, click the category chip, pick from the item-category list (food / drink / alcohol / dessert / service / household / personal_care / other). Useful for filtering grocery spending by sub-category later.
How do I handle returns?▾
For a return that happens after the original bill was created and split: edit the original bill, remove the returned item, save. The split recalculates. Or create a "negative" correction bill for cleaner audit trail.
What if my roommate refuses to use Split The Bill?▾
Send them a public share link to the grocery bill. They see what they owe; they tap Pay (which opens Venmo / PayPal / Revolut). No signup. The bill still gets settled, you still have the record.
Is there a fast way to assign all items to "everyone, equally" except 2-3?▾
Yes — the wizard's default is "split equally across all participants". Adjust just the items that need individual assignment. Saves time for the 80%+ of grocery runs where most items are genuinely shared.
Does it work for international groceries (different currency)?▾
Yes — multi-currency in the free tier. Lidl in Germany (EUR) when one peer is in the US (USD); they pay in either, balances reconcile. SEPA QR for EUR bank transfers; Wise / PayPal for cross-border.
Free tier covers most recipes. Pro is 100 receipts every 30 days + private invite links.


