Home Developers Evidence math.percent_change

Public evidence

math.percent_change

Machine-checked verification for calculation version 1.1.0 · tier engine_tested

CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance· V1≠0; solve_for p|v1|v2; inverse V1 can be 0, 1, or 2 solutions · Protocol · Schema · Production report

Declared partition coverage
PASS · 5/5 declared partitions (forward, inverse-v2, inverse-v1, invalid-domain, xcal)
Versions
Calculation 1.1.0 · CVP protocol 1.0.0-proposed · Evidence 2026-09-08.signed-set
Verification revision
2026-09-08.signed-set · 5/5 property · digest a7b9f7091c43

Verification

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

Three distinct suites: educational examples on the calculator page, this legacy regression count (8/8 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.0 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓

CVP verification suite

Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Verification revision 2026-09-08.signed-set. Calculation version 1.1.0. CVP 1.0.0-proposed. 7/7 golden · 2/2 CVP boundary · 4/4 invalid · 5/5 property · 1/1 metamorphic · 4/4 round-trip · 1/1 cross-interface · 3/3 cross-calculator · 1/1 CVP contract. digest a7b9f7091c43.

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

Fingerprint sha256:fcc1ae93840bcc952ec705764db517dec8db909e0f8a2fdfa5b4cad6d54f0572

Input schema sha256:ca82ab91d9cdc321e60dcf81b83c508bd741cd8f5acd6557f2bba9e8623e400a · Output schema sha256:664030f01b40bd77a5c97f577106162afc932fb9b96bf7de1e1020ce7fe2384c · 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-change
Engine
percent-change
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 evaluate the same versioned engine (query SSR).
  • CVP interface evidence is UI (SSR) query-result HTML, REST, and MCP (MCP reuses the calc API handler). That is interface-result consistency, not a live browser session, cache switching, or end-to-end UI test.
  • Signed-change convention: denominator is |V₁|, so a move from −100 to −50 is a +50% increase. Some definitions use V₁ without absolute value or restrict to positive baselines.
  • 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.
  • Solving for V₁ is not always unique. The engine returns both valid initials when they exist.

Limitations

  • V₁ = 0 → INITIAL_VALUE_ZERO
  • Invalid reverse solve → NO_REAL_SOLUTION; some cases 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
up-20goldenpassExpected 20 · Actual delta=12 · value=20 · solve_for=p · v1=60 · v2=72 · p=20 · percent_change=20 · solution_type=unique
down-25goldenpassExpected -25 · Actual delta=-0.875 · value=-25 · solve_for=p · v1=3.5 · v2=2.625 · p=-25 · percent_change=-25 · solution_type=unique
neg-to-posgoldenpassExpected 200 · Actual delta=50 · value=200 · solve_for=p · v1=-25 · v2=25 · p=200 · percent_change=200 · solution_type=unique
solve-final-neggoldenpassExpected 25 · Actual delta=50 · value=25 · solve_for=v2 · v1=-25 · v2=25 · p=200 · percent_change=200 · solution_type=unique
two-initialsgoldenpassExpected status=multiple_solutions · solution_type=two · Actual value=8.333333333333334 · solve_for=v1 · v2=25 · p=200 · percent_change=200 · solution_type=two · status=multiple_solutions · direction=increase
zero-initialboundarypassExpected INITIAL_VALUE_ZERO · Actual INITIAL_VALUE_ZERO
infinite-neg-100goldenpassExpected status=infinite · code=INFINITELY_MANY · Actual solve_for=v1 · v2=0 · p=-100 · percent_change=-100 · status=infinite · code=INFINITELY_MANY · solution_type=infinite · constraint=V₁ > 0
no-initial-neg-100boundarypassExpected NO_REAL_SOLUTION · Actual NO_REAL_SOLUTION