Food Cost & Profit Tracker

A private app for tracking food costs, stock and estimated profit across direct sales and food delivery. It connects ingredient purchases, recipes, orders and platform fees, helping a seller understand what each dish costs and how much money is actually left.

Food Cost & Profit Tracker - dashboard
Food Cost & Profit Tracker - dashboard

About Food Cost & Profit Tracker

I built it because my girlfriend was selling food through delivery platforms and didn’t have a clear picture of the numbers. Orders were coming in, ingredients were being bought, and the platforms were taking their cut. Figuring out which dishes and sales channels were making money was much less straightforward.

One delivery channel turned out to be particularly good at keeping her busy while losing her money. An impressive combination, really.

Once the costs became visible, she started adjusting prices. That was the reason for building the app: give her enough information to make those decisions.

The starting point is the ingredients. You record what you bought, how much you bought and what you paid. Recipes then connect those ingredients to the dishes you sell. You can enter quantities per portion or work from a batch yield, which is closer to how somebody actually cooks than calculating every ingredient separately for every order.

Each sales channel can have its own selling prices and commission rates. The same dish can therefore have very different margins depending on how it was sold, without needing several copies of its recipe.

When a sale is recorded, the app calculates its estimated margin and deducts the ingredients from stock. Purchases are tracked in batches, using the oldest available stock first. If the next batch of chicken costs more, that affects the orders using it; it doesn’t rewrite the cost of yesterday’s lunch.

The reports also account for recorded operating expenses and spoiled ingredients. Those costs are easy to overlook when you’re looking at a reassuring sales total. Missing recipes or purchase costs produce warnings, so an incomplete calculation doesn’t quietly pass itself off as a healthy profit.

There are low-stock alerts, buying lists, product and sales-channel comparisons, and a daily overview of things that need attention. Sales are entered in the app, with the channel selected for each order.

It’s built around phone use and installs as a PWA, with Thai and English interfaces. The backend uses Go and SQLite, while the interface uses React, TypeScript and Mantine.

The project grew beyond the original personal setup. I also explored a SaaS version, adding separate shop accounts, user access, plans and an admin panel. It remains a private project with support for controlled, invitation-only testing.

The most useful outcome so far is that she could see where the money was going and adjust her pricing. A phone full of delivery notifications is considerably more satisfying when the orders are worth making.

Release history

Version 2.2.2