# Percentage Change Calculator

> Computes the relative change from an old value to a new value as a percentage, the signed absolute change, the new/old ratio and the symmetric percent difference.

- Calculator id: `percentage-change` · Category: Math (`math`) · Tool name: `calculate_percentage_change`
- Canonical page: https://tttkmbb.com/math/percentage-change · This document: https://tttkmbb.com/math/percentage-change.md · JSON definition: https://tttkmbb.com/math/percentage-change.json

## Purpose

Computes the relative change from an old value to a new value as a percentage, the signed absolute change, the new/old ratio and the symmetric percent difference.

**Use when:** You have a starting and an ending value and need the percentage increase or decrease, or a symmetric percent difference between two comparable values.

**Do not use when:** You need a percentage of a number (use percentage), an annualised growth rate over several years (use cagr) or an investment return (use roi).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `old_value` | number |  | required | Starting (reference) value. Must not be 0. |
| `new_value` | number |  | required | Ending value. |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `change_percent` | number | % | (new − old) / \|old\| × 100; negative for a decrease. |
| `absolute_change` | number |  | new_value − old_value (signed). |
| `direction` | string |  | 'increase', 'decrease' or 'no change'. |
| `ratio` | number |  | new_value / old_value (1.3 means a 30% increase). |
| `percent_difference` | number | % | \|new − old\| / ((\|new\| + \|old\|) / 2) × 100; the same whichever value is called 'old'. |

## Formula

`change_percent = (new_value − old_value) / |old_value| × 100; percent_difference = |new_value − old_value| / ((|new_value| + |old_value|) / 2) × 100`

Dividing by |old_value| keeps the sign of the change meaningful when the old value is negative (−10 → −5 is a 50% increase).

## Data Sources

- Wikipedia – Relative change — https://en.wikipedia.org/wiki/Relative_change (reference, retrieved 2026-09-23)
- Wikipedia – Percentage — https://en.wikipedia.org/wiki/Percentage (reference, retrieved 2026-09-23)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/percentage-change?old_value=…&new_value=…`
- `POST https://tttkmbb.com/api/v1/calculate/percentage-change` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/percentage-change · OpenAPI operationId `calculate_percentage_change` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool: `calculate_percentage_change` (dedicated) or `run_calculator` with `{"calculator_id": "percentage-change", "inputs": {…}}`

## Example

- 50 → 65: inputs `{"old_value":50,"new_value":65}` → `{"change_percent":30,"absolute_change":15,"direction":"increase","ratio":1.3,"percent_difference":26.09}`
- 80 → 60: inputs `{"old_value":80,"new_value":60}` → `{"change_percent":-25,"absolute_change":-20,"direction":"decrease","ratio":0.75,"percent_difference":28.57}`

```
GET https://tttkmbb.com/api/v1/calculate/percentage-change?old_value=50&new_value=65
```

## Limitations

You need a percentage of a number (use percentage), an annualised growth rate over several years (use cagr) or an investment return (use roi). Dividing by |old_value| keeps the sign of the change meaningful when the old value is negative (−10 → −5 is a 50% increase). All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Why is a 25% decrease not undone by a 25% increase?**

Percent changes are relative to the starting value: 80 → 60 is −25%, but 60 → 80 is +33.33%. The symmetric percent_difference (28.57% here) is the same in both directions.

**What if the old value is 0?**

The percentage change is undefined (division by zero) and the calculator returns an error; report the absolute change instead.

## Related

- [Percentage Calculator](https://tttkmbb.com/math/percentage.md) — Plain percent-of and what-percent questions.
- [CAGR Calculator](https://tttkmbb.com/finance/cagr.md) — Average yearly growth rate over a period.
- [ROI Calculator](https://tttkmbb.com/finance/roi.md) — Return on an investment as a percentage of cost.
