============================================================ */ (function(){ 'use strict'; function init(){ var root = document.getElementById('zssb'); if(!root) return; /* ── State ──────────────────────────────────────── */ var s1Type = 'sleeper'; // 'sleeper' or 'offduty' var s2Type = 'sleeper'; /* ── Toggle button setup ────────────────────────── */ function setupToggle(slpId, offId, callback){ var slpBtn = document.getElementById(slpId); var offBtn = document.getElementById(offId); if(!slpBtn || !offBtn) return; slpBtn.addEventListener('click', function(){ slpBtn.classList.add('active'); offBtn.classList.remove('active'); callback('sleeper'); }); offBtn.addEventListener('click', function(){ offBtn.classList.add('active'); slpBtn.classList.remove('active'); callback('offduty'); }); } setupToggle('zssb-s1-sleeper', 'zssb-s1-offduty', function(t){ s1Type = t; }); setupToggle('zssb-s2-sleeper', 'zssb-s2-offduty', function(t){ s2Type = t; }); /* ── Format decimal hours → "Xh Ym" ─────────────── */ function fmtHrs(h){ if(isNaN(h) || h < 0) return '0h 0m'; var hh = Math.floor(h); var mm = Math.round((h - hh) * 60); if(mm === 60){ hh++; mm = 0; } if(hh === 0 && mm === 0) return '0h 0m'; if(hh === 0) return mm + 'm'; if(mm === 0) return hh + 'h'; return hh + 'h ' + mm + 'm'; } /* ── Add decimal hours to a time string ─────────── */ function addHrs(timeStr, hrs){ if(!timeStr || timeStr === '') return null; var parts = timeStr.split(':'); if(parts.length < 2) return null; var totalMins = parseInt(parts[0], 10) * 60 + parseInt(parts[1], 10) + Math.round(hrs * 60); totalMins = ((totalMins % 1440) + 1440) % 1440; var h = Math.floor(totalMins / 60); var m = totalMins % 60; return (h < 10 ? '0' : '') + h + ':' + (m < 10 ? '0' : '') + m; } /* ── Convert 24hr "HH:MM" → 12hr "H:MM AM/PM" ─── */ function to12hr(t24){ if(!t24) return null; var p = t24.split(':'); var h = parseInt(p[0], 10); var m = p[1]; var ampm = h >= 12 ? 'PM' : 'AM'; h = h % 12; if(h === 0) h = 12; return h + ':' + m + ' ' + ampm; } /* ── Warning helpers ─────────────────────────────── */ function showWarn(msg){ var w = document.getElementById('zssb-warn'); var wm = document.getElementById('zssb-wmsg'); if(w && wm){ wm.textContent = msg; w.classList.add('show'); } } function hideWarn(){ var w = document.getElementById('zssb-warn'); if(w) w.classList.remove('show'); } /* ── Status bar progress ─────────────────────────── */ function setStatus(step){ var pills = ['zssb-pill-1', 'zssb-pill-2', 'zssb-pill-3']; for(var i = 0; i < pills.length; i++){ var el = document.getElementById(pills[i]); if(el){ el.classList[i < step ? 'add' : 'remove']('active'); } } } /* ════════════════════════════════════════════════ MAIN CALCULATION — FMCSA 49 CFR §395.1(g) ════════════════════════════════════════════════ */ function calc(){ hideWarn(); setStatus(2); /* Read inputs */ var drivenBefore = parseFloat(document.getElementById('zssb-driven').value) || 0; var drivenBetween = parseFloat(document.getElementById('zssb-driven-between').value) || 0; var s1h = parseFloat(document.getElementById('zssb-s1-hrs').value) || 0; var s1m = parseFloat(document.getElementById('zssb-s1-min').value) || 0; var s2h = parseFloat(document.getElementById('zssb-s2-hrs').value) || 0; var s2m = parseFloat(document.getElementById('zssb-s2-min').value) || 0; var s1Start = document.getElementById('zssb-s1-start').value; var s2Start = document.getElementById('zssb-s2-start').value; /* Convert to decimal hours */ var split1 = s1h + (s1m / 60); var split2 = s2h + (s2m / 60); /* ── Validation ────────────────────────────────── */ if(split1 <= 0 && split2 <= 0){ showWarn('Please enter the duration for at least one split rest period.'); return; } if(split1 < 0 || split2 < 0){ showWarn('Rest period durations cannot be negative.'); return; } if(drivenBefore < 0 || drivenBetween < 0){ showWarn('Driving hours cannot be negative.'); return; } var totalDriven = drivenBefore + drivenBetween; if(totalDriven > 11){ showWarn('Total hours driven (' + totalDriven.toFixed(2) + ' hrs) exceeds the 11-hour driving limit.'); return; } /* ── FMCSA Split Sleeper Berth Logic ───────────── RULE 1: Combined rest >= 10 hours RULE 2: The longer period must be >= 7 hrs AND in sleeper berth RULE 3: The shorter period must be >= 2 hrs (sleeper or off-duty) ─────────────────────────────────────────────────── */ var totalRest = split1 + split2; var combinedOk = totalRest >= 10; var longSplit = Math.max(split1, split2); var shortSplit = Math.min(split1, split2); var longIsS1 = split1 >= split2; var longType = longIsS1 ? s1Type : s2Type; /* Long split: must be >= 7 hrs AND sleeper berth */ var longOk = (longSplit >= 7) && (longType === 'sleeper'); /* Short split: must be >= 2 hrs (any type) */ var shortOk = (shortSplit >= 2); /* Single-split detection (only one period entered) */ var oneSplit = (split1 > 0 && split2 === 0) || (split1 === 0 && split2 > 0); var isCompliant = false; var reason = ''; if(oneSplit){ isCompliant = false; reason = 'Only one split period entered. Please enter both Split 1 and Split 2 durations to check full FMCSA compliance.'; } else { var failReasons = []; if(!longOk){ if(longSplit < 7){ failReasons.push('Longer split (' + fmtHrs(longSplit) + ') is under the required 7-hour minimum.'); } else { failReasons.push('Longer split (' + fmtHrs(longSplit) + ') must be in the sleeper berth, not off-duty.'); } } if(!shortOk){ failReasons.push('Shorter split (' + fmtHrs(shortSplit) + ') is under the required 2-hour minimum.'); } if(!combinedOk){ failReasons.push('Combined rest (' + fmtHrs(totalRest) + ') is under the 10-hour minimum required.'); } isCompliant = longOk && shortOk && combinedOk; if(isCompliant){ reason = 'Both splits meet FMCSA requirements. Your 14-hour clock is paused during both rest periods and restarts at the end of Split 2.'; } else { reason = failReasons.join(' '); } } /* ── Remaining drive time ───────────────────────── */ var driveRemaining = Math.max(0, 11 - totalDriven); /* ── Timeline data (if start times provided) ──── */ var timelineData = null; if(s1Start && s1Start !== ''){ var s1End = addHrs(s1Start, split1); var midDrive = s2Start && s2Start !== '' ? s2Start : (s1End ? addHrs(s1End, drivenBetween) : null); var s2End = midDrive ? addHrs(midDrive, split2) : null; timelineData = { s1Start: to12hr(s1Start), s1End: to12hr(s1End), s2Start: s2Start && s2Start !== '' ? to12hr(s2Start) : (midDrive ? to12hr(midDrive) : null), s2End: to12hr(s2End), resumeTime: s2End ? to12hr(s2End) : null }; } /* ── Render results ──────────────────────────────── */ renderResults(isCompliant, reason, { split1: split1, split2: split2, totalRest: totalRest, longSplit: longSplit, shortSplit: shortSplit, longOk: longOk, shortOk: shortOk, combinedOk: combinedOk, longType: longType, drivenBefore: drivenBefore, drivenBetween: drivenBetween, totalDriven: totalDriven, driveRemaining:driveRemaining, s1Type: s1Type, s2Type: s2Type, oneSplit: oneSplit }, timelineData); setStatus(3); } /* ════════════════════════════════════════════════ RENDER RESULTS ════════════════════════════════════════════════ */ function renderResults(isCompliant, reason, d, tl){ /* Element refs */ var resEl = document.getElementById('zssb-res'); var banner = document.getElementById('zssb-banner'); var bannerStatus= document.getElementById('zssb-banner-status'); var bannerReason= document.getElementById('zssb-banner-reason'); var bannerSvg = document.getElementById('zssb-banner-svg'); var cardsEl = document.getElementById('zssb-cards'); var breakdownEl = document.getElementById('zssb-breakdown'); var timelineEl = document.getElementById('zssb-timeline'); var tlWrap = document.getElementById('zssb-timeline-wrap'); /* ── Compliance Banner ──────────────────────────── */ if(d.oneSplit){ banner.className = 'compliance-banner non-compliant'; bannerStatus.textContent = 'Incomplete — Enter Both Splits'; bannerSvg.innerHTML = ''; } else if(isCompliant){ banner.className = 'compliance-banner compliant'; bannerStatus.textContent = '✅ FMCSA Compliant — Valid Split'; bannerSvg.innerHTML = ''; } else { banner.className = 'compliance-banner non-compliant'; bannerStatus.textContent = '❌ Non-Compliant — Invalid Split'; bannerSvg.innerHTML = ''; } bannerReason.textContent = reason; /* ── Summary Cards ──────────────────────────────── */ var cards = []; if(!d.oneSplit){ cards.push({ v: fmtHrs(d.split1), u: d.s1Type === 'sleeper' ? 'SLEEPER' : 'OFF-DUTY', n: 'Split 1 Duration', cls: d.s1Type === 'sleeper' ? 'blue' : 'orange' }); cards.push({ v: fmtHrs(d.split2), u: d.s2Type === 'sleeper' ? 'SLEEPER' : 'OFF-DUTY', n: 'Split 2 Duration', cls: d.s2Type === 'sleeper' ? 'blue' : 'orange' }); cards.push({ v: fmtHrs(d.totalRest), u: 'TOTAL REST', n: 'Combined Off-Duty', cls: d.combinedOk ? 'green' : 'red' }); cards.push({ v: fmtHrs(d.driveRemaining), u: 'REMAINING', n: 'Drive Time Left', cls: d.driveRemaining > 4 ? 'green' : (d.driveRemaining > 2 ? 'orange' : 'red') }); } cardsEl.innerHTML = cards.map(function(c){ return '
' + '
' + c.v + '
' + '
' + c.u + '
' + '
' + c.n + '
' + '
'; }).join(''); /* ── Breakdown Table ────────────────────────────── */ var rows = []; if(!d.oneSplit){ rows.push({lbl: 'Split 1 (' + (d.s1Type === 'sleeper' ? 'Sleeper Berth' : 'Off-Duty') + ')', val: fmtHrs(d.split1), cls: ''}); rows.push({lbl: 'Split 2 (' + (d.s2Type === 'sleeper' ? 'Sleeper Berth' : 'Off-Duty') + ')', val: fmtHrs(d.split2), cls: ''}); rows.push({lbl: 'Combined Rest Total', val: fmtHrs(d.totalRest) + (d.totalRest >= 10 ? ' ✓' : ' ✗ (Need ≥10h)'), cls: d.combinedOk ? 'ok' : 'fail'}); rows.push({lbl: 'Longer Split ≥7 hrs in Sleeper Berth', val: d.longOk ? '✓ Pass' : '✗ Fail', cls: d.longOk ? 'ok' : 'fail'}); rows.push({lbl: 'Shorter Split ≥2 hrs (any type)', val: d.shortOk ? '✓ Pass' : '✗ Fail', cls: d.shortOk ? 'ok' : 'fail'}); rows.push({lbl: 'Hours Driven Before Split 1', val: fmtHrs(d.drivenBefore), cls: 'info'}); rows.push({lbl: 'Hours Driven Between Splits', val: fmtHrs(d.drivenBetween), cls: 'info'}); rows.push({lbl: 'Total Hours Driven', val: fmtHrs(d.totalDriven) + ' / 11 hrs max', cls: d.totalDriven < 11 ? 'ok' : 'fail'}); rows.push({lbl: 'Drive Time Remaining After Splits', val: fmtHrs(d.driveRemaining), cls: d.driveRemaining > 0 ? 'ok' : 'fail'}); rows.push({lbl: '14-Hour Clock Paused During Splits', val: isCompliant ? 'Yes — Both periods excluded' : 'Not applicable (fix issues above)', cls: isCompliant ? 'ok' : 'fail'}); } breakdownEl.innerHTML = rows.map(function(r){ return '
' + '' + r.lbl + '' + '' + r.val + '' + '
'; }).join(''); /* ── Timeline ───────────────────────────────────── */ if(!d.oneSplit){ tlWrap.style.display = 'block'; var items = []; items.push({ dot: 'drive', label: 'Started Driving', desc: 'Drove ' + fmtHrs(d.drivenBefore) + ' before first rest period.' }); items.push({ dot: 'sleep', label: 'Split 1 Begins' + (tl && tl.s1Start ? ' at ' + tl.s1Start : ''), desc: fmtHrs(d.split1) + ' ' + (d.s1Type === 'sleeper' ? 'in Sleeper Berth' : 'Off-Duty') + (tl && tl.s1End ? ' → Ends: ' + tl.s1End : '') }); if(d.drivenBetween > 0){ items.push({ dot: 'drive', label: 'Resumed Driving Between Splits', desc: 'Drove ' + fmtHrs(d.drivenBetween) + ' between the two rest periods.' }); } items.push({ dot: 'sleep', label: 'Split 2 Begins' + (tl && tl.s2Start ? ' at ' + tl.s2Start : ''), desc: fmtHrs(d.split2) + ' ' + (d.s2Type === 'sleeper' ? 'in Sleeper Berth' : 'Off-Duty') + (tl && tl.s2End ? ' → Ends: ' + tl.s2End : '') }); if(isCompliant){ items.push({ dot: 'done', label: '14-Hour Clock Restarts' + (tl && tl.resumeTime ? ' at ' + tl.resumeTime : ''), desc: 'Both splits complete. ' + fmtHrs(d.driveRemaining) + ' drive time remaining.' }); } else { items.push({ dot: 'off', label: 'Non-Compliant — Cannot Resume', desc: 'Fix the split issues above before resuming driving.' }); } timelineEl.innerHTML = items.map(function(it){ return '
' + '
' + '
' + '
' + it.label + '
' + '
' + it.desc + '
' + '
'; }).join(''); } else { tlWrap.style.display = 'none'; } /* ── Show results panel ─────────────────────────── */ resEl.classList.add('show'); setTimeout(function(){ resEl.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }, 100); } /* ════════════════════════════════════════════════ RESET ════════════════════════════════════════════════ */ function resetAll(){ /* Clear number inputs */ var numIds = ['zssb-driven', 'zssb-driven-between', 'zssb-s1-hrs', 'zssb-s1-min', 'zssb-s2-hrs', 'zssb-s2-min']; numIds.forEach(function(id){ var el = document.getElementById(id); if(el) el.value = ''; }); /* Clear time inputs */ ['zssb-s1-start', 'zssb-s2-start'].forEach(function(id){ var el = document.getElementById(id); if(el) el.value = ''; }); /* Reset toggle states */ s1Type = 'sleeper'; s2Type = 'sleeper'; ['zssb-s1-sleeper', 'zssb-s2-sleeper'].forEach(function(id){ var el = document.getElementById(id); if(el) el.classList.add('active'); }); ['zssb-s1-offduty', 'zssb-s2-offduty'].forEach(function(id){ var el = document.getElementById(id); if(el) el.classList.remove('active'); }); /* Hide warning and results */ hideWarn(); var resEl = document.getElementById('zssb-res'); if(resEl) resEl.classList.remove('show'); setStatus(1); } /* ── Event Listeners ──────────────────────────────── */ var calcBtn = document.getElementById('zssb-btn'); if(calcBtn) calcBtn.addEventListener('click', calc); var rstBtn = document.getElementById('zssb-reset'); if(rstBtn) rstBtn.addEventListener('click', resetAll); /* Enter key triggers calculation */ var numFields = ['zssb-driven', 'zssb-driven-between', 'zssb-s1-hrs', 'zssb-s1-min', 'zssb-s2-hrs', 'zssb-s2-min']; numFields.forEach(function(id){ var el = document.getElementById(id); if(el) el.addEventListener('keydown', function(e){ if(e.key === 'Enter') calc(); }); }); } /* end init() */ /* ── Safe DOM-ready execution ───────────────────────── */ if(document.readyState === 'loading'){ document.addEventListener('DOMContentLoaded', init); } else { init(); } })();
TDEE Calculator for Weight Loss
Calculate your Total Daily Energy Expenditure & find your exact calorie deficit to lose weight.
Personal Details
Age (years)
yrs
Biological Sex
Activity Level
Weight
kg
Height
cm
Weight Loss Goal
Weekly Loss Target
0.5 kg / week (Recommended)
Gentle
0.25 kg/wk
Recommended
0.5 kg/wk
Moderate
0.75 kg/wk
Aggressive
1 kg/wk
!
Please fill in all fields with valid values.
Your TDEE (Maintenance)
calories / day
Daily Deficit Target
cal/day to lose
Calorie Breakdown
Your Target vs. Maintenance Calories
Target: — cal Maintenance: — cal
Weight Loss Projections
Macronutrient Targets (at Deficit)
Formulas, Notes & References
  • BMR Formula (Mifflin-St Jeor): Women: (10×kg) + (6.25×cm) − (5×age) − 161  |  Men: (10×kg) + (6.25×cm) − (5×age) + 5
  • TDEE Formula: TDEE = BMR × Activity Factor  (Sedentary 1.2 → Extra Active 1.9)
  • Deficit Formula: Daily Target = TDEE − (Weekly Goal kg × 7700 ÷ 7)
  • 1 kg of body fat ≈ 7,700 calories (widely accepted clinical estimate)
  • Macros: Protein = 2.2g/kg body weight | Fat = 25% of calories | Carbs = remaining calories
  • Minimum safe intake: 1,200 cal/day (women) and 1,500 cal/day (men). This calculator warns if your target falls below these thresholds.
  • Sources: Mifflin MD et al. (1990), Journal of the American Dietetic Association  |  WHO Energy & Protein Requirements Report

TDEE Calculator for Weight Loss: Find Your Calorie Goal Instantly

Knowing your Total Daily Energy Expenditure (TDEE) is the single most important number for sustainable weight loss. This free TDEE calculator for weight loss tells you exactly how many calories your body burns each day — so you can create the precise deficit needed to lose fat without guesswork. Whether you are a complete beginner or tracking a specific weight loss goal, this tool gives you a science-backed starting point in seconds.


What This Calculator Tells You

Using this weight loss TDEE calculator, you get a full breakdown of the numbers that actually drive fat loss:

  • Your TDEE (Total Daily Energy Expenditure): The total calories your body burns daily based on your size and lifestyle
  • Your BMR (Basal Metabolic Rate): The calories your body needs just to stay alive at rest — the foundation of every TDEE and weight loss calculation
  • Activity-Adjusted Calorie Burn: How movement and exercise multiplies your base metabolism
  • Recommended Calorie Deficit: A safe daily calorie target to lose weight at your chosen pace (0.5 lb or 1 lb per week)
  • Estimated Weekly & Monthly Weight Loss: A realistic projection based on your deficit
  • Maintenance vs. Deficit Calories: The difference between eating to maintain and eating to lose

How the Calculator Works (The Formula & Logic)

Calculating TDEE for weight loss involves two core steps: finding your BMR first, then scaling it by your activity level.

Step 1 — Calculate BMR using the Mifflin-St Jeor Equation (the most accurate standard):

For Women: BMR = (10 × weight in kg) + (6.25 × height in cm) − (5 × age) − 161 For Men: BMR = (10 × weight in kg) + (6.25 × height in cm) − (5 × age) + 5

Step 2 — Multiply BMR by your Activity Multiplier to get TDEE:

TDEE = BMR × Activity Factor

Activity LevelMultiplier
Sedentary (little or no exercise)× 1.2
Lightly Active (1–3 days/week)× 1.375
Moderately Active (3–5 days/week)× 1.55
Very Active (6–7 days/week)× 1.725
Extra Active (physical job + hard training)× 1.9

Step 3 — Create a Calorie Deficit for Weight Loss:

Weight Loss Target = TDEE − Calorie Deficit A 500 calorie/day deficit = approximately 0.5 kg (1 lb) of fat loss per week.

This is the exact logic used when you calculate my TDEE for weight loss on ZoCalculator.com — no hidden math, no black boxes.


Standard TDEE Ranges & Weight Loss Classifications

This reference chart helps you understand what your TDEE result means and how large a calorie deficit is appropriate. Most guidelines advise against deficits larger than 1,000 calories per day to protect muscle mass and metabolic health.

Daily Calorie DeficitWeekly Loss (Approx.)Classification
250 cal/day~0.25 kg (0.5 lb)Slow & Sustainable
500 cal/day~0.45 kg (1 lb)Recommended Standard
750 cal/day~0.68 kg (1.5 lb)Moderate Aggressive
1,000 cal/day~0.9 kg (2 lb)Max Recommended
1,000+ cal/day>0.9 kg (2+ lb)Not Recommended (Risk of Muscle Loss)

General TDEE Reference Ranges (Adult Women):

TDEE RangeTypical Profile
1,400 – 1,700 calSedentary, smaller frame
1,700 – 2,000 calLightly to moderately active
2,000 – 2,400 calVery active or athletic

General TDEE Reference Ranges (Adult Men):

TDEE RangeTypical Profile
1,800 – 2,200 calSedentary, average frame
2,200 – 2,800 calModerately to very active
2,800 – 3,500 calHighly athletic

Step-by-Step Practical Example

Let’s walk through how to calculate TDEE for weight loss using a real-world example.

Profile: Sarah, 32-year-old woman, 68 kg, 165 cm tall, moderately active (gym 4 days/week), weight loss goal of 1 lb/week.

Step 1 — Calculate BMR: BMR = (10 × 68) + (6.25 × 165) − (5 × 32) − 161 BMR = 680 + 1,031.25 − 160 − 161 BMR = 1,390 calories/day

Step 2 — Apply Activity Multiplier (Moderately Active = 1.55): TDEE = 1,390 × 1.55 TDEE = 2,155 calories/day

Step 3 — Subtract Deficit for Weight Loss Goal (500 cal/day for ~1 lb/week): Weight Loss Calorie Target = 2,155 − 500 Daily Calorie Goal = 1,655 calories/day

Sarah now knows she should eat approximately 1,655 calories per day to lose roughly 1 pound per week in a sustainable, evidence-based way. This is exactly what you get when calculating TDEE weight loss with our tool.


How to Use Zo Calculator’s TDEE Weight Loss Tool

Using ZoCalculator.com to get your numbers takes under a minute. Here’s exactly what to do:

  1. Enter your age — The calculator uses your age to adjust metabolic rate accurately.
  2. Select your biological sex — The Mifflin-St Jeor formula has separate calculations for female and male users, making this a precise TDEE calculator for weight loss female users and male users alike.
  3. Input your height and weight — You can use metric (cm/kg) or imperial (ft/lbs); the tool converts automatically.
  4. Choose your activity level — Be honest here. Most people overestimate their activity. When in doubt, select one level lower.
  5. Set your weight loss goal — Choose between 0.5 lb/week (gentle) or 1 lb/week (standard). The tool calculates your personalized calorie deficit automatically.
  6. Read your results — You’ll instantly see your BMR, your TDEE, and your daily calorie target for weight loss displayed clearly. No sign-up required — it’s a completely free TDEE weight loss calculator.

Practical Applications and Real-World Uses

This TDEE and weight loss calculator is useful far beyond just dieting. Here are the most impactful real-world applications:

  • Personal Fat Loss Planning: Anyone wanting to lose weight uses this as a calorie calculator for weight loss (TDEE-based) to set a daily eating target grounded in their own biology — not generic 1,200-calorie myths.
  • Women’s Health & Hormonal Awareness: Because metabolism differs by sex and life stage, the TDEE calculator for women’s weight loss accounts for these differences, making it especially valuable for women managing perimenopause, PCOS, or postpartum recovery.
  • Fitness Coaching & Personal Training: Coaches use this free TDEE calculator weight loss tool to set client calorie prescriptions quickly and accurately without manual BMR/TDEE math.
  • Tracking Progress Over Time: As you lose weight, your TDEE drops. Recalculating every 4–6 weeks (as body weight changes) keeps your calorie targets accurate — a key principle in calculating TDEE for weight loss long-term.
  • Pre-Diet Planning & Realistic Goal Setting: Before starting a diet program, this TDEE weight loss calculator free tool helps users project timelines and avoid the frustration of unrealistic expectations.
  • Dietitian & Nutritionist Reference: Healthcare professionals use TDEE as a foundational metric when building meal plans, and this free tool speeds up that initial assessment considerably.

Important Notes & Technical Limitations

In the interest of transparency (and to help you use this tool correctly), here are four important limitations to keep in mind:

  1. Estimates, not exact measurements: The Mifflin-St Jeor equation is the most validated predictive formula available, but it still carries a margin of error of ±10–15%. Actual TDEE can only be measured precisely through indirect calorimetry in a clinical setting.
  2. Body composition is not accounted for: TDEE formulas are based on total body weight. Two people with the same weight but different muscle-to-fat ratios will have genuinely different metabolisms. The Katch-McArdle formula (which uses lean body mass) is more accurate if you know your body fat percentage.
  3. Activity self-reporting is subjective: The accuracy of your calorie calculator TDEE weight loss result depends entirely on how honestly you self-report your activity level. Even small errors here can shift your result by 200–400 calories per day.
  4. This tool is for educational and planning use only: It is not a substitute for medical or dietary advice. If you have a metabolic condition, eating disorder history, or significant health concerns, please consult a registered dietitian or physician before using these numbers to guide your eating.

Helpful References & Sources

  • National Institutes of Health (NIH) — Body Weight Planner — An evidence-based tool and resource library on calorie balance and body weight management.
  • Wikipedia — Basal Metabolic Rate — A well-sourced overview of BMR equations including Mifflin-St Jeor and Harris-Benedict, plus the science behind how BMR and TDEE are calculated.
  • Academy of Nutrition and Dietetics — The leading professional organization for registered dietitians; provides authoritative guidance on calorie needs, weight management, and healthy deficit ranges.

🙋 Frequently Asked Questions (FAQs)

What is TDEE and why does it matter for weight loss?

TDEE stands for Total Daily Energy Expenditure — the total number of calories your body burns in a 24-hour period, including everything from breathing and digestion to exercise and movement. It matters for weight loss because it is your personal calorie “maintenance” number; eating below it creates the deficit that causes fat loss. Without knowing your TDEE, any calorie target you pick is essentially a guess.

How accurate is a TDEE calculator for weight loss?

A well-designed TDEE calculator for weight loss using the Mifflin-St Jeor equation is accurate within roughly 10–15% for most healthy adults. That means for someone with a calculated TDEE of 2,000 calories, the real value likely sits between 1,700 and 2,300 calories. Use the result as a strong starting point, track your actual weight change over 2–3 weeks, and adjust your intake up or down based on real-world results.

What is the best calorie deficit to lose weight without losing muscle?

Most sports nutrition and dietetics guidelines recommend a deficit of 300–500 calories per day as the sweet spot for fat loss while preserving lean muscle mass. Deficits larger than 1,000 calories per day accelerate muscle breakdown, slow metabolism, and are generally unsustainable. Pairing your calorie deficit with adequate protein intake (0.7–1g per pound of body weight) is the single most effective strategy to protect muscle during a cut.

Is there a different TDEE calculator for weight loss for females?

Yes — the formula used to calculate BMR (and therefore TDEE) has a sex-specific constant. For females, the Mifflin-St Jeor equation subtracts 161 at the end, reflecting the average difference in metabolic rate between biological sexes at the same height, weight, and age. A dedicated TDEE calculator for weight loss female users applies this automatically, which is why entering your sex correctly matters when you use this tool.

How do I know how many calories to eat for weight loss using TDEE?

Once you know your TDEE, subtract 500 calories per day for a goal of approximately 1 pound (0.45 kg) of weight loss per week. For a slower, more comfortable pace, subtract 250 calories for roughly 0.5 lbs per week. Never eat below your BMR (your bare resting calorie need) without medical supervision, as doing so can trigger metabolic adaptation and nutrient deficiencies.

How often should I recalculate my TDEE during a weight loss journey?

You should recalculate your TDEE every 4–6 weeks, or whenever your body weight changes by 5 lbs (2–3 kg) or more. As you lose weight, your BMR decreases because your body has less mass to maintain — this is why people often hit weight loss plateaus. Recalculating and adjusting your calorie target is one of the most effective ways to break through a plateau.

What is the difference between BMR and TDEE for weight loss?

BMR (Basal Metabolic Rate) is the number of calories your body burns at complete rest — essentially the energy cost of being alive. TDEE is BMR multiplied by your activity level, giving you the total calories burned across the full day. For weight loss purposes, TDEE is the number that matters because it reflects your real-world energy output. Knowing how to calculate BMR and TDEE for weight loss gives you both the foundation and the actionable target.

Can I use a free TDEE calculator for weight loss without creating an account?

Yes. The TDEE weight loss calculator free tool on ZoCalculator.com requires no sign-up, no email address, and no payment. Simply enter your details, get your results instantly, and use the numbers however you need. It is designed to be fast, private, and completely accessible to anyone at any time.

What happens if I eat exactly at my TDEE?

Eating exactly at your TDEE means you are consuming the same number of calories your body burns — this is your maintenance level. You will neither gain nor lose weight (all other things being equal). To use your TDEE for weight loss, you need to eat below it, creating a calorie deficit. Many people also use their TDEE calculation to understand their maintenance level before deciding how aggressive or gradual their weight loss approach should be.

Is the TDEE calculator for weight loss the same as a general calorie calculator?

Not exactly. A general calorie counter tracks what you eat. A TDEE calorie calculator for weight loss specifically determines what you should eat based on your personal energy expenditure. The TDEE approach is more personalized and scientifically grounded than generic calorie targets (like “eat 1,200 calories”) because it anchors your goal to your actual biology rather than a one-size-fits-all number.


Explore Related Calculators on Zo Calculator