What's the Difference Between a Financial Ledger Database and a General Ledger?
Every company needs a general ledger to serve as an accounting system of record. But software companies that move money at scale like ClassPass need a more robust financial ledger database to provide a scalable real-time view into their money movement.
It can be hard to understand the difference between general ledger software and a financial ledger database, especially if you’re a developer more familiar with databases or a financial professional more familiar with general ledgers. This post explains each system and when your company might need one or the other.
A general ledger is a master accounting document of all of a business' financial transactions, whether that company is a multinational corporation or your local pizza shop. The general ledger tracks a company’s financial transactions so that reports can be produced regularly, on a monthly or quarterly basis. These statements are important for any company’s shareholders and regulators to understand the health of the company.
Because the goal is to produce reports on a regular cadence, a typical company’s general ledger isn’t always up to date on a second-to-second (or even day-to-day) basis. The general ledger also only tracks transactions that affect a company’s financial statements.
General ledger software, accounting tools, or ERP software is used by a broad variety of companies—including that local pizza shop—to manage this accounting process. Some examples of general ledger software are NetSuite, QuickBooks, and Xero.
Financial Ledger Databases
Software companies that move money at scale have different needs than a local pizza shop. They need to track transactions at a high frequency, high volume, and across entities that are represented in a software application. This necessitates a purpose-built application ledger, or financial ledger database.
Unlike a general ledger, this financial ledger database needs to be built to serve financial stakeholders and the company’s software application itself.
For example, a card product or digital wallet might need to check a user’s balance before allowing them to withdraw money. A ledger database allows you to segment a single store of cash, like a bank account, into multiple user wallets. Transactions between wallets can be tracked in the ledger without moving any money.
Similarly, a marketplace application needs a ledger database to record when purchases are made and separately keep track of the cash transactions with the buyer and the seller. It might also need to fetch and display a user’s history of transactions every time that user logs into their dashboard.
The ledger database needs to be able to record user balances and financial transactions that impact those balances. Because these transactions impact the overall business, the financial ledger database can be regularly exported to general ledger software to simplify financial reporting.
Because it serves a live application, a financial ledger database needs be to be real-time and scalable. To ensure reliability, it should also follow several design principles.
- It should be immutable to ensure the database can’t be updated without an audit trail.
- It should guarantee idempotency to prevent duplicate transactions.
- It should be scalable and prevent conflicting transactions.
- It should use double-entry bookkeeping, just like a general ledger, to ensure money can’t be created or destroyed in the database.
These architectural guarantees are critical to ensure an application won’t lose track of user funds or fail to make payments. This can be a resource-intensive task, but it’s not what many product-driven companies want to spend time building.
That’s why we built Ledgers as a managed financial ledger database with all of these guarantees built in right out of the box.
If you’re a small business or services company that needs to set up your own accounting, general ledger software can cover your needs.
Any software company that deals with or plans to deal with a high frequency of transactions needs a more robust database that can be updated and consumed programmatically. If you need a database like this for your product, you can sign up and try out Ledgers today.