NEW: The 2026 Happy Planet Index is live

Explore the data

Norway

2026 HPI index for Norway
Rank Life expectancy Wellbeing Ecological footprint HPI score
20th 83.6 years 7.2/10 4.41 gha 57.6
HPI Data over time for Norway
Year Rank Life expectancy Wellbeing Ecological footprint HPI score
2025 20th 83.6 years 7.2/10 4.41 gha 57.6
2024 19th 83.5 years 7.2/10 4.46 gha 57.4
2023 10th 83.3 years 7.2/10 4.38 gha 57.8
2022 6th 82.6 years 7.3/10 4.25 gha 58.2
2021 2nd 83.2 years 7.4/10 4.06 gha 60.1
2020 10th 83.2 years 7.3/10 4.61 gha 57
2019 25th 83 years 7.4/10 5.21 gha 54.9
2018 15th 82.8 years 7.4/10 4.93 gha 56.1
2017 15th 82.6 years 7.6/10 5.14 gha 55.9
2016 9th 82.4 years 7.6/10 4.79 gha 57.5
2015 11th 82.3 years 7.6/10 5.04 gha 56.3
2014 27th 82.1 years 7.4/10 5.52 gha 53.3
2013 16th 81.7 years 7.6/10 5.43 gha 54.1
2012 11th 81.4 years 7.7/10 5.23 gha 55.4
2011 12th 81.2 years 7.7/10 5.3 gha 55.1
2010 32nd 81 years 7.7/10 6.26 gha 50.9
2009 21st 80.9 years 7.6/10 5.47 gha 54.1
2008 18th 80.7 years 7.6/10 6.01 gha 51.7
2007 22nd 80.5 years 7.5/10 6.12 gha 50.7
2006 19th 80.4 years 7.4/10 6.01 gha 50.6
HPI Data in 2026 by Income groups Norway
Decile Price range Life expectancy Wellbeing Ecological footprint HPI score
1 Less than $16,735 USD
(Less than 188,563 kroner)
75.8 years 6.7/10 3.3 gha 58.4
2 $16,735 to $49,368 USD
(188,563 to 556,262 kroner)
79.6 years 7.1/10 5.2 gha 60.3
3 $49,368 to $58,271 USD
(556,262 to 656,582 kroner)
81.3 years 7.5/10 6.7 gha 60.4
4 $58,271 to $67,712 USD
(656,582 to 762,957 kroner)
82.4 years 7.4/10 7.8 gha 57.7
5 $67,712 to $76,653 USD
(762,957 to 863,704 kroner)
83.1 years 7.5/10 9 gha 55.8
6 $76,653 to $87,108 USD
(863,704 to 981,518 kroner)
84 years 7.3/10 10.3 gha 52.5
7 $87,108 to $98,584 USD
(981,518 to 1,110,821 kroner)
84.6 years 7.9/10 11.7 gha 53.7
8 $98,584 to $116,254 USD
(1,110,821 to 1,309,917 kroner)
85.5 years 7.5/10 13.5 gha 48.8
9 $116,254 to $152,179 USD
(1,309,917 to 1,714,720 kroner)
86.2 years 7.6/10 16.4 gha 45
10 Over $152,179 USD
(Over 1,714,720 kroner)
87 years 7.8/10 31.9 gha 30.9

Fatal error: Uncaught JSMin_UnterminatedRegExpException: JSMin: Unterminated RegExp at byte 132241: /.test(c.value),i=c=>!isNaN(parseFloat(c.value))&&isFinite(c.value),n=c=>Object.prototype.toString.call(c.value)==="[object String]";return{isPresent:t,isEmail:e,isNumber:i,isString:n,isValidCurrencyCode:c=>n(c)&&c.value.length==3,isValidCountryCode:c=>n(c)&&c.value.length==2,isCheckboxChecked:c=>c.checked}}(),hs=function(){let t=document.getElementById("newsletter-sign-up"),e={};const i=()=>{n()},n=()=>{ne(t,"submit",g=>{g.preventDefault(),c(),s()})},s=()=>{let g={fname:t.elements["newsletter-fname"],lname:t.elements["newsletter-lname"],email:t.elements["newsletter-email"],weallConsent:t.elements["newsletter-consent"],message:t.elements.message};r(g)&&y(g)},r=g=>{let u=!0;return Object.keys(g).forEach(p=>{l(p,g[p],g)||(u=!1)}),u},l=(g,u,p)=>{let E=!1;switch(g){case"fname":return E=Rt.isPresent(u),E||o("fname","Please enter your first name",u),E;case"email":return E=Rt.isPresent(u)&&Rt.isEmail(u),E||o("email","Please enter a valid email address",u),E;case"weallConsent":case"nicConsent":return console.log(p),p.weallConsent.checked?E=!0:o("consent","Please check the box to sign up"),E;default:return!0}},c=()=>{let g=t.querySelectorAll(".error-help");Array.from(g).forEach(p=>p.remove());let u=t.querySelectorAll(".is-error");Array.from(u).forEach(p=>Ye(p,"is-error")),e={}},o=(g,u,p=null)=>{e[g]||(p?m(g,u,p):f(g,u),e[g]=u)},m=(g,u,p)=>{He(p,"is-error");let E=p.parentNode,T=document.createElement("span");T.className="error-help",T.innerText=u,E.appendChild(T)},f=(g,u)=>{let p=t.querySelector(".js-form-error"),E=document.createElement("span");E.className="error-help",E.innerText=u,p.appendChild(E)},y=g=>{x(!0),w({fname:g.fname.value,lname:g.lname.value,email:g.email.value,weallConsent:g.weallConsent.checked,honey:g.message.value}).then(u=>{if(!u.ok)throw new Error("There was an error submitting your details, please try again.");return u.json()}).then(u=>{if(u.error)throw new Error(u.error);S(t)}).finally(()=>{x(!1)}).catch(u=>{f("http",u)})},S=(g,u,p)=>{g.innerHTML=` in /var/www/hpi_wordpress/wp-content/plugins/autoptimize/classes/external/php/jsmin.php:264 Stack trace: #0 /var/www/hpi_wordpress/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(150): JSMin->action(1) #1 /var/www/hpi_wordpress/wp-content/plugins/autoptimize/classes/external/php/jsmin.php(84): JSMin->min() #2 /var/www/hpi_wordpress/wp-content/plugins/autoptimize/classes/autoptimizeScripts.php(843): JSMin::minify('var we="top",_e...') #3 /var/www/hpi_wordpress/wp-content/plugins/autoptimize/classes/autoptimizeScripts.php(402): autoptimizeScripts->minify_single('/var/www/hpi_wo...') #4 /var/www/hpi_wordpress/wp-content/plugins/autoptimize/classes/autoptimizeMain.php(591): autoptimizeScripts->read(Array) #5 [internal function]: autoptimizeMain->end_buffering(' <!doctype htm...', 9) #6 /var/www/hpi_wordpress/wp-includes/functions.php(5581): ob_end_flush() #7 /var/www/hpi_wordpress/wp-includes/class-wp-hook.php(353): wp_ob_end_flush_all('') #8 /var/www/hpi_wordpress/wp-includes/class-wp-hook.php(377): WP_Hook->apply_filters('', Array) #9 /var/www/hpi_wordpress/wp-includes/plugin.php(523): WP_Hook->do_action(Array) #10 /var/www/hpi_wordpress/wp-includes/load.php(1308): do_action('shutdown') #11 [internal function]: shutdown_action_hook() #12 {main} thrown in /var/www/hpi_wordpress/wp-content/plugins/autoptimize/classes/external/php/jsmin.php on line 264