Back to articles
HOW KEXBI WORKS

Macro based meal planner: how to balance taste and targets

Traditional meal planners force a choice between precise training macros and actual culinary flavour. We built a pipeline that delivers both.

AT A GLANCE

How your taste profile steers the plan

  1. Three inputs: an adventure dial, the kitchens that feel like home, and a never-serve list. Together they steer the plan.
  2. Each kitchen carries a register: a short line describing what the chef should reach for, and how the finished dish should be named.
  3. The pool of ingredients is set by your pantry setting, not the register. Locked to your kitchen? The register works with what you own. Open the dial to surprise me and the pool widens.
  4. When the pool widens, the register is what decides what fills the gap. A Thai-leaning week gets fish sauce and lemongrass. A Korean one gets gochujang.
  5. In every mode, the taste profile never moves a gram. The numbers were settled before it was asked anything.

Chapter 01 · The offeringTaste profile, not cuisine

KEXBI reads your taste through a small, deliberate structure called a taste profile. It runs across three inputs, and the whole system is applied on top of a settled macro plan.

  1. The adventure dial. How far from home should new ingredients stretch? Close to what you already cook, a small stretch, or take me somewhere new. One choice, once, edited any time.
  2. Kitchens that feel like home. Multi-select from a curated palette of the world's home kitchens (seventeen at v1). This is where the cuisine chips live, but as flavour homes, not as authenticity claims.
  3. The never-serve list. A hard skip on the classes of food you do not want on your plate. Not allergen, not medical, just refusal, and honoured as such.

Each input has a different job, and all three arrive at the same moment in the pipeline: after the day's numbers are already decided. The taste profile can change the composition, the ingredient character, and the naming of the meal. It cannot change the grams. That separation is the whole design.

A taste profile steers what your plan tastes like and what it is called. It does not steer what your plan adds up to.

Chapter 02 · The alternativesWhere recipe-driven apps end up

The rest of the category treats a request like "give me a Thai week" as an input to the plan, and it goes wrong in three predictable ways.

Silence. Real nutrition apps (MyFitnessPal's core diary, Cronometer, MacroFactor, Noom) have no taste layer at all [6]. They are macro-and-logging engines. Ask for a Thai week and they point you at a search box.

Recipe apps dressed as meal planners. Eat This Much, PlateJoy while it lived, MyFitnessPal Premium+'s Meal Planner, Lifesum's diet plans [6]. Pick "Thai" from a filter and the app returns seven Thai recipes; your macros are whatever they add up to. Cuisine won the argument; your training day lost it. Coconut curry on a rest day, clear soup on the day you ran ten miles, because the recipe library never knew about either.

Language-model hallucination. Ask a chatbot for a Thai week and it writes you a beautiful one that calls for galangal on Wednesday, blind to your kitchen, your sleep, your training. When we weighed a leading chatbot's meals against a real food database, the misses on the prescribed macro split ran from 20 to 75 percent.

All three failures share a root cause: treating cuisine as an input to the plan, when a plan is not the right place for it. A taste profile treats it as an instruction about the surface of the plan, applied after the numbers are decided. Which is why KEXBI does not offer "cuisine" as a feature at all. A cuisine claim would mean cooking Thai food properly enough to satisfy a Thai grandmother, from your home pantry. That is not something we are trying to sell. A taste profile is honest about what it does: it recognises the flavour homes you identify with and steers the plan toward them, without ever pretending your risotto is Milanese.

Cuisine is not a nutritional input. It is an instruction about how the food you already need should be composed, cooked and named.

Chapter 03 · The mechanismRegisters, not whitelists

Inside the taste profile, the "kitchens that feel like home" input carries the most machinery, so it is the piece worth explaining. It is built on one rule, and it is worth stating in full because everything else follows from it:

Registers are a steer, not a whitelist. The register never adds an ingredient to the pool; it tells the chef what to reach for when the pool already allows it, and how to name the result.

Each kitchen carries a label and a register, a single line describing the pairings and the methods that define it. Not a list of permitted foods. Not a set of recipes. A composition and naming steer.

Take the Italian register: olive oil, garlic, tomato, basil, parmesan; pasta, risotto, grilled fish, braises. Read it as a set of preferences, not permissions. Where your pool already carries olive oil, the register says reach for it before you reach for the butter. Where it carries garlic and tinned tomatoes, the register says those two belong together in this dish. If the engine has already decided you need 90 g of dry carbohydrate at midday, the register says make that risotto, and call it risotto.

The phrase doing the quiet work in that rule is the pool. The register operates on a pool of available ingredients. It does not define that pool, and it cannot reach outside it. What it can do is reach anywhere inside it, and the size of the inside is a decision you make separately, which is the subject of the next chapter.

Chapter 04 · Setting your tasteThe three inputs, in one screen

The taste profile is one wizard step and one place in the app. You set it once, edit it any time. Three inputs, in order.

The adventure dial

How far should new ingredients stretch from what you already cook?

  • Close to home. New things that sit next to what I already cook.
  • Stretch me a little. Familiar dishes, occasional new stars.
  • Take me somewhere new. I want to be surprised properly.

Food adventurousness is a measurable trait, roughly one axis from cautious to adventurous [1]. KEXBI expresses that axis as three tiers rather than a slider; the code that consumes it needs a category, not a continuous value. Pick one. The choice shapes how a Surprise Me week widens the pool, and how far the register is allowed to reach when it does.

The kitchens that feel like home

A multi-select of the seventeen home kitchens KEXBI carries at v1. Pick the ones that feel like your kitchen. Skipping keeps the mix broad; picking three or four narrows the register vocabulary the plan reaches for.

Figure 01 · The taste profile wizard

The adventure dial and the kitchens picker, in one step

The Weekly Plan wizard, step 3 of 6, titled 'Tune your taste.' At the top, three select cards under 'How far should new ingredients stretch?': Close to home (selected), Stretch me a little, Take me somewhere new. Below, a Taste Profiles chip picker with sixteen kitchens; six are dimmed with the footer note 'YOUR PANTRY HAS NO WAY TO SEASON THEM.'
Fig 1. The dial + kitchens picker in a single step. Note the honesty in the footer: six of sixteen kitchens are dimmed because your pantry has no way to season them. Not hidden, not pretended. Named.

The never-serve list

The third input is a hard skip. Not allergen (safety), not diet (goal); a preference refusal. Some dislikes are hardware: coriander tastes of soap for four to fourteen percent of people (OR6A2 olfactory receptor variant) [2]. Some are texture (offal, cephalopods, mushrooms, tofu). Some are ferment disgust (blue cheese). Some are heat tolerance. The class vocabulary follows the disgust and food-rejection taxonomy in the psychology literature [3], and the options line up with the foods people most often dislike in large surveys: in YouGov’s 2025 poll of US adults, anchovies, liver and sardines top the list, followed by tofu, squid and blue cheese [4].

Figure 02 · The never-serve chip picker

What KEXBI will not bring onto your plate

A 'Never put on my plate' chip picker with thirteen aversion classes: Oily fish, Offal, Tofu and soy protein, Squid and octopus, Oysters and roe, Raw fish, Blue cheese, Beetroot, Bitter greens, Mushrooms, Coriander, Very hot food, Olives. Most are selected in teal.
Fig 2. Aversion classes, not single foods. A "Blue cheese" pill excludes stilton, roquefort, gorgonzola in one tap. "Cephalopods" covers squid, octopus, cuttlefish. Every future item KEXBI ingests self-classifies against this vocabulary. The list governs what the plan brings in from outside your pantry, in every mode, including Surprise Me.

The class-not-food approach matters because aversion is rarely one-food-deep. If you refuse octopus you almost certainly refuse squid; if you refuse blue cheese you probably do not want stilton served either. One tap covers the family. And because a preference refusal (unlike an allergen) carries no medical claim, "never" here is a firm steer on anything new the plan brings in. A safety-liability posture keeps allergens deliberately un-enforced by the app; a taste refusal has no such constraint, and is applied firmly to new ingredients.

Here is how the two interact, because this is where a lot of meal planners quietly mislead people.

Locked to your pantry. The pool is your kitchen. A Thai week is then a genuine constraint-satisfaction problem: the register steers toward lime, chilli and whatever aromatics you already hold, over the proteins and carbohydrates the training day has already specified. Nothing new appears on the list. The result leans Thai rather than arriving from Bangkok, and we would rather name it that way than pretend otherwise.

Pantry plus surprise me. You have opened the door. The pool widens beyond what you currently own, the shopping list rebuilds, and new ingredients are allowed in. In that mode, the register is exactly what decides which new ingredients arrive. Ask for a Thai week with the dial open and fish sauce, lemongrass and coconut milk land on your list. Ask for a Korean one and it is gochujang and gochugaru instead. Same dial, same permission, different register, different trolley.

So the honest version of the rule is two-part:

  • The register never opens the door. You do, with the pantry setting. On a locked pantry it has nothing new to reach for and does not get any.
  • Once the door is open, the register is the thing choosing what comes through it, and that is the entire point of having registers rather than a generic surprise me. An unsteered surprise gives you a scattered list. A steered one gives you a week that hangs together, where Tuesday's leftover herbs are Wednesday's aromatics.

What does not change between those two modes is the number underneath. In both cases the register was handed a settled plan. It chose the fish sauce. It did not choose the 180 g of chicken, and it could not have.

The pantry dial decides whether anything new can arrive. The register decides what that something is. Neither of them decides how much.

Chapter 05 · Your kitchen, gradedWhat you can already cook

The taste profile is only useful if it maps to your actual kitchen. And your actual kitchen, in KEXBI, is not an inventory. It is a model of your intent: the ingredients you usually keep, the ones you happily use, the ones you would buy again. Inside My Pantry, the Taste Profiles view shows you where each of the seventeen kitchens sits against that intent today.

Figure 03 · The Taste Profiles view in My Pantry

Ten of sixteen kitchens ready. Three more one jar away.

The Taste Profiles screen inside My Pantry. Header reads 'Flavours your meals build from.' A dark card shows: 10 of 16 profiles ready. 3 more unlock with a single ingredient. Your spices and essentials decide this, not your proteins. Below, a Ready to Cook section lists British classics, Chinese, Filipino, Greek, Indian, Italian, and Japanese, each with the seasoning ingredients from the pantry that unlock the profile.
Fig 3. The kitchens graded against your pantry, in three tiers. Ready to cook, One ingredient away, A few ingredients away. The seasonings decide the grade, not the proteins.
Figure 04 · One and few ingredients away

The kitchens waiting on your call

Continuation of the Taste Profiles screen. Spanish and Turkish complete the Ready to Cook list. A One Ingredient Away section lists Caribbean, French, and Mexican with the specific ingredient still needed. A Few Ingredients Away section lists Korean, Thai, and Vietnamese with the ingredients still needed.
Fig 4. Every kitchen you cannot cook today is shown, tagged, and the ingredient gap named. Some are easy: smoked paprika is a small investment and unlocks Spanish. Some are a hard no: if you would never stock kimchi, Korean stays out of your rotation. The decision is yours, made with the specific ingredients in front of you.

The three tiers are worth stating plainly, because they are how the pantry setting from the previous chapter actually behaves.

  • Ready to cook. The seasonings this kitchen needs are already inside your usual habits. Locked-pantry plans draw from here.
  • One ingredient away. One intent decision from unlocking. If you would happily keep the missing ingredient, add it and this kitchen opens up. If you would not, it stays out. Your call, made with the specific ingredient in front of you.
  • A few ingredients away. A small pantry investment. Deciding whether this kitchen belongs in your usual rotation, not whether it lands on next week's shop.

The important detail is what does the grading. The app is explicit: "Your spices and essentials decide this, not your proteins." Chicken is chicken; what makes a meal Turkish is sumac, pul biber, mint and yoghurt. The staples decide the register. The proteins are just what carries them.

That is why the pantry dial and the taste profile compose so cleanly. Locked-pantry: only Ready kitchens are drawn from, and their registers work with what you own. Surprise Me: the pool widens to include the Away kitchens, and the register is what decides what fills the gap. A Thai-leaning surprise week fills with fish sauce and lemongrass. A Korean one fills with gochujang.

The pantry setting decides how wide the pool is. The register decides what gets reached for inside it. Neither of them decides how much.

Chapter 06 · Why it holdsWhere the taste profile sits in the pipeline

The safety of the whole design comes from one architectural fact: the taste profile runs last.

The order is fixed. Your exclusions and your pantry setting define the pool. Your body and your training day define the numbers. The engine solves the day, how much carbohydrate, how much protein, how much fat, and in which window each block lands. Only then does the register get a say, and its say covers composition, ingredient character within the pool, and naming.

A step that runs last cannot rewrite the steps that ran before it. That is not a policy enforced with a warning message; it is the shape of the pipeline. The register is handed a settled plan and a defined pool, and asked a narrow question: given this much protein, this much carbohydrate and this much fat, in this window, what is the most Turkish thing to do with it, and what should we call it?

Three things sit permanently outside its reach, in every mode:

  • The grams. The macro and timing solve happens first and is not reopened. A Korean week and a French week on the same training day carry the same numbers.
  • Your exclusions. Your never-serve list and dislikes sit upstream of new additions to the pool. A widened pool is still a filtered pool. A register has no authority here and never sees an exclusion as optional.
  • The energy floor. The safety check underneath does not care which week you picked.

This is the same principle applied elsewhere in the engine. Anything that determines how much you eat is deterministic and auditable. Anything that determines what it tastes like and what it is called is a steer applied on top. Flavour is the right place for judgement. Grams are not.

Chapter 07 · The paletteThe seventeen kitchens

Seventeen registers ship in this release. Each is a single line doing two jobs: telling the chef what to season toward, and telling the plan what to call the result.

Figure 05 · The seventeen kitchens palette

Seventeen registers, each a one-line steer

Cuisine The register
Italianolive oil, garlic, tomato, basil, parmesan; pasta, risotto, grilled fish, braises
Thailime, fish sauce, chilli, coconut, lemongrass, Thai basil; stir-fries, curries, noodle soups
Indiancumin, coriander, turmeric, garam masala, ginger-garlic; dal, curries, tandoor, rice and flatbreads
Japanesesoy, mirin, miso, dashi, sesame; rice bowls, grilled fish, noodle soups
Mexicanlime, chilli, cumin, coriander, black beans, corn; tacos, bowls, grilled meats, salsas
Middle Easternlemon, tahini, sumac, za'atar, cumin; grilled meats, mezze, pulses, flatbreads, yoghurt
Chinesesoy, ginger, garlic, spring onion, sesame, rice wine; stir-fries, steamed fish, noodle and rice dishes
Frenchbutter, shallots, herbs, wine reductions; roasts, pan sauces, gratins, omelettes
Greekolive oil, lemon, oregano, feta, yoghurt; grilled fish and meat, salads, bakes
Spanishsmoked paprika, garlic, olive oil, sherry vinegar; rice dishes, tortilla, grilled seafood, stews
British classicsroasts, pies, stews, fish and chips, cooked breakfast, porridge; root veg, gravy, mustard
American classicsgrill, BBQ, Southern, diner: smoked and grilled proteins, burgers, cornbread, slaw, mac and cheese, sweet potato, pancakes; sweet-smoky rubs
Koreangochujang, gochugaru, sesame, garlic, soy; kimchi, bibimbap, bulgogi, jjigae stews, rice bowls
Vietnamesefish sauce, lime, mint, coriander, Thai basil, rice noodles; pho, bun, banh mi, fresh rolls, lemongrass grills
Caribbeanallspice, scotch bonnet, thyme, lime, coconut; jerk, rice and peas, plantain, curries, stews
Turkishsumac, pul biber, cumin, mint, yoghurt, lemon; kebabs, pide, lentil soup, pilav, grilled vegetables
Filipinosoy, vinegar, garlic, calamansi, coconut; adobo, sinigang, pancit, braised and grilled meats, rice
Fig 5. The full v1 palette. Each kitchen is stored on your profile by a fixed key; the labels are what the chip picker shows. Additive only, so every kitchen you choose today keeps rendering as new ones are added.

Two things to notice about the shape of those lines.

The first is that every register names seasonings before it names dishes. That ordering is deliberate, and it is what makes a locked pantry workable. The seasoning half is the part that survives contact with a narrow kitchen: you can cook something recognisably Turkish with sumac, cumin, mint and yoghurt over more or less any protein you own. The dish half is aspirational; it lands when the pool allows it.

The second is that British classics and American classics are named differently, and read differently. They lead with method rather than store-cupboard, because that is how they actually work. British cooking is a set of formats, the roast, the pie, the stew, the cooked breakfast, more than a spice signature. Naming it accurately matters more than making it symmetrical with the others.

Chapter 08 · On the plateSame grams, different week

The clearest way to see the taste profile working is to hold the training day still and change only the register in play. Same chicken, same rice, same green vegetable, same measured fat, sized for the same evening lift. Three registers, three different meals.

Figure 06 · One block, three registers

Chicken, rice, green vegetable, measured fat

Register
Korean
A rice bowl with gochujang and sesame. Garlic through the chicken. The vegetable dressed rather than plain.
Register
Greek
The same chicken goes under lemon and oregano. The fat arrives as olive oil. It reads as a grilled plate.
Register
Vietnamese
Lime, mint and coriander do the work. The rice may become noodles if the pool allows it.
Fig 6. Three different meals. Three different shopping lists, grouped differently down the aisle. The same protein, the same carbohydrate, the same fat, landing in the same window, sized to the same workout.

That is the promise of a steer over a whitelist. You are not choosing between eating well and eating what you want. You are choosing the accent the week is spoken in.

Chapter 09 · The stackThe taste profile is a steer, not a recipe

A taste profile (and its register mechanism) is a steer. It carries no doses, no sequencing and no biological claim. It is one line about pairings, methods and naming, and its job is to make the week feel like a week of Turkish-leaning food rather than a week of correctly-portioned inputs.

The seasoning itself comes from the spices and staples you keep, written into each recipe. The register decides the accent. Neither of them touches the grams.

Chapter 10 · The guardrailsWhat a taste profile does not promise

Three honest limits.

A register is not an authenticity claim. On a locked pantry with no fish sauce, a Thai week will be Thai-leaning rather than Thai. The register steers toward the lime, chilli and aromatics you do have, and the result is a good plate of food that a Bangkok cook would recognise as a cousin rather than a relative. We would rather name that plainly than claim a cuisine we cannot cook from your shelves. Open the dial and it has more to reach for.

An open dial costs money and shelf space. Surprise-me weeks add to the list. A register makes that spend coherent rather than scattered, you buy the fish sauce once and three meals use it, but it is still a spend. If the weekly shop is the constraint, the dial is where to look first.

A taste profile does not rescue an under-fuelled day. No amount of gochujang turns a chronic energy shortfall into a training block. The taste profile runs last precisely because it is the least load-bearing thing in the stack, pleasant, motivating, and useful for adherence, but downstream of energy availability, protein and sleep.

Chapter 11 · The takeawayThe bottom line

Most meal planners treat cuisine as a category of recipe. That forces a choice: cook what you fancy, or hit your numbers. Everyone who has tried to do both inside one app knows which one quietly gives way.

KEXBI does not offer cuisine. It offers a taste profile: three inputs (an adventure dial, the kitchens that feel like home, a never-serve list), sitting on top of a settled macro plan, deciding the surface of the week without touching the grams underneath. Lock the pantry and it works with what you own. Open the dial, and the register is what makes the new arrivals add up to a week rather than a pile of jars.

Either way, the grams were decided before the taste profile was asked anything. You get a Thai-leaning week. The plan still works to the numbers the training day asked for.

References

  1. Pliner P, Hobden K. Development of a scale to measure the trait of food neophobia in humans. Appetite 1992;19(2):105 to 120.
  2. Eriksson N, Wu S, Do CB, Kiefer AK, Tung JY, Mountain JL, Hinds DA, Francke U. A genetic variant near olfactory receptor genes influences cilantro preference. Flavour 2012;1:22.
  3. Rozin P, Fallon AE. A perspective on disgust. Psychological Review 1987;94(1):23 to 41.
  4. Orth T, Bialik C. Ranking Americans’ most hated foods. YouGov, 30 July 2025. Online survey of 2,239 US adult citizens, 24 to 27 July 2025. yougov.com
  5. Shoba G, Joy D, Joseph T, Majeed M, Rajendran R, Srinivas PS. Influence of piperine on the pharmacokinetics of curcumin in animals and human volunteers. Planta Medica 1998;64(4):353 to 356.
  6. App behaviour (MyFitnessPal, Cronometer, MacroFactor, Noom, Eat This Much, Lifesum, PlateJoy while it existed): official product documentation and help centres, verified mid-2026.
Was this useful?
Share X LinkedIn Facebook Email
LAUNCHING NOVEMBER

Ready to apply the science?