{
  "capability_id": "math.percent_change",
  "calculation_version": "1.1.0",
  "protocol_version": "1.0.0-proposed",
  "protocol_document_status": "proposed",
  "verification_revision": "2026-09-08.signed-set",
  "claim_scope": "O2 expected values and inverse solution sets (candidates, solution_type, status, code) on the published vectors. Same-runtime binary64 is declared; O3 is not required for this algebraic model.",
  "evidence_digest": "a7b9f7091c43c5bcbbe43d4be80b6d8bf8da4dc19f2e908b2b261cd959c5b968",
  "oracle": {
    "class": "O2",
    "module": "percent-change-reference",
    "precision_bits": 53,
    "independent_of_iut": true,
    "same_runtime_as_iut": true,
    "oracle_sha256": "c35073178dd64b76e1d9f90fe7691cab10fa7a7f739ca359eaa976d0af8ac3d4"
  },
  "result_summary": {
    "passed": 7,
    "total": 9,
    "failed": 0,
    "max_error_ulp": 0,
    "threshold_ulp": 2,
    "evidence_digest": "a7b9f7091c43c5bcbbe43d4be80b6d8bf8da4dc19f2e908b2b261cd959c5b968"
  },
  "public_files": {
    "manifest": "/evidence/math.percent_change/1.1.0.cvp.json",
    "this_file": "/evidence/math.percent_change/reproduce.json"
  },
  "vectors": [],
  "disclosure": {
    "policy": "calculatorx-public-evidence-v1",
    "full_validation": "private",
    "representation": "summary",
    "kind": "reproduce"
  }
}
