WhiteOak ERP · New York State

The ledger that refuses what the law refuses.

A complete school district ERP — purchasing, claims, payroll, the general ledger, the ST-3 and the year-end close. Ten statutes are enforced at the door rather than found by an auditor in March, and eight control totals are proved on the screen you are looking at, from the postings, every time you look.

Built for  NYS 8 NYCRR §170.2  uniform accounts
What is in the box
Screens160
Modules, system of record each11
Doors that create something51
Statutes enforced at the door10
Control totals, proved live8
Reconciliations on one page24
Figures that are stored0
EVERY FIGURE DERIVED FROM THE POSTINGS
Proved live
8of 8
Control totals recomputed from the postings on the screen you are looking at — not overnight, and not from a stored total.
holding at every commit
Stored figures
0of 160 screens
No running total to go stale, no month-end that corrects last month, no report that disagrees with the screen it came from.
everything derived
Statutes at the door
10refusals
GML §103, §104-b, §101, RPTL §1318, Ed Law §1716 and §3651, 8 NYCRR §170.8, Labor Law §220, GASB 54, 2 CFR §200.501.
enforced, not reported
Ways in
1function
Every posting a district makes — requisition, claim, payroll, accrual, year-end close — enters through one door, so every check applies to all of them once.
51 doors, one entry
Reconciliations
24one page
Bank, payroll, encumbrance, retainage, interfund, the chain — every tie-out a business official is asked for, in one place, with the difference named where there is one.
tied on demand
Tenancy
63tables fenced
Row-level security on every table that carries a district, one policy each, and a trigger that refuses a write across the fence. Checked against the database, not asserted here.
49 views, all invoker-run
The idea
Nothing is stored. Everything is derived.

An ERP that keeps a running total keeps a number that can be wrong. Every figure on every screen here — the appropriation, what is expended, what is encumbered, what is left, the fund balance, the §1318 percentage — is computed from the postings at the moment you look at it. There is no total to rebuild, no month-end that corrects last month, and no report that disagrees with the screen it came from.

The consequence is a rule, and it is enforced by a test: the same fact stated on two screens must read the same characters. When Home said 8.90% and Fund Balance said 9.29% for the same district on the same day, that was a defect — and it is the one a business official cannot defend to a board.
One door
Every posting goes through one function
A requisition, an accrual, an interfund transfer and a year-end close are all a list of entries by the time they reach it. So every check applies to all of them, once.
At commit
The controls are checked inside the database
The whole transaction is refused if any control widens. Nothing partial can post, and the books cannot be out of balance between two statements.
Fund by fund
Each fund is a self-balancing set
A journal entry has to balance within every fund it touches, not just overall. That is control 1, and it is the reason an interfund entry cannot leave a hole.
Why this and not what you have
The difference is when the system tells you.

Every district ERP can produce these answers eventually. The question is whether you get them while the decision is still reversible, or in a management letter nine months later. Left is the pattern districts describe. Right is what this does instead, and each one is on a screen in the demonstration.

What a district usually lives with
FiguresA running total is stored and rebuilt at month-end, so two screens can disagree and the reader cannot tell which is right.
ComplianceA report is run in March. The order that broke §103 was raised in October and paid in November.
Tie-outsA spreadsheet somebody maintains by hand, reconciled the week before the auditor arrives.
Refusals"Permission denied", with no rule named and nobody to go to — so the work leaves the system and happens on paper.
Change historyStops at the postings. The decisions — the deferral, the override, the reopened period — are in somebody's memory.
Getting startedSix to eighteen months, a data conversion and a consultant, before anybody sees their own numbers.
WhiteOak ERP
FiguresNothing is stored. Every figure is computed from the postings as the page renders, and a test asserts the same fact reads the same on any two screens.
ComplianceTen statutes refuse at the door, naming the section, the figure, the threshold it crossed and the screen that fixes it.
Tie-outsTwenty-four reconciliations on one page, both sides named, recomputed from the ledger when you open it.
RefusalsThe rule, the citation, who may do it instead — and an override that is ungated on purpose and writes the reason to the audit log.
Change historyA table, not a memory: who changed what, from what to what, why, and under whose delegation.
Getting startedBring one fund and one month. The controls either tie on your own numbers or they name the difference.
Statute
Ten laws, with their thresholds, at the door.

Not a compliance report run in March. A refusal at the moment somebody tries, naming the section and the number, while it can still be fixed for nothing.

StatuteWhat it decidesWhere it fires
GML §103Competitive bidding above the thresholdRaising an order
GML §104-bHow many quotes, and written or verbalRaising an order
GML §101Separate specifications on public worksAwarding a contract
RPTL §1318Unassigned fund balance may not exceed 4%Adoption and close
Education Law §1716The budget the board actually votedAmendment
8 NYCRR §170.8The administrative component capBudget development
Education Law §3651Reserve funds and what they may be spent onFunding a reserve
Labor Law §220Prevailing wage on public workClaim audit
GASB 54Fund balance classified to five bucketsClose and reporting
2 CFR §200.501Single audit at $1,000,000 of federal awardsClose
A refusal is only worth having if it says what to do instead. Every one of these names the section, the figure it tested, the threshold it crossed, and the screen that can fix it.
Prove it
Eight controls, and a page that shows its working.

Every control is two sides and a difference, recomputed from the ledger when the page renders. A control that cannot be proved is shown as unprovable — not as passing — which is the only honest way to display one.

1  debits equal credits, in every fund
2  open orders tie to the encumbrance ledger
3  the claims subsidiary ties to accounts payable
4  appropriations tie to the adopted budget plus amendments
5  cash ties to the bank — against the bank's own statement
6  payroll liabilities tie to what was withheld
7  fund balance rolls forward from last year to this one
8  the posting chain verifies, entry by entry
24 tie-outs
The reconciliations an auditor asks for
On one screen, each with both sides named and the difference stated. A tie that does not apply to your district says so rather than reading zero.
Hash chain
Every batch links to the one before it
Control 8 walks the chain and reports where it breaks. A posting cannot be altered after the fact without the chain saying so.
Bank
Control 5 needs the bank's own numbers
Import the statement out of the bank's file; every line whose cheque number and amount match a cheque this district drew clears automatically. Nothing is posted.
The work
Eleven systems of record. Nine places to work.

Exactly one of the eleven modules owns each object, so there is never a question of which screen is right about a purchase order. The rail is not organised by those eleven: it is organised into nine groups named for what you are doing, because a business official does not think "I need module 4", they think "I need to pay someone".

TodayWhat to look at when you sit down — guidance with an owner on every item.
EnterEvery door that creates something, in one place: requisition, order, claim, receipt, journal entry, payroll.
Buying & payingRequisition to purchase order to claim to warrant to cheque, with the statutory bands at each step.
Budget & revenueAdoption, amendment, transfer, three-part budget, the administrative cap, and the revenue side against it.
People & payrollPositions, appointments, a payroll that budget-checks per line and splits across funds and grants.
Building projectsCapital projects, contracts, payment applications, retainage, and the building aid claim built from the postings.
The booksChart of accounts, funds, journal entries, trial balance, the batches and the chain.
Closing & reportingPeriods, encumbrance decisions, the year-end close, the ST-3, the State filings.
SystemHow it is built, who may do what, and the page that says whether these books can be defended.
Separation of duties
Nine roles, and a refusal that names the rule.

The person who raised an order may not audit a claim against it. A requisition the business official may approve is one they may not raise. Each rule is a named rule with a citation, and every refusal says which one fired and who can do it instead — because "permission denied" is not an answer somebody can act on.

An override exists, it is ungated on purpose, and it is written to the audit log with the reason typed by the person who used it. A control nobody can get past in an emergency is a control that gets worked around.
role  business official, treasurer, claims auditor,
       purchasing clerk, payroll clerk, AP clerk,
       superintendent, board member, auditor

rule  po-audit — the person who raised the order
       may not audit a claim against it

log   every override, with its reason, permanently
Honest about it
A button that can only refuse is not a button.

This product has a rule about itself: a control whose only possible outcome is a refusal does not get drawn. Where a document cannot yet be filed against a record, the screen says exactly why instead of opening a file picker that fails. Where a figure cannot be derived, it reads as unprovable rather than as zero. Where a district has no data yet, the screen says so and says what to do first.

Empty
The first morning is a real state
Every screen is tested twice — as delivered, and with every record removed. A screen that divides by a count throws on day one and nowhere else.
Definitions
Every headline figure has one, in writing
What it includes, what it excludes, and which postings it is derived from. A board asks; the answer is on the screen.
Audit trail
Who did it, when, and what changed
Including the deferrals, the overrides and the documents filed. A change history that stops at postings is a change history that hides the decisions.
See it on your own books

Bring one fund and one month.

The fastest way to judge this is to load something you already know the answer to and see whether the eight controls agree with you. There is a demonstration district in the product for looking around, and it is clearly labelled as one.

Request a demonstration → Or read the Privacy Policy  ·  Terms  ·  Pricing