
Half Marathon Fueling Plan: How Many Gels Do You Really Need?
Half Marathon Fueling Plan: How Many Gels Do You Really Need?
Half Marathon Fueling Plan: How Many Gels Do You Really Need?
Ask 10 runners how many gels you need in a half marathon, and you’ll get 10 answers. Here's how to calculate your fueling needs and choose the right products for your stomach, pace, and goals.
The Science of Fueling
Understanding your carbohydrate needs during a half marathon is crucial. Most half marathon runners require between 30 to 60 grams of carbohydrates per hour, depending on factors like race pace, duration, and body size. For example, a 2-hour runner might need approximately 60–90 grams in total.
Gel Math Explained
Most energy gels contain between 20 to 30 grams of carbohydrates. This means:
- 30g/hr: 1 gel per hour, totaling 2 gels for a 2-hour half marathon.
- 60g/hr: 2 gels per hour, totaling 4 gels for the same duration.
Incorporating a high-carb drink mix can reduce the number of gels you need.
Products in Practice
Product
Carbs/Serving
Caffeine
Best For
Maurten Gel 100 Loading… | 25g | None | Easy digestion |
Maurten Gel 100 CAF Loading… | 25g | 100mg | Caffeine boost |
GU Original Loading… | 20g | 20mg | Affordable energy |
GU Roctane Loading… | 20g | 35mg | Added sodium |
NeverSecond C30 Loading… | 30g | None | Smooth absorption |
NeverSecond C30 CAF Loading… | 30g | 75mg | Performance boost |
UnTapped Energy Gel Loading… | 26g | None | Natural option |
Extreme Sport Beans Loading… | 24g | 50mg | Chewable energy |
.aa-gel-calc { border: 1px solid rgba(0,0,0,.1); border-radius: 14px; padding: 1rem; margin: 1.5rem 0; font: inherit; } .aa-gc-grid { display: grid; gap: 0.85rem; grid-template-columns: 1fr; } .aa-gc-row { display: grid; gap: .5rem; } .aa-gc-row.inline { grid-template-columns: 1fr 1fr; } .aa-gc-label { font-weight: 600; } .aa-gc-input, .aa-gc-select { width: 100%; padding: .6rem .7rem; border: 1px solid rgba(0,0,0,.15); border-radius: 10px; background: #fff; } .aa-gc-range { width: 100%; } .aa-gc-help { color: #555; font-size: .9rem; } .aa-gc-cta { margin-top: .5rem; padding: .65rem 1rem; border: 0; border-radius: 10px; background: #ea2126; color: #fff; cursor: pointer; font-weight: 600; } .aa-gc-card { background: #fafafa; border: 1px solid rgba(0,0,0,.06); border-radius: 12px; padding: .9rem; } .aa-gc-stats { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); } .aa-gc-stat { background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 10px; padding: .75rem; } .aa-gc-stat h4 { margin: 0 0 .25rem; font-size: .95rem; color: #333; } .aa-gc-stat .val { font-weight: 700; font-size: 1.15rem; } .aa-gc-sched { margin-top: .5rem; } .aa-gc-sched ol { margin: .25rem 0 0 1.2rem; } .aa-gc-sched li { margin: .15rem 0; } .aa-gc-link { margin-top: .25rem; display: inline-flex; gap: .4rem; align-items: baseline; } .aa-gc-pill { display:inline-block; padding:.2rem .5rem; border:1px solid rgba(0,0,0,.12); border-radius:999px; font-size:.85rem; color:#333; background:#fff; } .aa-gc-note { margin-top: .5rem; font-size: .9rem; color: #555; } @media (min-width: 720px) { .aa-gc-grid { grid-template-columns: 1.1fr .9fr; align-items: start; } }
Half Marathon Gel Calculator
Pick your gel and race time. We’ll estimate how many you’ll need based on your target carb intake per hour (most runners land between 30–60 g/h). Practice this plan in training.
1) Choose your gel
We’ll use each product’s typical carbs per serving.
2) Race time
hr
min Half marathons often finish between 1:15–3:00 for most runners.
3) Carb target (g/hour)
45 g/h Tip: start at 30–45 g/h if new to fueling; experienced runners may push 60 g/h.
Calculate plan
Total gels needed
—
Total carbs delivered
—
Interval between gels
— View product Loading…
Suggested gel schedule
This is a starting point. Practice during training to dial in timing and tolerance. Pair gels with small sips of water/electrolyte.
(function(){ const gelSelect = document.getElementById('gcGel'); const hoursEl = document.getElementById('gcHours'); const minsEl = document.getElementById('gcMinutes'); const gphEl = document.getElementById('gcGPH'); const totalGelsEl = document.getElementById('gcTotalGels'); const totalCarbsEl = document.getElementById('gcTotalCarbs'); const intervalEl = document.getElementById('gcInterval'); const scheduleEl = document.getElementById('gcSchedule'); const linkEl = document.getElementById('gcProductLink'); const priceEl = document.getElementById('gcPrice'); function ceil(n){ return Math.ceil(n); } function clamp(n, lo, hi){ return Math.max(lo, Math.min(hi, n)); } function hhmmToHours(h, m){ h = +h||0; m = +m||0; m = clamp(m,0,59); return h + m/60; } function formatMinutes(mins){ const h = Math.floor(mins/60); const m = Math.round(mins - h*60); if (h <= 0) return `${m} min`; return `${h}h ${m}m`; } function buildSchedule(durationMin, intervalMin){ const times = []; if (!isFinite(intervalMin) || intervalMin <= 0) return times; // Start fueling ~20 min in for most runners let t = Math.max(20, intervalMin); while (t < durationMin - 5) { times.push(t); t += intervalMin; } return times; } function calculate(){ const opt = gelSelect.options[gelSelect.selectedIndex]; const carbs = parseFloat(opt.getAttribute('data-carbs')) || 0; // g per gel const url = opt.getAttribute('data-url') || '#'; const handle = gelSelect.value; // product handle // Inputs const durationH = hhmmToHours(hoursEl.value, minsEl.value); const gph = parseFloat(gphEl.value) || 45; if (durationH <= 0 || carbs <= 0 || gph <= 0) { totalGelsEl.textContent = '—'; totalCarbsEl.textContent = '—'; intervalEl.textContent = '—'; scheduleEl.innerHTML = ''; linkEl.href = url; priceEl.setAttribute('data-handle', handle); return; } // Math const totalCarbs = gph * durationH; const gelsNeeded = ceil(totalCarbs / carbs); // Interval between gels, minutes const intervalMin = (carbs / gph) * 60; const durationMin = durationH * 60; const schedule = buildSchedule(durationMin, intervalMin); // Output totalGelsEl.textContent = gelsNeeded.toString(); totalCarbsEl.textContent = `${Math.round(totalCarbs)} g`; intervalEl.textContent = `${Math.round(intervalMin)} min`; scheduleEl.innerHTML = schedule.map((m,i)=>`
${formatMinutes(m)} — take 1 gel
`).join('') || '
Consider taking your first gel ~20–30 min into the race, then at regular intervals.
'; linkEl.href = url; priceEl.setAttribute('data-handle', handle); } // Wire up document.getElementById('gcCalcBtn').addEventListener('click', calculate); // Auto-calc on load with defaults calculate(); })(); (function(){ const SELECTOR = '.js-price[data-handle]'; const CURRENCY = 'USD'; async function getProduct(handle){ const res = await fetch(`/products/${encodeURIComponent(handle)}.js`, { credentials: 'same-origin' }); if (!res.ok) throw new Error(`Product JSON not found for ${handle} (${res.status})`); return res.json(); } function parsePriceCents(v){ // Shopify returns cents (number). Guard for strings. const n = typeof v === 'number' ? v : parseFloat(v); return Number.isFinite(n) ? n : 0; } async function hydrateOne(el){ const handle = el.getAttribute('data-handle'); if (!handle) return; try { const product = await getProduct(handle); const variant = product.variants.find(v => v.available) || product.variants[0]; const price = parsePriceCents(variant && variant.price) / 100; const fmt = new Intl.NumberFormat(undefined, { style: 'currency', currency: CURRENCY }); el.textContent = ` · ${fmt.format(price)}`; el.setAttribute('data-loaded', 'true'); } catch (e) { console.warn('Price hydrate failed:', handle, e); el.textContent = ''; // fail silently } } async function hydrateAll(){ const els = document.querySelectorAll(SELECTOR); if (!els.length) return; await Promise.all(Array.from(els).map(hydrateOne)); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', hydrateAll); } else { hydrateAll(); } })();
Sample Fueling Plans
- 90-min finisher (~30g/hr): 2–3 gels total.
- 2-hour finisher (~45g/hr): 3–4 gels total.
- 2.5-hour finisher (~60g/hr): 4–5 gels total.
For example, integrating one Maurten 320 bottle (80g) can replace three gels.
Mistakes to Avoid
- Forgetting electrolytes: Essential for maintaining balance.
- Taking all gels at once: Spread them out for sustained energy.
- Ignoring caffeine timing: Use strategically for a boost.
- Not practicing fueling in training: Avoid surprises on race day.
Conclusion
Fueling is a personal journey, and practice makes perfect. Utilize our tools to refine your strategy and ensure your half marathon is successful and enjoyable.
---