University of Mid Florida · iCyber Enterprises
Functional & technical specification for the CampusOS engineering team
Under 34 CFR § 668.34, an institution disbursing Title IV federal student aid must have a written SAP policy and evaluate each aid recipient against three components. A student must satisfy all three to be "making satisfactory academic progress."
| Measure | What it checks | Federal rule |
|---|---|---|
| Qualitative (grades) | Academic quality, expressed as cumulative GPA. | Must use a GPA (or comparable) standard consistent with graduation requirements. |
| Quantitative — Pace | Whether the student completes coursework fast enough to finish on time. | Pace = cumulative completed ÷ cumulative attempted; institution sets the minimum (commonly 67%). |
| Quantitative — Max Timeframe | Cap on how long a student may take. | May not exceed 150% of the published program length (in credit hours). |
All values in CONFIG are institution-set parameters CampusOS must expose in an admin SAP-policy screen (per program). Recommended UMF graduate defaults shown.
| Parameter | Recommended (grad) | Definition / formula |
|---|---|---|
| Minimum cumulative GPA CONFIG | 3.00 | Qualitative measure. May optionally be tiered by credits attempted (e.g., lower bar in term 1). |
| Minimum pace % CONFIG | 67% | pace = earnedCredits / attemptedCredits (cumulative). |
| Published program length CONFIG | 30 credits (confirm) | Credits required to graduate the program. |
| Max-timeframe multiplier CONFIG | 150% | maxAttempted = programLength × 1.50 → 30 × 1.5 = 45 credits. |
| Evaluation frequency CONFIG | Each term | End of each payment period/term (federally must be ≥ annual). |
| "Approaching max TF" warning band CONFIG | ≥ 90% of max | Flag when attempted ≥ 0.90 × maxAttempted (e.g., ≥ 40.5 credits) so advisors intervene early. |
IP (in progress). If IP credits are counted in the attempted denominator before they are graded, every active student's pace is artificially depressed (e.g., a student mid-program shows pace far below 67% only because future/current courses are already on the record). The policy must specify: current-term and not-yet-graded (IP) credits are typically excluded from the pace denominator until a grade is posted, but included in the maximum-timeframe attempted count. CampusOS must let UMF set this behavior and must compute pace on graded attempted credits by default.
How each CampusOS grade symbol feeds the three measures. This table must be CONFIG-editable, because it is the single most audited part of an SAP policy.
| Grade | In GPA? | In Attempted (pace) | In Attempted (max TF) | Counts as Earned/Completed? |
|---|---|---|---|---|
| A+ … D (passing letters) | Yes | Yes | Yes | Yes |
| Pass (P) | No | Yes | Yes | Yes |
| F / Fail | Yes (0.0) | Yes | Yes | No |
| IP — In Progress (current term) | No | Exclude until graded | Yes | No (yet) |
| I — Incomplete | No (until resolved) | Yes | Yes | No until completed |
| W — Withdraw | No | Yes | Yes | No |
| Retake / Repeat | Per policy (last or highest) | Each attempt = attempted | Each attempt = attempted | Counts once toward earned |
| Transfer credits (accepted) | No | Yes | Yes | Yes |
| Audit | No | No | No | No |
Retake rows that must be handled this way.Each evaluation assigns the student exactly one status. CampusOS must store the status, the prior status, and the evaluation snapshot, and drive transitions by this state machine.
| Status | Meaning | Aid effect | Entered when |
|---|---|---|---|
| Meeting SAP | All three measures pass. | Eligible. | meetsSAP = true. |
| Financial Aid Warning | Failed a measure; one-term grace (no appeal needed). | Remains eligible 1 term. | Was "Meeting"; now fails ≥1 measure (only if UMF evaluates each term). |
| Financial Aid Probation | Still failing after Warning; appeal approved. | Eligible 1 term, usually with an Academic Plan. | Was "Warning"; still failing; appeal granted. |
| Academic Plan | Multi-term path back to SAP, tracked each term. | Eligible while meeting the plan. | Appeal granted with a plan; re-checked each term. |
| Not Meeting SAP / Suspended | Failing with no (or denied) appeal, or plan broken. | Ineligible until reinstated. | Warning lapsed without recovery, or appeal denied. |
| Max Timeframe Exceeded | Cannot finish within 150%. | Ineligible. | maxTFpass = false, or projectedToFinish = false. |
Supporting records CampusOS must capture: Appeal (reason code, narrative, documents, reviewer, decision, date) and Academic Plan (target metrics per term, progress check).
Two linked outputs: a roster report (one row per student) and a per-student SAP letter/detail (the evidence document).
| Column | Source / formula |
|---|---|
| Student name, ID, Program, Term evaluated | Student record |
| Cumulative GPA · Qual result | GPA · pass/fail vs minGPA |
| Credits Attempted / Earned | Transcript cumulative |
| Pace % · Pace result | earned/attempted · pass/fail vs minPace |
| Max-TF: attempted / max allowed · result | attempted vs programLen×1.5 |
| Overall SAP status | State machine (§4) |
| Prior status · Action / flag · Notes | Snapshot history; e.g., "Appeal due", "Approaching max TF" |
Filter by program, term, status, aid-recipient-only. Summary counts per status. Export to PDF (signed evidence for MSCHE) and CSV/XLSX. Per-student detail prints the full term-by-term transcript plus the three-measure computation and resulting status.
Using live transcript data pulled 2026-06-28. Assumes program length = 30 cr → max attempted = 45 cr; minGPA = 3.00; minPace = 67%. Pace shown on total attempted; see the IP caveat in §2 — the engine should also report a graded-only pace.
| Student / Program | GPA → Qual | Earned / Attempted → Pace | Max TF (≤45) | Expected status |
|---|---|---|---|---|
| Wisvel Joseph · CIS | 4.00 → Pass | 30/30 = 100% → Pass | 30 → OK | Meeting SAP |
| Vicent Mitimingi · MBA | 1.02 → Fail | 24/28 = 86% → Pass | 28 → OK | Warning / Not meeting (GPA) |
| Tanko Abdulai Ibrahim · HMA | 0.00 → Fail | 3/27 = 11% → Fail | 27 → OK | Not meeting (GPA + pace) |
| Kenya Glenn · MBA | 3.88 → Pass | 24/43 = 56% raw → Fail* | 43 → Approaching (≥40.5) | Review — *pace driven by IP credits; recompute on graded-only |
| Favour Ikhile · HMA | 1.55 → Fail | 6/42 = 14% → Fail | 42 → Approaching | Not meeting + near max TF |
| Georgina Amoako · MBA | 3.94 → Pass | 24/43 → see IP note | 43 → Approaching | Meeting (transcript locked/official) |