Carb loading is not one huge pasta dinner the night before. Done badly, it upsets your stomach on race day. Done well, it adds miles to your energy stores.
By Alex · 7 min read
The night before my first marathon, I ate a plate of pasta so big that the waiter raised an eyebrow. I woke up at 2am feeling as if I had swallowed a brick.
Someone had told me to carb load. Nobody had told me how to do it.
Carb loading is real, it works, and it clearly improves performance in races that last more than 90 minutes. It is also one of the most misunderstood ideas in recreational running. Here is what the science says, and what I do now.
Your muscles store glycogen — chains of glucose that your body burns as fuel during long efforts. The problem is how much you can store. A well-trained runner holds roughly 90-120 minutes of glycogen at marathon race pace. After that, your body turns to fat, which burns more slowly. That is "the wall".
Carb loading increases your glycogen stores by teaching your muscles to hold more than they normally do — as long as you do it properly. Studies show again and again that it delays fatigue and improves time-trial performance by 2-3% in endurance events over 90 minutes.
A 2-3% improvement at 4:00 marathon pace is about 5 minutes. That is worth getting right.
The approach with the best evidence behind it is a 3-day carb load starting 3 days before your race:
Days -3 and -2 (Thursday and Friday before a Sunday race):
Day -1 (Saturday, the day before):
That last point is the one most runners get wrong. You do not load the night before the race. You load on Thursday and Friday. By Saturday evening your muscles are already full. Dinner is there to keep them that way, not to fill them.
For a 70 kg runner, that is 560-700 g of carbohydrate per day. To put that in context:
To reach 600 g, you need carbohydrate at every meal and in your snacks. It is a planned, deliberate process, not an excuse for one enormous dinner.
High-fiber foods. Broccoli, beans, brown rice, whole grain pasta — these cause gas and stomach problems. Save them for after the race.
High-fat foods. Pizza, fried food, heavy sauces — they slow your digestion and take up space that should hold carbohydrate.
New foods. This is not the week to try the local speciality at the race expo dinner. Your stomach knows what it knows. Stay with food you have eaten before.
Alcohol. It ruins your sleep, dries you out, and makes it harder to store glycogen. Even one drink the night before a marathon has a measurable cost.
For races under 90 minutes — 5K, 10K, and most half marathons for recreational runners — carb loading makes very little difference. You will not run out of glycogen at those distances.
Focus on your race-morning food instead. Eat a breakfast rich in carbohydrate 2-3 hours before the start: oatmeal, toast with peanut butter, or a banana. Then take a few more carbohydrates in the last 30 minutes before the gun.
For a half marathon, it depends on your finishing time. If you run under 1:30, you probably do not need it. If you take 1:45 or longer, a light carb load over 1-2 days is worth doing.
Carb loading fills your glycogen tank. Race morning keeps it full and gives you energy for the first hours.
My current plan for a marathon:
This is only one approach. The most important rule is this: do not try anything new on race day. Practice your race morning nutrition during your long training runs.
Carb loading does not replace fueling during the race. Even with perfectly full glycogen stores, you will need carbohydrate every 45-60 minutes during a marathon. The Race Fuel Planner works out exactly how much you need, based on your weight, your pace and the race distance.
Load properly before, fuel consistently during. That is how you finish a marathon feeling strong instead of crawling through the last 10K.
Every page on this site has a Markdown mirror at the same path with a .md suffix (for example /calculator.md), and honors an Accept: text/markdown request header on the HTML URL. The calculations here are also available as callable tools through a free public MCP server — no account or API key.