Skip to content

How your grocery list is built

How Forkless aggregates ingredients across recipes, subtracts pantry items, and groups the list by store section.

What happens between “your meal plan is ready” and “here’s your grocery list.” Three things: aggregating ingredients across recipes, subtracting what’s already in your pantry, and grouping by store section.

Aggregation: adding the same ingredient across recipes

Section titled “Aggregation: adding the same ingredient across recipes”

If three of your meals this week call for chicken thighs, Forkless doesn’t show you “chicken thighs” three separate times. It adds them together into one line item with one total quantity.

This sounds obvious. It’s also where most meal-planning apps fall over, because ingredients are written in different units across different recipes — 1 lb, 450 g, 4 thighs — and they have to be normalized before they can be summed.

Forkless does the unit conversion for you. Always.

Say your week includes these three recipes:

RecipeIngredient line
Sheet-pan chicken thighs with potatoes1.5 lb bone-in chicken thighs
Coconut chicken curry450 g boneless chicken thighs
Chicken tinga tacos4 boneless chicken thighs

Three different units, two different cuts, one protein. Here’s what Forkless does:

Recipe 1: 1.5 lb bone-in chicken thighs → 1.5 lb
Recipe 2: 450 g boneless chicken thighs → ~1.0 lb
Recipe 3: 4 boneless chicken thighs (~6 oz ea) → ~1.5 lb
─────────
Total: 4.0 lb

Your grocery list shows:

Chicken thighs ........... 4 lb

One line. One quantity. One thing to find at the store.

If you cut a recipe from your week, the line shrinks the next time the list is generated.

Pantry exclusion: subtracting what you already have

Section titled “Pantry exclusion: subtracting what you already have”

If you’ve told Forkless you have olive oil, salt, garlic, and tahini in your pantry, those items don’t show up on your grocery list — even though half your recipes use them.

This is the difference between a recipe ingredient list and a shopping list. A recipe says “you’ll need olive oil.” A shopping list says “you’ll need olive oil that you don’t already have.” Forkless writes the second one.

Two layers of pantry exclusion:

  • Staples — things you always have on hand (oil, salt, pepper, common spices). Set once. Forkless never adds them to a grocery list.
  • Current pantry — things you bought recently that aren’t staples. Update as needed. Forkless excludes them from the list the next time it’s generated.

Pantry exclusion is binary today: if a name is in your pantry, the item is dropped from the list. (Partial-quantity tracking — “I have some but not enough” — isn’t shipped yet.)

Section grouping: produce with produce, dairy with dairy

Section titled “Section grouping: produce with produce, dairy with dairy”

Once aggregation and pantry exclusion are done, Forkless groups the remaining items by store section so you (or the picker fulfilling your order) can move through the store in one pass instead of zigzagging.

Sections in display order:

Produce
Bakery
Dairy
Meat
Seafood
Frozen
Pantry & dry goods
Condiments
Spices
Beverages
Other

Sections only render when they have items, so a typical week shows fewer than the full eleven. The order roughly tracks how most stores are physically laid out — perimeter (produce, bakery, dairy, meat, seafood) before interior aisles (pantry, condiments, spices, beverages). If you’re using pickup or delivery, it doesn’t matter; if you’re shopping in person, it shaves real time.

  • Sending to your Kroger cart for the first time? Connecting your Kroger account.
  • Want to pick or switch stores? Choosing your store and pickup vs. delivery.