Home Developers Evidence math.percent_error

Public evidence

math.percent_error

Machine-checked verification for calculation version 1.1.4 · tier engine_tested

CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance· T≠0; solve_for p|o|t; all three fields verify; absolute reverse-solves are multi-valued · Protocol · Schema · Production report

Declared partition coverage
PASS · 5/5 declared partitions (forward, inverse-observed, inverse-true, verify, invalid-domain)
Versions
Calculation 1.1.4 · CVP protocol 1.0.0-proposed
CVP identity
3/3 property · digest 620c0f56d567

Verification

Legacy regression suite: 14/14 calculation tests · Production surface contract 3/3

Three distinct suites: educational examples on the calculator page, this legacy regression count (14/14 golden + boundary), and the CVP verification suite below. They are not the same number. Property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the CVP Manifest . SKIP (0/0) means that suite has no published vectors.

    This calculator CURRENT · Public schema 1.1.4 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓

CVP verification suite

Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Calculation version 1.1.4. CVP 1.0.0-proposed. 6/6 golden · 4/4 CVP boundary · 4/4 invalid · 3/3 property · 1/1 metamorphic · 7/7 round-trip · 1/1 cross-interface · 1/1 CVP contract. digest 620c0f56d567.

  • Golden (oracle-backed) 6 / 6
  • CVP boundary 4 / 4
  • Invalid input 4 / 4
  • Property 3 / 3
  • Metamorphic 1 / 1
  • Round-trip 7 / 7
  • Cross-interface 1 / 1
  • CVP contract 1 / 1
  • Interfaces PASS · UI (SSR) / REST / MCP
  • Interface claim ui-ssr is query-result HTML, not a live browser session.
  • Assurance Engineering
  • release artifacts aligned PASS
  • schema valid input executes PASS
  • engine success output validates schema PASS

Fingerprint sha256:783cd14e12cb9811044d6bc3fce9d6c1f6fd3cf96201ae81a3916d8ad4aad9f1

Input schema sha256:9e03727ba37a3e2ed408e1b5848d278926befd7c7560784f476b13b239ba0ac9 · Output schema sha256:1ffdaff2555960cc04fef346c1146c38f6a8feb12995a9fdb488e220d00a439c · Build-time SHA-256 digests prove published artifacts agree with each other (release_integrity.scope=workspace). Production attestation GETs canonical URLs twice (public/cached view and origin), including Capability HTML, via npm run attest:production --write (published at /.well-known/calculatorx-production-attestation.json) and fails if the public Capability page advertises a different calculation_version. This is artifact consistency, not an independent immutable release log.

Build & scope

Engine identity and declared limitations.

Tool
percent-error
Engine
percent-error
Engine build
2026-09-10
Evidence core
2026-09-10T22:48:17.762Z
Rendered
2026-09-16T22:03:43.775Z
Last reviewed

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.
  • Exactly two fields are inputs. Explicit solve_for selects the output. If all three are supplied without solve_for, they are checked for consistency rather than overwritten.

Limitations

  • T = 0 → TRUE_VALUE_ZERO
  • Inconsistent triples may return status inconsistent
  • Reverse solve edge cases → NO_REAL_SOLUTION / INFINITELY_MANY

Sources

Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.

Legacy published checks

Golden and boundary cases from the legacy Evidence JSON. CVP property, metamorphic, round-trip, O3, and interface statuses/checks are recorded in the Manifest — including SKIP when a suite has no vectors.

IDKindStatusDetail
basicgoldenpassExpected 1.5 · Actual value=1.5 · solve_for=p · observed=101.5 · true=100 · percent_error=1.5 · absolute_error=1.5 · relative_error=0.015 · signed_percent_error=1.5
approxgoldenpassExpected 8.7217417812505 · Actual value=8.7217417812505 · solve_for=p · observed=56.891 · true=62.327 · percent_error=8.7217417812505 · absolute_error=5.436 · relative_error=0.08721741781250501 · signed_percent_error=-8.7217417812505
exactgoldenpassExpected 0 · Actual value=0 · solve_for=p · observed=5 · true=5 · percent_error=0 · absolute_error=0 · relative_error=0 · signed_percent_error=0
share-otgoldenpassExpected percent_error=2 · absolute_error=2 · relative_error=0.02 · Actual value=2 · solve_for=p · observed=98 · true=100 · percent_error=2 · absolute_error=2 · relative_error=0.02 · signed_percent_error=-2
signedgoldenpassExpected percent_error=-22.22222222222222 · Actual value=-22.22222222222222 · solve_for=p · observed=7 · true=9 · percent_error=-22.22222222222222 · absolute_error=2 · relative_error=0.2222222222222222 · signed_percent_error=-22.22222222222222
reverse-o-absgoldenpassExpected value=98 · solve_for=o · solution_type=two · status=success · Actual value=98 · solve_for=o · true=100 · percent_error=2 · absolute_error=2 · relative_error=0.02 · signed_percent_error=-2 · absolute=true
zero-trueboundarypassExpected TRUE_VALUE_ZERO · Actual TRUE_VALUE_ZERO
inconsistentgoldenpassExpected status=inconsistent · code=INCONSISTENT_INPUTS · percent_error=2 · Actual value=2 · solve_for=p · observed=98 · true=100 · percent_error=2 · entered_percent_error=20 · absolute_error=2 · relative_error=0.02
infinite-tgoldenpassExpected status=infinite · code=INFINITELY_MANY · constraint=T != 0 · solution_type=infinite · Actual solve_for=t · observed=0 · percent_error=100 · relative_error=1 · absolute=true · status=infinite · code=INFINITELY_MANY · solution_type=infinite
no-sol-tboundarypassExpected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION
solve-t-p100goldenpassExpected value=25 · solve_for=t · true=25 · solution_type=unique · Actual value=25 · solve_for=t · observed=50 · true=25 · percent_error=100 · absolute_error=25 · relative_error=1 · signed_percent_error=100
infinite-t-signedgoldenpassExpected status=infinite · code=INFINITELY_MANY · constraint=T != 0 · solution_type=infinite · Actual solve_for=t · observed=0 · percent_error=-100 · relative_error=1 · signed_percent_error=-100 · absolute=false · status=infinite · code=INFINITELY_MANY
no-sol-t-signed-pboundarypassExpected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION
no-sol-t-signed-o0boundarypassExpected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION