[{"data":1,"prerenderedAt":707},["ShallowReactive",2],{"guide-percentage-change-formula":3},{"id":4,"title":5,"body":6,"date":699,"description":700,"extension":701,"meta":702,"navigation":161,"path":703,"readingTime":152,"seo":704,"stem":705,"__hash__":706},"guides\u002Fguides\u002Fpercentage-change-formula.md","Percentage Change Formula Explained",{"type":7,"value":8,"toc":692},"minimark",[9,13,18,21,32,35,224,227,231,234,292,295,353,356,362,462,465,469,476,482,485,546,552,558,564,570,573,577,580,661,664,668,671,677,680,688],[10,11,12],"p",{},"Percentage change measures how much a value has increased or decreased relative to its starting point. It is the calculation behind revenue growth reports, population statistics, price inflation, and analytics dashboards. Despite its ubiquity, the formula trips people up in two specific ways: confusing the direction of change and mishandling negative base values. This guide covers the standard formula, common pitfalls, and real examples from finance and web analytics.",[14,15,17],"h2",{"id":16},"the-standard-formula","The Standard Formula",[10,19,20],{},"The percentage change between an old value and a new value is:",[22,23,28],"pre",{"className":24,"code":26,"language":27},[25],"language-text","Percentage Change = ((New - Old) \u002F |Old|) × 100\n","text",[29,30,26],"code",{"__ignoreMap":31},"",[10,33,34],{},"The absolute value around the denominator ensures consistency: a change from 50 to 75 is a 50% increase, and a change from 75 to 50 is a 33.33% decrease. The direction matters because the base is different.",[22,36,40],{"className":37,"code":38,"language":39,"meta":31,"style":31},"language-javascript shiki shiki-themes github-light github-dark","function percentChange(oldVal, newVal) {\n  if (oldVal === 0) {\n    throw new Error('Base value cannot be zero')\n  }\n  return ((newVal - oldVal) \u002F Math.abs(oldVal)) * 100\n}\n\npercentChange(50, 75)   \u002F\u002F 50 (50% increase)\npercentChange(75, 50)   \u002F\u002F -33.33... (33.33% decrease)\npercentChange(200, 200) \u002F\u002F 0 (no change)\n","javascript",[29,41,42,72,90,111,117,150,156,163,186,204],{"__ignoreMap":31},[43,44,47,51,55,59,63,66,69],"span",{"class":45,"line":46},"line",1,[43,48,50],{"class":49},"szBVR","function",[43,52,54],{"class":53},"sScJk"," percentChange",[43,56,58],{"class":57},"sVt8B","(",[43,60,62],{"class":61},"s4XuR","oldVal",[43,64,65],{"class":57},", ",[43,67,68],{"class":61},"newVal",[43,70,71],{"class":57},") {\n",[43,73,75,78,81,84,88],{"class":45,"line":74},2,[43,76,77],{"class":49},"  if",[43,79,80],{"class":57}," (oldVal ",[43,82,83],{"class":49},"===",[43,85,87],{"class":86},"sj4cs"," 0",[43,89,71],{"class":57},[43,91,93,96,99,102,104,108],{"class":45,"line":92},3,[43,94,95],{"class":49},"    throw",[43,97,98],{"class":49}," new",[43,100,101],{"class":53}," Error",[43,103,58],{"class":57},[43,105,107],{"class":106},"sZZnC","'Base value cannot be zero'",[43,109,110],{"class":57},")\n",[43,112,114],{"class":45,"line":113},4,[43,115,116],{"class":57},"  }\n",[43,118,120,123,126,129,132,135,138,141,144,147],{"class":45,"line":119},5,[43,121,122],{"class":49},"  return",[43,124,125],{"class":57}," ((newVal ",[43,127,128],{"class":49},"-",[43,130,131],{"class":57}," oldVal) ",[43,133,134],{"class":49},"\u002F",[43,136,137],{"class":57}," Math.",[43,139,140],{"class":53},"abs",[43,142,143],{"class":57},"(oldVal)) ",[43,145,146],{"class":49},"*",[43,148,149],{"class":86}," 100\n",[43,151,153],{"class":45,"line":152},6,[43,154,155],{"class":57},"}\n",[43,157,159],{"class":45,"line":158},7,[43,160,162],{"emptyLinePlaceholder":161},true,"\n",[43,164,166,169,171,174,176,179,182],{"class":45,"line":165},8,[43,167,168],{"class":53},"percentChange",[43,170,58],{"class":57},[43,172,173],{"class":86},"50",[43,175,65],{"class":57},[43,177,178],{"class":86},"75",[43,180,181],{"class":57},")   ",[43,183,185],{"class":184},"sJ8bj","\u002F\u002F 50 (50% increase)\n",[43,187,189,191,193,195,197,199,201],{"class":45,"line":188},9,[43,190,168],{"class":53},[43,192,58],{"class":57},[43,194,178],{"class":86},[43,196,65],{"class":57},[43,198,173],{"class":86},[43,200,181],{"class":57},[43,202,203],{"class":184},"\u002F\u002F -33.33... (33.33% decrease)\n",[43,205,207,209,211,214,216,218,221],{"class":45,"line":206},10,[43,208,168],{"class":53},[43,210,58],{"class":57},[43,212,213],{"class":86},"200",[43,215,65],{"class":57},[43,217,213],{"class":86},[43,219,220],{"class":57},") ",[43,222,223],{"class":184},"\u002F\u002F 0 (no change)\n",[10,225,226],{},"The zero-base problem is not a syntax error — it is a conceptual one. If revenue goes from $0 to $10,000, calling it an \"infinite percent increase\" is mathematically correct but practically meaningless. In reports, handle this case explicitly by stating \"from zero base\" or showing the absolute change instead.",[14,228,230],{"id":229},"percentage-increase-vs-decrease","Percentage Increase vs Decrease",[10,232,233],{},"A 50% increase followed by a 50% decrease does not return you to the original value. This asymmetry is the single most common source of confusion.",[22,235,237],{"className":37,"code":236,"language":39,"meta":31,"style":31},"const original = 100\nconst increased = original * 1.50    \u002F\u002F 150\nconst decreased = increased * 0.50   \u002F\u002F 75, not 100!\n",[29,238,239,252,272],{"__ignoreMap":31},[43,240,241,244,247,250],{"class":45,"line":46},[43,242,243],{"class":49},"const",[43,245,246],{"class":86}," original",[43,248,249],{"class":49}," =",[43,251,149],{"class":86},[43,253,254,256,259,261,264,266,269],{"class":45,"line":74},[43,255,243],{"class":49},[43,257,258],{"class":86}," increased",[43,260,249],{"class":49},[43,262,263],{"class":57}," original ",[43,265,146],{"class":49},[43,267,268],{"class":86}," 1.50",[43,270,271],{"class":184},"    \u002F\u002F 150\n",[43,273,274,276,279,281,284,286,289],{"class":45,"line":92},[43,275,243],{"class":49},[43,277,278],{"class":86}," decreased",[43,280,249],{"class":49},[43,282,283],{"class":57}," increased ",[43,285,146],{"class":49},[43,287,288],{"class":86}," 0.50",[43,290,291],{"class":184},"   \u002F\u002F 75, not 100!\n",[10,293,294],{},"The reason is straightforward: the 50% increase uses 100 as the base, but the 50% decrease uses 150 as the base. To reverse a 50% increase, you need a 33.33% decrease.",[296,297,298,311],"table",{},[299,300,301],"thead",{},[302,303,304,308],"tr",{},[305,306,307],"th",{},"Change",[305,309,310],{},"To Reverse It",[312,313,314,323,331,337,345],"tbody",{},[302,315,316,320],{},[317,318,319],"td",{},"+50%",[317,321,322],{},"−33.33%",[302,324,325,328],{},[317,326,327],{},"+100%",[317,329,330],{},"−50%",[302,332,333,335],{},[317,334,330],{},[317,336,327],{},[302,338,339,342],{},[317,340,341],{},"−25%",[317,343,344],{},"+33.33%",[302,346,347,350],{},[317,348,349],{},"+200%",[317,351,352],{},"−66.67%",[10,354,355],{},"The reversal formula is:",[22,357,360],{"className":358,"code":359,"language":27},[25],"Reversal % = (1 \u002F (1 + change)) - 1) × 100\n",[29,361,359],{"__ignoreMap":31},[22,363,365],{"className":37,"code":364,"language":39,"meta":31,"style":31},"function reversePercentage(changePercent) {\n  return ((1 \u002F (1 + changePercent \u002F 100)) - 1) * 100\n}\n\nreversePercentage(50)   \u002F\u002F -33.33...\nreversePercentage(-50)  \u002F\u002F 100\n",[29,366,367,381,424,428,432,446],{"__ignoreMap":31},[43,368,369,371,374,376,379],{"class":45,"line":46},[43,370,50],{"class":49},[43,372,373],{"class":53}," reversePercentage",[43,375,58],{"class":57},[43,377,378],{"class":61},"changePercent",[43,380,71],{"class":57},[43,382,383,385,388,391,394,397,399,402,405,407,410,413,415,418,420,422],{"class":45,"line":74},[43,384,122],{"class":49},[43,386,387],{"class":57}," ((",[43,389,390],{"class":86},"1",[43,392,393],{"class":49}," \u002F",[43,395,396],{"class":57}," (",[43,398,390],{"class":86},[43,400,401],{"class":49}," +",[43,403,404],{"class":57}," changePercent ",[43,406,134],{"class":49},[43,408,409],{"class":86}," 100",[43,411,412],{"class":57},")) ",[43,414,128],{"class":49},[43,416,417],{"class":86}," 1",[43,419,220],{"class":57},[43,421,146],{"class":49},[43,423,149],{"class":86},[43,425,426],{"class":45,"line":92},[43,427,155],{"class":57},[43,429,430],{"class":45,"line":113},[43,431,162],{"emptyLinePlaceholder":161},[43,433,434,437,439,441,443],{"class":45,"line":119},[43,435,436],{"class":53},"reversePercentage",[43,438,58],{"class":57},[43,440,173],{"class":86},[43,442,181],{"class":57},[43,444,445],{"class":184},"\u002F\u002F -33.33...\n",[43,447,448,450,452,454,456,459],{"class":45,"line":152},[43,449,436],{"class":53},[43,451,58],{"class":57},[43,453,128],{"class":49},[43,455,173],{"class":86},[43,457,458],{"class":57},")  ",[43,460,461],{"class":184},"\u002F\u002F 100\n",[10,463,464],{},"This matters in finance: if a stock drops 50%, it needs a 100% gain to recover. A portfolio that loses 40% needs a 66.67% gain to break even. This is why drawdown recovery is disproportionately hard.",[14,466,468],{"id":467},"real-world-examples","Real-World Examples",[10,470,471,475],{},[472,473,474],"strong",{},"Revenue growth",": A SaaS company reports monthly recurring revenue of $120K in January and $150K in February.",[22,477,480],{"className":478,"code":479,"language":27},[25],"Growth = ((150,000 - 120,000) \u002F 120,000) × 100 = 25%\n",[29,481,479],{"__ignoreMap":31},[10,483,484],{},"Annualized (assuming consistent monthly growth):",[22,486,488],{"className":37,"code":487,"language":39,"meta":31,"style":31},"const monthlyGrowth = 0.25\nconst annualized = (Math.pow(1 + monthlyGrowth, 12) - 1) * 100\n\u002F\u002F 1,355% — compounding is powerful\n",[29,489,490,502,541],{"__ignoreMap":31},[43,491,492,494,497,499],{"class":45,"line":46},[43,493,243],{"class":49},[43,495,496],{"class":86}," monthlyGrowth",[43,498,249],{"class":49},[43,500,501],{"class":86}," 0.25\n",[43,503,504,506,509,511,514,517,519,521,523,526,529,531,533,535,537,539],{"class":45,"line":74},[43,505,243],{"class":49},[43,507,508],{"class":86}," annualized",[43,510,249],{"class":49},[43,512,513],{"class":57}," (Math.",[43,515,516],{"class":53},"pow",[43,518,58],{"class":57},[43,520,390],{"class":86},[43,522,401],{"class":49},[43,524,525],{"class":57}," monthlyGrowth, ",[43,527,528],{"class":86},"12",[43,530,220],{"class":57},[43,532,128],{"class":49},[43,534,417],{"class":86},[43,536,220],{"class":57},[43,538,146],{"class":49},[43,540,149],{"class":86},[43,542,543],{"class":45,"line":92},[43,544,545],{"class":184},"\u002F\u002F 1,355% — compounding is powerful\n",[10,547,548,551],{},[472,549,550],{},"Website traffic analytics",": Page views dropped from 45,000 to 38,000 after a redesign.",[22,553,556],{"className":554,"code":555,"language":27},[25],"Change = ((38,000 - 45,000) \u002F 45,000) × 100 = -15.56%\n",[29,557,555],{"__ignoreMap":31},[10,559,560,563],{},[472,561,562],{},"Conversion rate optimization",": A\u002FB test shows control at 2.3% and variant at 2.8%.",[22,565,568],{"className":566,"code":567,"language":27},[25],"Relative improvement = ((2.8 - 2.3) \u002F 2.3) × 100 = 21.74%\n",[29,569,567],{"__ignoreMap":31},[10,571,572],{},"Note the term \"relative improvement.\" In A\u002FB testing, percentage change is always relative to the control, not the combined rate.",[14,574,576],{"id":575},"percentage-point-difference","Percentage Point Difference",[10,578,579],{},"A common error in reporting is confusing percentage change with percentage point change. If an interest rate rises from 3% to 5%, the percentage point increase is 2, but the percentage increase is 66.67%.",[22,581,583],{"className":37,"code":582,"language":39,"meta":31,"style":31},"const rateOld = 3\nconst rateNew = 5\n\nconst ppDifference = rateNew - rateOld           \u002F\u002F 2 percentage points\nconst pctChange = ((rateNew - rateOld) \u002F rateOld) * 100  \u002F\u002F 66.67%\n",[29,584,585,597,609,613,633],{"__ignoreMap":31},[43,586,587,589,592,594],{"class":45,"line":46},[43,588,243],{"class":49},[43,590,591],{"class":86}," rateOld",[43,593,249],{"class":49},[43,595,596],{"class":86}," 3\n",[43,598,599,601,604,606],{"class":45,"line":74},[43,600,243],{"class":49},[43,602,603],{"class":86}," rateNew",[43,605,249],{"class":49},[43,607,608],{"class":86}," 5\n",[43,610,611],{"class":45,"line":92},[43,612,162],{"emptyLinePlaceholder":161},[43,614,615,617,620,622,625,627,630],{"class":45,"line":113},[43,616,243],{"class":49},[43,618,619],{"class":86}," ppDifference",[43,621,249],{"class":49},[43,623,624],{"class":57}," rateNew ",[43,626,128],{"class":49},[43,628,629],{"class":57}," rateOld           ",[43,631,632],{"class":184},"\u002F\u002F 2 percentage points\n",[43,634,635,637,640,642,645,647,650,652,654,656,658],{"class":45,"line":119},[43,636,243],{"class":49},[43,638,639],{"class":86}," pctChange",[43,641,249],{"class":49},[43,643,644],{"class":57}," ((rateNew ",[43,646,128],{"class":49},[43,648,649],{"class":57}," rateOld) ",[43,651,134],{"class":49},[43,653,649],{"class":57},[43,655,146],{"class":49},[43,657,409],{"class":86},[43,659,660],{"class":184},"  \u002F\u002F 66.67%\n",[10,662,663],{},"Both numbers are correct but answer different questions. Use \"percentage points\" when comparing rates and \"percent change\" when describing growth. Financial reporters who write \"interest rates increased 2%\" when they mean \"2 percentage points\" cause genuine confusion.",[14,665,667],{"id":666},"handling-negative-base-values","Handling Negative Base Values",[10,669,670],{},"When the starting value is negative, percentage change becomes misleading. If a company's profit goes from −$10M to +$5M, the formula gives:",[22,672,675],{"className":673,"code":674,"language":27},[25],"((5 - (-10)) \u002F |-10|) × 100 = 150%\n",[29,676,674],{"__ignoreMap":31},[10,678,679],{},"A \"150% increase\" sounds positive but obfuscates the real story: the company moved from loss to profit. In financial reporting, it is better to state the absolute change ($15M improvement) and the sign change (loss to profit) rather than using percentage change with a negative base.",[10,681,682,683,687],{},"Quickly compute percentage changes for any dataset using the calculator at ",[684,685,686],"a",{"href":686},"\u002Ftools\u002Fpercentage-calculator",", which handles increase, decrease, and percentage-point scenarios with automatic validation for edge cases.",[689,690,691],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":31,"searchDepth":74,"depth":74,"links":693},[694,695,696,697,698],{"id":16,"depth":74,"text":17},{"id":229,"depth":74,"text":230},{"id":467,"depth":74,"text":468},{"id":575,"depth":74,"text":576},{"id":666,"depth":74,"text":667},"2026-05-28","Master increase and decrease calculations with real examples from finance and analytics.","md",{},"\u002Fguides\u002Fpercentage-change-formula",{"title":5,"description":700},"guides\u002Fpercentage-change-formula","4_fVLXJzhuUqs1o3ISaobjqg0cvAqKDTBjI36h0gw54",1780401335671]