Skip to main content

Example values are filled in. Replace them with your own.

Change in percentage points

+2

Increase

Working

  1. 6 − 4 = 2 percentage points
  2. 2 ÷ 4 × 100 = 50%
Relative change
+50%
Change in basis points
+200

Percentage change divides by the absolute value of the starting value, so a move from −50 to −25 is +50%, an increase.

A headline says unemployment jumped 50%. Another says it rose 2 points. Both can describe the same move from 4% to 6%, and they are different measurements: one is a gap, the other is a ratio.

A percentage point is the unit for the gap between two percentages, so 6% minus 4% is 2 percentage points. A percent change compares that gap with the starting rate: 2 ÷ 4 is 50%. Enter a starting and an ending rate in this percentage point calculator and it returns both, with the working.

What is a percentage point?

Quick answer: a percentage point is one unit of the difference between two percentages. A rate that moves from 40% to 44% has risen by 4 percentage points. The same move is a 10% relative increase, because 4 ÷ 40 = 0.10.

The unit is written pp, pts or simply points. It applies to anything already expressed as a percentage of a whole: an unemployment rate, an interest rate, a vote share, an inflation rate. It measures distance on the 0 to 100 scale, so 4 points is the same gap at 40% as at 4%. People also write "percent points", but the standard term is percentage points.

Percent vs percentage points

The two answer different questions about the same two numbers. A percentage point change is the absolute gap, the ending rate minus the starting rate. A percent change is that gap divided by the starting rate.

The relative figure depends on the base, which is why it looks dramatic when rates are small. Two points on a 4% rate is a 50% rise. Two points on a 40% rate is 5%. The gap in points is 2 both times.

From 4% to 6% is +2 points and +50%. From 6% to 4% is −2 points but −33.33%, because the base is now 6. The points are symmetric and the percentages are not.

How to calculate a percentage point change

  1. Write the starting and ending rates as percentages of the same whole.
  2. Subtract the starting rate from the ending rate. The result is the change in percentage points, and its sign gives the direction.
  3. For the relative change, divide that difference by the starting rate and multiply by 100.
percentage point change = ending rate - starting rate
relative change = (ending rate - starting rate) / abs(starting rate) × 100%

The same subtraction gives a percentage point difference between two groups: 52% of one group and 47% of another are 5 points apart. To apply a known change, add the points to the rate: 4.5% less 0.25 points is 4.25%.

Percentage points examples

Example 1: an unemployment rate, 4% to 6%

Given

The rate rises from 4% to 6%.
  1. Step 1

    In points, 6 − 4 = 2.

Answer

In percent, 2 ÷ 4 = 0.5, so 50%. Statistical offices such as the ONS and Eurostat report changes in rates in percentage points, which is the figure that does not depend on the base.

Example 2: an interest rate, 4.25% to 4.50%

Given

A central bank raises its policy rate from 4.25% to 4.50%.
  1. Step 1

    In points, 4.50 − 4.25 = 0.25, which is 25 basis points.

Answer

In percent, 0.25 ÷ 4.25 = 0.0588, so 5.88%. Central banks such as the Federal Reserve and the Bank of England quote moves like this in points or basis points.

Example 3: a poll, 52% against 46%

Given

A poll puts one candidate on 52% and the other on 46%.
  1. Step 1

    The lead is 52 − 46 = 6 percentage points, not a 6% lead.

Answer

Relative to the rival, 6 ÷ 46 = 0.1304, so the leader has 13.04% more support.

Example 4: points added against percent added

Given

A rate of 5.5% rises by 0.75 percentage points to 6.25%.
  1. Step 1

    If it rose by 0.75 percent instead, the new rate would be 5.5 × 1.0075 = 5.54125, which is 5.54%.

Answer

State the unit.

Percentage points vs basis points

A basis point is one hundredth of a percentage point, so 1 point is 100 basis points. 25 basis points is 0.25 points and 150 basis points is 1.5 points. To convert, divide basis points by 100 to get points, or multiply points by 100.

Percentage points code

Both versions reproduce the examples above (2 and 50, 0.25 and 5.88, 6 and 13.04, 6.25 and 5.54), return no relative change when the starting rate is 0 and reject non-numeric input.

JavaScript

JavaScript
function finite(name, v) {  if (typeof v !== "number" || !Number.isFinite(v)) throw new TypeError(`${name} must be a finite number`);}​function checkDecimals(decimals) {  if (!Number.isInteger(decimals) || decimals < 0 || decimals > 10) throw new RangeError("decimals must be a whole number from 0 to 10");}​export function percentagePointChange(start, end, decimals = 2) {  finite("start", start);  finite("end", end);  checkDecimals(decimals);  const points = Number((end - start).toFixed(decimals));  const relativePercent = start === 0 ? null : Number((((end - start) / Math.abs(start)) * 100).toFixed(decimals));  return { points, relativePercent };}​export function addPoints(rate, points, decimals = 2) {  finite("rate", rate);  finite("points", points);  checkDecimals(decimals);  return Number((rate + points).toFixed(decimals));}​export function addPercent(rate, percent, decimals = 2) {  finite("rate", rate);  finite("percent", percent);  checkDecimals(decimals);  return Number((rate * (1 + percent / 100)).toFixed(decimals));}​export function parseRate(raw) {  const s = String(raw).trim().replace(/%$/, "").replace(",", ".");  return /^[+-]?(\d+\.?\d*|\.\d+)$/.test(s) ? Number(s) : NaN;}

Python

Python
from decimal import Decimal, ROUND_HALF_UP, InvalidOperation​​def _rate(name, v):    if isinstance(v, bool) or not isinstance(v, (int, float, str, Decimal)):        raise ValueError(f"{name} must be a number")    try:        d = Decimal(str(v).strip().rstrip("%").replace(",", "."))    except InvalidOperation:        raise ValueError(f"{name} must be a number")    if not d.is_finite():        raise ValueError(f"{name} must be a finite number")    return d​​def _round(d, decimals):    if not isinstance(decimals, int) or isinstance(decimals, bool) or not 0 <= decimals <= 10:        raise ValueError("decimals must be a whole number from 0 to 10")    return d.quantize(Decimal(1).scaleb(-decimals), rounding=ROUND_HALF_UP)​​def percentage_point_change(start, end, decimals=2):    s, e = _rate("start", start), _rate("end", end)    points = _round(e - s, decimals)    relative = None if s == 0 else _round((e - s) / abs(s) * 100, decimals)    return points, relative​​def add_points(rate, points, decimals=2):    return _round(_rate("rate", rate) + _rate("points", points), decimals)​​def add_percent(rate, percent, decimals=2):    return _round(_rate("rate", rate) * (1 + _rate("percent", percent) / 100), decimals)

percentagePointChange(4, 6) returns { points: 2, relativePercent: 50 }. The relative change divides by the absolute starting rate, the same convention as the percentage change calculator. The Python version rounds half up with Decimal, the usual school convention, and returns Decimals, so 2 prints as 2.00.

Privacy and input safety

Values are calculated in your browser. The rates you enter are not sent to a server or stored.

Fields accept numbers only, with an optional trailing % sign. Text, empty fields, NaN and Infinity are rejected with a message, and nothing you type is ever evaluated as code.

A starting rate of 0 returns the points and shows the percent change as undefined instead of dividing by zero. A comma decimal (4,25) is read as 4.25, and decimal places are limited to a whole number from 0 to 10.

Common percentage point mistakes

Common percentage point mistakes
MistakeWhat goes wrongWhat the calculator does
Calling a point gap a percentA rise from 4% to 6% reported as 2%Labels the result in percentage points
Quoting relative change without the base"Up 50%" hides that the rate went from 4% to 6%Shows both figures beside the two rates
Dividing by the ending rate2 ÷ 6 gives 33.33% instead of 50%Divides by the starting rate
Treating a rise and a fall as symmetric4% to 6% is +50%, but 6% to 4% is −33.33%Shows the starting rate used for each direction
Adding a percent when points were meant5.5% plus 0.75% gives 5.54%, not 6.25%Adds points and percent in separate modes
Starting from 0%The percent change is undefinedShows "undefined" with the reason

Percentage points vs percent change vs basis points vs percent difference

Percentage points vs percent change vs basis points vs percent difference
MeasureFormula4% to 6%Use it for
Percentage point changeend − start+2 pointsThe gap between two rates
Percent change of a rate(end − start) ÷ start × 100+50%How large the move is against the starting rate
Basis pointspoints × 100+200 basis pointsRate moves in finance
Percent differenceabs(a − b) ÷ ((a + b) ÷ 2) × 10040%Two rates with no starting point

The first two rows are the pair people confuse. Basis points are a change of unit, and percent difference is the version with no direction, which the percentage difference calculator handles. When you report a change in a rate, give the points and the two rates, and add the percent only if the relative size matters.

Frequently asked questions

What is the difference between percentage points and percent?

Points measure the absolute gap between two percentages, and percent measures that gap relative to the starting one. Moving from 20% to 25% is a 5 percentage point rise and a 25% rise, because 5 ÷ 20 = 0.25.

What is a percentage point?

It is one unit on the 0 to 100 scale of a percentage, the gap between 30% and 31%, abbreviated pp.

How to calculate percentage point change?

Subtract the starting percentage from the ending one. From 35% to 41% is 41 − 35 = 6 percentage points, a percentage point increase because the result is positive. Between two groups the same subtraction is the percentage point difference.

How do I convert percentage points to percent?

Divide the points by the starting rate and multiply by 100. A rise of 2 points on a starting rate of 8% is 2 ÷ 8 × 100 = 25%.

How to calculate percentage point change in Excel?

With the starting rate in A2 and the ending rate in B2, both formatted as percentages, =ROUND((B2-A2)*100,2) returns the points and =(B2-A2)/A2, formatted as a percentage, returns the relative change. For 4% and 6% they give 2 and 50%.