Message Boards Message Boards

[Project] Double entry accounting and cash flow forecasting

UPDATE 2: I would love to know if you download anything from the repository. Even if you don't use git, you can download everything in a zip file directly.

UPDATE 1: I've now put some preliminary sketches up in the Double folder on my github repository. Comments on design issues welcome, and if anything is unclear please let me know.


Is anyone using Mathematica for basic accounting purposes? I am responsible for book-keeping and preparation of final accounts for 2 businesses. I've used Excel in the past in other business contexts but found it too unreliable, and it doesn't have the checks and balances that a proper accounting package has. But I found commercial accounting packages inflexible and awkward for small business use, as well as being too expensive. I've used Mathematica for my own accounts as well as for some simple business analysis and cash flow forecasting. I find myself wanting a double-entry system with decent cashflow forecasting and nested accounts (for instance, I'd like to generate a report that aggregates all food sales, whereas I've separate accounts for different food items); the closest thing that's free/accessible for me is gnucash but it doesn't do cashflow and sales tax/VAT and invoicing is a bit of a pain. I've already built an import from html (from my banking website), an export to .qif (for gnucash &c), a system for defining a tree of accounts and associating string pattern matches to individual accounts in the tree and a sketch of a simple design of a transaction database and user interface using associations/Query. My initial idea is to start an open software development on github; I don't have the time to build everything I'd like myself.

An additional aim is to understand accounting better and I'd welcome input on issues of system correctness, design and the potential interest such a system might generate. As I work as a maths teacher in Further Education, I also wonder about the potential to use Mathematica to teach accounting, theory & practice.

If there is any interest here I will find some time to anonymise my data and post a notebook with design notes and code samples. If there is serious interest or if anyone is interested in a commercial partnership I might rethink my plan to publish it all, but somehow I doubt this.

15 Replies

Hi Matthew

I have only just come across this post.

I completed an accounting project earlier this year. Features included:

Hierarchical classification of line items

Dynamic display of financials

Full support for journalling and trial balance

Full auditing trail of ledger entries

Automatic report generation including automatic creation of notes to the accounts

Export to PDF, CDF, XML, Excel

Data storage in MongoDB

You can see video of a very early version of the application here:

http://ibnhconsulting.blogspot.com.au/2014/10/a-dynamic-accounting-application.html

cheers

Mike

POSTED BY: Mike Honeychurch
Posted 9 years ago

Seems a lot of work for a very simple problem...double entry accounting. However open source makes it do-able.

POSTED BY: Raj Shah

I'm not quite sure what you mean Raj. The basic problem is perhaps simple, though if, as I do, you wish to include cash flow forecasting that can be as complex as you like depending on which financial instruments you wish to include. In its most general form, cash flow forecasting is very likely undecidable! Actually I would be interested to see a simple mathematical model that captures the essential matters such as hierarchical accounts, taxation, profit & loss and balance sheet creation and this might be straightforward to implement in a naive way in Mathematica. But creating an interface which makes entering and editing large amounts of data rapidly and effectively is not simple, by any means. There are some decent open-source solutions out there such as Gnucash (as well as some very popular, but in my limited experience frustrating commercial packages: the one I've used the most is Sage which seemed to me to be designed primarily to prevent fraud on the part of the bookkeeper which is not a concern of mine with this project). There are features I dislike and others missing in Gnucash (particularly nested accounts, imports from html, undo, VAT accounting and cash flow forecasting); and although I could contribute to the Gnucash project directly, I find the development cycle and its requirements to learn the details of the languages used and code design methods just too much of an investment. Hence this project.

Matthew, this seems like a great project - we have added it to our special collaboration board. I would be interested to see details. By the way in your profile you have a special field for your GitHub account in case you wish to link to your work there.

POSTED BY: Vitaliy Kaurov

I'm glad you like the idea Vitaly, I was a little bit surprised my suggestion didn't generate interest before but suddenly interest seems to have appeared. Thank you for adding it to the collaboration board. Perhaps we can use this thread to get an idea of which features folks are most interested in.

I've now put some preliminary sketches up in the Double folder on my github repository. Comments on design issues welcome, and if anything is unclear please let me know.

PS Vitaliy, thanks for the suggestion about adding a github page to my Profile, that's done now.

Thanks, @Matthew Fairtlough , great! I also updated your to post wit this info so people se the link right away. I think what would be useful if you show some use-cases on this thread, - the workflow with the tools you are developing - if possible.

POSTED BY: Vitaliy Kaurov

Thanks Vitaliy for the headline and I'll now learn how to use this feature for future updates.

Interesting ideas. Have you seen Automated Report Generation - this could automate some steps for you. See also Automated Reports.

Version 10 provides sophisticated tools for automated document creation. Create templates using the familiar notebook-editing process and apply them to any source of data, including computations, databases, web feeds, Wolfram|Alpha, and the Wolfram Language's integrated computable data sources. Easily customize the output and generate reports with interactive charts and dynamic computations that can be scheduled, shared, and annotated in the Wolfram Cloud.

POSTED BY: Marina Shchitova

Yes, thank you @Marina Shchitova I had seen this feature and played with it a little but hadn't thought of using it in this context. A very good idea and the great thing about it is that the templates can be very easily edited (unlike in some implementations such as Gnucash).

Hello Matthew interesting topic, soon I'll be sending notes to share my vision.

Yes please Juan!

Posted 9 years ago

Hi Matthew, I would be interested to see work along these lines. Do you have some work you could share as a starting point? Many thanks ahead of time.

POSTED BY: Reid Frasier

I do have some work I could share but it would take a while to clean it up; I can send a scruffy notebook with my initial ideas and coding if you like which might have some useful material in it. For a proper start though I think I should share something clear and simple so that the design can work well from the start and that will take a little time.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract