What Makes an ERP 'Government-Ready': Fund Accounting
A city of 45,000 residents ran its finance department on a mainframe system installed in 1998 until state auditors flagged it for GASB non-compliance in 2023, forcing an emergency ERP replacement on an 18-month deadline instead of the two-year timeline the finance director had originally proposed. The old system had done its job for two decades. It just couldn't produce the fund-level reporting a modern audit requires, and no amount of patching was going to fix that — the architecture itself was built for a private-sector concept of "profit" that doesn't apply to public money.
Fund accounting is not the same as GAAP
Private-sector accounting tracks profitability by department or product line. Government accounting tracks restricted versus unrestricted money by fund — a self-balancing set of accounts segregated for a specific purpose. A city typically runs a general fund for day-to-day operations, a capital projects fund for infrastructure spending, and one or more enterprise funds for services like water and sewer that are meant to be self-supporting through user fees rather than tax revenue. Money in a capital projects fund legally can't be spent on general fund payroll, and an ERP system has to enforce that separation structurally, not just as a reporting label after the fact.
Encumbrance accounting
Government budgets need to show committed spending before an invoice ever arrives, which is where encumbrance accounting comes in. When a purchase order is issued, the ERP reserves that amount against the budget immediately — a $2 million capital fund might show $340,000 encumbered against open purchase orders, leaving $1.66 million available even though nothing has actually been paid out yet. Without encumbrance tracking, a department could easily commit to spending it doesn't have simply because the invoices haven't landed yet, and nobody would know until the money's already obligated.
Grant management
Federal and state grants come with reporting periods, drawdown request procedures, and indirect cost rate caps that don't map to normal commercial billing at all. A city running a $1.2 million federal infrastructure grant might be capped at a 10% de minimis indirect cost rate, meaning only $120,000 of the grant can cover administrative overhead regardless of what the city's actual overhead rate is elsewhere. An ERP built for government needs to track each grant as its own reporting entity — separate budget, separate expenditure reports, separate compliance deadlines — without forcing the finance team to rebuild that structure in a spreadsheet every quarter.
GASB reporting requirements
The Governmental Accounting Standards Board sets reporting rules that have no private-sector equivalent. GASB 34 requires government-wide financial statements that reconcile fund-level accounting back to a full accrual basis. GASB 87, more recent, requires public entities to recognize a right-of-use asset and corresponding liability for most leases — the same shift private companies went through under ASC 842, but applied to municipal leases for things like copiers, vehicles, and building space. An ERP that can't natively produce a GASB 34 government-wide statement or calculate GASB 87 lease present values turns every annual audit into a manual reconciliation project.
Procurement rules baked into workflow
Public procurement isn't a matter of internal policy — it's frequently written into state statute. A purchase over a set threshold, commonly somewhere around $50,000 depending on the jurisdiction, legally requires a formal sealed bid process rather than a purchasing manager simply picking a vendor. Government ERP systems build these thresholds into the purchase order workflow itself, blocking a requisition from proceeding to a single-vendor purchase order once it crosses the statutory line, and requiring documented sole-source justification when competitive bidding is skipped. Many also track minority- and women-owned business participation against goals set at the state or federal level, since that reporting is often a condition of receiving certain grant funds in the first place.
Citizen transparency
A growing number of public entities are required, or choose, to publish an "open checkbook" — a public-facing portal where residents can search government spending by vendor, department, or fund. That's a direct extension of the same underlying data structure: if the ERP already tracks spending by fund and department internally, publishing a filtered, read-only view of that same data is a configuration exercise rather than a separate project, which is a meaningfully different lift than trying to bolt transparency reporting onto a system that was never designed to expose it.
Why "commercial-grade" doesn't mean "government-ready"
None of this is a matter of scale — a small municipality with 40 employees has the same fund accounting and GASB obligations as a county with 4,000. It's a matter of architecture. A commercial ERP system can be configured to approximate some of these behaviors, but fund segregation, encumbrance tracking, and grant-level reporting work best when they're built into the system's core data model rather than layered on top of a chart of accounts designed for profit centers. That's the lesson the 45,000-resident city learned the expensive way, on a compressed timeline set by an auditor rather than a finance director.
Multi-year appropriations don't behave like a private-sector fiscal year
A private company's annual budget resets every year almost by default. Government capital appropriations frequently don't — a $6 million appropriation for a road resurfacing program might be authorized to span three fiscal years, with unspent balances carrying forward rather than lapsing at year-end the way an operating budget line typically would. An ERP built for government needs to track appropriation, budget, and actual spending independently across overlapping fiscal years for the same project, so a finance officer can answer "how much of the original $6 million authorization is still available" without manually reconstructing it from three years of separate annual budget files.
Position control and public-sector payroll rules
Public-sector payroll adds structure that private employers rarely deal with: position control, where a specific position is budgeted and tracked whether or not it's currently filled, so a vacant senior engineer position still shows up in headcount planning even with nobody in the seat; union pay scales with automatic step increases tied to tenure rather than individual merit review; and civil service classification rules that govern promotion and reclassification. A government ERP needs position-level budgeting as a first-class concept, not something bolted onto a private-sector HR module that assumes every open requisition simply gets filled or closed.
Migrating off legacy mainframe systems
Many local governments are still running systems built in the 1990s or earlier, often on COBOL-based mainframes with data structures that predate modern relational databases entirely. Migrating that data is rarely a clean export-and-import — the 45,000-resident city's 1998 system stored vendor records in a flat-file format with no consistent unique identifier, meaning nearly 1,900 vendor records needed manual review to identify duplicates before they could be loaded into the new system. Budgeting realistic time and staff for that cleanup, rather than treating data migration as a weekend task, is consistently the difference between a government ERP project that lands on schedule and one that doesn't.
Interfund transfers vs. interfund loans
Money moving between funds isn't always a simple transfer, and treating every interfund movement the same way is a common accounting error. A true transfer permanently moves money from one fund to another — the general fund subsidizing a struggling transit enterprise fund, for example, and reduces the source fund's balance for good. An interfund loan, by contrast, is meant to be repaid on defined terms, and needs to be tracked as a receivable in the lending fund and a payable in the borrowing fund until it's settled, not written off as an outright transfer. Governments that don't distinguish the two in their accounting system risk auditors flagging what should have been a temporary loan as an improper permanent diversion of restricted funds, which is exactly the kind of finding that draws unwanted attention during the next audit cycle.