Ubal
Ubal#
Plaintext accounting tool, written in uxn-tal, meant to work a bit like ledger. CLI-based interface that generates reports, maybe a gui app that auto updates some configurable reports.
The git repository is a good place to look for status updates.
I’ll use this space to describe the motivation and goals for the project.
Motivation#
I like plaintext accounting and use it for both business and personal use.
If you’ve done bookkeeping on paper, you’d recognize that these tools basically handle the posting process for you and help generate reports based on those postings and whatever filtering you provide.
I am surprised that these tools are so large. They seem to be packed with features, but I’m not sure cramming features into them is the right approach.
I’m convinced there’s a simpler version of this, waiting to be written, that just does journal verifications and the posting process. If the output of the posting process is good and familiar, it might make nice custom reports more accessible to users.
Reference Material#
awk-pta#
awk-pta seems to have a similar idea, and is making excellent use of existing tools to make it work. awk-pta also uses intermediate posting files, but seems to focus on the format being useful primarily to itself, though it is human-readable.
Goals#
Somewhat of a unix philosophy of tools with small feature sets that are meant to interoperate with other tools. I imagine the output of ubal being opened in a spreadsheet application to do additional filtering.
For interoperation, I will put an emphasis on the tools within the uxn/varvara ecosystem, because they are also nice and small.
I want to help build the trust in the primary source – the journal. The tool helps guard against human errors, and helps extract useful knowledge from it. The artifacts that the tool creates can carry forward some of that trust as long as the user understands them.
Features#
- familiarity for paper bookkeepers
- strict account naming, to catch typos, specified in a Chart of Accounts file
- transaction balance checking, double-entry so it should always sum to zero
- chronological order enforcement, but allowing merging of multiple chronologically-ordered journals
- generation of ledger files, automating the posting process
- handling of multiple commodities/currencies
- carrying forward of metadata from the journal to the ledgers, e.g. date, payee, tags
Deprioritized Features#
Probably won’t implement these ever
- price handling for automatically converting commodities to a common currency (leaving this manual stays in line with paper bookkeeping)
- custom report formatting (the output format will be general purpose and should be easy enough to transform with other tools)
Follow-up Ideas#
- make it work nicely with ’left'
- data entry tools, making use of the Chart of Accounts file and probably some templates
- ways to integrate with point-of-sale or inventory systems