Public evidence
Machine-checked verification for calculation version 1.1.1 · tier engine_tested
CVP: CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance· Current excludes final; W in percent; planning estimate only · Protocol · Schema · Production report
Legacy regression suite: 26/26 calculation tests · Production surface contract 4/4
Three distinct suites: educational examples on the calculator page, this legacy regression count (26/26 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.
Protocol checks from the Evidence Manifest. Distinct from the legacy regression suite above. Calculation version 1.1.1. CVP 1.0.0-proposed. 1/1 golden · 12/12 CVP boundary · 4/4 invalid · 8/8 property · 1/1 cross-interface · 1/1 CVP contract. digest d660dddb19db.
Fingerprint sha256:d0c84c4dfd54ae467be14367de1c0f3532748857b551ffe47175946d417c9479
Input schema sha256:548a9acb12e46491968636cf4991a6f7ab8a701719afbde49b6e02c3921c9df2 · Output schema sha256:2fa2caf68de0f94e8f23cae378eed36318bc3b0edbb0cdebcadfd2b07cd7e1ba · 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.
Engine identity and declared limitations.
Standards and references supporting this tool specification. Methods are listed separately — they are algorithms, not bibliographic sources.
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.
| ID | Kind | Status | Detail |
|---|---|---|---|
need-85-90-40 | golden | pass | Expected value=97.5 · reachability=attainable · Actual value=97.5 · status=ok · mode=need · current=85 · goal=90 · weight=40 · remain=60 · needed=97.5 |
need-70-80-50 | golden | pass | Expected value=90 · reachability=attainable · Actual value=90 · status=ok · mode=need · current=70 · goal=80 · weight=50 · remain=50 · needed=90 |
boundary-w-100 | boundary | pass | Expected value=88 · reachability=attainable · Actual value=88 · status=ok · mode=need · current=70 · goal=88 · weight=100 · remain=0 · needed=88 |
boundary-w-0 | boundary | pass | Expected WEIGHT_REQUIRED · Actual WEIGHT_REQUIRED |
boundary-needed-100 | boundary | pass | Expected value=100 · reachability=attainable · Actual value=100 · status=ok · mode=need · current=80 · goal=90 · weight=50 · remain=50 · needed=100 |
boundary-unreachable | boundary | pass | Expected value=235 · reachability=unreachable · Actual value=235 · status=ok · mode=need · current=60 · goal=95 · weight=20 · remain=80 · needed=235 |
boundary-needed-0 | boundary | pass | Expected value=0 · reachability=secured · Actual value=0 · status=ok · mode=need · current=100 · goal=60 · weight=40 · remain=60 · needed=0 |
boundary-needed-neg | boundary | pass | Expected value=-30 · reachability=secured · Actual value=-30 · status=ok · mode=need · current=95 · goal=70 · weight=20 · remain=80 · needed=-30 |
overall-85-92-40 | golden | pass | Expected value=87.8 · Actual value=87.8 · status=ok · mode=overall · current=85 · finalScore=92 · weight=40 · remain=60 · overall=87.8 |
boundary-overall-w-0 | boundary | pass | Expected value=85 · Actual value=85 · status=ok · mode=overall · current=85 · finalScore=92 · weight=0 · remain=100 · overall=85 |
boundary-overall-w-100 | boundary | pass | Expected value=92 · Actual value=92 · status=ok · mode=overall · current=85 · finalScore=92 · weight=100 · remain=0 · overall=92 |
points-200-1000 | golden | pass | Expected value=20 · Actual value=20 · status=ok · mode=points · total=1000 · finalPts=200 · weight=20 · unit=% |
boundary-points-total-0 | boundary | pass | Expected TOTAL_POINTS_REQUIRED · Actual TOTAL_POINTS_REQUIRED |
points-exceed-total | boundary | pass | warning POINTS_EXCEED_TOTAL |
xref-need-overall-identity | formula cross-check | pass | Expected value=90 · Actual value=90 · status=ok · mode=overall · current=85 · finalScore=97.5 · weight=40 · remain=60 · overall=90 |
weighted-two-cats | golden | pass | Expected value=85 · Actual value=85 · status=ok · mode=weighted · counted=2 · weightSum=100 · weightedSum=8500 · currentAvg=85 · remain=0 |
boundary-categories-empty | boundary | pass | Expected CATEGORIES_REQUIRED · Actual CATEGORIES_REQUIRED |
boundary-overall-missing-final | boundary | pass | Expected INPUT_REQUIRED · Actual INPUT_REQUIRED |
property-deterministic | property | pass | 97.5 |
property-w100-needed-eq-goal | property | pass | 88 |
property-need-overall-roundtrip | property | pass | 90 |
property-overall-w0 | property | pass | 85 |
property-overall-w100 | property | pass | 92 |
property-points-inverse | property | pass | 20 |
property-monotonic-current | property | pass | needed decreases as current increases |
property-Ww-identity | property | pass | 97.5 |