{
  "schemaVersion": 1,
  "documentSet": "education",
  "asOf": "2026-09-08",
  "counts": {
    "courses": 3,
    "learners": 12,
    "enrolments": 18,
    "invoices": 18,
    "attendanceRecords": 36,
    "bursaries": 4
  },
  "identities": [
    {
      "id": "fee-components-add-up",
      "statement": "tuition + materials_fee + registration_fee = gross_fee",
      "expected": "5250.00"
    },
    {
      "id": "bursary-reduces-fee",
      "statement": "gross_fee - bursary_amount = net_payable, never below zero",
      "expected": "4442.50"
    },
    {
      "id": "pass-needs-completion",
      "statement": "passed = completed AND score >= pass_score",
      "expected": "9"
    },
    {
      "id": "certificate-needs-attendance",
      "statement": "certificate_eligible = completed AND passed AND both sessions attended",
      "expected": "7"
    },
    {
      "id": "wide-and-long-gradebooks-agree",
      "statement": "unpivoting gradebook-wide gives gradebook-export exactly",
      "expected": "18"
    },
    {
      "id": "payment-plans-cover-their-invoices",
      "statement": "the instalments of a plan sum to the invoice net_payable",
      "expected": "2600.00"
    }
  ],
  "totals": {
    "grossFeesUsd": "5250.00",
    "bursaryUsd": "807.50",
    "netPayableUsd": "4442.50",
    "scheduledInstalmentsUsd": "2600.00",
    "enrolments": 18,
    "completed": 15,
    "passed": 9,
    "certificatesEligible": 7,
    "attendancePercent": "83.33"
  },
  "knownDefects": [
    {
      "file": "invoice-register-bursary-exceeds-fee.csv",
      "offendingEnrolment": "ENR-03",
      "excessUsd": "125.00",
      "statedNetTotalUsd": "4205.00",
      "correctNetTotalUsd": "4442.50",
      "cause": "a bursary larger than the fee it is applied to, producing a negative net"
    },
    {
      "file": "gradebook-export-score-out-of-range.csv",
      "outOfRangeEnrolment": "ENR-06",
      "outOfRangeScore": 104,
      "maxScore": 100,
      "missingScoreEnrolment": "ENR-12",
      "cause": "one score above the declared maximum and one score cell emptied while its pass and band columns still assert a distinction"
    }
  ]
}
