Adding Ingredients
Ingredients are the building blocks of CostingBrik. Every recipe cost traces back to the ingredients it contains, so getting your ingredient library right is the foundation of accurate costing.
Creating an ingredient manually
To add a new ingredient:
- Navigate to CostingBrik > Ingredients.
- Click Add Ingredient.
- Fill in the required fields (see below).
- Click Save.
Required fields
| Field | Description | Example |
|---|---|---|
| Name | A clear, descriptive name for the ingredient | Semi-skimmed milk |
| Category | The group this ingredient belongs to | Dairy |
| Base unit | The smallest unit you measure this ingredient in | Litres |
Optional fields
| Field | Description | Example |
|---|---|---|
| Brand | The specific brand, if relevant | Yeo Valley |
| Notes | Any additional context | Organic only - check label |
| Allergens | Allergen flags for this ingredient | Contains: Milk |
Setting the base unit
The base unit is the unit you use when adding this ingredient to recipes. Choose the unit that makes the most practical sense for how you actually use it in the kitchen.
- Flour - kilograms (kg)
- Milk - litres (l)
- Eggs - each
- Vanilla extract - millilitres (ml)
- Butter - grams (g)
If you always weigh butter in grams when prepping, set the base unit to grams - even though you buy it in 250g blocks. Brikly handles the conversion between pack sizes and base units automatically.
Bulk import
If you have an existing ingredient list in a spreadsheet, you can import everything in one go. See the Bulk Import guide for full details on the CSV format, accepted units, and validation rules.
AI-assisted creation from invoices
The fastest way to build your ingredient library is to let Brikly create ingredients directly from your supplier invoices.
When you process an invoice, Brikly:
- Extracts each line item (product name, quantity, unit, price).
- Checks whether a matching ingredient already exists.
- For new items, creates the ingredient automatically with the correct unit and category.
- Links the ingredient to the supplier and records the price.
After processing, you will see any newly created ingredients flagged for review. You can adjust names, categories, or units before they are finalised.
Brikly uses AI to match invoice line items to existing ingredients, even when the supplier's description differs from your ingredient name. For example, "S/S Milk 2L" on an invoice will be matched to "Semi-skimmed milk" in your library. You can review and correct any matches that do not look right.
Naming ingredients - keep it generic
The single most important rule when naming ingredients is: use a generic, product-level name - not a supplier-specific description.
Your ingredient name represents the thing you use in recipes, not the specific product a particular supplier sells you. This is what allows Brikly to track multiple suppliers for the same ingredient, compare prices across them, and keep your recipe costs accurate regardless of who you buy from.
Good vs. bad naming
| Do this | Not this | Why |
|---|---|---|
| Semi-skimmed milk | Yeo Valley Semi-Skimmed Milk 2L | Brand and pack size belong on the supplier link, not the ingredient |
| Plain flour | Allinson's Plain White Flour 1.5kg | Different suppliers sell different brands - the ingredient is the same |
| Chicken breast | Fresh Chicken Breast Fillets Skinless 2.5kg | Pack size and cut detail are supplier-specific |
| Olive oil | Filippo Berio Extra Virgin Olive Oil 5L | Brand and container size vary by supplier |
| Caster sugar | Tate & Lyle Caster Sugar | You might switch brands tomorrow - the recipes stay the same |
Why this matters
When you name an ingredient generically, every supplier who sells that product links to the same ingredient record. This means:
- Price comparison works - you can see at a glance who charges the least for semi-skimmed milk, because all suppliers are linked to one "Semi-skimmed milk" entry. See Comparing Supplier Prices.
- Invoice matching is accurate - when Brikly processes an invoice that says "S/S Milk 2L" from Supplier A and "Semi Skimmed 4pt" from Supplier B, both map to the same ingredient. See Matching Ingredients.
- Recipe costs stay clean - your recipes reference "Semi-skimmed milk", and Brikly uses the preferred supplier's price. Switching suppliers updates every recipe automatically.
- Price history is complete - all price movements for that ingredient appear on one timeline, regardless of which supplier the price came from.
If you use brand- or pack-specific names instead, you end up with separate entries like "Yeo Valley Semi-Skimmed Milk 2L" and "Dairy Co Semi-Skimmed 4 Pint" - each with their own recipes, price history, and supplier links. Your costs fragment, comparisons break, and you lose visibility.
Where do brand and pack details go?
Brikly stores supplier-specific details on the supplier link, not the ingredient itself:
| Stored on the ingredient | Stored on the supplier link |
|---|---|
| Generic name (e.g. "Semi-skimmed milk") | Supplier product name (e.g. "S/S Milk 2L") |
| Base unit (e.g. litres) | Supplier product code |
| Category (e.g. Dairy) | Pack size (e.g. 2 litres) |
| Allergens | Pack price (e.g. £1.85) |
This separation is what makes the whole system work. Your recipes speak in generic terms ("500ml of semi-skimmed milk"), and Brikly translates that into the right pack sizes and prices for whichever supplier you buy from.
If you genuinely need a specific brand - say a high-end chocolate that defines your signature product - use the Brand field on the ingredient rather than putting it in the name. This keeps the name clean while still recording brand preference.
Tips for a clean ingredient library
- Keep names generic - no brands, no pack sizes, no supplier-specific descriptions. See the naming guide above.
- Be consistent with naming - decide on a convention (e.g. "Semi-skimmed milk" not "Milk, semi-skimmed") and stick with it.
- Avoid duplicates - before adding an ingredient manually, search your library first. Duplicates will skew your recipe costs.
- Use categories - assigning every ingredient to a category makes filtering and reporting much easier as your library grows.
- Add brands only when it matters - if you always use a specific brand (e.g. a particular chocolate for your signature brownie), record it in the Brand field. If any brand will do, leave it blank.
Merging duplicate ingredients
If duplicates have built up in your library, you can merge them into a single ingredient - transferring all suppliers, recipes, invoices, and price history automatically. See Merging Ingredients for the full guide.