A ServiceVision compliance resource · companion to DriverTrack.ai

Workforce Pell is live — effective July 1, 2026

§ 4.1

Building Your 70/70 Cohort File: The Minimum Data Schema

7 min readPublished 2026-07-19Last reviewed 2026-07-19

Every Workforce Pell compliance question ultimately reduces to a table with one row per student. Can your program show that at least 70 percent of participants completed within 150 percent of normal time, and that at least 70 percent of completers were employed in the second quarter after program exit? If you cannot produce the row-level data behind those two rates, you cannot defend them — to your state, to your governor's certification process, or eventually under federal methodology.

This article defines the minimum schema for that table: the 70/70 cohort file. Start it on day one of your first Workforce Pell cohort. Reconstructing it later from scattered systems is the single most expensive mistake schools make.

The minimum schema

One row per student, per program enrollment. Ten fields are non-negotiable:

#FieldTypeNotes
1student_idstringYour SIS identifier. Use the same ID you use for NSLDS and FVT/GE reporting so files reconcile.
2programstringProgram name or code, tied to a CIP code. One file per program — eligibility is per program, not per institution.
3start_datedate (YYYY-MM-DD)First scheduled day of attendance for this enrollment.
4normal_completion_weeksintegerThe program's published normal time in weeks (8–14 for Workforce Pell programs, which run at least 8 but fewer than 15 weeks).
5actual_completion_datedate or blankDate the student completed. Blank if withdrawn or still enrolled.
6withdrawal_datedate or blankDate of withdrawal, if any. Exactly one of fields 5 and 6 is populated once the student's outcome is known.
7exit_datedateDate the student left the program for any reason — completion or withdrawal. This starts the placement clock.
8employment_status_q2enum: employed / not_employed / unknown / pendingEmployment status during the second calendar quarter after exit (34 CFR 690.94). pending until the window closes; unknown only after verification attempts are exhausted.
9verification_sourceenum: ui_wage_records / employer_letter / survey / noneHow field 8 was verified. See verifying employment outcomes.
10exclusionenum: death / disabling-condition / military-30plus / incarcerated, blank otherwiseThe four allowable exclusions under 34 CFR part 690, subpart H. Blank for every student who counts.

The exclusion column deserves its own rule. Under 34 CFR part 690, subpart H, exactly four circumstances let you remove a student from the 70/70 math: the student died, suffered a totally disabling condition, was called to military service for more than 30 days, or was incarcerated. An excluded student comes out of both the numerator and the denominator of both rates — completion and placement alike. Every non-blank value in this column needs an evidence file behind it (death certificate, medical documentation, military orders, incarceration record); an undocumented exclusion is an audit finding, not a judgment call. The 70/70 Report Generator roster template now supports this column and applies the exclusions to both rates automatically.

A derived eleventh column is worth storing rather than recomputing: deadline_150 = start_date + (1.5 × normal_completion_weeks) weeks. For a 12-week program, that is week 18. The 150 percent tracking playbook covers the operational edge cases — leaves of absence, re-entries, transfers.

Beyond the per-student rows, the file (or a companion program record) must carry: the program's length in both weeks and clock hours — the two eligibility bounds run independently; the published tuition and fees for each award year — the future input to the value-added earnings test; and graduate follow-up fields — employer, start date, and occupation with SOC code — which become load-bearing when placement shifts to occupation matching after award year 2028–29.

Sample CSV row

student_id,program,start_date,normal_completion_weeks,actual_completion_date,withdrawal_date,exit_date,employment_status_q2,verification_source,exclusion
S-2027-0142,Commercial Truck Driving (CIP 49.0205),2026-09-08,12,2026-11-25,,2026-11-25,employed,ui_wage_records,

This student started September 8, completed on November 25 — comfortably inside the 18-week (150 percent) deadline — and was verified employed in the second quarter after exit via state UI wage records. That row contributes favorably to both rates.

This schema matches the roster template used by the 70/70 Report Generator. If you maintain your cohort file in exactly these columns, you can upload it and generate both rates — and a submission-ready report — without any remapping.

Rules that keep the file defensible

  • Denominators are decided by definitions, not convenience. The completion rate is measured over program participants; the placement rate is measured over completers. Record every enrolled student — including withdrawals — or your completion denominator is wrong. Never delete a row.
  • Dates come from source systems. start_date from the enrollment agreement, actual_completion_date from the registrar's completion record, withdrawal_date from the same determination you use for R2T4. If the cohort file and the student file disagree, you have an audit problem, not just a data problem.
  • unknown is not not_employed — but plan conservatively. How unverified completers are treated in the rate calculation depends on your state's methodology; until confirmed, assume an unverifiable completer does not help your numerator, which is why chasing verification matters.
  • Snapshot it. Freeze a dated copy of the file at each reporting milestone. The version you submitted must be reproducible years later — see records retention for why the retention horizon here is longer than the Title IV three-year baseline.
  • One file per program per cohort period. Failure consequences attach at the program level: a program that fails 70/70 loses Workforce Pell eligibility, and it (or a substantially similar program) cannot be re-established for two years.

For award years 2026–27 through 2028–29, completion and placement rates are determined and verified under your state's methodology — confirm specifics with your governor's office or state workforce board before relying on any calculation. Your state may require additional fields (for example, wage amounts, occupation codes for the Phase 2 placement definition starting 2029–30, or demographic data). Treat this schema as the floor, and add state-required columns to the same file rather than starting a parallel one.

Where the data comes from

FieldSystem of record
student_id, program, start_dateSIS / enrollment agreement
normal_completion_weeksProgram approval documents (what you certified to the governor)
actual_completion_date, withdrawal_date, exit_dateRegistrar / attendance system
employment_status_q2, verification_sourceCareer services / state UI data match
exclusionRegistrar determination + the evidence file for each excluded student
Tuition/fees per award year, weeks and clock hoursCatalog / program approval documents

The file is a join across at least three offices. Assign one owner who reconciles it monthly; the monitoring cadence article describes the rhythm.

What to do now

  1. Create the file today for every active Workforce Pell cohort, with the ten fields above plus deadline_150 — even if employment columns sit at pending.
  2. Backfill from source systems, not memory: enrollment agreements, registrar records, R2T4 withdrawal determinations.
  3. Ask your state workforce board for its data specification and add any extra required columns now.
  4. Assign a single owner and a monthly reconciliation step against the SIS.
  5. Run the file through the report generator (linked above) to see your current rates and which rows are dragging them.

The instrument

Run these numbers on your own cohort

The 70/70 Report Generator computes both rates from your data and produces a print-ready report. Student data stays in your browser.

Open the generator