How a calorie target becomes a day of food
This generator works in two stages, and both are printed here rather than hidden behind the button. First, your daily target is split across your chosen number of meals using fixed weights that give the main meals more of the day than any snack:
meal target (kcal) = daily target × that meal's weight protein target (g) = meal target × intended protein % ÷ 4 carb target (g) = meal target × intended carb % ÷ 4 fat target (g) = meal target × intended fat % ÷ 9
Second, each meal is filled from the food dataset: a protein food, a carbohydrate food, a small fat food and, where the meal type suits it, a vegetable or fruit for volume and fibre, all picked at random from the right category group using the browser's own cryptographic random number generator rather than a predictable shuffle. Portions are then solved as a small system of two equations, calories and protein, so the meal lands on both; carbohydrate and fat come out however those two portions leave them, which is the honest reason the achieved split in the chart never matches the intended one exactly. If the day's total still drifts more than 5% from your target once every meal is solved, every portion is nudged by the same small factor to bring the whole day back in line.
Why meal count is a preference, not a metabolic lever
Three meals, four or five: this page treats the choice as being about how full each meal leaves you and whether you can keep the plan up, not about calories burned. The trial evidence backs that up. A 2015 meta-analysis in Nutrition Reviews that pooled the available randomised trials on meal frequency found no consistent effect on weight loss or body composition once total calories and protein were held constant, and the International Society of Sports Nutrition's position stand on meal frequency reached the same conclusion: eating more often does not measurably raise the calories your body burns digesting and processing food. What frequency does change is practical: some people find five smaller meals easier to control hunger with, others find three larger ones simpler to plan and cook around. Neither is more correct; this generator will build a properly weighted day at any of the three counts and let you judge by how the actual meals feel.
Choosing a macro emphasis
The three emphasis options are common, published starting templates rather than a single right answer worked out for you. Balanced (30% protein, 40% carbohydrate, 30% fat) suits most people with no strong training goal. Higher-protein (40/30/30) trades some carbohydrate for extra protein, useful for anyone prioritising muscle retention during weight loss or simply feeling hungry on a lower-protein day. Lower-carb (35/25/40) pulls carbohydrate back further and raises fat to fill the gap, a pattern some people prefer for appetite control or personal taste rather than any special metabolic advantage over the other two at matched calories and protein. Whichever is chosen, the intended-versus-achieved chart below the meal table is there so the gap between the template and the actual plate is never hidden.
How the day gets weighted
Snacks are deliberately built smaller than meals, since a snack standing in for a full meal's worth of calories stops looking or feeling like a snack. At three meals a day, breakfast takes 30% of the target and lunch and dinner take 35% each. At four, breakfast takes 25%, lunch and dinner 30% each, and a single snack takes the remaining 15%. At five, breakfast takes 22%, lunch 26% and dinner 32%, with two snacks splitting the last 20% evenly. Every set of weights adds up to exactly 100% of the day's target, and the exact figures for whichever count is currently selected are printed in the panel above the meal table.
One day is a template, not a week
A single generated day is a useful proof that a target and a macro split can turn into real, buyable food, not a full week's plan. Eating the identical foods every day would get monotonous fast and, more practically, no realistic diet actually looks like one day repeated seven times: different meals bring different vitamins, minerals and fibre types, and variety is one of the more reliable predictors of a diet lasting past its first fortnight. Treat this generator as a template to regenerate and remix, not a script to follow exactly for a week, and swap in whatever real foods you actually have and enjoy once the shape of a meal, roughly this much protein food, this much carbohydrate food, this much fat, makes sense.
Where these numbers come from
Every food in the generator comes from USDA FoodData Central, the same public nutrient database behind most nutrition labels and diet apps, and figures are typical published values for that food and preparation rather than a lab measurement of any specific item on your plate; real ingredients vary by brand, ripeness and cooking method. Kilocalories are shown as the primary figure throughout, with the kilojoule equivalent (kcal × 4.184, the conversion UK and EU nutrition labels use) available a click away in the copy summary. The portion unit toggle above the table switches grams for ounces using 1 oz = 28.35 g; the underlying grams stay the numbers actually solved for, ounces are shown for reading convenience only.
Questions people ask
Is this a diet plan I should follow exactly?
Treat it as a template, not a prescription. It shows one realistic way to hit a calorie and macro target with real foods, built fresh at random each time. Swap items you dislike, repeat ones you like, and remember a whole week needs more variety than any single generated day provides.
Why don't the achieved macros match what I picked exactly?
Because the generator solves each meal for calories and protein first, and carbohydrate and fat are whatever those two portions leave over. Real foods rarely carry protein, carbohydrate and fat in exactly the ratio a percentage template asks for, so the achieved split shown in the chart is the honest result, not the rounded intention.
Why did the tool refuse to build a plan?
Targets under 800 kcal a day are blocked outright. No realistic combination of whole foods covers basic protein and micronutrient needs that low, and a plan built for a number that unsafe would be doing more harm than good by pretending otherwise.
Why does it warn me about too many meals?
Spreading a modest calorie target across five meals can leave some of them too small to feel like a real meal, sometimes under 150 kcal once fixed meal weights are applied. The warning suggests fewer, larger meals rather than silently handing back a plate of crumbs.
How random is "random" here?
Every food pick uses crypto.getRandomValues, the browser's cryptographic random number generator, the same source this site's password and random number generators draw from, rather than a predictable pseudo-random shuffle.
Can I regenerate just one meal instead of the whole day?
Yes. Each row in the meal table has its own swap control that redraws only that meal's foods and re-solves its portions, leaving every other meal in the plan untouched.
Does this account for allergies or foods I can't eat?
No, it draws from the whole dataset without knowing your restrictions. Regenerate or swap a meal that lands on something unsuitable, or use the Food Calorie Checker to browse the full list and see exactly what each category contains before you rely on it.
This tool generates food templates from typical published nutrition figures for general planning and does not offer medical, dietetic or nutritional advice. It has no knowledge of allergies, intolerances or medical conditions; anyone managing a health condition through diet should work from a plan checked with a doctor or registered dietitian.