#plaintextaccounting — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #plaintextaccounting, aggregated by home.social.
-
I'm trying to write some Python scripts to loop through a csv of my bank transactions, do some aggregations and subtotals, then create some html layouts using Jinja.
It's working fairly well, and is reasonably quick to run, though it does feel like I'm doing a lot of creating JSON objects. It doesn't feel the most efficient, but a database brings other problems.
-
I'm trying to write some Python scripts to loop through a csv of my bank transactions, do some aggregations and subtotals, then create some html layouts using Jinja.
It's working fairly well, and is reasonably quick to run, though it does feel like I'm doing a lot of creating JSON objects. It doesn't feel the most efficient, but a database brings other problems.
-
I'm pleased to announce hledger 2.0 preview release 3!
Highlights:
- conventional file layout for rules/data/prices
- get command
- commodity aliases
- print aligns by decimal mark
- more intuitive precision behaviour
- more robust lot detection
- average cost basis methods
- customisable report titles
- prices --summary report
- a more robust roi report
- and many other improvements and fixes.https://hledger.org/relnotes.html#2026-06-24-hledger-1993
https://hledger.org/install -
I'm pleased to announce hledger 2.0 preview release 3!
Highlights:
- conventional file layout for rules/data/prices
- get command
- commodity aliases
- print aligns by decimal mark
- more intuitive precision behaviour
- more robust lot detection
- average cost basis methods
- customisable report titles
- prices --summary report
- a more robust roi report
- and many other improvements and fixes.https://hledger.org/relnotes.html#2026-06-24-hledger-1993
https://hledger.org/install -
`hledger bal -t --drop=1 -D -T -A -N --pretty-tables Expenses`
hledger is pretty cool and the more i dig into the built in help and the flags and switches, it just keeps me surprising me in the most joyful way.
what do the switches here do?
1. -t for tree style display of accounts and subaccounts
2. --drop=1 since my top level is Expenses, it will just show the overall totals anyways.
3. -D for day by day multi column report of account balances in the current month by default
4. -T print the row wise totals. this means the total spent in a particular account across all the days from start of month till date by default
5. -A same as -T but for row wise averages.
6. -N this is optional and to remove the final total row. try with on or off. in this case, i could have also instead removed --drop=1 and that row would have shown the day wise Expenses totals as well.
7. --pretty-tables uses unicode characters for a better looking tabular output.
lots more flags to go through, but this itself was so useful to see trends at a glance.
Thank you @simonmic for letting me feel cool using the terminal. Love the project
#pta #plaintextaccounting #hledger #tips -
`hledger bal -t --drop=1 -D -T -A -N --pretty-tables Expenses`
hledger is pretty cool and the more i dig into the built in help and the flags and switches, it just keeps me surprising me in the most joyful way.
what do the switches here do?
1. -t for tree style display of accounts and subaccounts
2. --drop=1 since my top level is Expenses, it will just show the overall totals anyways.
3. -D for day by day multi column report of account balances in the current month by default
4. -T print the row wise totals. this means the total spent in a particular account across all the days from start of month till date by default
5. -A same as -T but for row wise averages.
6. -N this is optional and to remove the final total row. try with on or off. in this case, i could have also instead removed --drop=1 and that row would have shown the day wise Expenses totals as well.
7. --pretty-tables uses unicode characters for a better looking tabular output.
lots more flags to go through, but this itself was so useful to see trends at a glance.
#pta #plaintextaccounting #hledger #tips -
For USAians who received a tax refund from the IRS, did it happen to match what you submitted? Strangely ours was $0.60 short of the amount in box 35a ("Amount you want refunded").
It feels like the perfect scam. $0.60 is not enough to be readily noticed, or enough for anybody to actually spend time contacting the IRS over. But multiply that by the ~102 million tax-refunds that were issued, that's possibly over $60m skimmed from the American tax-payers. Like something out of a heist novel.
-
For USAians who received a tax refund from the IRS, did it happen to match what you submitted? Strangely ours was $0.60 short of the amount in box 35a ("Amount you want refunded").
It feels like the perfect scam. $0.60 is not enough to be readily noticed, or enough for anybody to actually spend time contacting the IRS over. But multiply that by the ~102 million tax-refunds that were issued, that's possibly over $60m skimmed from the American tax-payers. Like something out of a heist novel.
-
Hi @simonmic,
thanks for clarifying, so cleaned up, without header and simpler names.Just the + sign with liabilities:vat looks odd:
; I am renting out for a monthly fee, receive payments and owe the VAT to the tax authorities.
2026-04-01 rent april per contract
assets:receivable:customer 20 €
equity:customer2026-04-03 rent april payment
assets:bank:customer 20 €
assets:receivable:customer2026-04-08 rent april billing/tax
assets:bank:customer -20 €
liabilities:vat:customer 3,19 €
revenues:customer 18,81 € -
Hi @simonmic,
thanks for clarifying, so cleaned up, without header and simpler names.Just the + sign with liabilities:vat looks odd:
; I am renting out for a monthly fee, receive payments and owe the VAT to the tax authorities.
2026-04-01 rent april per contract
assets:receivable:customer 20 €
equity:customer2026-04-03 rent april payment
assets:bank:customer 20 €
assets:receivable:customer2026-04-08 rent april billing/tax
assets:bank:customer -20 €
liabilities:vat:customer 3,19 €
revenues:customer 18,81 € -
#fedihelp wanted for #hledger #plaintextaccounting: when I sell a product to a customer, does accountng like that make sense or would you do otherwise?
; https://hledger.org/5-minute-quick-start.html#:~:text=type
account assets:bank ; type:C
account assets:cash ; type:Caccount equity:conversion ; type:V
commodity 1.000,00 €
decimal-mark ,account tax:e25:eue:42 ; type:L ; VAT 19%
account tax:e25:eue:12 ; type:R ; buniness revenue net2026-05-10 rent may sale
liabilities:busi:prod_a:cust_23 23 €
equity:busi:prod_a:cust_232026-05-11 rent may payment
asset:bank:giro:busi:prod_a:cust_23 23 €
liabilities:busi:prod_a:cust_232026-05-12 rent may billing/tax
asset:bank:giro:busi:prod_a:cust_23 -23 €
tax:e25:eue:42:busi:prod_a:cust_23 3,67 €
tax:e25:eue:12:busi:prod_a:cust_23 -
#fedihelp wanted for #hledger #plaintextaccounting: when I sell a product to a customer, does accountng like that make sense or would you do otherwise?
; https://hledger.org/5-minute-quick-start.html#:~:text=type
account assets:bank ; type:C
account assets:cash ; type:Caccount equity:conversion ; type:V
commodity 1.000,00 €
decimal-mark ,account tax:e25:eue:42 ; type:L ; VAT 19%
account tax:e25:eue:12 ; type:R ; buniness revenue net2026-05-10 rent may sale
liabilities:busi:prod_a:cust_23 23 €
equity:busi:prod_a:cust_232026-05-11 rent may payment
asset:bank:giro:busi:prod_a:cust_23 23 €
liabilities:busi:prod_a:cust_232026-05-12 rent may billing/tax
asset:bank:giro:busi:prod_a:cust_23 -23 €
tax:e25:eue:42:busi:prod_a:cust_23 3,67 €
tax:e25:eue:12:busi:prod_a:cust_23 -
Envelope budgeting: planning ahead for known expenses by regularly putting money into pre-determined categories, or envelopes. This week I show how I’m doing that in plain text accounting, specifically, Beancount.
Medium (includes blog link) https://medium.com/@miscellaneplans/ptpl-206-plain-text-accounting-envelope-budgeting-in-beancount-8a5b49b3281b
Blog https://ellanew.com/2026/05/04/ptpl-206-beancount-envelope-budgeting
#plainTextAccounting #budgeting #plainText -
Envelope budgeting: planning ahead for known expenses by regularly putting money into pre-determined categories, or envelopes. This week I show how I’m doing that in plain text accounting, specifically, Beancount.
Medium (includes blog link) https://medium.com/@miscellaneplans/ptpl-206-plain-text-accounting-envelope-budgeting-in-beancount-8a5b49b3281b
Blog https://ellanew.com/2026/05/04/ptpl-206-beancount-envelope-budgeting
#plainTextAccounting #budgeting #plainText -
Constat réel :
Il n'existe pas de logiciel de compta open source / libre en France, pour les petites structures soumises à la TVA.
Oui Dolibarr, mais soyons réalistes, c'est compliqué pour les petites structures / indé.
Quoi d'autre ?
Faites moi mentir j'adorerais ça
#comptabilité #erp #plaintextaccounting #pta #gnu #opensource -
Constat réel :
Il n'existe pas de logiciel de compta open source / libre en France, pour les petites structures soumises à la TVA.
Oui Dolibarr, mais soyons réalistes, c'est compliqué pour les petites structures / indé.
Quoi d'autre ?
Faites moi mentir j'adorerais ça
#comptabilité #erp #plaintextaccounting #pta #gnu #opensource -
G'day all. I'm pleased to announce hledger 2.0 preview release 2, with many refinements to lot tracking, based on user testing.
(And also hledger 1.52.1, which adds hledger 2-compatible G and U account types to hledger 1.)
- https://github.com/simonmichael/hledger/releases/tag/1.99.2
- https://hledger.org/relnotes.html#2026-04-28-hledger-1992
- https://hledger.org/installRelease contributors: Simon Michael, Joshua Chapman.
-
G'day all. I'm pleased to announce hledger 2.0 preview release 2, with many refinements to lot tracking, based on user testing.
(And also hledger 1.52.1, which adds hledger 2-compatible G and U account types to hledger 1.)
- https://github.com/simonmichael/hledger/releases/tag/1.99.2
- https://hledger.org/relnotes.html#2026-04-28-hledger-1992
- https://hledger.org/installRelease contributors: Simon Michael, Joshua Chapman.
-
I also have a Beancount repository that has every penny I've made for writing since the beginning. And almost every expense so I know exactly how much in the red I am for my relatively inexpensive hobby. :D
-
I also have a Beancount repository that has every penny I've made for writing since the beginning. And almost every expense so I know exactly how much in the red I am for my relatively inexpensive hobby. :D
-
G'day all. A poll:
Should hledger 2 always infer market prices from @/@@ transacted prices, like Ledger ? (and drop the --infer-market-prices flag)
- Yes, having this always on would be harmless and more useful
- No, having it always on, or changing it, would be harmful
- Other, see my replyOr vote in the matrix poll: https://matrix.to/#/!6BCfAOV-btRKuqChph9Z_ppkIj8KttMoIL_rB4eU0Os/$JveSoLuLOWS_Mg10JDUJKnu33RAclZML03JQ4Lp46qY?via=asgard.chat&via=matrix.org&via=tchncs.de
-
G'day all. A poll:
Should hledger 2 always infer market prices from @/@@ transacted prices, like Ledger ? (and drop the --infer-market-prices flag)
- Yes, having this always on would be harmless and more useful
- No, having it always on, or changing it, would be harmful
- Other, see my replyOr vote in the matrix poll: https://matrix.to/#/!6BCfAOV-btRKuqChph9Z_ppkIj8KttMoIL_rB4eU0Os/$JveSoLuLOWS_Mg10JDUJKnu33RAclZML03JQ4Lp46qY?via=asgard.chat&via=matrix.org&via=tchncs.de
-
Glad it has helped you! A few things that might help:
- other rust projects linked at plaintextaccounting.org
- https://hledger.org/SPEC-journal.html
- https://hledger.org/hledger.html#amounts (manual is a kind of spec)
- amountp and friends in Hledger.Read.Common -
Glad it has helped you! A few things that might help:
- other rust projects linked at plaintextaccounting.org
- https://hledger.org/SPEC-journal.html
- https://hledger.org/hledger.html#amounts (manual is a kind of spec)
- amountp and friends in Hledger.Read.Common -
https://youtu.be/hshDr2Af2RU
Getting off another locked in platform
#hledger #plaintextaccounting -
And, hledger 2.0 preview 1 (AKA 1.99.1), which adds
automated lot tracking and capital gains calculation,
improvements to `print`'s beancount output,
and a new policy for AI-assisted development.This is the first hledger release to explore AI-assisted development, so please do check out the evolving AI policy/FAQ: https://hledger.org/AI.html
- https://github.com/simonmichael/hledger/releases/1.99.1
- https://hledger.org/relnotes.html#2026-03-28-hledger-1991 -
And, hledger 2.0 preview 1 (AKA 1.99.1), which adds
automated lot tracking and capital gains calculation,
improvements to `print`'s beancount output,
and a new policy for AI-assisted development.This is the first hledger release to explore AI-assisted development, so please do check out the evolving AI policy/FAQ: https://hledger.org/AI.html
- https://github.com/simonmichael/hledger/releases/1.99.1
- https://hledger.org/relnotes.html#2026-03-28-hledger-1991 -
I'm pleased to announce a #hledger double release! First, hledger 1.52, with
more robust paging,
faster valuation,
commodity tags,
and cost basis annotations which are preserved and can be exported (examples provided).- https://github.com/simonmichael/hledger/releases/1.52
- https://hledger.org/relnotes.html#2026-03-20-hledger-152
- https://hledger.org/install -
I'm pleased to announce a #hledger double release! First, hledger 1.52, with
more robust paging,
faster valuation,
commodity tags,
and cost basis annotations which are preserved and can be exported (examples provided).- https://github.com/simonmichael/hledger/releases/1.52
- https://hledger.org/relnotes.html#2026-03-20-hledger-152
- https://hledger.org/install -
https://shinglyu.com/blog/2026/03/18/hledger-and-ai.html
“Once you see how clean the numbers are — and how easy it is to verify them — going back to spreadsheets feels like going back to a flip phone.”
#plaintextaccounting @shinglyu -
@Bebef ahso - ich verwende client-seitig kein Excel oder ähnliches.
Hab eine selbstgebaute Pipeline, welche mit Hilfe von "mlr" die exportierten CSVs normalisiert und dann basierend auf teils generierten, teils manuell definierten Regeln mit "hledger import..." meine Journals generiert.Ich sehe also die CSVs im plain-text.
-
@Bebef ahso - ich verwende client-seitig kein Excel oder ähnliches.
Hab eine selbstgebaute Pipeline, welche mit Hilfe von "mlr" die exportierten CSVs normalisiert und dann basierend auf teils generierten, teils manuell definierten Regeln mit "hledger import..." meine Journals generiert.Ich sehe also die CSVs im plain-text.
-
Support question for the #hledger #plaintextaccounting community:
Prefacing this by acknowledging that I know I'm probably trying to do something weird, but I’m just getting started so please be patient.
I’m trying to import a large CSV file and am running into unbalance transaction errors. For example:
> hledger: Error: /Users/cris/checking.csv:1751-1750:
> 1751 | 2025-03-21 Starting Balance
> | SBA $-100
>
> This transaction is unbalanced.
> The real postings' sum should be 0 but is: $-100The line from the CSV file is:
> SBA,,03/21/2025,Starting Balance,,,,,$100,$0.00,ClearedAnd the relevant rule from my import rules:
> fields account1, , date, description, , , account2, comment, amount-out, amount-in,I can manually add the above transaction without issues, so I guess I need some clarity as to what I'm doing wrong with my import file.
Thanks!
-
Support question for the #hledger #plaintextaccounting community:
Prefacing this by acknowledging that I know I'm probably trying to do something weird, but I’m just getting started so please be patient.
I’m trying to import a large CSV file and am running into unbalance transaction errors. For example:
> hledger: Error: /Users/cris/checking.csv:1751-1750:
> 1751 | 2025-03-21 Starting Balance
> | SBA $-100
>
> This transaction is unbalanced.
> The real postings' sum should be 0 but is: $-100The line from the CSV file is:
> SBA,,03/21/2025,Starting Balance,,,,,$100,$0.00,ClearedAnd the relevant rule from my import rules:
> fields account1, , date, description, , , account2, comment, amount-out, amount-in,I can manually add the above transaction without issues, so I guess I need some clarity as to what I'm doing wrong with my import file.
Thanks!
-
This aside, I understand the wish to have your accounting be on a rock solid foundation - I feel the same. No software is perfect, but you can still achieve it: keep your data, and if you need extra assurance, your reports, in version control; use double entry bookkeeping; regularly reconcile with real world balances; and perhaps run extra correctness checks. (#plaintextaccounting FTW.)
It is now very hard to miss any mistake made by your software - you'll see and address it right away. -
This aside, I understand the wish to have your accounting be on a rock solid foundation - I feel the same. No software is perfect, but you can still achieve it: keep your data, and if you need extra assurance, your reports, in version control; use double entry bookkeeping; regularly reconcile with real world balances; and perhaps run extra correctness checks. (#plaintextaccounting FTW.)
It is now very hard to miss any mistake made by your software - you'll see and address it right away. -
Me! 👋
Don't Skip The Docs.
For emacs tips, start at https://hledger.org/editors.html#emacs.Don't assume you need hledger-mode (ledger-mode also works well, I use it).
With flycheck-hledger (or a VCS precommit hook), don't feel you need maximal error checking - do what's most useful now, you can always do stricter checks manually.
Don't try for perfect accounts/files/workflow up front - expect evolution.
Don't limit yourself with an ancient hledger version - get the latest.
-
Me! 👋
Don't Skip The Docs.
For emacs tips, start at https://hledger.org/editors.html#emacs.Don't assume you need hledger-mode (ledger-mode also works well, I use it).
With flycheck-hledger (or a VCS precommit hook), don't feel you need maximal error checking - do what's most useful now, you can always do stricter checks manually.
Don't try for perfect accounts/files/workflow up front - expect evolution.
Don't limit yourself with an ancient hledger version - get the latest.
-
@platymew That is a pretty big space ... maybe too much for a video to cover. Are you thinking mobile apps or web or desktop or plain text accounting? Or all of the above? Or you didn't know #plaintextaccounting was a thing?
-
@platymew That is a pretty big space ... maybe too much for a video to cover. Are you thinking mobile apps or web or desktop or plain text accounting? Or all of the above? Or you didn't know #plaintextaccounting was a thing?
-
@platymew @msdropbear42 Oh I'd love to make videos about #hledger and #plaintextAccounting, has been on my TODO list for a long time, but I just have to prioritise other stuff. But I'll get there eventually 👍
-
@platymew @msdropbear42 Oh I'd love to make videos about #hledger and #plaintextAccounting, has been on my TODO list for a long time, but I just have to prioritise other stuff. But I'll get there eventually 👍
-
Hi Caleb, I'm so excited to find that I'm not the only person interested in the breakdown of #beancount or other #plaintextaccounting
My current progress: Given this receipt
It generates such beancount output:
-
Hi Caleb, I'm so excited to find that I'm not the only person interested in the breakdown of #beancount or other #plaintextaccounting
My current progress: Given this receipt
It generates such beancount output:
-
If you are a user of my HLedger Formatter VSCode extension, you might like my just-released `hledger-fmt` CLI tool! It allows you to do the same format/sort as you can with the VSCode extension, but in your CLI. I am using this a lot in my codex skills to keep the journals consistently formatted.
https://www.npmjs.com/package/@iiatlas/hledger-fmt
https://github.com/iiAtlas/hledger-formatter/blob/main/packages/cli/README.md
-
After bouncing around ideas and several experiments, I've decided to launch a new project with the goal of creating CLI tooling that facilitates receipt handling for #plaintextaccounting workflows. LLM based OCR and data extraction has improved to the point that I believe it will be possible to make bulk data extraction useful. If you have ideas, want to contribute, or just want to follow along jump in: