Published on

ACTFAS stands for ARAMARK's Correctional Trust Fund Accounting System

Way back around 1997 Paul built ACTFAS using Delphi, a successor to TurboPascal. It was a client-server Windows application built for ARAMARK, a fortune 500 company.

Project Objectives

  • Track inmate funds from intake for use in commissary.
  • Track products
  • Track inventory
  • Track orders
  • Receive orders - telephony, OMR, and manual entry.
  • Track Commissary Restrictions
  • Track & Obey Court Ordered Restrictions
  • Track and offer Indigent products

Track Inmate Funds

Intake of an inmate into custody usually began the inmate's balance of funds available for commissary. Orders lowered the inmate's balance. Visitors could deposit more funds. Upon release or transfer the system allowed funds to be removed from the inmate's account.

Track Inventory

Many products were for sale, usually small and inexpensive food items.
The system was smart enough to handle box quantities where the buying of a box of, say candy bars, would make the salable item quantity go up by 24.
It also handled assemblies where one product was part of another product. Later inventory control systems would use lessons learned here.

Tracking Orders

The system tracked orders, deducting inventory and inmate funds.

It also handled indigent items, court orders and custom logic which often affected what indigent inmates would or could receive or buy.

Receiving Orders

Orders could be received into the system a number of way:

  • Inmates write down what they want - Terrible idea. Hard to read.
  • ORM scanner - Developed an Optical Mark Recognition (OMR or "bubble") scanner program. Worked well. Inmate simply filled in the bubbles!
  • Telephony - Developed a telephony program (written in C) allowing inmates to place orders using a standard phone. Controlled a Dialogic telephony card. Worked well.
OMR Scanner

Application Architecture

ACTFAS was written in Delphi, a successor to TurboPascal, with an Interbase database engine. If memory serves it included installation disks.

Interbase was used for it's support of transactions, sql, triggers and procedures. Interbase support came bundled with the Delphi IDE.

Later Interbase open sourced its database engine, giving rise to Firebird.

Scope & Integrations

This project was massive. As senior software engineer Paul:

  • Built the application UI
  • Engineered the database tables, stored procedures, and triggers
  • Built the telephony application
  • Built the OMR scanner application
  • Built the mainframe and other integrations
  • Built the installation disks
  • Provided support and updates


This project included installation into at least a dozen locations and at one time served San Bernadino and Santa Anna, California prison systems as well as many others.

Paul is no longer a client/server Windows application developer