Grocery List Generator
Last updated: October 1, 2026. Maintained by CalcHive, JAE's Holding Solutions LLC.
Scale several recipes, merge matching units, and copy one list.
Paste ingredient lines, set original and desired servings, and optionally subtract what you already have. Prices stay blank until you type them.
Estimate only, not medical advice. This does not diagnose or treat any condition or replace a doctor or registered dietitian. If you are pregnant, under 19, managing a medical condition or an eating disorder, or on a prescribed diet, get individual guidance.
How this grocery list generator works
Each recipe has its own scale factor: desired servings divided by original servings. That is the same rule as the recipe scaler. A recipe written for 2 and wanted for 4 is multiplied by 2. A recipe written for 4 and still wanted for 4 is multiplied by 1. Empty recipe blocks are ignored. Up to eight recipes can sit on the form at once. The math runs in the browser. The lines you paste are not uploaded, and this page does not create an account or keep a recipe library.
A line is readable when the amount comes first. The amount can be a whole number, a decimal, a fraction, or a mixed number with a space, the same shapes the recipe scaler accepts: 2, 1.5, 1/2, and 1 1/2. The text 11/2 is eleven halves, which is 5.5, because there is no space. After the amount, the script looks for a unit word. Fluid ounce is checked before ounce, so "fl oz" stays volume. Tablespoon is checked before a shorter token. If the unit is a volume or a weight, the rest of the line is the ingredient name. If the unit is a count word such as can, clove, bunch, slice, package, stick, piece, head, or stalk, that word is the unit and the rest is the name. If no unit word is found, the line is a count of the name itself, which is how "2 eggs" and "3 tomatoes" are read.
Volume lines convert only into other volume units. The factors, in milliliters, are the ones on the cooking measurement converter: teaspoon 4.92892159375, tablespoon 14.78676478125, US fluid ounce 29.5735295625, cup 236.5882365, pint 473.176473, quart 946.352946, gallon 3785.411784, milliliter 1, liter 1000. They are exact kitchen multiples of that teaspoon: 3 teaspoons in a tablespoon, 2 tablespoons in a fluid ounce, 8 fluid ounces in a cup, 2 cups in a pint, 2 pints in a quart, 4 quarts in a gallon. Weight lines convert only into other weight units. The pound is 453.59237 grams, the international avoirdupois pound. The ounce is that pound divided by 16, so 28.349523125 grams. A kilogram is 1000 grams. Eight weight ounces are exactly half a pound, which is why 1 pound plus 8 ounces displays as 1 1/2 pounds.
Those kitchen factors are not the household measures in the nutrition-label rule. 21 CFR 101.9(b)(5)(viii) says that for nutrition labeling purposes a teaspoon means 5 mL, a tablespoon means 15 mL, a cup means 240 mL, 1 fl oz means 30 mL, and 1 oz in weight means 28 g. This page does not use 5, 15, 240, 30, or 28. If you are copying a Nutrition Facts household measure, use the regulation's measures. If you are scaling a US recipe written with customary spoons and cups, this page matches the cooking converter. A 240 mL label cup and a 236.5882365 mL recipe cup will not add cleanly. Type the one your source actually used, and do not expect this script to silently switch.
Merging happens after scaling. The script lowercases the ingredient and changes only the last word, then groups lines that share that key and the same family. The last-word rules are small and fixed: a word ending in "oes" drops "es" so tomatoes becomes tomato; a word ending in "ies" becomes a y so berries becomes berry; a word ending in s, x, z, ch, or sh plus "es" drops "es"; any other word longer than three letters that ends in a single s drops that s, so onions matches onion. Words of three letters or fewer stay as written. "Rice" has no trailing s, so it stays rice. The display text keeps the name from the first line that created the group, which is why two tomatoes plus one tomato can show as "3 tomatoes". Irregular plurals are a known gap. Leaves becomes leave, so it will not match a line that already says leaf. Edit the wording if two foods should stay apart or should combine.
Auto display picks a unit inside the family. For weight, a total of at least one pound shows in pounds, otherwise at least one ounce shows in ounces, otherwise grams. For volume, a total of at least one gallon shows in gallons, otherwise at least one quart shows in quarts, otherwise cups, then tablespoons, then teaspoons down to 1/8 teaspoon, and milliliters below that. Pints are on the menu if you select them, and they are not on the auto ladder. Two cups is one pint, and also half a quart, so auto leaves it as 2 cups. Four cups is one quart, so auto shows 1 quart. Choosing "cups" from the menu converts every volume line into cups and leaves weight lines on the auto weight rule. Choosing "pounds" does the reverse. Count lines such as cans and eggs ignore that menu. They stay in their own unit.
Round up is off unless you check it. The steps live in the script: 1/4 pound, 1 ounce, 1 gram, 0.01 kilogram, 1/4 gallon, 1/4 quart, 1/4 pint, 1/4 cup, 1 fluid ounce, 1/2 tablespoon, 1/4 teaspoon, 1 milliliter, 0.01 liter, and the next whole number for every count unit. The amount is raised only when it sits between steps. 1 1/2 pounds is already on a 1/4-pound step, so the box does not change it. 1.1 cups becomes 1 1/4 cups. 2.5 eggs becomes 3 eggs. These steps are a shopping convenience defined on this page. They are not a store's package sizes, and they are not a claim about how food is sold.
Aisle labels are a second convenience, also defined here, and they are not a floor plan. The script checks the singular name against a short keyword list in this order: Frozen if the name contains frozen; Pantry for black pepper, rice, pasta, flour, sugar, salt, oil, bean, broth, oat, bread, vinegar, honey, spice, quinoa, lentil, and chickpea; Produce for a list that includes onion, garlic, tomato, bell pepper, and the other produce words in the script; Meat for turkey, chicken, beef, pork, and the other meat words; Dairy for milk, cheese, yogurt, butter, cream, and egg. The first match wins. Anything else is Other. Frozen peas is Frozen, not Produce, because frozen is first. Black pepper is Pantry because that phrase is checked before any produce word. You can regroup after you copy the list.
Prices are blank on purpose. There is no default price and no regional average. After the list appears, each row has a price box. The total adds only the boxes where you typed a number greater than or equal to zero. A blank box is skipped. It is not treated as zero. The unit price calculator divides a package price by a count or a weight. The protein cost calculator divides a package price by protein grams. This page only sums the line prices you type onto an already merged list.
Worked examples
Example 1: Two recipes, one turkey line, rice left split
Recipe "Turkey rice" serves 4 and is wanted for 4, so the factor is 1. The lines are 1 lb ground turkey, 2 cups rice, and 1.5 tsp salt. Recipe "Second skillet" serves 2 and is wanted for 4, so the factor is 2. The lines are 4 oz ground turkey and 3 oz rice. After scaling, the second recipe contributes 8 oz of ground turkey and 6 oz of rice. Weight merges inside the turkey group: 1 pound plus 8 ounces. Eight ounces is half a pound because the ounce is the pound divided by 16, so the buy line is 1 1/2 lb ground turkey, in Meat. Salt stays 1 1/2 tsp salt, in Pantry. Rice does not merge. The volume line is 2 cups rice. The weight line is 6 oz rice. Both are Pantry, and both carry a note that the name appears in more than one family. Auto does not turn 2 cups into 1 pint, because pints are not on the auto ladder and 2 cups is under 1 quart.
Example 2: A typed pantry line removes half a pound
Start from example 1 and type 1/2 lb ground turkey in the pantry box. The pantry line uses a factor of 1 and the same parser. It matches the turkey weight group, so 1 1/2 pounds minus 1/2 pound leaves 1 lb ground turkey. The rice lines and the salt line are unchanged: 2 cups rice, 6 oz rice, and 1 1/2 tsp salt. If the pantry amount had covered the whole turkey group, that row would leave the buy list and be named under items already covered. A pantry line with no matching row is reported as not subtracted.
Example 3: Round up, a can beside an ounce line, and a to-taste line
One recipe, original 1, desired 1, round up checked. The lines are 1.1 cups flour, 2.5 eggs, to taste black pepper, 1 can black beans, and 8 oz black beans. Flour is volume. 1.1 cups is not on a 1/4-cup step, so round up produces 1 1/4 cups flour. Eggs are a count with no unit word. 2.5 rounds up to the next whole count, which is 3 eggs, and the dairy keyword egg files them under Dairy. The can and the ounces share the singular name black bean, and they stay on two lines because a can is a count and an ounce is weight: 1 can black beans and 8 oz black beans. "To taste black pepper" starts with "to taste", so it is listed as not scaled and it does not become a teaspoon. The parenthetical form is a different name key. The line 1 can (15 oz) black beans would display as a count of "(15 oz) black beans" and would not add its 15 to the 8 oz line, because the parentheses stay inside the name.
Example 4: A display unit, a quart threshold, and a price you type
Four cups of milk on auto becomes 1 quart milk, because the quart threshold is one quart and 4 cups is that amount. One-eighth teaspoon of vanilla stays 1/8 tsp vanilla, because auto keeps teaspoons down to 1/8 teaspoon. If you instead force the salt line from example 1 into cups, 1.5 teaspoons is 1.5 / 48 cup. The script's cup is 48 of its teaspoons, so the display is 0.03125 cups salt. That is a true conversion inside the volume family, and it is a poor shopping line, which is why auto is the default for a list that mixes spoons and cups.
The prices in this paragraph are hypothetical. They are an illustration of the total, not a receipt and not a market survey. On the example 1 list, type 4.00 on the turkey row and 2.50 on the 2 cups rice row, and leave salt and the ounce rice row blank. The total is $6.50, from two of the four lines. Blank rows are omitted from the sum. Change either typed price and the total changes by that amount. Nothing on the page fills those boxes for you.
When to use this
Use it when you have two or more recipes in front of you and you want one shopping list with the yield changed. A weeknight skillet for four and a side written for two can be scaled on the same form, then merged where the units allow. Use the pantry box when the rice or the salt is already in the cupboard and you do not want to buy it again. Copy the plain text into a notes app, download the CSV when you want a sheet, or print the page. The list is a scratch pad for a single trip.
Use a different calculator when the question is different. The recipe scaler rewrites one recipe and does not merge a second one. The cooking measurement converter will cross from cups to grams for water, flour, sugar, brown sugar, butter, and shredded cheese, because it stores a grams-per-cup figure for those items. This grocery page refuses that crossing for every food, including those six, so a cup of flour and an ounce of flour stay split. The macro calculator turns grams of protein, carbohydrate, and fat into calories. It does not read "2 cups rice" as a nutrient line. The meal prep portion calculator divides a cooked batch into containers and applies the leftovers storage window. Build the list here, then portion the cooked food there. Calorie targets, if you want them, still start on the TDEE calculator.
Common mistakes
- Putting the amount at the end. "Salt 1 tsp" does not start with a number, so the line is not scaled. Write "1 tsp salt".
- Writing 11/2 for one and a half. Without a space, 11/2 is 5.5. The mixed number needs a space: 1 1/2.
- Expecting cups and ounces of the same food to become one row. They will not. The split note is the result, not a glitch. Add a density yourself, outside this page, if you truly know the grams per cup for that ingredient and that measuring method.
- Treating a fluid ounce as a weight ounce. "fl oz" is volume, 29.5735295625 mL. "oz" is weight, 28.349523125 g. The parser checks the fluid-ounce phrase first.
- Using the nutrition-label cup by accident. A label cup in 21 CFR 101.9(b)(5)(viii) is 240 mL. This script's cup is 236.5882365 mL. Say which cup your source used.
- Reading a typed price as a published average. The total is the sum of numbers you entered on this visit. It is not a store index.
- Rounding up and then scaling the list a second time. The rows are already scaled. Pasting them into the recipe scaler again multiplies them a second time.
Limitations
No food database, no density table, no brand list, and no live prices. "1 pinch" is not turned into a fraction of a teaspoon, because that would invent an amount. "To taste" is not scaled. A line that starts with a word the script does not treat as a unit becomes a count of that whole phrase, so odd wording can merge with something you did not intend, or fail to merge with something you did. Parentheses stay in the name, which keeps "1 can (15 oz)" from absorbing a loose ounce line, and also keeps two can sizes apart only when the parenthetical text differs. The aisle list is short on purpose. Quinoa is in the pantry keywords; farro is not, so farro lands in Other until you move it. Eight recipes is the cap on this form. A ninth recipe needs a second pass or a combined paste.
The singularizer is the rule set above, not a dictionary. It will merge "ground turkey" with "Ground Turkeys" because the last word loses its s, and it will not merge "leaf" with "leaves". Count units do not convert into each other: 2 cloves of garlic and 1 head of garlic remain two rows. Imperial spoons and the 250 mL metric cup are not in the unit list. If your source uses those, convert them before you paste, or paste the metric milliliters. Storage after cooking is outside this page. The meal prep calculator quotes the FSIS leftovers window for fridge and freezer planning. This list only decides what to buy.
FAQ
Why are cups of rice and ounces of rice kept on separate lines?
This page converts units only inside one family. Cups, tablespoons, teaspoons, fluid ounces, pints, quarts, gallons, milliliters, and liters are volume. Ounces, pounds, grams, and kilograms are weight. A cup of rice and an ounce of rice need a density this page does not store, so they stay on two lines. The cooking measurement converter can cross those families only after you pick an ingredient density. This grocery list does not.
How does the page read a pinch or a line that says to taste?
A line that starts with pinch, a pinch, or to taste has no measurable amount. It is listed under lines that were not scaled, and it is not added into the merged totals. The same happens when a line does not start with a number. Put the amount first, as in 1 tsp salt.
How is a can with an ounce size in parentheses handled?
The line 1 can (15 oz) black beans is one can. The word can is the unit, and (15 oz) black beans is the item name. The 15 oz inside the parentheses is not converted to weight and is not added to a separate ounce line. Two lines merge only when the singular name and the unit family match, so a 15 oz can and an 8 oz can stay apart when the parenthetical text differs.
How does the pantry box subtract?
Each pantry line is parsed with the same rules and a scale factor of 1. If its singular name and unit family match a merged row, that amount is subtracted. If the pantry covers the row, the row drops off the buy list. A pantry line that does not match a row is reported as not subtracted. It is not turned into a negative amount to shop for.
What does round up change?
With round up off, the page shows the scaled sum. With round up on, each displayed amount is raised to the next buy step for that unit: 1/4 pound, 1 ounce, 1 gram, 1/4 cup, 1/2 tablespoon, 1/4 teaspoon, and the next whole can, egg, or other count. A sum that already lands on a step, such as 1 1/2 pounds, stays there. The steps are this page's shopping convenience, not a package size from a store.
Can I copy the list into a notes app or a spreadsheet?
Copy puts a plain-text list on the clipboard. Download CSV writes one row per merged line, with the aisle, the item, the numeric amount, the unit, the display text, and any price you typed. Print uses the browser print dialog. Nothing is saved on a CalcHive server.
Does singularizing ever merge the wrong foods?
The merge key lowercases the item and changes only the last word. Tomatoes becomes tomato, berries becomes berry, and a trailing s is dropped from longer words so onions matches onion. Words of three letters or fewer are left alone. Irregular plurals can miss. Leaves becomes leave under the trailing-s rule, so it will not match leaf. If two foods collapse when they should not, edit one name before you calculate.
Are the aisle groups a store map?
No. Aisle labels are a keyword list in the page's script: frozen first, then pantry staples, produce, meat, and dairy. Anything else is Other. Frozen peas lands in Frozen because the word frozen is checked first. You can regroup the copied list. The grouping is not a claim about a particular grocer's floor plan.
Related calculators
- Recipe Scaler for one recipe at a time, without merging
- Cooking Measurement Converter when you do want a density-based cup-to-gram step
- Unit Price Calculator for price per unit of a package
- Meal Prep Portion Calculator for containers after you cook
- Protein Cost Calculator for cost per gram from a price you type
- Macro Calculator when you already have grams of protein, carbohydrate, and fat
- Weekly Meal Planner for a week of meals, with grocery lines you can paste here
- Household Grocery Budget for USDA food-plan costs you paste, not for ingredient lines
Sources
Checked October 1, 2026. This page does not cite a price survey. Unit factors are the constants in the script.
- 21 CFR 101.9(b)(5)(viii), read in the eCFR text: for nutrition labeling purposes, a teaspoon means 5 mL, a tablespoon means 15 mL, a cup means 240 mL, 1 fl oz means 30 mL, and 1 oz in weight means 28 g. This grocery script does not use those label measures. 21 CFR 101.9.
- US customary volume chain used here, identical to the cooking measurement converter: teaspoon 4.92892159375 mL and the exact multiples listed above. Cooking measurement converter.
- International avoirdupois pound of 453.59237 g, with the ounce equal to that pound divided by 16. NIST Special Publication 811, Appendix B, shows a worked pound factor of 4.535 924 E-01 kg, the same pound rounded in that guide's E notation. NIST SP 811, Appendix B. The same gram factors are on the weight converter.