About
How carbsperhour works
carbsperhour is a small set of free, evidence-based tools for DIY endurance fueling: a carrier-aware mixing calculator, a gut-training plan generator, and a specs comparison of branded gels and drink mixes. This page is mostly about the calculator, since that's where the math lives: you tell it what ingredients you have and which bottles you're riding with, and it returns what to put in each bottle, at what concentration, and how much sodium to take alongside.
Written by Thomas Neumann, an endurance triathlete who built this for his own training. Last updated June 2026.
Why this tool exists
Most fueling calculators start with "tell me your target." carbsperhour starts with "tell me what you have." The DIY athlete already has a pantry (table sugar, maltodextrin, maybe fructose powder) and a bike with bidons. The tool's job is to respect that setup, not push a manufacturer's product page.
The painful part of the math isn't total grams per hour. It's the split: which gram of which ingredient goes in which bottle, what concentration that lands at, and whether you'll regret it in two hours. Most calculators stop at "you need 80 g/h." carbsperhour takes that number and produces a per-carrier recipe.
Free, no accounts, no subscription. The tools are the product. The math runs in your browser, so you can read the source and verify it yourself.
Methodology: glucose:fructose ratio
Glucose is absorbed via the intestinal transporter SGLT1, which saturates around 60 g/h. Fructose uses a separate transporter (GLUT5), so adding fructose alongside glucose adds another 30–50 g/h of usable carbohydrate without piling up unabsorbed sugar in the gut.
The right ratio depends on the rate:
- At moderate rates (60–90 g/h): roughly 2 : 1 glucose to fructose.
- Above ~90 g/h: shift toward 1 : 0.8 (almost equal) to take fuller advantage of the fructose pathway (Hearris 2022; Jeukendrup 2010).
The calculator's auto mode picks the ratio from the target g/h. You can override it manually if you have a preference or you already know your own tolerance.
Methodology: multi-ingredient solver
Given a target carb load and a desired ratio, the solver picks gram amounts of each selected ingredient. Each ingredient has known glucose and fructose percentages (see the ingredient reference), so the problem reduces to a small linear system.
For many input combinations there is more than one valid recipe. For example, table sugar plus maltodextrin can hit a 1 : 0.8 ratio at several gram-pairs. The calculator always favors recipes that match your target ratio first, then breaks ties from your GI tolerance setting:
- Trained gut: the closest match to the target ratio.
- Average or sensitive gut: the lowest-osmolarity blend, gentler on the stomach.
Cost is shown for every recipe but never used to choose one. If you want the cheapest mix, read the per-recipe cost and swap ingredients yourself.
Methodology: carrier split & concentration
Once the total grams are solved, the calculator places them in your carriers. With one type of carrier it divides them in proportion to volume. With both bottles and soft flasks, it fills the bottles up to your concentration ceiling first, then puts the remainder in the flasks as concentrate to sip and chase with water.
Concentration is reported as grams of carbohydrate per 100 ml of fluid (g/100 ml, the same thing older guides call % w/v). Up to roughly 8 g/100 ml a drink is hypotonic and empties fast; past the isotonic range it leaves the stomach more slowly. The ceiling where the calculator warns you moves with your GI tolerance setting:
- Trained gut: warns above 18 g/100 ml.
- Average gut: warns above 14 g/100 ml.
- Sensitive gut: warns above 10 g/100 ml.
Soft flasks are allowed to run stronger than sip bottles, since you chase a concentrate flask with plain water. Below about 60% of your ceiling a bottle is flagged as dilute: fine, but you're leaving carbs on the table.
Sodium is dosed separately from the carb drink. The calculator totals your per-hour target over the session and tells you to take it alongside, via salt caps or a dedicated electrolyte sip, rather than mixed into a bottle, so each carrier's carb concentration stays exactly where you set it.
Methodology: cost & savings
Per-ingredient €/kg reflects typical bulk retail prices from broadly available retailers (Amazon, Decathlon, general grocery and drugstore chains, and specialist sports-nutrition shops). Recipe cost is just Σ(grams × €/kg).
The "savings vs. gels" comparison uses a configurable reference price (default €2.00 per 25 g gel, typical Maurten / SiS retail). You can edit the reference numbers in the calculator; the override is stored in your browser's localStorage and never leaves your device.
Open source: read the math
You shouldn't have to trust a black box telling you what to drink. The whole calculation engine is plain, dependency-free JavaScript, released under the MIT license. Read it and reuse it. It runs the same in your browser as it does on the server, where a 1:1 PHP mirror is parity-tested against it so the numbers can't quietly diverge.
The engine that runs in your browser right now: calculator.js, carrier.js, cost.js, gut-training.js. Every research-derived constant carries its citation in a comment at the point it's defined. No buried assumptions.
Limitations & honest disclaimers
This is a calculator and an information tool. It is not medical advice and not a substitute for working with a sports nutritionist if you have one.
Ratio recommendations are population averages from the research literature. Individual GI tolerance varies by a lot. Experiment in training sessions, not on race day.
Some ingredient values are typical, not measured per batch. Honey, agave, maple, and rice syrup compositions vary by origin and processing. The ingredient reference flags accuracy per-row.
Citations
- Hearris MA, Pugh JN, Langan-Evans C, et al. 2022. "13C-glucose-fructose labelling reveals comparable exogenous CHO oxidation during exercise when consuming 120 g/h in fluid, gel, jelly chew or co-ingestion." Journal of Applied Physiology 132(6), 1394–1406. doi:10.1152/japplphysiol.00091.2022
- Jeukendrup AE. 2010. "Carbohydrate and exercise performance: the role of multiple transportable carbohydrates." Current Opinion in Clinical Nutrition and Metabolic Care 13(4), 452–457. doi:10.1097/MCO.0b013e328339de9f
- Jentjens RL, Jeukendrup AE. 2005. "High rates of exogenous carbohydrate oxidation from a mixture of glucose and fructose ingested during prolonged cycling exercise." British Journal of Nutrition 93(4), 485–492. doi:10.1079/BJN20041368
- Per-ingredient composition and osmolarity sources are listed inline on the ingredient reference page.
Frequently asked questions
How many carbs per hour should I consume on long endurance sessions?
Most trained athletes target 60–90 g/h on sessions over two hours, scaling up to 100–120 g/h on hard or long efforts if the gut is trained for it. The right number depends on duration, intensity, and how much GI training you've done. Start at 60 g/h and add gradually.
What is the right glucose:fructose ratio for endurance fueling?
Use roughly 2:1 glucose:fructose at moderate rates (60–90 g/h) and shift toward 1:0.8 above 90 g/h. The higher fructose share raises usable carbs per hour by recruiting the GLUT5 transporter alongside SGLT1 (Hearris et al., 2022).
Can I use table sugar as a sports drink ingredient?
Yes. Table sugar (sucrose) is 50% glucose / 50% fructose by mass, which is close to an ideal mix on its own. It's the cheapest DIY fueling option per gram of carbohydrate and dissolves easily. The downsides are sweetness at higher concentrations and a higher osmolarity than maltodextrin-based mixes.
What is maltodextrin and why is it used in sports nutrition?
Maltodextrin is a partly broken-down starch, a chain of glucose units. The body digests it into glucose nearly as fast as pure dextrose, but because it's a polymer it contributes less to the osmotic pressure of the drink. That means you can pack more carbs into the same volume of fluid without making it hypertonic, which is why almost every commercial sports drink uses it.
Is a homemade energy drink as effective as commercial gels?
For the same glucose:fructose ratio and total carb intake, a homemade mix delivers the same usable fuel as a branded gel or drink. Commercial products buy you convenience and consistency, not a unique chemistry. A DIY drink costs roughly a tenth as much per gram of carbohydrate.
How much sodium should I add to my fueling plan?
A starting point is 300–700 mg of sodium per liter of fluid consumed, scaling up for hot conditions, long durations, or athletes who lose a lot of sodium in sweat. The calculator lets you set a per-session target and tells you to take it alongside the carb drink, via salt caps or a separate electrolyte sip, rather than mixed into a bottle, so your bottle concentrations stay where you set them.
What concentration of carbohydrate should be in my bottle?
Isotonic sip bottles work best at 6–8% w/v. You can go to 14–18% for stronger mixes if your gut tolerates it. Above ~18% the drink becomes hypertonic and can slow gastric emptying, better placed in a concentrate flask sipped slowly rather than a main drinking bottle.
How do I split a fueling plan across multiple bottles?
The carbsperhour calculator does this automatically. You enter your carriers (e.g. 2× 750 ml bidons + 1× 150 ml soft flask), the total target carbs, and the ingredients you have; it returns per-bottle grams and the resulting concentration in g/100 ml, and totals the sodium for you to take alongside, separately from the carb drink.