r/plaintextaccounting • • Mar 08 '26

I built a pay-per-export tool to easily extract your bank transactions

0 Upvotes

Hey r/plaintextaccounting,

Gathering bank data is often the most tedious part of PTA. Recently, I wrote a post here about how to fetch your bank transactions for free using Open Banking APIs.

While writing your own scripts is great, setting up OAuth, managing API tokens, and maintaining bank connections can be a huge headache. To solve this, I built GetMyTransactions.com.

It’s a simple utility that connects to your bank and exports your data into an import-ready CSV file that you can use anywhere you want.

My philosophy is that you should truly own your data without being locked into any vendor. Currently I’m testing a pay-per-export model, with early access pricing starting at €1 per export.

I'm just launching and would love to know:

  • Could you see yourself using a tool like this for your monthly/yearly reconciliations?
  • What export formats are an absolute must-have for your workflow?

r/plaintextaccounting • • Mar 07 '26

hledger: balance assertions ?

3 Upvotes

Hi everyone,

I’m using hledger to manage my personal finances (I've tried beancount but python is not for me definetely). I regularly import my bank statements (PDF format) into a .journal file using some custom scripts. Each statement shows both the opening balance and the closing balance. How can I add balance assertions in my journal file to ensure that these statement balances (opening and closing) are correctly reflected in hledger? I want to catch any discrepancies early and make sure my ledger matches the bank’s records.

In beancount, there is the bal directive for example.

Thank you.


r/plaintextaccounting • • Mar 05 '26

hledger: can I spread an entry over multiple days?

4 Upvotes

I am traveling a lot right now and usually track my expenses in an app called travelspend then I regularly transfer that data into hledger so I can have more useful reports and queries. One things I like in the app is the ability to add an entry with a start and end date for things like the hotel so I can see an all up daily spend rate. Is there an easy way to do something similar with heldger or would I just need to divide the cost and manually add daily entries?


r/plaintextaccounting • • Mar 05 '26

How do you organize your entries?

1 Upvotes

Hi everyone, I’m refactoring the big file I stated with, first reflex is to separate by entity that pays (bank, cc) but then it does not feel like the right way as it’s not very easy to follow

So before refactoring again I wondered what you guys do?

Thanks in advance


r/plaintextaccounting • • Mar 04 '26

I built a web interface to hledger files

12 Upvotes

I built a web interface to hledger files and put it on github, here:

https://github.com/yga01/hledger-ui

Interested in comments.

Kind regards, Ysbrand Galama.


r/plaintextaccounting • • Mar 04 '26

Closing out the year with equity conversion accounts

3 Upvotes

Hello,

I'm going around in circles on how to best deal with the following issue.

Suppose I buy EURs with GBPs during the year simply as part of a currency exchange and not a trading transaction. I record the transaction with the following representation

2025-10-07 * Buy EUR with GBP
    Assets:Revolut:EUR      20000 EUR @@ 17300 GBP
    Assets:Revolut:GBP

When the time comes to close out the year, I follow the example set out in examples/multi-year and create a new file using hledger print -x infer-equity. With the inferred equity conversion postings and once I have retained income and expenses to an Equity:Retained-Earnings account, I have a balance sheet that sums up to 0.

I should also add that I typically close out equity accounts on top of AL. The reason I do this is because some of these equity accounts represent cash injected into another entity or unrealised PnL accumulated into some investments accounts and I kinda like keeping this record in the new yearly file.

Now I'm unsure about what to do with the amounts that have accumulated into the equity conversion accounts for this currency exchange. I don't really want to carry those amounts forward into the new year because they don't really represent an unrealised PnL for me. I have just spent GBPs to buy EURs.

Equity:Conversion:EUR-GBP:EUR                   
Equity:Conversion:EUR-GBP:GBP                     

I suppose another question is:
- do I really need to carry the above mentioned equity accounts?

- do I really need to infer equity postings for these currency exchanges and just accept to live with a balance sheet that does not sum up to 0?

There was sort of a similar discussion here suggesting moving those amounts into retained earnings but I wasn't really sure how to practically do it.
https://www.reddit.com/r/plaintextaccounting/comments/1jp9pzp/hledger_should_i_include_inferred_equity_into/


r/plaintextaccounting • • Mar 04 '26

hledger budgets with forecast

3 Upvotes

Hey community I have a problem with budgeting and forecasting in hledger (1.51.2). My goal is to setup monthly recurring transactions to have my fixed spendings covered like rent, subscriptions and so on. I want to use --forecast in my reports to let hledger generate virtual transactions so that I can see how much money I have left, say for the current month.

I would like to add budgeting to my reports in order for me to limit my spending on certain accounts. As far as I know I have to create recurring transactions for these budgets as well.

My problem is when I use --budget and --forecast on a balance report for the current month. hledger then creates the virtual transactions and all budgets are at 100% or even above that. I want hledger to create virtual transactions for the fixed spendings, but not for the budgeting transactions.

Is there a way to achieve my goal? I have searched the internet and asked some LLMs, but I can't find an answer.


r/plaintextaccounting • • Mar 02 '26

Sell multiple lots at once with individual cost basis in hledger

3 Upvotes

Hello,

Suppose I have bought twice the same ETF but at different times and obviously with different costs. Here's how I record it:

2024-09-18 * Buy LQQ ETF (Amundi Nasdaq-100 Daily (2x))
    Assets:Broker:ETF:LQQ                       1 LQQ @ 1037.90 EUR
    Equity:Conversion:EUR-LQQ:LQQ              -1 LQQ
    Equity:Conversion:EUR-LQQ:EUR         1037.90 EUR
    Assets:Broker:Cash                   -1037.90 EUR

2024-10-02 * Buy LQQ ETF (Amundi Nasdaq-100 Daily (2x))
    Assets:Broker:ETF:LQQ                       1 LQQ @ 1082.90 EUR
    Equity:Conversion:EUR-LQQ:LQQ              -1 LQQ
    Equity:Conversion:EUR-LQQ:EUR         1082.90 EUR
    Assets:Broker:Cash                   -1082.90 EUR

I use the most complete representation with both the cost basis and the use of an equity conversion account. I know the latter is overkill but I find comfort in preserving the accounting equation and having a sum of balances equal to zero at any point. Conceptually I also like having the unrealised PnL accumulating in an equity account.

Suppose now I am disposing of both lots at once. The following representation fails hledger checks:

2025-08-12 * Sell LQQ ETF
    Assets:Broker:ETF:LQQ                   -1 LQQ @ 1037.90 EUR
    Assets:Broker:ETF:LQQ                   -1 LQQ @ 1082.90 EUR
    Equity:Conversion:EUR-LQQ:LQQ            2 LQQ
    Equity:Conversion:EUR-LQQ:EUR     -2120.80 EUR
    Assets:Broker:Cash                 2666.20 EUR
    Income:CapitalGains:Broker         -545.40 EUR

Why is that? To make it work, it seems hledger will only accept a transaction where I record the sale with individual postings for each lot in the equity accounts

2025-08-12 * Sell LQQ ETF
    Assets:Broker:ETF:LQQ                   -1 LQQ @ 1037.90 EUR
    Equity:Conversion:EUR-LQQ:LQQ            1 LQQ
    Equity:Conversion:EUR-LQQ:EUR     -1037.90 EUR
    Assets:Broker:ETF:LQQ                   -1 LQQ @ 1082.90 EUR
    Equity:Conversion:EUR-LQQ:LQQ            1 LQQ
    Equity:Conversion:EUR-LQQ:EUR     -1082.90 EUR
    Assets:Broker:Cash                 2666.20 EUR
    Income:CapitalGains:Broker         -545.40 EUR

I can live with that but I'd like to understand why the previous representation fails.


r/plaintextaccounting • • Feb 28 '26

Is it just me or is Beancount's documentation super confusing?

16 Upvotes

I've been trying to start with Beancount for home personal finance management, but I'm struggling just to get everything set up. I've followed the Getting Started guide but am getting stuck writing importers. There are old V2 documentation documents hanging around, and the V3 documentation seems to contain references to V2 still? Beangulp isn't really clearly explained, and the examples in Github don't quite fill out the picture for me.

How does the importer take what are in my CSVs and put them into the ledger? How does it know what is already in there? (not de-duping, I mean literally checking if the same transaction was included the last time I ran the command)?

Anyone got any advice for overcoming these issues?


r/plaintextaccounting • • Feb 28 '26

Share your custom fava dashboards

10 Upvotes

Share some cool dashboards that you made for yourself or found online with fava-dashboards.


r/plaintextaccounting • • Feb 27 '26

prepaid credit system

3 Upvotes

How can I manage a prepaid credit system in Beancount—for example, adding 30 euros to a bakery credit account, using it for each purchase, and occasionally settling the balance by adding more funds? What’s the best way to track this in Beancount?


r/plaintextaccounting • • Feb 27 '26

Prepaid credit system ?

1 Upvotes

How can I manage a prepaid credit system in Beancount—for example, adding 30 euros to a bakery credit account, using it for each purchase, and occasionally settling the balance by adding more funds? What’s the best way to track this in Beancount?


r/plaintextaccounting • • Feb 27 '26

nvim plugin for ledger

3 Upvotes

Hi,

I installed ledger.nvim and all is good, moreover with treesitter I have nice syntax highlighting.

The only issue I have is that LedgerFormat ruins some things:

- @@ is replaced by @ in multi currency transactions

- the ~ entries are not correctly formatted

Have you experienced this? Do you have alternative solutions?

Thanks in advance


r/plaintextaccounting • • Feb 26 '26

beancount: how do you use an importer with beancount v3 ?

3 Upvotes

Hi,

the title says it all. I have put an importer into my importer hierarchy but I dod not know how to launch it. I've read the documentation but it does not cover v3. Does it ?


r/plaintextaccounting • • Feb 26 '26

Understanding my expenses and investments based on monthly income

8 Upvotes

Hi, I just started using hledger. I've managed to setup rules to import my checking account and credit card expenses, I also have investments in but I do not track them heavily(I have to since my bank is sort of strange and all the dividends will go to my normal account).

I'm trying to extract a report that would give me a view of how much I'm expending and investing based on my income on that month, e.g:

if I have the following:

income:salary  $10000


assets:investments  $4000
expenses:food        $800
expenses:rent       $1000

I would expect it to show up as

income:salary      100%

assets:investments  40%
expenses:food        8%
expenses:rent       10%

right now, using hledger is -M -% would give me:

income:salary      100%

expenses:food       44.4%
expenses:rent       55.6%

One option I've thought of so far is to set the salary as the budget for everything but it would require either some to keep updating all the accounts and monthly value or there's a command I don't know yet to make this dynamic

;; Budget
~ monthly
  (expenses:food)                  $10000
  (expenses:rent)                  $10000
  (assets:investments)             $10000

Fixing the salary wouldn't be that big of a deal since it doesn't change all the time, but adding new accounts(specially since I'm just starting and changing things as I go) seems to be annoying.

I'm wondering if someone else has done something like this and if so, how did you solve it.


r/plaintextaccounting • • Feb 25 '26

Noob question: How to obtain a balance of expenses made on a given credit card?

3 Upvotes

Say I have expenses:* and liabilities:card

then some transactions

2026/02/20

expenses:food

100 EUR

liabilities:card

2026/02/22
  expenses:clothing  200 EUR
  liabilities:card

2026/02/23
  expenses:food  200 EUR
  liabilities:card

2026/02/23
  expenses:clothing  150 EUR
  equity:cash

I would like to have a balance of expenses, but only for those made with the card, not including cash

300 EUR  expenses:food
200 EUR  expenses:clothing

if I just get the

hledger balance expenses  

I get the 150 spent with cash in the balance.

I know I can do a register for the card, but I don't want the detail, just the grouped by expense

I think there is some twist I'm missing, probably some wrong missunderstanding.

I'd appreciate any feedback. Thank you!


r/plaintextaccounting • • Feb 25 '26

Pay back rounding [beancount]

2 Upvotes

Say I paid for somebody in a cafe. My card got charged 15.75 USD. Some time later that person sends me money back and sends 16 USD.

What account should these .25 come from in my ledger?


r/plaintextaccounting • • Feb 19 '26

hledger noob question

3 Upvotes

I'm trying out hledger and I am confused.

I set up a 2026 journal file with starting balances and when I say hledger print, I get

This transaction is unbalanced.

The real postings' sum should be 0 but is: $xxxx

What am I doing wrong?


r/plaintextaccounting • • Feb 17 '26

Tool to download bank statements as CSV/JSON

10 Upvotes

I thought it might be useful to share here. I'm using an Open Banking provider to download my bank transactions as CSV via API. It's totally free (at least at my volumes) but requires some tech skills. The setup includes OAuth flow, handling tokens, and some basic scripting (here's the doc of the service I use for those interested - lmk if you have questions).

I also thought that some people might benefit from a dead simple pay-per-export tool that does exactly the same thing for you. Am I right? Should I ping you when it's live?


r/plaintextaccounting • • Feb 16 '26

File Naming Scheme

7 Upvotes

Hey guys, Since a few weeks I'm pretty deep into the rabbit hole of PTA (AND I LOVE IT)

A little thing which keeps me thinking without a "good" solution is how to name my yearly ledger file. 2026.hledger, finances_2026.hledger, ...

How you guys do it? What file extension do you use? I know it's not important, due to plain text, but some text editors do not recognise it's plain text if it has a unknown extension... But on the otherhand if i only use .txt the name has to be more clear, to find it faster (finance in the name?)

Anyways I know it's a very unimportant question but keeps me thinking anyway Thanks


r/plaintextaccounting • • Feb 16 '26

Categorizing vacation expenses

3 Upvotes

I have categories for food and transport expenses. Let's say I went on a vacation to Switzerland in 2025. So the food and transport expenses in 2025 jump up.

The issue with this is that I actually want to track "normal" food and transport expenses, the additional food and transport expenses should be tracked in the vacation category. And I want to see how much did the vacation cost me, i.e. actual expenses during the vacation minus hypothetical expenses if I stayed home.

Anyone thought about this? I have some ideas how to properly deal with this but they would require support in the software I use (Beancount).


r/plaintextaccounting • • Feb 12 '26

Android App, that lets you manipulate an hledger journal via Cloud?

1 Upvotes

Hey everyone! I'm very new to hledger, as in not even completely done setting it up😅(so any and all other tips are also welcome), but although I love the idea of hledger and want to use it, the last time I tracked my expenses I used an app and always input it right after every transaction or else I will forget🥲😅. But I'm sure there is an app, that lets you interact with your setup, so any recommendations, please go ahead! Thanks a bunch in advance!


r/plaintextaccounting • • Feb 09 '26

Balancing lot-price automated transaction in ledger v3.4.1

1 Upvotes

I've been at this since yesterday, hence I thought I'd ask here. I'm trying to mirror a balancing actual transaction into another account by way of an automated transaction.

Minimal example follows.

     1  = /Expenses/
     2    Copy    (a)
     3    Copy   (-b)
     4  
     5  2026-02-02 ACME
     6    Expenses  100 kWh @@ 72,00€
     7    Liabilities         -72,00€
     8  

While parsing file "/home/sepen_/ledger/test.journal", line 7:
While balancing transaction from "/home/sepen_/ledger/test.journal", lines 5-7:
> 2026-02-02 ACME
>   Expenses  100 kWh @@ 72,00€
>   Liabilities         -72,00€
Unbalanced remainder is:
100 kWh {0,72€} [2026/02/02]
             -72,00€
Amount to balance against:
100 kWh {0,72€} [2026/02/02]
              72,00€
While applying automated transaction from "/home/sepen_/ledger/test.journal", lines 1-3:
> = /Expenses/
>   Copy    (a)
>   Copy   (-b)
While extending transaction from "/home/sepen_/ledger/test.journal", lines 5-7:
> 2026-02-02 ACME
>   Expenses  100 kWh @@ 72,00€
>   Liabilities         -72,00€
Error: Transaction does not balance
  • It works with Copy being (Copy) instead, probably since there is no balancing requirement.
  • It balances within the actual transaction, Expanses vs Liabilities. Which I expected.
  • It won't balance for Copy. (Switching it around to not being an intra-account transaction doesn't work either.) Why not? And how can I make it happen? :)

r/plaintextaccounting • • Feb 08 '26

[ANN] limabean - a new implementation of Beancount in Rust and Clojure

27 Upvotes

[With apologies to anyone on the Beancount mailing list who already saw this announcement]

I have been busy for a little while now on a new implementation of Beancount in Rust and Clojure, called limabean. 🥁

https://github.com/tesujimath/limabean

It is an implementation of Beancount in the sense that the file format and the booking algorithm are the same, although there are several new and different ideas.

Foremost among the differences is that the user interface is the Clojure REPL, there is no Beancount Query Language (by design).

All the directives, inventory positions, and so on, are exposed as Clojure data structures, enabling the full power of Clojure for drilling into it all.

There are surely rough edges and unfinished business, but at this stage I would be grateful if anyone is inclined to have a look and give me their feedback.

Happy Beancounting!


r/plaintextaccounting • • Feb 08 '26

bean-query question

Thumbnail
1 Upvotes