In February 2017, Geoff Ostrega and I packed up all of our stuff and moved to Santa Monica to turn our part-time project into a real company. We set out with the goal of giving accountants back time. It still takes far too long to close the books. Each additional day that passes without knowing the prior month’s financial results is a day that management is making decisions off of incomplete or inaccurate financial information.
What we somewhat realized then, and learned much more deeply as we got further along in product development, is that accounting and computer science don’t naturally mesh. The way computers and software work is fundamentally different than the frameworks used to turn operational data into financial statements. And it is extremely difficult to bridge the gap between the two disciplines.
The entire purpose of financial accounting is to give organizations visibility into how they did over a certain period of time and snapshot of their current financial position. All accounting rules are geared toward doing that accurately, no matter what is involved in making that happen.
If you’ve recorded a flock of 10 sheep on your balance sheet, you better have 10 sheep. It doesn’t matter that the sheep counting machine is broken and actually there only 8. If that’s the case, you should have counted the sheep and recorded an adjustment to reflect the correct number as an asset and then the related expense.
The structure of computer science is much more geared toward math and error handling. A system is constructed with certain parameters to achieve a certain outcome. If something not originally thought of arises, you can update the code to reflect that new scenario and now it should work. But what if you can’t predict every example, so everything needs to be reversible and/or manually adjustable at every step?
Taking that sheep example, what if the sheep counting machine did exactly what was intended and the 2 sheep just vanished into thin air 2 seconds after the last count? A solution for this is a real-time sheep monitoring system where the sheep are tracked at all times with a live count… but they’re sheep and there are 10 of them... or 8 now I guess. So maybe that’s overkill. We should probably just have a way to say there are 2 less sheep and move on.
So that example was pretty dumb, but it’s not too dissimilar from the seemingly infinite number of edge cases that arise as organizations around the world turn their operational data into financial results. There is so much judgment, so many one-off cases, so many “just manually fix it this month” situations, that a framework based on computer science just won’t work.
If you’re wondering what accountants within organizations do, there you have it. The accounting function in an organization exists to turn all that messy operational data into meaningful financial data so that critical finance functions happen accurately and management has the financial data they need to run the business. The framework for doing that has to be different, because it has to be purposefully built to handle uncertainty.
The point of this post is to illustrate the reason why accounting hasn’t been automated yet. The projects focused on automating accounting generally haven’t used accounting frameworks in their product design and often have limited corporate accounting experience, if any. It’s not impossible to merge these two disciplines and move accounting automation forward, it’s just extremely difficult. It requires thinking through each concept and their relation to one another from the ground up, carefully considering thousands of tiny decisions along the way. Then, once there’s a system that’s flexible enough to form the backbone of the financial data model for an organization or application, you need to consider the data model itself. That needs to be flexible and also should be comparable to other data models, so that data can easily be analyzed.
If your eyes glaze over reading this, don’t be discouraged. While it’s not exactly an easy undertaking, it is a solvable problem. If you’re working on automating accounting, you need to take this seriously from day one, realize human input is unavoidable, get the right people on board, and listen to them as you build. This is a problem worth solving.
If you’re interested in learning more about how SoftLedger's platform and API enable you to easily add critical accounting functionality into your tech stack, set up some time for a demo: Free Demo