Percent Error Calculator
Calculate absolute or signed percent error, solve for observed or accepted values, and inspect every inverse branch, numerical limit, formula and export.
Enter values to calculate.
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance
- Input interpretation
- Enter values to calculate.
- Result
- —
- Assurance
- Engineering
- Declared partition coverage
- PASS · 5/5 declared partitions (forward, inverse-observed, inverse-true, verify, invalid-domain) · Matrix
- Numerical scope
- Private independent CPython Fraction/float checks complete primary, secondary and inverse branch sets on sampled normalized binary64 inputs; arithmetic comparison0 ULP, triple consistency8 ULP for same-sign nonzero percentages with strict zero. Public disclosure is summary-only, not the private full corpus.
- Known limitations
- All p/o/t directions, absolute/signed and strict-zero8ULP triple consistency; exact binary64-rational arithmetic, complete inverse branches with individual diagnostics, exact infinite endpoints and explicit range/rounding limits
- Core CVP does not include live graph, viewport, or pointer interaction.
- Model
- Percent error, absolute error, and relative error; or the missing observed/accepted/% error when two are known. Absolute-mode reverse solves publish both ± candidates.
- Scope
- Interactive evaluation runs locally in the browser. Shared URLs and REST may evaluate the same versioned engine on the server (query SSR).
- Verification
- Engine tested · Source checked · v1.1.5 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance· View Manifest · CVP overview · Specification
- Versions
- Calculation 1.1.5 · CVP protocol 1.0.0-proposed · Evidence 2026-10-22.percent-error-complete-contract-v3
- Verification revision
- 2026-10-22.percent-error-complete-contract-v3 · 3/3 property · digest 6f7189188a89
- Legacy regression
- 14/14 tests · Production surface contract 6/6
- Trust layers
- Verification VERIFIED · Production CURRENT · Overall CVP state: VERIFIED under CVP 1.0.0-proposed
- Reference
- O1 model · O2 expected_values · O2 numerical_behavior
- Interfaces
- PASS · UI (SSR) / REST / MCP
- Supplemental domain review
- Not performed
- Named expert review
- Not performed
- CVP suite
- 151/151 golden · 4/4 CVP boundary · 37/37 invalid · 3/3 property · 1/1 metamorphic · 7/7 round-trip · 26/26 cross-interface · 3/3 cross-calculator · 6/6 CVP contract · Manifest
- Sources
- JCGM 200:2012 — International vocabulary of metrology (VIM)
- NIST Dataplot PERCERR
- NIST Dataplot RELERR
- CalculatorX laboratory convention
- Evidence
- 10 legacy golden · 4 legacy boundary · legacy regression suite · 151/151 oracle-backed golden · 37/37 invalid · Artifact integrity PASS
- Semantic contract
- PASS
Full verification
Formulas
Core equations used by this calculator.
How to use
Choose Solve for
Default solves percent error from observed and accepted / reference values. Switch to Observed or Accepted / reference to reverse-solve.
Enter the two input fields
The solved field is calculated and cannot silently disagree with the inputs.
Optional: allow signed error
Default uses absolute value (always ≥ 0). Turn off to keep the signed relative error (algebraic sign). For a negative reference, that sign is not the same as above/below.
Read % error, absolute error, and relative error
Steps show the formula with your numbers. Absolute mode reverse-solves show both ± candidates.
Example calculations
Common configurations with formula and result.
Lab mass measurement
Measured 101.5 g vs accepted 100 g
Speed of sound
329 vs 343 m/s
Decimal sample
56.891 vs 62.327
Signed error
Observed 7, accepted 9
Quick examples
Common values at a glance.
| Observed | Accepted | % error |
|---|---|---|
| 56.891 | 62.327 | ≈ 8.722% |
| 101.5 g | 100 g | 1.5% |
| 329 m/s | 343 m/s | ≈ 4.082% |
| 10.3 oz | 10 oz | 3% |
| 98 | 100 | 2% |
Percent Error calculator specification
Version 1.1.5 · Engine tested
- Engine tested 14/14 tests · Production surface contract 6/6
- Named expert review Not performed
- Calculation version 1.1.5
- Definition
- Percent error measures how far an observed (experimental, measured) value is from an accepted (true, reference) value, as a percentage of the accepted value. Exactly two of observed, accepted, and percent error are inputs; the Solve for field is the output.
- What it calculates
- Percent error, absolute error, and relative error; or the missing observed/accepted/% error when two are known. Absolute-mode reverse solves publish both ± candidates.
- Inputs
- Observed / experimental value O
- Accepted / reference value T (true/theoretical/expected are synonyms)
- Percent error P (when solving for O or T)
- Solve for: p (default) | o | t
- Absolute-value toggle (default on)
- Outputs
- Percent error
- Absolute error |O − T| (magnitude of the VIM measurement error; not a VIM-defined term)
- Relative error |O − T| / |T|
- When solving for O or T in absolute mode with P > 0: both algebraic branches and their diagnostics, even if rounded candidates coincide
- When solving T at P = 100% with O ≠ 0: one valid candidate; the zero-denominator ± branch is omitted
- When O = 0, P = 100%, solve T: INFINITELY_MANY with constraint T ≠ 0
- When O = 0, P = −100%, signed, solve T: INFINITELY_MANY with constraint T ≠ 0
- Formula
Absolute: P = |O−T|/|T|×100%; O = T(1±P/100); T = O/(1±P/100). Signed: P = 100(O−T)/T; O = T(1+P/100); T = O/(1+P/100). Signed T is undefined at P = −100% (then INFINITELY_MANY if O = 0, else NO_REAL_SOLUTION).- Assumptions
- Interactive evaluation runs locally in the browser. Shared URLs and REST may evaluate the same versioned engine on the server (query SSR).
- Accepted value T ≠ 0.
- Default formula uses absolute value so % error ≥ 0.
- Two active fields solve the selected third; all three supplied values check consistency before solving, even with explicit solve_for. Consistency allows8 ULP for same-sign nonzero P and strict zero.
- Inverse P is the requested percentage. Candidates are rounded to binary64, so achieved_percent_error and resolution_limited disclose any discrepancy; two mathematical branches may round to the same float.
- All aliases must agree. Unknown inputs and invalid absolute/signed policies are rejected.
- Units
- O and T in the same ratio-scale unit with a meaningful zero (e.g. grams, metres, kelvins); result in %. Offset temperature ratios in Celsius/Fahrenheit are not physical relative errors.
- Boundary conditions
- T = 0 → TRUE_VALUE_ZERO (undefined)
- Fewer than two inputs → MISSING_REQUIRED_INPUT
- Invalid solve_for → INVALID_SOLVE_FOR
- Negative P in absolute mode → INVALID_PERCENT
- O = 0, P = 100%, absolute, solve T → INFINITELY_MANY (any T ≠ 0)
- O = 0, P ≠ 100%, absolute, solve T → NO_REAL_SOLUTION
- O ≠ 0, P = 100%, absolute, solve T → T = O/2; the 1 − P/100 branch is omitted (not a full calculation error)
- O = 0, P = −100%, signed, solve T → INFINITELY_MANY (any T ≠ 0)
- O = 0, P ≠ −100%, signed, solve T → NO_REAL_SOLUTION
- O ≠ 0, P = −100%, signed, solve T → NO_REAL_SOLUTION
- Solving from P may yield two candidates (±) when absolute mode is on
- All three supplied values not consistent within8 ULP and strict zero → INCONSISTENT_INPUTS, including explicit solve_for
- NUMERIC_RANGE rejects nonzero text/output underflow or overflow, including secondary fields and any valid inverse branch
- Invalid number/type, conflicting aliases, unknown field, or invalid absolute policy → explicit recoverable error
- Numerical precision
- Finite normalized IEEE-754 binary64 operands; exact bounded rational algebra of those operands followed by one nearest ties-even rounding per published numeric field. This does not recover original decimal precision or measurement uncertainty.
- Shortest roundtrip number strings retain full binary64 information in the page and exports; no10-digit truncation.
- Nonzero decimal text that converts to zero, and any nonzero primary/secondary/valid-branch result rounding to zero or overflowing, is NUMERIC_RANGE. Rescale; partial candidate sets are not returned. Subnormal results are allowed if representable.
- Inverse diagnostics use the rounded candidate operands. Both branches retain their own absolute/relative/signed/achieved error and direction; ambiguous top-level diagnostics are null.
- Near T=0 or inverse P=±100, input perturbations are amplified. Infinite solutions require exact P=100 absolute or P=−100 signed and O=0; adjacent floats are not the same endpoint.
- Decimal number strings are limited to512 characters. Raw JSON numeric-literal underflow is rejected by REST/MCP before normalization; a client-sent0 is a different input.
- REST/SSR/Web/final MCP preserve the complete output and version identity; browser interaction is local, share URLs and REST/MCP send inputs to the server.
- Example
- |101.5 − 100| / 100 × 100% = 1.5%
- Validation cases
12 published on this page · 14/14 tests · Production surface contract 6/6 · View evidence
- O=101.5, T=100 → 1.5%
- O=56.891, T=62.327 → ≈8.722%
- O=329, T=343 → ≈4.082%
- O=7, T=9, signed → −22.222%
- T=100, P=2% (solve O, absolute) → 98 or 102
- O=98, T=100, P=20% (no solve_for) → error INCONSISTENT_INPUTS
- T=0 → error TRUE_VALUE_ZERO
- O=0, P=100%, solve T, absolute → INFINITELY_MANY (any T ≠ 0)
- O=50, P=100%, solve T, absolute → T=25 (1 − P/100 branch omitted)
- O=0, P=−100%, solve T, signed → INFINITELY_MANY (any T ≠ 0)
- O=50, P=−100%, solve T, signed → error NO_REAL_SOLUTION
- O=0, P=50%, solve T, signed → error NO_REAL_SOLUTION
- Sources
- JCGM 200:2012 — International vocabulary of metrology (VIM) — §2.16 measurement error · accessed 2026-08-28Supports: Defines measurement error as measured quantity value minus a reference quantity value (ε = O − T). Does not define relative error — VIM §2.18 is measurement bias, not relative error. Does not prescribe a percent-error ×100% laboratory convention.
- NIST Dataplot PERCERR — Percent error of a true/accepted value vs an observed value · accessed 2026-08-28Supports: Documents percent error from an accepted (true) value and an observed value, and notes that some conventions take the absolute value. Instantly readable page — not the frameset handbook root.
- NIST Dataplot RELERR — Relative error of a true/accepted value vs an observed value · accessed 2026-08-28Supports: Documents relative error (Xt − Xo)/Xt. Notes that some sources take the absolute value, and some reverse numerator order — those change sign, not magnitude.
- CalculatorX laboratory convention — Absolute-value percent error, signed opt-in, and reverse-solve statesSupports: Default % error = |O−T|/|T|×100% so the result is ≥ 0; signed (O−T)/T×100% is opt-in. Displayed absolute error is |ε|, the magnitude of VIM measurement error — not a separate VIM term. Absolute reverse-solves publish both ± candidates, omit a zero-denominator branch, and publish INFINITELY_MANY when every T ≠ 0 works. Signed P = −100% with O ≠ 0 is NO_REAL_SOLUTION.
- JCGM 200:2012 — International vocabulary of metrology (VIM) — §2.16 measurement error · accessed 2026-08-28
- Calculation version
- 1.1.5
Background
Interpretation and common distinctions.
What does this percent error calculator compute?
Percent error measures how far an observed (experimental, measured) value is from an accepted (true, reference) value, as a percentage of the accepted value. Exactly two of observed, accepted, and percent error are inputs; the Solve for field is the output.
The published formula or method is Absolute: P = |O−T|/|T|×100%; O = T(1±P/100); T = O/(1±P/100). Signed: P = 100(O−T)/T; O = T(1+P/100); T = O/(1+P/100). Signed T is undefined at P = −100% (then INFINITELY_MANY if O = 0, else NO_REAL_SOLUTION).. The following references support the stated mathematics or method:
- NIST Dataplot — PERCERR: Percent-error measures and normalization by a reference value; CalculatorX’s signed and inverse-solve conventions are documented separately.
Which inputs and limits should you check?
Keep the reference value, signed/absolute convention, and solve direction explicit. Inverse solving can return multiple candidates or a constrained non-unique result.
The worked example uses Measured 101.5 g vs accepted 100 g with |101.5−100|/100×100%. Compare it with the Example calculations and the complete result for the same inputs.
How can you verify and cite this result?
CalculatorX is responsible for this page. The mathematical references above explain the model; implementation checks and their scope are documented separately in the math.percent_error v1.1.5 Evidence and capability contract. Read the displayed verification and production state together with the specification's numerical limits.
Use the clean calculator URL to cite the tool. A shared input link identifies a particular calculation. Content updates, numerical verification, and domain reviews have separate dates and scopes.
What is percent error?
Percent error (approximation error) is how far an observed value is from an accepted / reference value, expressed as a percentage of that accepted value. It is used in science labs to judge whether a measurement is close to the accepted result.
- Observed — experimental, measured, estimated
- Accepted / reference — also called true, theoretical, expected, or actual. In measurement work we often do not know a metaphysical “true” value, so an accepted or reference value is the practical denominator.
A small percent error means the values are close; a large one may mean a mistake or an unreliable method.
Percent error vs percent difference
Use percent error when one value is an accepted or reference value.
Use percent difference when comparing two experimental values without a known reference — the denominator is then the average of the two values, not a preferred true value.
Related tool: Percent difference.
Which numerical limits apply?
Use the same ratio-scale unit for the measurement O and reference T. Convert offset temperature readings to kelvins before interpreting a physical relative error; dividing Celsius or Fahrenheit readings depends on the arbitrary zero. The examples here use mass, length/speed, or unitless quantities.
Decimal tokens of at most512 characters normalize to binary64 first. Each exact algebraic result is rounded once to binary64; shortest roundtrip strings preserve the stored value. Nonzero text or any published field outside the binary64 range returns NUMERIC_RANGE and asks you to rescale. This includes every valid inverse branch and all secondary diagnostics: no partially finite solution set is presented as complete.
For inverse solves, P remains the requested percentage. Achieved percent error is recomputed from each rounded candidate, and resolution_limited warns when it fails the8 ULP same-sign consistency budget with strict zero. Tiny nonzero percentages can produce two exact branches that round to the same stored number. For instance, T=1 and P=1e-100 retains both rounded O=1 branches, with achieved0% and a resolution warning. Near a zero reference or P=±100 inverse denominator, small input changes can dominate; no measurement-uncertainty analysis is implied.
The NIST SI quantity checklist supports careful distinction between quantities, units and dimensionless ratios; CalculatorX documents its own signed convention and numerical policy separately.
Related tools
Other calculators in this family: Percentage Calculator, Percentage Change Calculator, Proportion Calculator, Ratio Calculator . Explore all Percent, Ratio & Proportion.
Frequently asked questions
Key distinctions behind the calculation.
What is percent error?
It quantifies the discrepancy between an observed (measured) value and an accepted (reference) value as a percentage of the accepted value.
What is the percent error formula?
% error = |observed − accepted| / |accepted| × 100%. Absolute error is |observed − accepted|; relative error is that difference divided by |accepted|.
Observed vs accepted — which terms are used?
Observed is also called experimental, measured, estimated, or approximate. Accepted is also called true, theoretical, expected, exact, reference, or actual. In the lab we often do not know a metaphysical true value, so accepted/reference is the better name.
Can percent error be negative?
With the usual absolute-value formula it is never negative. If you omit the absolute value, (O − T)/T keeps the algebraic sign of the relative error. With a positive accepted value, observed below reference is negative — that is direction, not “better.” With a negative accepted value, the same sign is not above/below on the number line.
Is a small percent error good?
Usually yes: it means measured and accepted values are close. A very large percent error often signals a mistake or a poor method.
What if the accepted value is unknown?
Classic percent error needs a known accepted/reference value. If both numbers are experimental and neither is a reference, use percent difference instead. For spreads of repeated measurements, use statistics such as standard deviation.
Percent error vs percent difference?
Use percent error when one value is an accepted/reference value. Use percent difference when comparing two experimental values without a known reference — the denominator is then the average of the two values, not a preferred true value.
How is this different from percent change?
Percent change compares an old value to a new value. Percent error compares a measurement to an accepted reference value.
Percent error vs margin of error / standard error?
Percent (relative) error is |O−T|/|T|. Standard error describes sampling accuracy; margin of error relates to confidence intervals—different concepts.
Why can solving for observed give two answers?
Absolute percent error discards direction, so O = T(1 ± P/100). For T = 100 and P = 2%, both 98 and 102 are valid. Signed mode has a single solution.
Why can solving for the accepted value give infinitely many answers?
When observed is 0 and absolute percent error is 100%, |0 − T| / |T| × 100% = 100% for every T ≠ 0. In signed mode the analog is O = 0 and P = −100%. The engine publishes INFINITELY_MANY with constraint T ≠ 0 instead of picking one T. If observed is 0 and P is not that special value, there is no real solution. If observed is nonzero and absolute P is 100%, one branch is T = O/2 and the 1 − P/100 branch is omitted. If observed is nonzero and signed P is −100%, T = O/(1 + P/100) has no real solution (it would require O = 0).
Do shared URLs still run only in the browser?
Interactive typing calculates locally in your browser. A shared result URL and the REST API use the same versioned engine and may be evaluated on the server (query SSR). Inputs in a share URL are part of the HTTP request.