| 1 |
Outcome |
Computed from all check statuses |
— |
Review when any warning status is present
(exceeds/mismatch/unexpected-zero/NOT_EVALUATED);
Pass otherwise
|
| 57 |
Review Reason |
Computed from all checks |
— |
A compact View Notes button opens a dialog outside the table. Notes are
grouped by validation area and separate the finding, supporting values,
and tester action. Empty on clean rows
|
| 2 |
Source Row |
None (file position) |
— |
Workbook row number, counting the header as row 1 |
| 3 |
EMPLID |
EMPLID |
Student ID |
Exactly as in the file; em dash when blank |
| 4 |
AY |
AID_YEAR |
Blank, bare year, or string |
Blank → 2026-2027 default; bare year (2027) →
2026-2027; else as-is
|
| 5 |
Career |
ACAD_CAREER |
UGRD / GRAD / LAW / MED / PROF |
Exactly as in the file |
| 6 |
Grade Level |
NSLDS_LOAN_YEAR |
0–5, H, J, blank |
Descriptive label (e.g. H - Graduate / professional); blank → N/A
|
| 7 |
Dependency |
DEPNDNCY_STAT |
D / I |
Exactly as in the file (D = dependent, I = independent) |
| 8 |
PLUS Denial |
PLUS_DENIAL |
Y / N / blank |
Exactly as in the file (Y = denied for adverse credit) |
| 9 |
PKG SEQ |
PKG_SEQ_NBR |
Packaging sequence number |
Exactly as in the file |
| 10 |
Legacy |
SFA_OB3_LEGACY |
Y / N / blank |
Y → Legacy; else Non-Legacy |
| 11 |
Loan ID |
FEDERAL_ID |
STFS / STFU / GPLS / PLUS … |
Exactly as in the file; drives which checks apply |
| 12 |
Units |
SFA_UNT_LLP_FA (fallback UNT_TAKEN_FA) |
Per-term SOR units |
The units driving the SOR calculations (2026-08-14 spec); fallback
disclosed in Review Reason. Raw UNT_TAKEN_FA remains in the
CSV export
|
| 13 |
Offer Amount |
OFFER_AMOUNT |
A number |
Exact-as-imported dollars (decimals preserved); negatives treated as $0
with a note
|
| 14 |
New Offer Amount |
NEW_OFFER_AMOUNT |
A number or blank |
Exact-as-imported dollars; missing → treated as $0 for all checks,
disclosed in Notes
|
| 15 |
NEW_TERM_AMT1 |
NEW_TERM_AMT1 |
Number (Fall) |
Exact-as-imported dollars |
| 16 |
NEW_TERM_AMT2 |
NEW_TERM_AMT2 |
Number (Spring) |
Exact-as-imported dollars |
| 17 |
NEW_TERM_AMT3 |
NEW_TERM_AMT3 |
Number (Summer/proxy) |
Exact-as-imported dollars |
| 18 |
New Offer Check |
Computed: Check 6 |
— |
UNEXPECTED_ZERO_NEW_OFFER / ZERO_EXPLAINED_BY_REVIEW /
TERM_AMOUNT_WITH_ZERO_OFFER / MISSING_TERM_AWARD / ZERO_PRIOR_OFFER /
NONZERO_NEW_OFFER. Zero is "explained" by ALREADY_EXCEEDED, REACHED_LIMIT,
ASU_FA_OVERAGG=Y, ASU_FA_LN_ELIG=N, SAP FAIL, or
nonblank withdrawal
|
| 19 |
Test Annual SOR Award |
Computed: OFFER_AMOUNT × SFA_ANNUAL_LLP
|
— |
Rounded half-up to whole dollars — the SOR-expected annual award |
| 20 |
SOR Award Validation |
Computed: Check 7 |
— |
Compares NEW_OFFER_AMOUNT to the calculator's full
limit-aware expected amount (2026-08-14 ruling; internal — surfaced in the
Review Reason notes on mismatch), not OFFER × SOR%.
SOR_AWARD_MATCH (cent precision) / SOR_AWARD_MISMATCH /
SOR_AWARD_SUPPRESSED_BY_REVIEW (lower award explained by a visible cap or
eligibility condition) / SOR_NOT_APPLICABLE (PLUS) / N/A when the
calculation errored
|
| 21 |
Test Term AMT1 |
Computed from Test Annual SOR Award |
— |
AP/AP: term 1 gets the extra dollar; FP/FP: full amount; SP/SP: 0 |
| 22 |
Test Term AMT2 |
Computed |
— |
AP/AP: remainder; SP/SP: full amount |
| 23 |
Test Term AMT3 |
Computed |
— |
AP/AP: proxy equal to Test Term AMT2 (excluded from totals) |
| 24 |
File Term Total |
Computed from NEW_TERM_AMT1/2 |
— |
Award-bearing file terms only (term 3 excluded as proxy) |
| 25 |
Test Term Total |
Computed |
— |
Sum of test award-bearing terms (equals Test Annual SOR Award by
construction; test term 3 excluded as proxy)
|
| 26 |
Term Award Diff |
Computed |
— |
File Term Total − Test Annual SOR Award (signed) |
| 27 |
Term Proxy Validation |
Computed |
— |
AP/AP: MATCH when NEW_TERM_AMT3 equals
NEW_TERM_AMT2; N/A for single-term plans
|
| 28 |
Term Award Validation |
Computed: Check 7 |
— |
TERM_AWARD_MATCH / TERM_AWARD_MISMATCH (vs the derived distribution, incl.
proxy) / TERM_AWARD_NOT_EVALUATED for unknown split codes
|
| 29 |
Term Award Basis |
Computed from SPLIT_CODE, DISBURSEMENT_PLAN
|
AP/AP, FP/FP, SP/SP, other |
Plain-language basis, e.g. "AP/AP two-term annual split; term 3 is term 2
proxy"
|
| 30 |
Comb DL Agg Status |
Computed: Check 1 from ASU_FA_CMB_LN_NSL,
ASU_FA_AGG_CMB_LMT
|
— |
ALREADY_EXCEEDED / WOULD_EXCEED / WOULD_REACH_LIMIT / REACHED_LIMIT /
BELOW_LIMIT / NOT_EVALUATED / NOT_APPLICABLE (non-STFS/STFU).
Provisional: treats AGG field as the full cap pending the
ASU semantics ruling
|
| 31 |
Rem Comb DL Elig |
Computed |
— |
MAX(0, AGG_CMB_LMT − CMB_LN_NSL) |
| 32 |
Comb DL Already Exceeded Amt |
Computed |
— |
MAX(0, CMB_LN_NSL − AGG_CMB_LMT) |
| 33 |
Comb DL OVG |
Computed |
— |
MAX(0, (CMB_LN_NSL + New Offer) − AGG_CMB_LMT) |
| 34 |
Annual DL Status |
Computed: Check 2 |
— |
EXCEEDS_ANNUAL_LIMIT / REACHED / BELOW / NOT_EVALUATED / NOT_APPLICABLE.
UGRD STFS vs ASU_FA_ANU_SUB_LMT; UGRD STFU vs
ASU_FA_ANU_CMB_LMT using related STFS + STFU new offers
(cross-row)
|
| 35 |
Annual DL Check Amount |
Computed |
— |
The amount tested (for UGRD STFU: related STFS + STFU new offers) |
| 36 |
Annual DL Limit Used |
ASU_FA_ANU_SUB_LMT or ASU_FA_ANU_CMB_LMT |
Dollar limit |
Which limit applied to this row |
| 37 |
Annual DL Check Basis |
Computed |
— |
Plain-language basis for the comparison |
| 38 |
Rem Annual DL Elig |
Computed |
— |
MAX(0, limit − check amount) |
| 39 |
Annual DL OVG |
Computed |
— |
MAX(0, check amount − limit) |
| 40 |
Sub Need Status |
Computed: Check 3 from FED_YEAR_COA,
PRORATED_EFC, ASU_FA_OFA
|
— |
SUB_EXCEEDS_NEED / WITHIN_NEED / NO_SUB_AWARD / NOT_EVALUATED /
NOT_APPLICABLE (non-STFS)
|
| 41 |
COA Status |
Computed: Check 4 |
— |
WITHIN_COA / EXCEEDS_COA / NOT_EVALUATED. STFS/STFU not treated as OFA;
row-level check
|
| 42 |
SOR Units |
SFA_UNT_LLP_FA (fallback UNT_TAKEN_FA) |
Per-term SOR units |
The units driving the SOR calculations; fallback disclosed in Notes |
| 43 |
File SOR |
SFA_ANNUAL_LLP |
Decimal ratio (0.58) |
× 100 as a whole percentage |
| 44 |
Test AY SOR |
Computed |
— |
MIN(100%, units ÷ AY denominator × 100), half-up.
Denominators: UGRD 24; GRAD/LAW/MED 18
|
| 45 |
Test Term SOR |
Computed |
— |
MIN(100%, units ÷ term denominator × 100). Denominators: UGRD
12; GRAD/LAW/MED 9
|
| 46 |
SOR Validation |
Computed: Check 5 |
— |
Pass when File SOR matches Test AY SOR or Test Term SOR;
Fail otherwise or when data is missing
|
| 47 |
SOR Basis Matched |
Computed |
— |
AY / TERM / AY-TERM (both) / blank when neither matched |
| 48 |
SOR Treatment |
Computed |
— |
SOR_LTFT (valid, <100%) / SOR_100_PERCENT / POSSIBLE_SOR_MISMATCH /
NOT_EVALUATED (missing data or unrecognized career, e.g. PROF) /
PLUS_NOT_SUBJECT_TO_SOR (FEDERAL_ID = PLUS)
|
| 49 |
STFS Amount |
Related rows: sum of STFS NEW_OFFER_AMOUNT |
— |
For the same EMPLID + institution + aid year + career; blank when none
|
| 50 |
STFU Amount |
Related rows: sum of STFU NEW_OFFER_AMOUNT |
— |
Same grouping; blank when none |
| 51 |
Allowable Current-Year DL |
STFS: ASU_FA_ANU_SUB_LMT, ASU_FA_SUB_LN_OFFR.
STFU: ASU_FA_ANU_CMB_LMT, related STFS
ASU_FA_SUB_LN_OFFR, this row's
ASU_FA_CMB_LN_OFFR
|
Currency amounts |
STFS: MAX(0, ASU_FA_ANU_SUB_LMT −
ASU_FA_SUB_LN_OFFR). STFU: MAX(0,
ASU_FA_ANU_CMB_LMT − (related STFS
ASU_FA_SUB_LN_OFFR + this row's
ASU_FA_CMB_LN_OFFR))
|
| 52 |
Allowable Additional DL |
Allowable Current-Year DL, NEW_OFFER_AMOUNT; STFS:
ASU_FA_AGG_SUB_LMT, ASU_FA_SUB_LN_NSL. STFU:
ASU_FA_AGG_CMB_LMT, ASU_FA_CMB_LN_NSL
|
Currency amounts |
MAX(0, MIN(Allowable Current-Year DL −
NEW_OFFER_AMOUNT, aggregate remaining)). Aggregate remaining:
STFS uses ASU_FA_AGG_SUB_LMT −
ASU_FA_SUB_LN_NSL; STFU uses
ASU_FA_AGG_CMB_LMT − ASU_FA_CMB_LN_NSL
|
| 53 |
Rem Need Elig |
Computed: Check 3 |
— |
MAX(0, COA − EFC/SAI − OFA); blank when NOT_EVALUATED or
non-STFS
|
| 54 |
Sub Need OVG |
Computed |
— |
MAX(0, New Offer − Rem Need Elig) |
| 55 |
Rem COA Elig |
Computed: Check 4 |
— |
MAX(0, COA − OFA); blank when NOT_EVALUATED |
| 56 |
COA OVG |
Computed |
— |
MAX(0, New Offer − Rem COA Elig), cent precision |