Home Developers Evidence math.percent_change

Public evidence

math.percent_change

Machine-checked verification for calculation version 1.1.1 · tier engine_tested

CVP status

CVP VERIFIED · production STALE · CVP protocol 1.0.0-proposed · Core assurance

All published p/v1/v2 directions and three-value consistency; complete signed inverse branches, no/unique/two/infinite solutions; exact binary64-rational formulas rounded ties-even, secondary-field range rejection and input-underflow guards; 8-ULP same-sign consistency with strict zero.

Declared partition coverage
PASS · 5/5 declared partitions (forward, inverse-v2, inverse-v1, invalid-domain, xcal)
Versions
Calculation 1.1.1 · CVP protocol 1.0.0-proposed · Evidence 2026-10-22.percent-change-complete-contract-v3
Verification revision
2026-10-22.percent-change-complete-contract-v3 · 5/5 property · digest c76f6f160ef8

Verification

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

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.

    STALE · Build schema 1.1.1 matches page · production binding STALE · Semantic contract ✓ · Last attestation PASS · current evidence changed · re-attestation required · CVP STALE · attestation STALE — Production CURRENT withheld · Public/cache ✓ · Origin ✓

CVP verification suite

Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Verification revision 2026-10-22.percent-change-complete-contract-v3. Calculation version 1.1.1. CVP 1.0.0-proposed. 108/108 golden · 2/2 CVP boundary · 25/25 invalid · 5/5 property · 1/1 metamorphic · 4/4 round-trip · 7/7 cross-interface · 3/3 cross-calculator · 6/6 CVP contract. digest c76f6f160ef8.

  • Golden (oracle-backed) 108 / 108
  • CVP boundary 2 / 2
  • Invalid input 25 / 25
  • Property 5 / 5
  • Metamorphic 1 / 1
  • Round-trip 4 / 4
  • Cross-interface 7 / 7
  • Cross-calculator 3 / 3
  • CVP contract 6 / 6
  • Interfaces PASS · UI (SSR) / REST / MCP
  • Interface claim ui-ssr is query-result HTML, not a live browser session. Error-path engine·REST·MCP 2/2 (status, code, calculation_version). SSR compared on URL-canonical requested calculations; empty query is idle (not an error) and JSON-typed object/array inputs are REST/MCP-only.
  • Assurance Core
  • release artifacts aligned PASS
  • schema output required declared PASS
  • schema valid input executes PASS
  • engine success output validates schema PASS
  • schema rejects incomplete input PASS
  • rest success payload validates schema PASS

Fingerprint sha256:554dc7588111216564ee2b53e5d72d2798bcb0124ebd3fb6a797ade2c5a9f165

Input schema sha256:f79b06c286ee7e4fc44ee2ffc438f5f196fe0916dd8500e05340a65c5b1aef9a · Output schema sha256:3bfdc00173d02aaf9da8bd155d8633952ed38f7d7a67f2a9fa18fca67ac8ef7c · 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-10-22
Evidence core
2026-10-22T01:11:44.702Z
Rendered
2026-10-22T08:54:35.069Z
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.
  • Two active fields normally determine the output. Explicit solve_for selects the output. Choose Check all3 to enter all three and check consistency. Shared URLs and machine inputs with all three also check consistency before solving.
  • Solving for V₁ is not always unique. The engine returns both valid initials when they exist.

Limitations

  • Signed change uses |v1|; nonzero initial value required. Inverse preserves both signed branches or infinite/no-solution outcomes.
  • Exact rational expressions of normalized binary64 inputs, one ties-even rounding per published field; not exact decimal measurement arithmetic.
  • Reject nonzero underflow/overflow in inputs, secondary fields or valid candidate branches; no partial candidate set. Rescale. Near±100 inverse percentages are ill-conditioned.
  • 8ULP same-sign nonzero triple consistency, strict zero; preserve requested percent when solving final even if final rounds unchanged.

Sources

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

Verification disclosure

Aggregate outcomes, scope and artifact commitments are public. Complete test inputs, expected values, execution records and oracle infrastructure are retained privately. This summary does not independently reproduce the full verification run.