Home Developers Evidence education.gpa_letter

Public evidence

education.gpa_letter

Machine-checked verification for calculation version 1.1.3 · tier engine_tested

CVP status

CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance

Approximate interpretation on plus/minus 4.33, flat 4.0, and linear 5.0 normalization

Declared partition coverage
PASS · 6/6 declared partitions (plus-minus-nearest, floor, flat, linear5, to-gpa, invalid-domain)
Versions
Calculation 1.1.3 · CVP protocol 1.0.0-proposed · Evidence 2026-10-28.meta-metrics-v2
Verification revision
2026-10-28.meta-metrics-v2 · 2/2 property · digest bfc9ab36f236

Verification

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

Three distinct suites: educational examples on the calculator page, this legacy regression count (16/16 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.3 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-10-28.meta-metrics-v2. Calculation version 1.1.3. CVP 1.0.0-proposed. 7/7 golden · 3/3 CVP boundary · 1/1 invalid · 2/2 property · 1/1 metamorphic · 1/1 cross-interface · 6/6 CVP contract. digest bfc9ab36f236.

  • Golden (oracle-backed) 7 / 7
  • CVP boundary 3 / 3
  • Invalid input 1 / 1
  • Property 2 / 2
  • Metamorphic 1 / 1
  • Cross-interface 1 / 1
  • CVP contract 6 / 6
  • 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 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:000b22bd9b33392e932ecdbf31f9d8cde99d2049b58579e7bb5be50c5d3225ec

Input schema sha256:34264687c89f08e41986002cf356b752837057ce0446b8f0b7ea304add7f35e1 · Output schema sha256:c02b8c720af9be5cd7928b3e3b7c604acc217b0e65d935eef6fef983aa970c99 · 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
gpa-to-letter
Engine
gpa-letter
Engine build
2026-09-21
Evidence core
2026-09-21T15:56:45.653Z
Rendered
2026-11-10T05:18:42.044Z
Last reviewed
—

Assumptions

  • Default plus/minus map uses A+=4.33 … F=0.
  • Percentage ranges are one common U.S. syllabus convention for the matched letter, not a function of the input GPA.
  • Linear 5.0 assumes a 5.0 numeric ceiling linearly mapped to 4.0. It is not a generic weighted→unweighted GPA conversion.
  • Nearest matching is an approximation algorithm, not a registrar rule for converting cumulative GPA back into a letter.

Limitations

  • Interpretation of a numeric GPA or a single letter — not a registrar conversion
  • Not a term or cumulative GPA from a course list (use the GPA calculator)
  • Example percentage bands are syllabus conventions, not derived from GPA

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.