Fund accounting and GL derivation rules
Funds, grants, programs and functions on every line — derived by the company’s own rules when a document is saved and again when it posts, with a trace on each line of which rule put each value there.
A government or public body keeps its books by fund — the general fund, a special revenue fund for a fuel tax, a capital projects fund for a bond, an enterprise fund for the water utility. Each is a self-balancing set of accounts, and money in one may not be spent from another. A grant adds a second test: every cost charged to it must fall inside the award period and inside the fund the award was given to.
Nobody should have to type a fund on every line. The fund follows from the department, the grant from the project, the program from the cost center — and the rules that say so are yours, and change every budget cycle. Accounting → Fund Accounting holds them.
A company with no rule sets, no settings and no fund on any line posts exactly as before.
The dimensions
| Screen | What it holds |
|---|---|
| Funds | Code, name and Fund type — General, Special revenue, Capital projects, Debt service, Permanent (governmental), Enterprise, Internal service (proprietary), Trust, Custodial (fiduciary). The category follows from the type. Also the fund balance class, Major fund and the restriction. |
| Grants | Each award: the grantor and its type, the pass-through entity, the Assistance Listing number (CFDA), award number and amount, the period of performance, the fund it belongs to, the local match and indirect cost rate, and its status (pending, active, suspended, closed). |
| Programs & Functions | What the money was for (a program), and the statement-of-activities column it reports under (a function). |
Fund, grant, program and function are carried on journal lines, AP and AR invoice lines, purchase order lines, expense lines and payroll runs. When the lines of a supplier or customer invoice carry funds, its posting is split by fund.
Fund Accounting Settings
- Every posted line must carry a fund — a journal line without one is refused.
- Run the derivation rules — off, and the rules are kept but not applied.
Rule sets
Derivation Rule Sets: one set for each thing derived — Fund, Grant, Program, Function, GL account or Cost center — run in Sequence, so a later set can read what an earlier one decided (a grant set that reads the fund the fund set chose).
| Field | What it does |
|---|---|
| Strategy | First match wins: the rules are tried in priority order and the first that fires decides. All applicable, in priority order: every rule that fires applies in turn, each refining the last, and the last word wins. |
| Documents | Which documents it applies to: journals, supplier invoices, customer invoices, purchase orders, expense reports, payroll runs. |
| Apply when a document line is saved | So the person sees the fund on the line before anything posts, and can change a default. |
| Apply when the journal posts | Every journal line, whatever wrote it — so a posting nobody wired to the rules still gets its fund, and a locked value cannot be got round by typing on the document. |
Rules
Each rule in a set has a Priority, a condition and an action. A rule fires when its condition holds and its action produces a value.
- The condition: tests of a field against a value — is, is not, is one of, starts with, contains, between, is empty and the rest — gathered in AND and OR groups; or an expression in the platform’s expression language; or both. Fields include the document type, stage, date, period, GL account number and type, cost center, fund, grant, supplier, customer, item and expense type.
- The action: Set a value (a constant), Copy a field, Look it up (in a lookup table) or Compute it (an expression).
- The mode: Default (a person may override) — a value somebody typed stands. Lock (replaces a person’s value) — the rule’s value is used whatever was typed, and the trace says it was replaced.
Derivation Rules lists every rule as a record, with the condition as the JSON it is saved as. Derivation Studio is where they are written: pick a set, Add rule, then Add condition and Add group to build the condition, choose the action and mode, and Save rule.
Lookup tables
A hundred cost centers to their funds is one table, not a hundred rules. Derivation Lookup Tables names what the table gives and the one, two or three key fields it is keyed on; Derivation Lookup Rows holds the keys and the value each gives, with dates. * in a key matches anything, and the most specific row wins.
Test derivation
In Derivation Studio, Test derivation takes a line as it would arrive — the document, the stage (posting or saving the document), the date, GL account, cost center, amount, side, description, the fund, grant, program and function as keyed, supplier, customer, item and any other attributes — and shows what the rules would decide for it, rule by rule. Leave a dimension blank to let the rules decide; fill it in to see whether a default keeps it or a lock replaces it. Nothing is saved.
The trace, and the checks
- Every posted line keeps which rule put each value there. Derived Postings lists the lines with their fund, grant, program and function, and the rules behind them — the auditor’s first question.
- A grant must exist, be active, belong to the line’s fund and cover the line’s date. A line with a grant and no fund takes the grant’s fund. A cost outside the period of performance, against a suspended or closed grant, or in another fund is refused, with the reason — at posting and in the database itself.
Who maintains it
The finance and controller roles, the group accountant and the close manager maintain funds, grants and rules; the internal control reviewer and the CPA can read them. Writing the rules that decide which fund a cost lands in and posting the cost are kept apart (segregation of duties rule SOD-85): together, they could move spending into a restricted fund and make it look routine.
Since 18 October: fiscal-year budgets, line accounts and the commitment lifecycle (see Fund accounting: fiscal-year budgets, line accounts and the commitment lifecycle), and payments across funds, Due to / Due from Other Funds, assets, grants and the bank (see Fund accounting: payments across funds, due to and due from, assets, grants and the bank).