Source: https://guthlabs.ai/docs/instruments/gpa-calculator/mechanism/

instrument mechanism / verified-clean

# GPA Calculator mechanism

The inspectable method record for GPA Calculator, kept separate from implementation and qualification.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Model scope

The core formula is standard and mathematically valid, but the specification is not complete enough for an institution-independent implementation. Exact ambiguities requiring resolution are: which letter-grade mapping applies for each scale; what weighted means; whether repeated courses, pass/fail courses, withdrawals, plus/minus grades, and grade replacement are included; and what data defines cumulative versus semester GPA. The honest-label warning that grading scales vary by institution is required and should be prominent.

- The weighted-average formula is correct only when credit hours are the intended weighting factor and all credit hours use the same unit.

- The grade-point mapping is not specified; a 4.0, 5.0, or weighted scale can vary by institution.

- The meaning of the weighted scale is ambiguous: it could mean a different maximum scale, honors/AP bonus points, or another institution-specific rule.

- Cumulative GPA requires prior coursework or a prior GPA plus prior attempted credits, but the input specification only defines one course list.

- No rounding or precision policy is specified for displayed GPA values.

## Units and conventions

- All credit hours must be expressed in one consistent unit before calculation; semester and quarter hours must not be mixed without conversion.

- Grade points are dimensionless and must come from the selected institution-specific scale.

- The test vectors explicitly provide their grade-point mappings; these mappings are assumptions, not universal standards.

- Zero-credit courses contribute zero to both the numerator and denominator and therefore do not affect GPA.

- A semester GPA is calculated from the courses in the supplied semester list; a cumulative GPA cannot be calculated without all relevant historical coursework or prior aggregate totals.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "scope": "semester",
    "scale": "4.0 standard for this test",
    "grade_point_mapping": {
      "A": 4,
      "B+": 3.3,
      "C": 2
    },
    "courses": [
      {
        "course": "Calculus I",
        "grade": "A",
        "credit_hours": 3
      },
      {
        "course": "English Composition",
        "grade": "B+",
        "credit_hours": 3
      },
      {
        "course": "Biology",
        "grade": "C",
        "credit_hours": 4
      }
    ]
  },
  "expected_outputs": {
    "gpa": 2.99
  },
  "working": "A: 4.0 × 3 = 12.0; B+: 3.3 × 3 = 9.9; C: 2.0 × 4 = 8.0. Weighted points = 12.0 + 9.9 + 8.0 = 29.9. Total credits = 3 + 3 + 4 = 10. GPA = 29.9 ÷ 10 = 2.99."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The zero-total-credit vector produces an undefined division and must be rejected. The specification also leaves scale tables and plus/minus conventions institution-specific, so accepting such inputs without an explicit configured table can produce materially different GPAs.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/gpa-calculator/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/gpa-calculator/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/gpa-calculator/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche5/tranche5-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
