{"id":42388,"date":"2025-09-17T17:44:20","date_gmt":"2025-09-17T08:44:20","guid":{"rendered":"https:\/\/first-reach.org\/?page_id=42388"},"modified":"2026-03-26T13:03:23","modified_gmt":"2026-03-26T06:03:23","slug":"nrc-2006-me-calculator","status":"publish","type":"page","link":"https:\/\/first-reach.org\/en\/tools\/nrc-2006-me-calculator\/","title":{"rendered":"NRC 2006\uff08CF\uff09ME Calculation"},"content":{"rendered":"\n<p class=\"is-style-paragraph__lines-left wp-block-paragraph\" style=\"font-size:20px\"><strong>Overview<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Nutrient Requirements of Dogs and Cats (2006), the U.S. National Research Council (NRC) proposes a four-step method to estimate metabolizable energy (ME) with greater accuracy than the Modified Atwater approach. This method adjusts predicted digestibility based on crude fiber content and applies species-specific corrections for urinary energy losses, which differ between dogs and cats.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n  <style>\n    :root{ --nrc-border:#e5e7eb; --nrc-accent:#0ea5e9; }\n    .nrc-wrap{max-width:820px;margin:24px auto;padding:0 8px;color:inherit;}\n    .nrc-card{border:1px solid var(--nrc-border);border-radius:16px;padding:16px;background:#fff;margin-bottom:16px}\n    .nrc-title{font-weight:700;font-size:1.375rem;margin:0 0 4px;color:inherit}\n\n    \/* Input form *\/\n    .nrc-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}\n    @media(max-width:640px){ .nrc-row{grid-template-columns:1fr} }\n    .nrc-input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;font-size:1rem;color:inherit;background:#fff;box-shadow:none;outline:none;}\n    .nrc-input:focus{border-color:#9ca3af;box-shadow:0 0 0 3px rgba(156,163,175,.2);}    \n    .nrc-label{font-size:.9rem;color:inherit;opacity:.75;display:block;margin:6px 0 4px}\n\n    \/* Species toggle *\/\n    .nrc-seg{display:flex;gap:8px;margin:6px 0 10px}\n    .nrc-seg button{flex:1;padding:10px 12px;border:1px solid var(--nrc-border);border-radius:999px;background:#fff;color:inherit;font-weight:700;font-size:1rem;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;text-shadow:none}\n    .nrc-seg button[aria-pressed=\"true\"]{border-color:var(--nrc-accent);box-shadow:0 0 0 3px rgba(14,165,233,.15)}\n\n    \/* KPI and table *\/\n    .nrc-kpi{font-size:2.1rem;font-weight:800;letter-spacing:.2px;margin:2px 0 8px;font-variant-numeric:tabular-nums;color:inherit}\n    .nrc-kpi-sub{font-size:.85rem;opacity:.7;color:inherit}\n    .nrc-table{display:grid;grid-template-columns:1fr auto;gap:6px;border-top:1px dashed var(--nrc-border);padding-top:10px;margin-top:10px}\n    .nrc-table .lbl{font-size:.95rem;color:inherit;opacity:.75}\n    .nrc-table .val{font-size:1rem;font-weight:600;text-align:right;font-variant-numeric:tabular-nums;color:inherit}\n\n    \/* Notes *\/\n    .nrc-note{margin-top:6px;font-size:.80rem;line-height:1.5;color:inherit;opacity:.75;background:transparent;border-left:none;padding:2px 0;font-style:italic}\n    .nrc-warn{color:#b91c1c;font-size:.95rem;margin-top:6px}\n  <\/style>\n\n  <div class=\"nrc-wrap\" id=\"nrc-2006-app\" data-version=\"1.1.1\">\n    <h2 class=\"nrc-title\">NRC 2006 (CF) ME Calculator<\/h2>\n\n    <div class=\"nrc-card\">\n      <div class=\"nrc-label\">Species<\/div>\n      <div class=\"nrc-seg\" role=\"tablist\" aria-label=\"species\">\n        <button id=\"seg-dog\" type=\"button\" role=\"tab\" aria-selected=\"true\" aria-pressed=\"true\">Dog<\/button>\n        <button id=\"seg-cat\" type=\"button\" role=\"tab\" aria-selected=\"false\" aria-pressed=\"false\">Cat<\/button>\n      <\/div>\n\n      <div class=\"nrc-row\">\n        <div>\n          <label class=\"nrc-label\" for=\"cp\">Crude protein (CP) %<\/label>\n          <input type=\"number\" id=\"cp\" class=\"nrc-input\" value=\"0\" step=\"0.01\" min=\"0\" max=\"100\" \/>\n        <\/div>\n        <div>\n          <label class=\"nrc-label\" for=\"fat\">Crude fat %<\/label>\n          <input type=\"number\" id=\"fat\" class=\"nrc-input\" value=\"0\" step=\"0.01\" min=\"0\" max=\"100\" \/>\n        <\/div>\n      <\/div>\n      <div class=\"nrc-row\">\n        <div>\n          <label class=\"nrc-label\" for=\"cf\">Crude fiber (CF) %<\/label>\n          <input type=\"number\" id=\"cf\" class=\"nrc-input\" value=\"0\" step=\"0.01\" min=\"0\" max=\"100\" \/>\n        <\/div>\n        <div>\n          <label class=\"nrc-label\" for=\"ash\">Ash %<\/label>\n          <input type=\"number\" id=\"ash\" class=\"nrc-input\" value=\"0\" step=\"0.01\" min=\"0\" max=\"100\" \/>\n        <\/div>\n      <\/div>\n      <div class=\"nrc-row\">\n        <div>\n          <label class=\"nrc-label\" for=\"moisture\">Moisture %<\/label>\n          <input type=\"number\" id=\"moisture\" class=\"nrc-input\" value=\"0\" step=\"0.01\" min=\"0\" max=\"100\" \/>\n        <\/div>\n        <div>\n          <label class=\"nrc-label\">Carbohydrate (NFE) %<\/label>\n          <input type=\"text\" id=\"nfe\" class=\"nrc-input\" value=\"100.00\" readonly \/>\n        <\/div>\n      <\/div>\n      <div id=\"sumWarning\" class=\"nrc-warn\" style=\"display:none\">Total exceeds 100%. Please review your inputs.<\/div>\n      <div class=\"nrc-note\">NFE = 100 \u2212 (CP + Fat + CF + Ash + Moisture).<br>Calculations are performed on a dry matter (DM) basis internally.<\/div>\n    <\/div>\n\n    <div class=\"nrc-card\">\n      <div class=\"nrc-kpi\" id=\"kcalKg\">- kcal\/kg<\/div>\n      <div class=\"nrc-kpi-sub\" id=\"kpiSub\">NRC 2006 (CF) \/ Dog (as\u2011fed)<\/div>\n\n      <div class=\"nrc-table\" style=\"margin-top:12px\">\n        <div class=\"lbl\">Dry matter (DM%)<\/div><div class=\"val\" id=\"dmPct\">-<\/div>\n        <div class=\"lbl\">ME (kcal\/kg DM)<\/div><div class=\"val\" id=\"meDm\">-<\/div>\n      <\/div>\n      <div class=\"nrc-table\">\n        <div class=\"lbl\">GE (kcal\/100g DM)<\/div><div class=\"val\" id=\"ge\">-<\/div>\n        <div class=\"lbl\">Digestibility (%)<\/div><div class=\"val\" id=\"dig\">-<\/div>\n        <div class=\"lbl\">DE (kcal\/100g DM)<\/div><div class=\"val\" id=\"de\">-<\/div>\n        <div class=\"lbl\">ME (kcal\/100g DM)<\/div><div class=\"val\" id=\"me100\">-<\/div>\n      <\/div>\n      <div class=\"nrc-table\">\n        <div class=\"lbl\">CP_DM\uff08%\uff09<\/div><div class=\"val\" id=\"cpDm\">-<\/div>\n        <div class=\"lbl\">Fat_DM\uff08%\uff09<\/div><div class=\"val\" id=\"fatDm\">-<\/div>\n        <div class=\"lbl\">CF_DM\uff08%\uff09<\/div><div class=\"val\" id=\"cfDm\">-<\/div>\n        <div class=\"lbl\">NFE_DM\uff08%\uff09<\/div><div class=\"val\" id=\"nfeDm\">-<\/div>\n      <\/div>\n\n      <div class=\"nrc-note\">Digestibility: Dog = 91.2 \u2212 1.43\u00d7CF_DM; Cat = 87.9 \u2212 0.88\u00d7CF_DM.<br>Urinary loss correction: Dog = 1.04\u00d7CP_DM; Cat = 0.77\u00d7CP_DM.<\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n  (function(){\n    const $ = (id) => document.getElementById(id);\n    const fmt = (n, d=0) => (isFinite(n)? n.toLocaleString(undefined,{minimumFractionDigits:d,maximumFractionDigits:d}) : '-');\n    const clamp = (n,min,max)=>Math.max(min,Math.min(max,n));\n\n    const els = {\n      segDog: document.getElementById('seg-dog'),\n      segCat: document.getElementById('seg-cat'),\n      moisture: $('moisture'), cp: $('cp'), fat: $('fat'), cf: $('cf'), ash: $('ash'), nfe: $('nfe'),\n      sumWarn: $('sumWarning'),\n      kcalKg: $('kcalKg'), kpiSub: $('kpiSub'), dmPct: $('dmPct'), meDm: $('meDm'), ge: $('ge'), dig: $('dig'), de: $('de'), me100: $('me100'),\n      cpDm: $('cpDm'), fatDm: $('fatDm'), cfDm: $('cfDm'), nfeDm: $('nfeDm')\n    };\n\n    let species = 'dog';\n\n    function pickSpecies(newSp){\n      species = newSp;\n      const dogOn = species==='dog';\n      els.segDog.setAttribute('aria-pressed', dogOn);\n      els.segDog.setAttribute('aria-selected', dogOn);\n      els.segCat.setAttribute('aria-pressed', !dogOn);\n      els.segCat.setAttribute('aria-selected', !dogOn);\n      recalc();\n    }\n\n    els.segDog.addEventListener('click', ()=>pickSpecies('dog'));\n    els.segCat.addEventListener('click', ()=>pickSpecies('cat'));\n\n    function num(el){\n      const raw = (el.value||'').toString();\n      const cleaned = raw.replace(\/[\"']\/g, ''); \/\/ Remove unnecessary quotes\n      if (cleaned !== raw) el.value = cleaned;   \/\/ Update the field immediately\n      const v = parseFloat(cleaned);\n      return Number.isFinite(v) ? v : 0;\n    }\n\n    function recalc(){\n      const m = clamp(num(els.moisture),0,100); \/\/ as-fed\n      const cp = clamp(num(els.cp),0,100);\n      const fat = clamp(num(els.fat),0,100);\n      const cf = clamp(num(els.cf),0,100);\n      const ash = clamp(num(els.ash),0,100);\n\n      const sumAF = m + cp + fat + cf + ash;\n      const nfeAF = 100 - sumAF;\n      els.nfe.value = isFinite(nfeAF)? nfeAF.toFixed(2) : '';\n      els.sumWarn.style.display = sumAF>100.0001? 'block':'none';\n\n      const dmPct = clamp(100 - m, 0, 100);\n      const toDM = (x) => (dmPct>0? (x\/dmPct)*100 : 0);\n      const CP_DM = toDM(cp);\n      const FAT_DM = toDM(fat);\n      const CF_DM = toDM(cf);\n      const NFE_DM = toDM(nfeAF);\n\n      const GE = 5.7*CP_DM + 9.4*FAT_DM + 4.1*(NFE_DM + CF_DM); \/\/ kcal\/100g DM\n      const dig = clamp(species==='dog' ? 91.2 - 1.43*CF_DM : 87.9 - 0.88*CF_DM, 0, 100);\n      const DE = GE * (dig\/100);\n      const ME100 = DE - (species==='dog' ? 1.04*CP_DM : 0.77*CP_DM); \/\/ kcal\/100g DM\n\n      const ME_DM_kg = ME100 * 10; \/\/ kcal\/kg DM\n      const ME_AF_kg = (ME100 * 10) * (dmPct\/100); \/\/ kcal\/kg as-fed\n\n      els.kcalKg.textContent = isFinite(ME_AF_kg)? fmt(ME_AF_kg,0) + ' kcal\/kg' : '- kcal\/kg';\n      els.kpiSub.textContent = `NRC 2006\uff08CF\uff09 \/ ${species==='dog'?'Dog':'Cat'}\uff08as\u2011fed\uff09`;\n\n      els.dmPct.textContent = fmt(dmPct,2) + ' %';\n      els.meDm.textContent = isFinite(ME_DM_kg)? fmt(ME_DM_kg,0) : '-';\n      els.ge.textContent = isFinite(GE)? fmt(GE,1) : '-';\n      els.dig.textContent = isFinite(dig)? fmt(dig,1) + ' %' : '-';\n      els.de.textContent = isFinite(DE)? fmt(DE,1) : '-';\n      els.me100.textContent = isFinite(ME100)? fmt(ME100,1) : '-';\n\n      els.cpDm.textContent = isFinite(CP_DM)? fmt(CP_DM,2) + ' %' : '-';\n      els.fatDm.textContent = isFinite(FAT_DM)? fmt(FAT_DM,2) + ' %' : '-';\n      els.cfDm.textContent = isFinite(CF_DM)? fmt(CF_DM,2) + ' %' : '-';\n      els.nfeDm.textContent = isFinite(NFE_DM)? fmt(NFE_DM,2) + ' %' : '-';\n    }\n\n    ['change','keyup','input'].forEach(ev=>{\n      ['moisture','cp','fat','cf','ash'].forEach(id=>{\n        document.getElementById(id).addEventListener(ev, recalc);\n      });\n    });\n\n    \/\/ Initial state (all zeros \u2192 NFE=100.00; calculations update immediately)\n    recalc();\n  })();\n  <\/script>\n  \n\n\n\n<div class=\"epb-linkcard is-style-epb-radius__0 is-style-epb-hover__floating wp-block-emanon-premium-blocks-linkcard epb-margin-top__default epb-margin-top__default-sp epb-margin-top__default-tablet\" style=\"--epb-linkcard-arrow-size:16px\"><div class=\"epb-linkcard_label icon-edit\" data-fontweight=\"normal\" style=\"font-size:12px;letter-spacing:0.15em\">Related article<\/div><a class=\"epb-linkcard_link\" href=\"https:\/\/first-reach.org\/en\/contents\/petfood-calorie-me-calculation\/\" target=\"_blank\" rel=\"noopener noreferrer\"><div class=\"epb-linkcard_inner epb-arrow-effect-right is-style-epb-arrow__01\" style=\"padding-top:16px;padding-bottom:16px;padding-left:24px;border-style:solid;border-top-width:2px;border-bottom-width:2px;border-left-width:2px;border-right-width:2px;border-color:#e5e7e8\"><div class=\"epb-linkcard_heading\"><div class=\"epb-linkcard_title\" data-fontweight=\"normal\" style=\"--epb-title-font-sp:16px;--epb-title-font-tablet:16px;--epb-title-font-pc:16px;letter-spacing:0.04em;color:#333333\">Calorie calculation formulas for pet food and a practical understanding and application of ME<\/div><\/div><\/div><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Overview In Nutrient Requirements of Dogs and Cats (2006), the U.S. National Research Council (NRC) proposes a four-step method to estimate metabolizable energy (ME) with greater accuracy than the Modified Atwater approach. This method adjusts predicted digestibility based on crude fiber content and applies species-specific corrections for urinary energy losses, which differ between dogs and [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":42424,"parent":42472,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"emanon_ad_label_edit":"no_display","emanon_hide_header":"0","emanon_hide_header_menu":"0","emanon_hide_header_menu_sp":"0","emanon_hide_featured_image":"0","emanon_disabled_overlay":"0","emanon_hide_title":"0","emanon_hide_sidebar":"0","emanon_hide_breadcrumb":"0","emanon_hide_toc":"0","emanon_hide_sns":"0","emanon_hide_follow":"0","emanon_hide_ad":"0","emanon_disabled_background_color":"0","emanon_hide_content_margin_top":"0","emanon_hide_content_margin_bottom":"0","emanon_hide_left_right_margin_sp":"0","emanon_hide_footer_section":"0","emanon_hide_footer":"0","emanon_hide_fixed_sidebar_menu":"0","emanon_hide_floating_hamburger_menu":"0","emanon_hide_hamburger_menu_pc":"0","emanon_hide_hamburger_menu_sp_tb":"0","emanon_hide_fixed_footer_menu":"0","emanon_one_column_width":"","emanon_subtitle":"","emanon_cta_cv_type":"cta-cv-not","emanon_cta_floating_cv_type":"cta-cv-not","emanon_cta_newsletter_cv_type":"cta-cv-not","emanon_cta_id":"","emanon_cta_floating_id":"","emanon_cta_newsletter_id":"","emanon_noindex":"0","emanon_nofollow":"0","emanon_meta_description":"Free tool that automatically calculates metabolizable energy (ME) using the more accurate NRC 2006 (CF) ME equation by simply entering basic pet food composition data\u2014streamlining calorie calculations for nutrition formulation and labeling to support developers and manufacturers.","get_emanon_structured_data_profile_page_name":[],"emanon_custom_footer_shortcode":"","emanon_custom_header_shortcode":"","footnotes":""},"class_list":["post-42388","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/pages\/42388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/comments?post=42388"}],"version-history":[{"count":5,"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/pages\/42388\/revisions"}],"predecessor-version":[{"id":48355,"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/pages\/42388\/revisions\/48355"}],"up":[{"embeddable":true,"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/pages\/42472"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/media\/42424"}],"wp:attachment":[{"href":"https:\/\/first-reach.org\/en\/wp-json\/wp\/v2\/media?parent=42388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}