If you want to actually understand your books, use something simple and powerful like John Wiegley's ledger:
If you want to actually understand your books, use something simple and powerful like John Wiegley's ledger:
Ledger is awesome and strips away all the crap that gets in the way of actually seeing the data.
There are also haskell and python implementations out there if that's more up your hacking alley.
In particular a correction of an erroneous debit entry was stored as a negative debit, not positive credit. Representing both with the same number seems a bit suspicious to me.
Only downside is that the documentation is a bit lacking for version 3.0. I'm going to be using this for my business in parallel with what I have and I'll switch over if I continue to like it. There is probably a business case here for turning this into a commercial product with more importing / reporting.
It's open-source and it's PostgreSQL-backed, so it's easy to automate various bookkeeping phenomena by attaching triggers to SQL Ledger table changes that propagate elsewhere, or vice versa. Its interface is very web 1.0-ish, and in virtue of that, very fast and responsive.
It's definitely rather low-level in the sense that it's easy to shoot yourself in the foot with it. It's like programming in C instead of C# or Java. It requires understanding double-entry accounting and GAAP at a fairly erudite fundamental level, because unlike QuickBooks, there are no glossy splash screens or inline thought balloons to teach you Accounting 101. It's also lacking in many high-level features such as a payroll module, and has fairly rudimentary stubs for many others. It is, however, quite good at managing parts, assembles and inventory if tangible goods are your thing. It's a little more problematic for a service company; outside of AR and AP, I tend to think of it as little more than just a general ledger. That may not be giving it enough credit, though; it does have quite a lot of features.
Nevertheless, it is a great tool for a startup comfortable with using home-grown open-source solutions.
http://castroller.com/Podcasts/FlossWeekly/2140974-FLOSS%20W...
Worth a listen both from a general open source development perspective as well as for an overview of the system itself.
http://blog.andrewcantino.com/post/1503439483/command-line-a...
Ledger is really quite simple. The core of it could be implemented pretty easily (witness the number of "ledger" clones). I have my own somewhat compatible ledger program written in Python. It's crude otherwise I would release code.
Everything starts out crude--release it anyway! Seriously.