How not to disburse financial aid

Years Decades ago I worked for a small college with strong, forward looking leadership that firmly believed a significant fraction of our interactions with students should be computerized. He believed that if we automated background bureaucracy we could better handle the budgets cuts and shift more resources into classrooms. He also believed that if students had a clear, consistent interface into our bureaucracy they’d be better, happier learners.

My job was to make that happen.

By about 1992, I networked all staff and student computers, computerized all student grading, registration, transcripts, fees; all college accounting, purchasing, invoicing, inventory, room scheduling and whatever else the president though was burrocratic. My initial toolkit was an ARCnet network, a Novell Netware 2.0a server, a few dozen 80286 computers and a database called Paradox. I turned off the IBM System/36. Their was no WWW.

It took a couple years, but we got to the point where a student could walk up to a kiosk (a netbooted computer running a Paradox client app) see their up-to-the-minute quiz & test scores, how much they owed, what the next assignment was on each course, what assignments were required for course completion, and what courses were required for degree/program completion. A push of a button got them an unofficial transcript on a nearby dot matrix printer.

Instructors entered each test/quiz/assignment into the system. Course grades, program and degree requirements were updated and maintained automatically. Students could look up their grades any time they wanted, with real time refreshes on recently entered grades.

Department heads entered their own purchase orders. Accounting approved them electronically and faxed them out the door. Department heads could look view up to the minute account balances any time, and our president had a kiosk in his office that showed real time account balances on all critical accounts (that turned red if the account was debited since the last refresh).

We were really close to having our electronic testing center automatically upload test/quiz scores to our records system in real time.

No batch jobs, either.

Students who were granted aid or loans often received more in grants/loans than their tuition & fees, so getting that money out to students early in the semester was a critical but very manual process. It’s a huge deal for the students, as many of them need that balance for food, rent, etc. Financial aid was already computerized using a stand-alone commercial package. Manually calculating and applying financial aid disbursements to student accounts was a major work effort, and consumed more than one persons time for the first few weeks of the semester.

To get that automated, all I needed to do was interface that software with the student records/fees package I wrote, and a major paper based time consuming process would be eliminated.

The president put that on my plate for fall start. I wrote a Paradox program that shelled out to DOS, ran the DOS based financial aid application in a window, exported the necessary data from the financial aid application and imported it into the finance module. It applied the financial aid to the students account and figured out if there was anything left over. If there was, it would print the student a check for the balance.

We tested early & often, as neither the accountant nor the financial aid director was enthused about what to them was a cloudy process that they didn’t control, and I wasn’t enthused about mucking up a few hundred grand in financial aid disbursements. In the weeks before semester start, I’d run the program in simulation mode, the accountant and financial aid director would compare my simulation to their manual calculations, and we’d correct any differences.

Over and over and over….

The big day finally arrives. Ten days into the semester all bills are due and all aid checks get cut. The total disbursement is somewhere in the middle hundreds of thousands of dollars. Our financial aid director went line by line through each students fee statement one last time, compared it to each students financial aid disbursement, manually calculated the expected disbursement and compared each one to the simulation that I ran from my new program.

All was good – except that the accountant (fresh from college, new to the job) and myself (nasty flu, 103f fever) were more than a bit nervous at the prospect of dispersing a half million or so in checks using our own software.

On the morning of the big day – the day that financial aid gets disbursed and registration payments are due - the hundreds of students that had an outstanding disbursement were lined up at the registrars window not-so-patiently waiting for a check that they could run down to the local bank and cash.

The financial aid director, myself and the accountant carefully opened the safe, removed the signature plates and loaded them in the check signing machine. We removed the check stock from the safe and loaded it into the check printer. We (crossed our fingers and) pulled the trigger on the script that extracted each student’s financial aid data, compared it to their chart of accounts, credited any outstanding account balance and printed them a check for the rest.

The workflow was something like:

Accountant: Look at each check, compare it to last nights simulation, run it through the check signing machine.

Financial Aid Director: Look at each check, compare it to last nights simulation and her manual calculations and mark an ‘X’ next to the student on the worksheet that she stayed up all night calculating.

Me: doze off, fever really dragging me.

An hour or so later, a whole bunch of happy students have their fees paid and their financial aid balances paid out, check in hand. A large fraction of them drove straight to the issuing bank & stood in line to cash the check.

Then we get the call from the bank:

Bank President: “Umm are you guys aware that you are $200k over drawn, and we have a line of a hundred or so students trying to cash checks on that account?”

Accountant: “Ah..Um..Ahh..”

The way our small town college managed it’s banking was to maintain accounts at both of the local banks and use SmallBankA for the seven figure main account and SmallBankB for the petty cash account in year one, then alternate back and forth each year. That way both of the locally owned banks got a shot a managing the large account, and we kept close relationships with the local economy. The main account probably had a $1m balance, and the small account probably had a $20k balance.

Guess which check stock we loaded into the printer?

Fortunately it was a small town and the bank covered the few hundred grand overdraft for the day that it took to transfer the funds to cover it. The bank president was smart enough to know that we were good for the funds, and graciously covered our mistake.