About the CACOA

Design principles

Reporting first, objects as the anchor, one meaning per code, and room for local detail.

1. Reporting first

The test for every code is simple: when an amount is posted here, where does it go on each required report? The CACOA answers that question in advance and publishes the answer as a crosswalk. Agencies still post the way their operations require; the chart just makes sure the posting already carries its reporting meaning.

2. Objects are the anchor

The object code says what the money is: a tax, a fee, a salary, a bond payment, a receivable. Objects carry most of the comparability across agencies, the same way object codes do in the school system's SACS structure. The fund says whose money it is, the function says what service it supports, and the department says who is responsible for it.

3. One meaning per code

Each dimension answers one question. Departments do not stand in for functions, functions do not stand in for funds, and objects do not carry program information. When a code tries to answer two questions, reports built on it end up needing manual adjustment.

4. Deterministic, not approximate

Given a fund, an object, and a function, the CACOA crosswalk returns exactly one FTR line for each part of the report. The published coverage report checks every combination for gaps and conflicts. If a rule is uncertain, it is marked for review rather than left ambiguous.

5. Local detail without breaking rollups

Every block of universal codes is followed by reserved local-detail ranges. An agency can add as much detail as it needs inside those ranges. A local code rolls up to its universal parent and, where the FTR asks for more detail than the universal codes provide, declares the FTR line it reports on.

6. Silent defaults for small agencies

Function 0000 and department 00 mean "not tracked." A small agency can post with fund and object alone and still produce a correct FTR. Functional detail comes from each department's default function, or from the function code when the agency is ready to use it.

7. Stable codes, visible changes

A published code keeps its meaning. New codes arrive as proposed in a draft release, are reviewed, and become adopted when the release is approved. Every change is listed in the changelog with the reason for it.

8. Reporting profiles

The same ledger feeds several reports: the FTR, the budget, the annual comprehensive financial report, and management dashboards. Each report is a profile, a published set of rollups over the same codes, so agencies can share report designs without sharing identical charts.