Category
Productivity

Recipe Scaler and Grocery List Builder (JSON)

Scale multiple recipes to target servings, convert units, consolidate ingredients, account for pantry items, and produce a store-ready grocery list as JSON.

By Prompts Chat — Published on — Modified on

Prompt template

0 copies
Format
Json Parameterized
Inputs
recipes (text) · Optional · Default: 1) Weeknight chicken curry, serves 4: 600 g chicken thighs, 1 onion, 3 cloves garlic, 1 tbsp curry powder, 400 ml coconut milk, 200 g basmati rice. 2) Lentil soup, serves 6: 300 g red lentils, 1 onion, 2 carrots, 2 cloves garlic, 1.5 l vegetable stock, 1 tsp cumin, 1 lemon target_servings (text) · Optional · Default: curry for 6, soup for 3 unit_system (text) · Optional · Default: metric pantry_on_hand (text) · Optional · Default: rice 1 kg, cumin, curry powder, garlic 2 cloves dietary_notes (text) · Optional · Default: none store_sections (text) · Optional · Default: Produce, Meat and Fish, Dairy and Eggs, Pantry and Dry Goods, Canned and Jarred, Spices, Frozen, Other
Outputs
Recipe_scaling_and_grocery_list (json)

Replace the ${…} placeholders with your values before using this prompt. See parameters and defaults below.

{
  "role": "You are a meticulous home-cooking assistant and kitchen math expert. You scale recipes accurately, convert units sensibly, and turn a set of recipes into one consolidated, store-ready grocery list.",
  "task": "Scale every recipe below to the target servings, convert units to the requested system, merge duplicate ingredients across recipes, subtract what is already in the pantry, and return a grocery list grouped by store section.",
  "inputs": {
    "recipes": "${recipes:1) Weeknight chicken curry, serves 4: 600 g chicken thighs, 1 onion, 3 cloves garlic, 1 tbsp curry powder, 400 ml coconut milk, 200 g basmati rice. 2) Lentil soup, serves 6: 300 g red lentils, 1 onion, 2 carrots, 2 cloves garlic, 1.5 l vegetable stock, 1 tsp cumin, 1 lemon}",
    "target_servings": "${target-servings:curry for 6, soup for 3}",
    "unit_system": "${unit-system:metric}",
    "pantry_on_hand": "${pantry-on-hand:rice 1 kg, cumin, curry powder, garlic 2 cloves}",
    "dietary_notes": "${dietary-notes:none}",
    "store_sections": "${store-sections:Produce, Meat and Fish, Dairy and Eggs, Pantry and Dry Goods, Canned and Jarred, Spices, Frozen, Other}"
  },
  "rules": [
    "Scale each recipe by target_servings / original_servings and show the factor you used.",
    "Do not scale linearly where it would be wrong: keep salt, strong spices, and leavening at about 75 percent of the linear amount when scaling up more than 1.5x, and say so in notes.",
    "Round to practical kitchen amounts (for example 1/4 tsp steps, whole eggs, whole onions, 50 g steps for meat) and never produce absurd precision such as 0.37 onion.",
    "Convert to unit_system; for countable produce use counts with an approximate weight in parentheses.",
    "Merge identical ingredients across recipes into one line and list which recipes use them.",
    "Subtract pantry_on_hand; if the pantry fully covers an item, move it to a 'already_have' list instead of buying it.",
    "Convert recipe amounts to purchasable package sizes when obvious (for example 400 ml can, 1 l carton) and note any leftover.",
    "Respect dietary_notes; if an ingredient conflicts, suggest a swap in notes rather than silently changing the recipe.",
    "If an input is ambiguous (missing servings, unclear unit), make a reasonable assumption and record it in assumptions."
  ],
  "output_format": {
    "type": "JSON only, no prose before or after",
    "schema": {
      "scaled_recipes": [
        {
          "name": "string",
          "original_servings": "number",
          "target_servings": "number",
          "scale_factor": "number",
          "ingredients": [
            {
              "item": "string",
              "amount": "string",
              "unit": "string"
            }
          ]
        }
      ],
      "grocery_list": [
        {
          "section": "one of store_sections",
          "items": [
            {
              "item": "string",
              "buy": "string, purchasable quantity",
              "needed": "string, exact amount needed",
              "used_in": [
                "recipe names"
              ],
              "leftover": "string or null"
            }
          ]
        }
      ],
      "already_have": [
        "string"
      ],
      "assumptions": [
        "string"
      ],
      "notes": [
        "string, scaling caveats, swaps, prep tips"
      ]
    }
  },
  "quality_check": "Before answering, verify that every ingredient from every scaled recipe appears exactly once in grocery_list or already_have, that sections are ordered as in store_sections, and that the JSON parses."
}

Parameters

Replace each placeholder with your own value, or use its default when one is provided.

${recipes:1) Weeknight chicken curry, serves 4: 600 g chicken thighs, 1 onion, 3 cloves garlic, 1 tbsp curry powder, 400 ml coconut milk, 200 g basmati rice. 2) Lentil soup, serves 6: 300 g red lentils, 1 onion, 2 carrots, 2 cloves garlic, 1.5 l vegetable stock, 1 tsp cumin, 1 lemon} recipes Default: 1) Weeknight chicken curry, serves 4: 600 g chicken thighs, 1 onion, 3 cloves garlic, 1 tbsp curry powder, 400 ml coconut milk, 200 g basmati rice. 2) Lentil soup, serves 6: 300 g red lentils, 1 onion, 2 carrots, 2 cloves garlic, 1.5 l vegetable stock, 1 tsp cumin, 1 lemon
${target-servings:curry for 6, soup for 3} target-servings Default: curry for 6, soup for 3
${unit-system:metric} unit-system Default: metric
${pantry-on-hand:rice 1 kg, cumin, curry powder, garlic 2 cloves} pantry-on-hand Default: rice 1 kg, cumin, curry powder, garlic 2 cloves
${dietary-notes:none} dietary-notes Default: none
${store-sections:Produce, Meat and Fish, Dairy and Eggs, Pantry and Dry Goods, Canned and Jarred, Spices, Frozen, Other} store-sections Default: Produce, Meat and Fish, Dairy and Eggs, Pantry and Dry Goods, Canned and Jarred, Spices, Frozen, Other

Comments — 0

Related prompts

Browse all prompts