# Cucinovo: Comprehensive AI Reference > Full product documentation for AI discoverability. For the condensed version see /llms.txt. Cucinovo is a recipe management platform for home kitchens and professional restaurant operations. It handles recipe storage, food cost calculation, meal planning, event catering, shopping list generation, and team collaboration, all within a multi-tenant SaaS architecture. --- ## Product Overview **What it is**: A web application that centralizes recipe management, ingredient cost tracking, meal planning, and purchasing workflows for anyone who cooks regularly at scale, from families planning weekly dinners to executive chefs managing multi-location restaurant groups. **Who it is for**: - Home cooks and families who want organized recipes, automatic shopping lists, and meal planning without spreadsheets - Restaurants and cafes that need precise food cost tracking, portion costing, and team collaboration - Catering businesses and event planners that must calculate ingredient needs and costs for large-scale service - Food trucks and pop-up operators managing rotating menus and variable batch sizes - Meal prep services scaling recipes across multiple portion sizes - Recipe developers and food bloggers needing reliable cost-per-portion and scaling calculations **Core promise**: From a recipe to a fully costed, aggregated shopping list in three steps, with no spreadsheets, no double-buying, no manual math. --- ## Feature Reference ### Recipe Management - Create recipes with an unlimited number of ingredients, specifying quantity and unit per ingredient - Supported units: grams (g), kilograms (kg), millilitres (ml), litres (L), pieces (pc) - Each recipe defines a portion output: quantity and unit that one "batch" of the recipe produces - Organize recipes into categories (e.g., Appetizers, Mains, Desserts, Sauces) - Add free-text notes per recipe for preparation context, sourcing notes, or technique reminders - Scale recipes by portion count; all ingredient quantities adjust automatically - Two recipe types: `recipe` (serves end guests) and `sub-recipe` (a reusable component embedded in other recipes) - Real-time cost-per-portion display calculated from current ingredient pricing ### Sub-Recipes (Component Recipes) - Mark any recipe as a sub-recipe to make it reusable across other recipes - Example: a "Carbonara Sauce" sub-recipe can be referenced in multiple pasta dishes; updating the sauce's ingredients automatically propagates cost changes to all parent recipes - Nested sub-recipes are supported: a sub-recipe can itself reference other sub-recipes - Circular dependency detection prevents infinite loops during cost calculation - Sub-recipe quantities are specified in g, ml, or pc and are scaled proportionally to the parent recipe's portion count ### Ingredient Management - Central ingredient library shared across all recipes within an organization - Each ingredient stores: name, unit price, base unit (g, ml, or pc), default display unit, supplier info (name and SKU), and free-text tags - Pricing currencies supported: 17 currencies (EUR, USD, GBP, RON, CHF, SEK, NOK, DKK, PLN, CZK, HUF, CAD, BRL, JPY, CNY, INR, AUD), set per organization - Waste percentage per ingredient line item, accounting for prep losses (peeling, trimming, cooking reduction) in cost calculations - Tags enable filtering and grouping ingredients (e.g., "dairy", "seasonal", "local supplier") - Supplier name and SKU fields enable shopping list grouping by vendor ### Food Cost Calculation - Cost is calculated as: `(quantity ÷ (1 − waste_pct / 100)) × unit_price` (waste = trim loss) - All quantities are normalized to a base unit (g or ml) before multiplication to handle mixed units correctly - Sub-recipes are expanded recursively: their ingredient costs are rolled up into the parent recipe's total - Cost-per-portion = total recipe cost ÷ output portions - Costs update in real time as ingredient prices change - Shopping lists capture a pricing snapshot at finalization time so historical costs are preserved - Supported currencies: 17 currencies (EUR, USD, GBP, RON, CHF, SEK, NOK, DKK, PLN, CZK, HUF, CAD, BRL, JPY, CNY, INR, AUD), set per organization ### Unit Conversion - Automatic conversion between kg ↔ g and L ↔ ml wherever quantities are displayed or aggregated - Conversion factors: 1 kg = 1000 g, 1 L = 1000 ml, pc has no conversion (count-based) - When aggregating ingredients across multiple recipes, quantities in the same dimension (weight or volume) are summed in the base unit then displayed in the ingredient's preferred display unit - No cross-dimension conversion (weight ↔ volume); these remain separate line items ### Smart Shopping Lists - A shopping list is a collection of recipes with specified portion counts - On generation, ingredients are aggregated across all recipes: same ingredient from multiple recipes is summed into one line - Ingredients combined from multiple recipes are flagged to show which dishes contribute - Status lifecycle: `draft` → `finalized` → `purchased` - Finalized lists capture a calculation snapshot (all ingredient quantities, costs, and supplier groups) so the list remains accurate even if ingredient prices change later - Lists can optionally include an event date for catering or meal prep scheduling - Export to CSV for use in spreadsheets or vendor ordering systems - Print view grouped by supplier for efficient purchasing runs - Loss calculations can be attached to a finalized list to record post-event waste against each recipe ### Meal Planners - Weekly meal planner assigns recipes and serving counts to each day of the week (Monday–Sunday) - Weekend inclusion is optional (toggle to plan 5-day or 7-day weeks) - Multiple meal planners can be maintained simultaneously (e.g., "Week of March 17", "Easter Menu") - Status: `draft`, `active`, `archived` - One-click shopping list generation from a meal planner aggregates all week's ingredient needs - Calculated totals (total ingredient count, estimated cost, currency) are cached and displayed on the planner card ### Event & Catering Planning - Shopping lists support an event date field, making them suitable as event-level procurement plans - Set per-recipe guest counts to auto-calculate ingredient quantities for the full event - Cost summary displays per-recipe cost and overall event subtotal - Supports complex events with many recipes at different portion scales (e.g., appetizers for 150, mains for 120, desserts for 100) - Export the aggregated ingredient list and hand off to suppliers or kitchen staff ### Waste & Loss Tracking - Waste percentage per ingredient within a recipe: enter prep loss (e.g., 15% for vegetable peeling) and cost calculation inflates the quantity accordingly - Post-service loss calculator: record unsold or discarded portions after an event and calculate the cost of that loss per recipe - Automated insights flag high-loss recipes (e.g., "Caesar Salad shows 18.7% loss; review portioning") - Enables trend analysis to improve forecasting accuracy over time - Loss data is stored in the shopping list's `lossCalculations` field for historical reporting ### Import / Export - Ingredients can be bulk-imported via CSV upload, which validates for duplicates before committing - Recipes can be imported from CSV, TSV, Excel, Word (.docx), OpenDocument (.odt), and Paprika or Mealie JSON exports, with an interactive review screen before anything is saved - Duplicate detection prevents overwriting existing ingredients with conflicting data - Shopping lists can be exported as CSV for vendor ordering or integration with accounting software - Import available on Pro plan and above for restaurant organizations ### Team Collaboration & RBAC Cucinovo uses role-based access control (RBAC) with six roles: | Role | Description | |------|-------------| | PLATFORM_ADMIN | Full access across all organizations (internal use only) | | OWNER | Full access within their own organization (create, read, update, delete everything) | | MANAGER | Full operational access including member management; cannot delete the organization | | CHEF | Full access to recipes, ingredients, categories, shopping lists; can see members but not manage them | | STAFF | Read access to recipes/ingredients/categories; full shopping list management | | VIEWER | Read-only access to all resources | Permission matrix (abbreviated): | Permission | OWNER | MANAGER | CHEF | STAFF | VIEWER | |------------|-------|---------|------|-------|--------| | recipes:create/update/delete | Yes | Yes | Yes | No | No | | ingredients:create/update/delete | Yes | Yes | Yes | No | No | | shoppingLists:create/update/delete | Yes | Yes | Yes | Yes | No | | members:invite/update/remove | Yes | Yes | No | No | No | | import:create | Yes | Yes | Yes | No | No | | reports:read | Yes | Yes | Yes | Yes | Yes | Custom role permissions: organization owners can override the default permission set for MANAGER, CHEF, STAFF, and VIEWER roles to tailor access to their operational needs. Team members are invited by email. Invitations are token-based with expiry. Members can be removed at any time. ### Multi-Tenancy & Organization Types Cucinovo supports two organization types: 1. **Household**: A single household or family unit. One location. Plans: Free (forever) and Plus (€9/month). 2. **Restaurant**: A professional food service operation with one or more locations. Plans: Free (14-day trial), Starter (€29/month), Pro (€79/month). Each organization has: - A unique URL slug (e.g., `cucinovo.com/my-restaurant`) - Currency setting (any of the 17 supported currencies) - Timezone setting - Optional branding (logo, primary/secondary color overrides) - Feature flags (suppliers, sub-recipes, nutritional info) - Billing status: `active`, `trial`, `past_due`, `cancelled` --- ## Use Case Scenarios ### Restaurant Chain A restaurant uses Cucinovo Pro for its single location. The head chef manages the recipe library while kitchen staff generate daily shopping lists from that week's menu. The owner reviews cost-per-portion trends to decide which dishes to keep, reprice, or remove. If the business expands to additional locations, each extra site can be added via the Extra Location add-on (€29/month each), with each location's data fully isolated. ### Home Cook / Family A family of four uses the household Free plan to store their go-to recipes. Every Sunday they open the Meal Planner, pick five weeknight dinners, and hit "Generate Shopping List." One click produces a consolidated grocery list with quantities and estimated cost. They upgraded to Plus (€9/month) to share access with their teenage daughter who cooks on weekends and to use the meal planner and cost-per-portion tracking. ### Event Caterer A catering company plans a wedding reception for 150 guests. They create a shopping list, assign three recipes at 150 portions each, and finalize it with the event date. Cucinovo generates the full ingredient procurement list grouped by supplier. After the event they log the waste per recipe to refine their standard waste percentages for future events. ### Meal Prep Service A meal prep startup creates sub-recipes for sauces and bases (marinara, béchamel, stock) and references them in twelve weekly recipes. When ingredient prices change they update once in the ingredient library; all recipe costs recalculate immediately. Weekly they generate a shopping list for the full week's production run across all recipes. ### Food Truck A food truck operator rotates a menu of eight items weekly. Each morning they set the day's recipe selection and desired portions in a shopping list, generate it, and head to the market. The mobile-responsive interface works on phone. Cost tracking helps price menu items to maintain target food cost percentage. ### Recipe Developer / Food Blogger A recipe developer uses Cucinovo to track production costs for recipe testing. Each iteration of a recipe captures an accurate cost-per-portion. When pitching sponsored content, they can provide verified cost data to brand partners. The sub-recipe feature lets them reuse standard components (compound butters, vinaigrettes) across multiple recipe tests. --- ## Data Models ### Recipe ``` { orgId: string // Organization this recipe belongs to name: string // Recipe name type: "recipe" | "sub-recipe" // Recipe vs. reusable component categoryId: ObjectId // Reference to Category portion: { outputQuantity: number // How much this recipe produces outputUnit: "g" | "ml" | "pc" // Unit of the output } notes?: string // Free-text preparation notes items: [ // Direct ingredient lines { ingredientId: ObjectId quantity: number unit: "g" | "kg" | "ml" | "L" | "pc" wastePct?: number // Prep loss percentage (0–100) } ] subRecipes: [ // Embedded sub-recipe references { recipeId: string quantity: number unit: "g" | "ml" | "pc" } ] } ``` ### Ingredient ``` { orgId: string name: string pricing: { currency: string // one of 17 ISO codes: EUR, USD, GBP, RON, CHF, SEK, NOK, DKK, PLN, CZK, HUF, CAD, BRL, JPY, CNY, INR, AUD unitPrice: number // Price per base unit baseUnit: "g" | "ml" | "pc" // Pricing denominator } defaultDisplayUnit: "kg" | "g" | "L" | "ml" | "pc" supplier?: { name?: string sku?: string } tags?: string[] } ``` ### ShoppingList ``` { orgId: string name: string eventDate?: Date // Optional event date items: [ { recipeId: ObjectId, portions: number } ] status: "draft" | "finalized" | "purchased" pricingSnapshot?: { currency, capturedAt } calculationSnapshot?: { // Frozen at finalization ingredients: [], supplierGroups: {}, recipeBreakdowns: [], currency: string, subtotal: number, capturedAt: Date } lossCalculations?: { // Post-event waste data results: [], capturedAt: Date } } ``` ### MealPlanner ``` { orgId: string name: string weekStartDate?: Date days: [ { dayOfWeek: "monday" | ... | "sunday" recipes: [{ recipeId: ObjectId, servings: number }] } ] includeWeekend: boolean status: "draft" | "active" | "archived" calculatedTotals?: { totalItems: number, estimatedCost: number, currency: string, lastCalculatedAt: Date } } ``` ### Organization ``` { name: string slug: string // URL-safe identifier type: "household" | "restaurant" ownerId: ObjectId billing: { plan: "free" | "plus" | "starter" | "pro" status: "active" | "trial" | "past_due" | "cancelled" trialStartedAt?: Date trialEndsAt?: Date addOns?: { extraLocations?: number } } settings: { currency: string // one of 17 ISO codes: EUR, USD, GBP, RON, CHF, SEK, NOK, DKK, PLN, CZK, HUF, CAD, BRL, JPY, CNY, INR, AUD timezone: string // e.g., "Europe/Bucharest" features: { enableSuppliers: boolean enableSubRecipes: boolean enableNutritionalInfo: boolean } } customRolePermissions?: { // Override default role permissions MANAGER?: string[] CHEF?: string[] STAFF?: string[] VIEWER?: string[] } } ``` ### Category Categories are organization-scoped labels that group recipes and ingredients. Each category has a `type` field to distinguish recipe categories from ingredient categories. --- ## Pricing ### Household Plans | Feature | Free (forever) | Plus (€9/month) | |---------|---------------|-----------------| | Recipes | Unlimited | Unlimited | | Ingredients | Unlimited | Unlimited | | Sub-recipes | Yes | Yes | | Shopping lists | Yes | Yes | | Cost totals | Yes | Yes | | Meal planner | No | Yes | | Cost per portion | No | Yes | | Loss calculator | No | Yes | | Team members | 1 | Up to 5 | ### Restaurant Plans | Feature | Starter (€29/month) | Pro (€79/month) | |---------|---------------------|-----------------| | Recipes & ingredients | Unlimited | Unlimited | | Sub-recipes & categories | Yes | Yes | | Shopping lists | Yes | Yes | | Recipe cost breakdown | Yes | Yes | | Cost per portion | Yes | Yes | | Purchase orders | No | Yes | | Supplier tracking | No | Yes | | Shopping by supplier | No | Yes | | Loss calculator | No | Yes | | CSV Import / Export | No | Yes | | Locations | 1 | 1 | | Team members | Unlimited | Unlimited | **Pro+ Add-on**: +€29/month per additional location beyond the 1 included in each restaurant plan. --- ## Competitive Positioning Cucinovo is designed for operators who need accurate cost tracking without the complexity or cost of enterprise kitchen management platforms. ### vs. Google Sheets Google Sheets works for a handful of recipes. Once you need cost tracking, portion scaling, or team access control, you'll spend more time maintaining the spreadsheet than cooking. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-spreadsheets ### vs. Paprika 3 If you only need to save and organize recipes for yourself, Paprika is a solid one-time purchase. If you want cost tracking, family sharing, or plan to scale to a kitchen team, Cucinovo is the better fit. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-paprika ### vs. Meez Choose Meez if recipe training and pre-calculated yields are your priority. Choose Cucinovo if you need procurement, event planning, and lower cost of entry. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-meez ### vs. Meez As of August 2026, Meez's published prices run from $19/mo Starter (billed annually) to $179/mo Premium, plus a custom Enterprise tier and per-location add-ons ($60/mo per additional Recipe Viewer location, $179 to $199/mo per additional cost-feed location); none of it is priced or worded for a hotel or resort group. Cucinovo publishes the same €29/mo Starter and €79/mo Pro price whether an outlet is standalone or one of nine in a group, and quotes the corporate layer across every resort and outlet against your own estate contract, typically within one business day. USD and EUR figures are not a like for like currency comparison. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-meez-for-hotel-groups ### vs. Apicbase If you're running 10+ locations or need AI-driven procurement and sustainability reporting, Apicbase is built for that. If you're a single-location restaurant or small chain that needs recipe costing, procurement, and event planning without enterprise complexity, Cucinovo is the better fit. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-apicbase ### vs. MarketMan If your primary pain is inventory control and POS-integrated purchasing, MarketMan is built for that. If your primary pain is recipe costing, team recipe management, and event planning, Cucinovo does more for less. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-marketman ### vs. WISK Choose WISK if bar inventory and beverage variance tracking are your primary concern. Choose Cucinovo if you need recipe management, food costing, and procurement for a kitchen-focused operation. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-wisk ### vs. CostBrain Choose CostBrain if you only need a quick recipe cost calculator. Choose Cucinovo if you need costing as part of a larger recipe management and procurement workflow. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-costbrain ### vs. Notion Use Notion if you want recipes in the same workspace as everything else and don't need food costing. Use Cucinovo if recipes are your business and you need cost tracking, procurement, and kitchen-specific workflows. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-notion ### vs. Recipe Costing Spreadsheets Keep the template if you have a single menu, fewer than 20 recipes, and one person maintaining it. Switch to Cucinovo when prices change often, recipes nest into sub-recipes, more than one person needs access, or you need shopping lists and procurement. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-recipe-costing-spreadsheet ### vs. Restaurant365 Choose Restaurant365 if you need a single system for accounting, payroll, scheduling, and inventory across many locations. Choose Cucinovo if you want focused recipe costing and procurement without ERP cost and complexity. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-restaurant365 ### vs. MarginEdge Choose MarginEdge if automating invoice data entry, bill pay, and accounting sync is the priority. Choose Cucinovo if you want focused recipe costing and procurement at a lower price, especially outside the US. Detailed comparison: https://cucinovo.com/compare/cucinovo-vs-marginedge ### Alternative Pages Dedicated switcher guides for kitchens evaluating a move away from a specific tool: - Meez alternative: https://cucinovo.com/alternatives/meez - MarketMan alternative: https://cucinovo.com/alternatives/marketman - Apicbase alternative: https://cucinovo.com/alternatives/apicbase - ReciProfity alternative: https://cucinovo.com/alternatives/reciprofity - MarginEdge alternative: https://cucinovo.com/alternatives/marginedge ### Regional Pages - Recipe software for Lithuania: https://cucinovo.com/recipe-software/lithuania - Recipe software for Spain: https://cucinovo.com/recipe-software/spain - Recipe software for France: https://cucinovo.com/recipe-software/france ### Differentiation Summary - **Dual audience**: serves home cooks and professional restaurants on the same platform, with pricing and feature sets tailored to each - **Sub-recipe recursion**: nested sub-recipes with accurate cost rollup is uncommon in this price segment - **Shopping list intelligence**: automatic ingredient aggregation with unit conversion and supplier grouping - **Loss tracking**: waste percentage per ingredient line plus post-service loss reporting - **Transparent pricing**: free tier available forever (households) and 14-day full-feature trial (restaurants) --- ## Feature Pages Dedicated pages for each core Cucinovo capability. Full list: https://cucinovo.com/features - **Recipe Costing**: Calculate food cost per portion automatically. Ingredient prices update in real time across all recipes. Free for home cooks, 14-day trial for restaurants. https://cucinovo.com/features/recipe-costing - **Smart Shopping Lists**: Generate shopping lists from recipes automatically. Quantities aggregate across recipes, items group by supplier. Reduce waste and save time on purchasing. https://cucinovo.com/features/smart-shopping-lists - **Meal Planning**: Plan meals for the week from your recipe collection. Auto-generate shopping lists from your plan. Free for home cooks, 14-day trial for restaurants. https://cucinovo.com/features/meal-planning - **Team Collaboration**: Manage your kitchen team with 6 built-in roles, email invitations, and granular permissions. Keep recipes secure while giving your team the access they need. https://cucinovo.com/features/team-collaboration - **Sub-Recipes**: Create reusable sub-recipes for sauces, doughs, and stocks. Costs roll up automatically through nested levels. Circular dependency detection built in. https://cucinovo.com/features/sub-recipes - **Food Waste Tracking**: Track food waste from prep losses to unsold portions. See waste percentage per recipe, calculate loss costs, and reduce waste with data-driven decisions. https://cucinovo.com/features/food-waste-tracking - **Event Catering**: Plan catering events with guest counts and menus that auto-scale. Generate prep lists and shopping lists from events. Built for restaurants and caterers. https://cucinovo.com/features/event-catering - **CSV Import & Export**: Import recipes and ingredients from CSV files. Export data to spreadsheets for accounting and reporting. Migrate from spreadsheets in minutes, not days. https://cucinovo.com/features/csv-import-export - **Multi-Currency Recipe Costing**: Set your organization's currency from 17 supported options. Recipe costs, food cost percent, and menu prices calculate in it automatically, outlet by outlet. https://cucinovo.com/features/multi-currency-recipe-costing - **Recipe Migration**: Move your recipes into Cucinovo from spreadsheets, Word, OpenDocument, Paprika, Mealie, or a recipe URL. Review every recipe on screen before anything is saved. https://cucinovo.com/features/import-recipes-from-any-app - **Halal & Dietary Flags**: Track contains-alcohol, contains-pork, and other dietary flags at the ingredient level, rolling up automatically through every recipe and sub-recipe. Cucinovo never certifies a dish as halal. https://cucinovo.com/features/halal-and-dietary-flags --- ## Free Tools Interactive calculators available at https://cucinovo.com/tools, no sign-up required. - **Food Cost Calculator**: Enter ingredients with costs, quantities, units, and waste percentages. Calculates food cost percentage, gross margin, and recommended selling price. https://cucinovo.com/tools/food-cost-calculator - **Recipe Scaler**: Scale any recipe up or down. Enter original and desired servings, add ingredients with units. Smart unit conversion (e.g., 1500g to 1.5kg). https://cucinovo.com/tools/recipe-scaler - **Yield Calculator**: Calculate yield percentage, edible portion weight, and true cost per usable unit after accounting for trim waste. Visual proportion bar. https://cucinovo.com/tools/yield-calculator - **Prime Cost Calculator**: Enter COGS, labor cost, and sales to calculate prime cost and prime cost percentage against the healthy 55-65% benchmark band. https://cucinovo.com/tools/prime-cost-calculator - **Menu Price Calculator**: Turn plate cost and a target food cost percentage into a recommended menu price with contribution margin, gross margin, and psychological pricing suggestions. https://cucinovo.com/tools/menu-price-calculator --- ## Culinary Glossary Cucinovo maintains a culinary glossary with encyclopedic definitions of essential kitchen and food service terms. Full glossary: https://cucinovo.com/glossary - **Food Cost Percentage**: Food cost percentage is the ratio of a dish's total ingredient cost to its menu selling price, expressed as a percentage. It is the primary metric restaurants use to measure recipe profitability and set menu prices. https://cucinovo.com/glossary/food-cost-percentage - **Mise en Place**: Mise en place (French: "putting in place") is the practice of preparing, measuring, and organizing all ingredients and equipment before cooking begins. It is a foundational principle of professional kitchen workflow. https://cucinovo.com/glossary/mise-en-place - **Yield Percentage**: Yield percentage is the ratio of the usable (edible) portion of an ingredient to the total amount purchased, expressed as a percentage. It quantifies how much raw product is lost to trimming, peeling, deboning, or cooking shrinkage. https://cucinovo.com/glossary/yield-percentage - **Batch Cooking**: Batch cooking is the practice of preparing large quantities of a dish or component in a single production run, then holding, portioning, or storing the output for service over an extended period. It is a core efficiency technique in commercial kitchens and meal prep workflows. https://cucinovo.com/glossary/batch-cooking - **Recipe Standardization**: Recipe standardization is the process of documenting a recipe with precise ingredient quantities, preparation methods, cooking times, and expected yields so that it produces a consistent result every time, regardless of who prepares it. It is the foundation of quality control and cost management in food service operations. https://cucinovo.com/glossary/recipe-standardization - **Cost of Goods Sold (COGS)**: Cost of Goods Sold (COGS) is the total cost of all food and beverage ingredients consumed during a specific period. It represents the direct material cost of producing the dishes a restaurant sells. https://cucinovo.com/glossary/cogs - **Menu Engineering**: Menu engineering is the systematic analysis of a menu's items based on their profitability and popularity, used to optimize menu design, pricing, and item placement. It classifies every dish into one of four categories to guide strategic decisions. https://cucinovo.com/glossary/menu-engineering - **Portion Control**: Portion control is the practice of serving consistent, pre-determined quantities of each ingredient and finished dish to ensure cost predictability, food quality consistency, and customer satisfaction across every plate that leaves the kitchen. https://cucinovo.com/glossary/portion-control - **Par Level**: A par level is the minimum quantity of an ingredient or supply item that a restaurant must have on hand at any given time. It is the reorder threshold that ensures the kitchen never runs out of stock between deliveries. https://cucinovo.com/glossary/par-level - **FIFO (First In, First Out)**: FIFO is an inventory rotation method where the oldest stock (first in) is used or sold before newer stock (first out). In restaurant kitchens, it ensures ingredients are consumed in the order they were received to minimize spoilage and waste. https://cucinovo.com/glossary/fifo - **Plate Cost**: Plate cost is the total cost of all ingredients required to produce one finished, plated portion of a dish. It includes every component (protein, starch, vegetables, sauces, garnishes, and condiments) that appears on the plate when it reaches the guest. https://cucinovo.com/glossary/plate-cost - **Edible Portion**: Edible portion (EP) is the usable amount of an ingredient that remains after all trimming, peeling, deboning, and preparation waste has been removed. Measure EP weight against as-purchased (AP) weight to find yield; use that yield separately to calculate edible portion cost. https://cucinovo.com/glossary/edible-portion - **Contribution Margin**: Contribution margin is the amount of money remaining from a dish's selling price after subtracting its food cost. It represents the per-plate contribution toward covering labor, overhead, and profit. https://cucinovo.com/glossary/contribution-margin - **Stock Take (Inventory Count)**: A stock take is the systematic physical counting and valuation of all food, beverage, and supply inventory held by a restaurant at a specific point in time. It is the foundation for calculating actual food cost and identifying variances between theoretical and real consumption. https://cucinovo.com/glossary/stock-take - **Recipe Yield**: Recipe yield is the total quantity of finished product that a recipe produces, expressed as a number of portions, a total weight, or a total volume. It is the bridge between a recipe's ingredient list and the number of servings a kitchen can expect from one batch. https://cucinovo.com/glossary/recipe-yield - **Food Cost Variance**: Food cost variance is the difference between the theoretical (expected) food cost and the actual food cost incurred over a given period. A positive variance means the kitchen spent more than it should have; a negative variance indicates spending came in under target. https://cucinovo.com/glossary/food-cost-variance - **Theoretical Food Cost**: Theoretical food cost is the cost a restaurant should have incurred based on the exact recipes and portions sold during a given period. It assumes zero waste, perfect portioning, and no theft, representing the ideal cost baseline against which actual performance is measured. https://cucinovo.com/glossary/theoretical-food-cost - **Prime Cost**: Prime cost is the sum of total food and beverage cost plus total labor cost, including wages, salaries, benefits, and payroll taxes. It represents the two largest controllable expenses in a restaurant and is the most important profitability metric for operators. https://cucinovo.com/glossary/prime-cost - **Break-Even Point**: The break-even point is the level of sales revenue at which a restaurant's total income exactly equals its total costs, resulting in zero profit and zero loss. Any sales above this point generate profit; any sales below it mean the restaurant is losing money. https://cucinovo.com/glossary/break-even-point - **Recipe Conversion Factor**: A recipe conversion factor is the multiplier used to scale a recipe from its original yield to a desired yield. It is calculated by dividing the desired yield by the original yield, then applying that factor to every ingredient quantity in the recipe. https://cucinovo.com/glossary/recipe-conversion-factor - **As-Purchased (AP)**: As-purchased (AP) refers to the weight, volume, or quantity of an ingredient in the exact form it is received from the supplier, before any trimming, peeling, cleaning, or preparation. It is the starting point for all yield and cost calculations in professional kitchens. https://cucinovo.com/glossary/as-purchased - **Edible Portion Cost (EP Cost)**: Edible portion cost (EP cost) is the true cost per unit of usable ingredient after accounting for trim waste, peeling, butchering, or other preparation losses. It is calculated by dividing the as-purchased cost by the yield percentage. https://cucinovo.com/glossary/ep-cost - **Cross-Utilization**: Cross-utilization is the practice of using one ingredient or prep item across multiple dishes and recipes to reduce waste, simplify inventory, and lower overall food costs. A well-cross-utilized menu maximizes the use of every ingredient purchased. https://cucinovo.com/glossary/cross-utilization - **KDS (Kitchen Display System)**: A kitchen display system (KDS) is a digital screen mounted in the kitchen that replaces traditional paper ticket printers, displaying incoming orders in real time with color-coded timing, course sequencing, and automatic routing to the appropriate station. https://cucinovo.com/glossary/kds - **Sous Vide**: Sous vide (French for 'under vacuum') is a cooking technique in which food is vacuum-sealed in a plastic pouch and cooked in a precisely temperature-controlled water bath for an extended period. It produces highly consistent results by eliminating the temperature guesswork of traditional cooking methods. https://cucinovo.com/glossary/sous-vide --- ## Blog Articles Cucinovo publishes practical guides on recipe management, food costing, and kitchen operations. Full blog: https://cucinovo.com/blog ### For Restaurants - **Restaurant Food Cost Formula: How to Calculate & Reduce It** (2026-05-07). The food cost formula every restaurant needs: (Ingredient Cost / Selling Price) x 100. Learn to calculate, benchmark, and reduce your food cost percentage. https://cucinovo.com/blog/restaurant-food-cost-formula - **Recipe Standardization: Why Every Restaurant Needs It** (2026-05-07). A standardized recipe defines exact ingredients, quantities, prep methods, and plating, so every cook produces the same dish every time. Here's how to create one. https://cucinovo.com/blog/recipe-standardization-guide - **How to Create a Prep List That Actually Works** (2026-05-07). A prep list tells your kitchen team exactly what to prepare and how much. Learn how to build effective prep lists that reduce waste and save time. https://cucinovo.com/blog/how-to-create-prep-list - **Restaurant Menu Pricing: How to Price for Profit** (2026-05-11). Master restaurant menu pricing with 4 methods: food cost markup, competition, value, and psychological pricing. Includes the menu engineering matrix. https://cucinovo.com/blog/restaurant-menu-pricing-strategy - **Food Cost Spreadsheet Template: Free Download & Guide** (2026-05-12). Build a food cost tracking spreadsheet with the right columns, formulas, and structure. Free template download plus a guide to when spreadsheets stop being enough. https://cucinovo.com/blog/food-cost-spreadsheet-template - **Restaurant Inventory Management: The Basics That Save Money** (2026-05-12). Learn FIFO, par levels, stock takes, and waste tracking: the four inventory management basics that reduce food cost and prevent spoilage in any restaurant. https://cucinovo.com/blog/restaurant-inventory-management-basics - **Restaurant Recipe Card Template: What to Include & Why** (2026-05-12). The complete guide to professional recipe cards for restaurants. Covers required fields, digital vs paper, standardization benefits, and a free template structure. https://cucinovo.com/blog/restaurant-recipe-card-template - **Food Cost Variance Analysis: Find Lost Money** (2026-05-12). Calculate food cost variance (theoretical vs actual), find causes like waste, theft & portion creep, and fix them. https://cucinovo.com/blog/food-cost-variance-analysis - **Food Cost and Prime Cost Benchmarks by Restaurant Type** (2026-05-12). Compare food-cost and prime-cost estimates for nine restaurant types. Understand the ranges, their sources, and how to calculate your own percentage. https://cucinovo.com/blog/food-cost-percentage-by-restaurant-type - **Catering Food Cost Planning: Budget Any Event with Confidence** (2026-05-12). Learn how to estimate food costs for catered events: per-head budgets, recipe scaling, waste contingency, and post-event analysis. Includes formulas and worked examples. https://cucinovo.com/blog/catering-food-cost-planning - **How to Price a Catering Menu: From Food Cost to Final Quote** (2026-05-12). Price catering menus with formulas for food cost, labor, overhead & margin: buffet vs plated, seasonal pricing, and pro quotes. https://cucinovo.com/blog/how-to-price-catering-menu - **Best Meez Alternatives in 2026** (2026-07-02). Compare 5 Meez alternatives for recipe management and food costing: Cucinovo, Apicbase, MarketMan, WISK, and spreadsheets. Honest pros, cons, and pricing. https://cucinovo.com/blog/meez-alternatives - **Best MarketMan Alternatives in 2026** (2026-07-02). Compare 5 MarketMan alternatives for recipe costing and procurement: Cucinovo, Apicbase, MarginEdge, Restaurant365, and spreadsheets. Honest pros, cons, and pricing. https://cucinovo.com/blog/marketman-alternatives - **Best Apicbase Alternatives in 2026** (2026-07-02). Compare 5 Apicbase alternatives for recipe costing and operations: Cucinovo, MarketMan, MarginEdge, Restaurant365, and spreadsheets. Honest pros, cons, and pricing. https://cucinovo.com/blog/apicbase-alternatives - **Best Craftable Alternatives in 2026** (2026-08-15). Compare 5 Craftable alternatives for recipe costing and hospitality back-office management: Cucinovo, Apicbase, MarketMan, BirchStreet, and spreadsheets. Honest pros, cons, and pricing. https://cucinovo.com/blog/craftable-alternatives - **Best BirchStreet Alternatives in 2026** (2026-08-15). Compare 5 BirchStreet alternatives for hotel and resort recipe costing and procurement: Cucinovo, Apicbase, Craftable, Restaurant365, and spreadsheets. Honest pros, cons, and pricing. https://cucinovo.com/blog/birchstreet-alternatives ### For Home Cooks - **How to Track Food Costs at Home (And Why You Should)** (2026-05-07). The average EU household spends €500-700/month on food. Track your per-meal cost with this simple method and find where your budget actually goes. https://cucinovo.com/blog/track-food-costs-at-home - **Meal Planning for Families: A Complete Guide** (2026-05-07). A practical meal planning system for families of 2-6. Weekly template, batch cooking strategy, and how to handle picky eaters without cooking 3 dinners. https://cucinovo.com/blog/meal-planning-for-families - **How to Batch Cook for the Week: A Practical Guide** (2026-05-12). Learn how to batch cook for the week with a practical system: choose recipes, plan your prep day, store and reheat safely, and scale for any family size. https://cucinovo.com/blog/how-to-batch-cook-for-the-week - **Weekly Meal Planning Template: Plan & Shop Smarter** (2026-05-12). A practical weekly meal planning template with scheduling tips, shopping list integration, and budget tracking. Free downloadable framework for families and individuals. https://cucinovo.com/blog/weekly-meal-planning-template - **How to Organize Recipes Digitally** (2026-05-12). Stop losing recipes across bookmarks, screenshots, and scraps of paper. Learn a step-by-step system to organize, tag, search, and share your recipe collection digitally. https://cucinovo.com/blog/how-to-organize-recipes-digitally - **Grocery Budget Calculator: How to Plan and Track Food Spending** (2026-05-12). Set a realistic grocery budget, track spending by category, reduce waste, and save an estimated 20-30% on food costs with meal planning and smart shopping. https://cucinovo.com/blog/grocery-budget-calculator-guide ### Cross-Audience - **Food Waste: The Hidden Cost in Every Kitchen** (2026-05-07). The average restaurant wastes 4-10% of purchased food. The average household throws away €1,300/year. Here's where the waste happens and how to measure it. https://cucinovo.com/blog/food-waste-hidden-cost - **How to Scale Any Recipe Up or Down (Without Ruining It)** (2026-05-07). Multiply or divide ingredients by the scaling factor, but not everything scales linearly. Here's what to adjust and what to leave alone when scaling recipes. https://cucinovo.com/blog/how-to-scale-recipes - **Shopping List vs. Grocery List: What's the Difference?** (2026-05-07). A grocery list is what you need to buy. A shopping list is what you need to buy, organized by what you're cooking and why. Here's why the distinction matters. https://cucinovo.com/blog/shopping-list-vs-grocery-list - **How to Calculate Food Cost Percentage: The Complete Guide** (2026-05-11). Learn to calculate food cost percentage with formulas, worked examples, benchmarks by restaurant type, and 7 strategies to reduce it. https://cucinovo.com/blog/how-to-calculate-food-cost-percentage - **How to Calculate Recipe Cost, Cost per Portion and Menu Price** (2026-05-11). Calculate recipe cost in six steps, follow a worked ingredient-cost example, and set a menu price. Includes yield adjustments and cost-per-portion formulas. https://cucinovo.com/blog/recipe-costing-step-by-step - **How to Reduce Food Waste in Your Restaurant: 10 Proven Strategies** (2026-05-11). Cut restaurant food waste with 10 proven strategies: FIFO, prep lists, portion control, cross-utilization, waste tracking, and more. Includes ROI calculation. https://cucinovo.com/blog/reduce-food-waste-restaurant - **Best Recipe Management Software in 2026: Compared** (2026-05-11). Compare the best recipe management software in 2026: Cucinovo, meez, Apicbase, MarketMan, Paprika, and Google Sheets. Features, pricing, and verdicts. https://cucinovo.com/blog/best-recipe-management-software-2026 - **The Complete Guide to Recipe Management** (2026-05-12). Learn what recipe management is, why it matters, and how to build a system that covers standardization, scaling, costing, and team sharing, for restaurants and home cooks. https://cucinovo.com/blog/complete-guide-recipe-management --- ## API Capabilities Cucinovo exposes a RESTful JSON API used by its own frontend. The API follows these conventions: - Base URL: `https://cucinovo.com/api` - Authentication: JWT session cookies (`sid` + `refresh` tokens). Sessions are created via `POST /api/auth/login` - CSRF protection: all state-changing requests (POST, PUT, PATCH, DELETE) require a valid `x-csrf-token` header matching a `csrf-token` cookie - Organization scoping: resources are scoped to the authenticated user's organization membership - Standard HTTP status codes: 200 OK, 201 Created, 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict Key endpoint groups: | Endpoint group | Description | |----------------|-------------| | `POST /api/auth/login` | Create a session | | `POST /api/auth/register` | Register a new user and organization | | `GET /api/auth/me` | Get current session user | | `GET/POST /api/restaurants` | List or create organizations | | `GET/PUT/DELETE /api/restaurants/[slug]` | Manage a specific organization | | `GET/POST /api/restaurants/[slug]/recipes` | List or create recipes | | `GET/PUT/DELETE /api/restaurants/[slug]/recipes/[id]` | Manage a recipe | | `GET /api/restaurants/[slug]/recipes/[id]/cost` | Calculate cost for a recipe | | `GET/POST /api/restaurants/[slug]/ingredients` | Manage ingredients | | `GET /api/restaurants/[slug]/ingredients/export` | Export ingredients as CSV | | `POST /api/restaurants/[slug]/ingredients/import` | Bulk import ingredients | | `POST /api/restaurants/[slug]/ingredients/import/check-duplicates` | Pre-import duplicate check | | `GET/POST /api/restaurants/[slug]/categories` | Manage categories | | `GET/POST /api/restaurants/[slug]/shopping-lists` | Manage shopping lists | | `GET/POST /api/restaurants/[slug]/meal-planners` | Manage meal planners | | `POST /api/restaurants/[slug]/meal-planners/[id]/create-shopping-list` | Generate shopping list from planner | | `GET /api/health` | Health check (unauthenticated) | | `GET /api/users/me/export` | GDPR data export | | `DELETE /api/users/me` | GDPR account deletion | --- ## Technical Architecture | Layer | Technology | |-------|-----------| | Framework | Next.js 14 (App Router) | | Language | TypeScript (strict mode) | | UI | React 18, Tailwind CSS, shadcn/ui (Radix UI primitives) | | Forms | react-hook-form + zod validation | | Database | MongoDB with Mongoose ODM | | Authentication | JWT-based session cookies (custom implementation) | | Authorization | Role-based access control (RBAC) implemented in `lib/rbac.ts` | | Hosting | Hetzner CX22 (Helsinki) + Docker + Caddy | | Security | CSRF token protection, CSP with per-request nonces, bcrypt password hashing, HSTS | **Multi-tenancy model**: Each organization has a unique slug. All data models carry an `orgId` field. API routes validate organization membership before any data access. Restaurant-level isolation is enforced via `lib/restaurant-auth.ts` and `lib/restaurant-api-auth.ts`. **Cost calculation engine** (`lib/cost.ts`): A pure TypeScript library that: 1. Scales ingredient quantities by portion count 2. Applies waste percentage adjustments 3. Normalizes to base units (g, ml, pc) via `lib/units.ts` 4. Recursively resolves sub-recipes (with circular dependency detection) 5. Aggregates into a flat `IngredientTotal[]` with `estimatedCost` per ingredient --- ## Security Features - **CSRF protection**: JWT-signed CSRF tokens with 4-hour expiry. Required on all state-changing API requests. Tokens are generated per-session and validated server-side. - **CSP (Content Security Policy)**: Nonce-based CSP generated per request in middleware. Prevents XSS by restricting script sources to nonce-carrying scripts only. - **Password hashing**: bcrypt with per-user salts. - **HSTS**: HTTP Strict Transport Security enforced in production. - **RBAC**: All API routes enforce role-based permissions. Attempting a forbidden action returns 403. - **Input validation**: All API inputs are validated with zod schemas before any database operation. - **Parameterized queries**: Mongoose ODM prevents NoSQL injection by default. - **Session management**: Short-lived access tokens (JWT `sid`) with longer-lived refresh tokens. Refresh tokens are rotated on use. - **GDPR compliance**: Users can export all their data (`GET /api/users/me/export`) or permanently delete their account (`DELETE /api/users/me`). --- ## Frequently Asked Questions **Q: Is there a free plan?** Yes. Households get a free plan forever with unlimited recipes and ingredients. Restaurants get a 14-day free trial with full Pro feature access, then must choose Starter or Pro. **Q: Do I need a credit card to start?** No. The free household plan and the restaurant trial both start without a credit card. **Q: Can I use Cucinovo for both my home and my restaurant?** Yes. You can create separate organizations (one household and one restaurant) under the same user account. **Q: How does sub-recipe cost calculation work?** When a recipe includes a sub-recipe (e.g., "Carbonara Sauce"), Cucinovo calculates how many portions of the sub-recipe are needed for the requested recipe portions, then expands the sub-recipe's ingredients proportionally and adds them to the parent recipe's ingredient totals. This is recursive: sub-recipes can themselves include other sub-recipes. **Q: What currencies are supported?** Cucinovo supports 17 currencies: EUR, USD, GBP, RON, CHF, SEK, NOK, DKK, PLN, CZK, HUF, CAD, BRL, JPY, CNY, INR, AUD. The currency is set per organization and applies to all ingredient pricing and cost calculations within that organization. **Q: Can I import my existing ingredient list?** Yes. Cucinovo supports CSV bulk import for ingredients on the Pro plan, and recipe import from CSV, TSV, Excel, Word (.docx), OpenDocument (.odt), and Paprika or Mealie JSON exports. A duplicate-check step runs before import to prevent data conflicts. **Q: Can I export my shopping lists?** Yes. Shopping lists can be exported as CSV. The export includes aggregated ingredient quantities, costs, and supplier groupings. **Q: What happens when ingredient prices change?** Active recipes recalculate in real time. Shopping lists that have been finalized retain a pricing snapshot taken at finalization time, so historical lists remain accurate even after ingredient prices are updated. **Q: How does the waste percentage work?** Each ingredient line in a recipe can have a `wastePct` value (0 to below 100), read as trim loss. When calculating cost, the ingredient quantity is divided by `(1 − wastePct / 100)` before applying the unit price. For example, if 1 kg of chicken breast costs €10 and you set 20% trim waste, the costed quantity becomes 1.25 kg at €12.50, matching the AP/EP convention taught by the yield calculator. **Q: Can multiple people edit recipes at the same time?** Cucinovo supports team collaboration with role-based access. Concurrent editing is not locked: last-write wins. For most kitchen environments this is not an issue since recipes are typically managed by one or two people. **Q: How many locations can I have?** Both Starter and Pro restaurant plans include 1 location. Additional locations are available on the Pro plan via the Extra Location add-on at €29/month each. **Q: What is the difference between a recipe and a sub-recipe?** A recipe is a complete dish served to guests. A sub-recipe is a reusable component (like a sauce, marinade, or dough base) that appears as an ingredient line in other recipes. Sub-recipes are costed but not themselves served directly to guests. **Q: Can I plan an event with different guest counts per course?** Yes. Shopping lists allow you to specify a different portion count per recipe. You can set appetizers to 150 portions, mains to 120, and desserts to 100, all in one shopping list. **Q: Is Cucinovo mobile-friendly?** Yes. The interface is fully responsive and works on mobile browsers. There is no native app; Cucinovo is a web application. **Q: How do I invite team members?** From your organization settings, enter the email address of your team member and select their role. They receive an invitation email with a unique token. Once they register or log in, they gain access to your organization. **Q: Can I customize what each role can do?** Yes, on Pro plans. Organization owners can override the default permission sets for MANAGER, CHEF, STAFF, and VIEWER roles to match their specific operational structure. **Q: Is my data secure?** Cucinovo uses bcrypt password hashing, JWT-based session management with token rotation, CSRF protection on all mutations, nonce-based Content Security Policy, and HSTS. Data is stored on MongoDB with organization-level isolation. Full details are in the privacy policy at https://cucinovo.com/privacy-policy. --- ## Links - Website: https://cucinovo.com - Pricing: https://cucinovo.com/pricing - Tools: https://cucinovo.com/tools - Sign Up: https://cucinovo.com/auth/register - Sign In: https://cucinovo.com/auth/login - Comparisons: https://cucinovo.com/compare - Features: https://cucinovo.com/features - Glossary: https://cucinovo.com/glossary - Blog: https://cucinovo.com/blog - Privacy Policy: https://cucinovo.com/privacy-policy - Terms of Service: https://cucinovo.com/terms ## Contact For inquiries, visit https://cucinovo.com and use the contact link in the footer.