Payment protectionDetails
- Revisions within the package are free.
- If you do not respond within 3 days of delivery, the work is accepted automatically.
The money is reserved when you pay and released only once you accept the work.

Example result
Spreadsheet template: invoice tracker for a small agency
Sheet layout — tab "Invoices"
| Column | Header | Filled by |
|---|---|---|
| A | Invoice # | You |
| B | Client | You (drop-down from tab "Clients") |
| C | Issue date | You |
| D | Amount | You |
| E | Payment terms (days) | Formula |
| F | Due date | Formula |
| G | Paid on | You (leave empty until paid) |
| H | Status | Formula |
| I | Days overdue | Formula |
Formulas (excerpt, 6 of 10)
E2 — payment terms from the client list
=IFERROR(VLOOKUP(B2, Clients!A:C, 3, FALSE), 30)
Looks up the client's terms in the "Clients" tab; if the client isn't there, uses 30 days.
F2 — due date
=IF(C2="", "", C2 + E2)
Adds the terms to the issue date. Stays empty for blank rows.
H2 — status
=IF(C2="", "", IF(G2<>"", "Paid", IF(TODAY()>F2, "Overdue", "Open")))
Paid if a payment date is entered; otherwise Overdue after the due date, else Open.
I2 — days overdue
=IF(H2="Overdue", TODAY() - F2, "")
Dashboard!B2 — total outstanding
=SUMIFS(Invoices!D:D, Invoices!H:H, "<>Paid", Invoices!C:C, "<>")
Dashboard!A5 — balance by client (one formula fills the table)
=QUERY(Invoices!B:H, "select B, sum(D) where H <> 'Paid' and B is not null group by B order by sum(D) desc label sum(D) 'Owed'", 1)
Where to paste
- Put E2, F2, H2 and I2 in row 2 of "Invoices", then drag down to row 500
- Paste the two Dashboard formulas once; they update by themselves
- Conditional formatting on H2:H500: text is "Overdue" → light red fill
Edge cases handled
- Partly paid invoice: add a row with the remaining amount and a new number like INV-041b
- Client renamed: change it only in "Clients"; the drop-down keeps rows consistent
- Excel instead of Sheets: all formulas work except QUERY; use a PivotTable on columns B, D, H instead
Check example
Invoice INV-038, client Northside Dental, issued Sep 1, terms 14 days → due Sep 15. Today Oct 20, not paid → Overdue, 35 days.
Client: a 4-person video production studio. Tool: Google Sheets. Task: "We lose track of who has paid. We need one sheet that shows overdue invoices and how much each client owes."
The client and all details are made up.
About this service
A kitchen buys flour by the sack and oil by the canister but uses grams and milliliters, and it loses weight when vegetables are peeled or meat is trimmed. We build an ingredient price list with purchase and recipe units and yield percentages, then recipe cards that cost every portion and show food cost percentage against the menu price. Sauces and doughs become sub-recipes, so a price change in one ingredient updates every dish that uses it.
What is included
- What you getFormulas, the ingredient list, recipe card and menu summary layout as CSV text and setup steps; in Premium also a script that updates prices from a pasted supplier list. Delivered as text for Excel or Google Sheets.
- Unit conversionFrom sacks and cases to grams
- Yield and trimCost after peeling and trimming
- Cost per portionFor every dish on the menu
- Food cost and priceSuggested price at your target
- Sub-recipesSauces and doughs reused in dishes
How it works
- 1BriefYou send recipes and purchase prices
- 2BuildWe set up costing sheets and formulas
- 3CostYou enter your menu and see margins
What we need from you
A few recipes with quantities, how you buy the main ingredients and at what price, your target food cost percentage and the currency.
We will ask you:
- How many dishes are on your menu?
- How do you buy the main ingredients?
- What food cost percentage do you aim for?
- Do you use sub-recipes like sauces, stocks or doughs?
Compare packages
| Packages | BasicUp to 3 costing formulas$10 | StandardIngredients and recipe cards$25 | PremiumFull menu costing with a price update script$49 |
|---|---|---|---|
| Deadline | 1 day | 2 days | 3 days |
| Revisions | 1 | 2 | 3 |
| Formulas | up to 3 | up to 10 | up to 15 |
| Costing template | No | ingredients and recipe cards | ingredients, recipes and menu summary |
| Script code | No | No | Apps Script or VBA |
| Order Basic | Order Standard | Order Premium |
Payment protection
You pay when you order, but the money is released only for accepted work.
- Fixed priceThe package price does not change after you pay.
- The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
- Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
- Free revisionsAsk for changes within your brief as many times as the package allows.
- Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
- Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
Questions and answers
Where do yield percentages come from?
From your own kitchen: weigh a product before and after prep a few times. We can start with common reference yields that you then correct.
Can it track allergens?
Yes. We add allergen columns to the ingredient list, and each recipe card shows which allergens its dish contains. Nutrition values are not calculated.
Do I get a ready file?
No. You get the formulas, the layout as CSV text and steps to set it up in your spreadsheet.