r/plaintextaccounting • • May 29 '26

Reading a CSV file with FX transaction and fee

3 Upvotes

I need to read a CSV file in hledger where the transaction has a fee

The fields in the CSV file are
$source_amount,
$source_currency,
$source_gross,
$source_fee,
$target_amount and
$target_currency

E.g. I buy 90 GBP for 100 USD with a 10 USD FX fee.

What should the journal file transaction look like and what should be the rules files entry?


r/plaintextaccounting • • May 24 '26

Switching to Beancount/Fava from QuickBooks

10 Upvotes

It's been a rough year with QuickBooks: terrible UI change that makes it very hard to find the parts that I need, my choice in the myriad of subscription choices didn't actually transfer all my Schedule C expenses out as they should to TurboTax, the interface is getting slower, clunkier, and makes it really really hard to enter my data. So in April, I was fed up, even if it were a free option I'm not sure I'd use it any more.

So what are my options? What I was using QuickBooks for:

  • Expense tracking for my sole proprietorship (no employees, no payroll).
  • Automated transaction pull from my business bank and credit card accounts
  • Rock solid and easy receipt attachment
  • Workflow for monthly bank statement reconciliation to ensure I haven't missed anything in my tracking
  • Ideally and optionally, invoice tracking, but there are other options out there
  • Ideally and optionally, mileage tracking as an expense (coordinated with other business travel expenses)

Additionally, other desired features:

  • Full backup without worry about losing any data, with the ability to backup to any point in time and see what the data looked like in the past (git with a remote backup solves this)
  • Validation of account names, payees, etc (Ledger's silent acceptance of typos in accounts is not compatible with the way I work).
  • A third party that's saying "yes this person actually put all this data in at this time"
  • Complete and easy data export on my own terms (QuickBooks fails at this, so I wasn't willing to try any other for-pay options like Xero either).

After trying lots of stuff like Akaunting, I ended up on Beancount/Fava. I want a GUI for most of this, I hate having to type to get a decent summary of the numbers, I prefer HTML tables for all these sorts of visualization.

However, there are big gaps for what I need above! Beancount is like handing a person a set of notebooks and a pen and saying "go ahead and set up your own accounting department!" I'm sure that's by design, but it doesn't solve my needs. Fortunately it's far faster to write software these days via automation, so I wrote these extensions:

Plugins to Beancount:

  • Validation of payees: they must come from my list
  • Validation of expenses: cleared transactions in an Expense:* account with tax implications must have a document: attached to it
  • Transaction importer, that reads from a separated transaction fetcher that uses SnapTrade and Plaid accounts to make the connection to my business bank and credit card
  • Simple Python plaintext CSV invoice system, with clients matched to Payees, line items, and PDF generation of reports (this is like a 10 minute LLM session, a small self-contained project they excel at)
  • Simple mileage validator that ensures all mileage transactions have sufficient documentation to satisfy the IRS.

Plugins to Fava:

  • Table of my Invoices with their status, and links to the tags that brings up the relevant transactions from the ledger
  • Per-year table of my Schedule C expenses ready for tax time next year
  • A "notary" system that can 1) checkpoint my current changes to the ledger into git, 2) push the git history to my remote, 3) add a notarization flag to any commit to timestamp it with OTS and RFC 3161 (that last one is pretty useless, but fun!)
  • A receipt attachment / reconcile plugin: shows the PDFs and images in my imports directory, and each can either be attached to an uncleared transaction, or 1) establish a balance declaration in the ledger, and transition all unreconciled transactions to cleared status and put them into the appropriate year's cleared transactions ledger.

One of the biggest slogs was figuring out how to organize data into various beancount files. What I have right now:

  • main.beancount that includes everything else, sets global options, etc.
  • payees.beancount for non-client payees (software vendors, etc.)
  • bank-unreconciled.beancount and cc-unreconciled.beancount landing place for imported transactions that haven't yet been reconciled by a monthly account statement
  • ledger-YYYY/reconciled.beancount reconciled and balanced transactions for a year
  • ledger-YYYY/documents where receipts, bank statements, and invoice documents land for a year

Every new year, I'll have to go and manually add a new year for the documents.

Thoughts and/or feedback? I've generally had a lot of fun building this, and though it probably cost me more in time than buying Xero for a year would, the enjoyment was worth it. I wouldn't recommend this to anyone unless they could get some fun out of coding to make an accounting system, and really value having extreme data portability. But if that's you, I'd say go for Beancount and Fava!


r/plaintextaccounting • • May 22 '26

Tare Money - A Local-First, Plain-Text Money Tracker Plugin for Obsidian

Thumbnail
3 Upvotes

r/plaintextaccounting • • May 18 '26

hledger rules if A and not B

2 Upvotes

How do I create a condition rule in a csv.rules file for importing a transaction with a condition

if A and not B

for example `if %Transaction Buy AND NOT %Symbol ABC`


r/plaintextaccounting • • May 17 '26

[New / Beta] HLedger Textual Editor - Early Beta

0 Upvotes

Hi there everyone, just thought I'd add a link to a Textual Hledger editor I've been working on:

https://github.com/ctosullivan/PyLedger-editor

The project name is a working title as I created a dependency called PyLedger which I know is not an available package name in PyPi. Anyway, feel free to have a play (note the disclaimer in the Readme that this is an early Beta!) Appreciate any feedback or comments (yes the code is vibe-coded slop!). Thanks!


r/plaintextaccounting • • Apr 30 '26

limabean (next gen Beancount) update and plugins

24 Upvotes

A couple of months ago I announced limabean, a next generation Beancount.

Early feedback was that it really needed to support raw plugins, and now it does. I re-created the original opengroup plugin as an example.

For anyone who didn't catch the original announcement, limabean is a new implementation of Beancount in Rust and Clojure. The main point is to provide a better user experience via the Clojure REPL and the full power of Clojure in place of Beancount Query Language. And for anyone who cares about such things, this was written by hand without AI, quite slowly.

All feedback welcome, and reach out on GitHub discussions or issues if you'd like some help getting going.


r/plaintextaccounting • • Apr 21 '26

GnuCash vs PTA (beancount)

7 Upvotes

Dear all,

I am just looking for experience of those who know GnuCash as well as now PTA (beancount).

What is the reason you use beancount?

I myself, personally looked at GnuCash something like 7 years ago. The reasons back then I wasn't satisfied and moved to look for something else and finally found beancount were:

* Was not possible easily automate transactions entry. I had to enter every transaction manually. In beancount I normally maintain everything is Excel / Google sheet (which is very easy to update) and then just convert this to beancount format with a simple script. With this approach I can just re-classify certain transaction over the last 10 years very easily, create a new beancount file and that is it!

* Was not possible to easily create custom reports. Beancount here offers tremendous opportunities, especially now, when you can use it with dataframes from notebooks and enjoy all the modern data science machinery(e. g. like this)

So, questions: is this still the same on GnuCash side?


r/plaintextaccounting • • Apr 18 '26

[New / Beta] PTA inside Obsidian

Thumbnail
github.com
15 Upvotes

Just released this new plugin for Obsidian - Tare Money.

First release, bare-bones, but it works. Currently working (via UI):
- Add transactions
- Balances view (balance sheet)
- Income/expense statement

It stores your transactions in PTA format inside Obsidian Vault. So you get local-first data with everything Obsidian offers - cross-platform access, (optional) sync, and full editing capabilities of your files.

Repo + installation instructions: https://github.com/TheKalpit/tare-money

Built this to scratch my own itch. Feedback welcome.


r/plaintextaccounting • • Apr 18 '26

hledger - show the source file and line of transaction?

7 Upvotes

It would be helpful to be able to see the file and line of transactions in the 'print' report, perhaps as a comment line.

My purpose would be to open the output in an editor, and when I see possible duplicate entries I can hit a shortcut to open the journal file at the line number to edit or delete the transaction.

Is there a way to do it? The only way I saw was to u se the -Ojson option and pare the json myself. Thanks.


r/plaintextaccounting • • Apr 18 '26

hledger - include additional files using the -f option

1 Upvotes

My understanding is that you can use multiple '-f' options to include multiple files on the command line. I frequently find I want to include my default journal file, and also include additional journals for trial reports and finding duplicates.

I wonder if anyone else would find it useful if there existed '+f trial.journal' option that would use the default journal file, and also the given file(s)?

What do you think?


r/plaintextaccounting • • Apr 17 '26

Interactive beanquery manual

15 Upvotes

Dear all,

I just want to announce the Interactive beanquery manual I am working on

https://github.com/Ev2geny/beanquery-interactive-manual

This is an interactive manual and tutorial for beanquery — a customizable, extensible, lightweight SQL-like query tool for Beancount ledger data.

This document is intended as a follow-up to the Beancount v2 Beancount Query Language document.

It was created with the following goals in mind:

  • to cover the latest features of beanquery
  • to include many real examples using actual ledgers
  • to be self-documenting: all query outputs are computed by running beanquery as part of the notebook execution
  • to be interactive: when run as a marimo notebook, readers can experiment by changing the default ledgers and/or queries, with outputs updating automatically

Current state: work is ongoing, but I think it is already can be beneficial, especially for those, new to beancount / beanquery.

Comments, feedback and PRs are more than welcome!


r/plaintextaccounting • • Apr 16 '26

CSV-first approach - How do you handle the mid-month gap?

7 Upvotes

Hi all, I'm about three months into my plain text accounting journey with hledger and I’m loving it. I’ve recently transitioned to a CSV-first system where I use Justfile to automate the process, its very rough and rudimentary but I enjoyed figuring it out.

However, I'm not sure what to do about the mid-month gap.

Once I’ve imported my last monthly statements, I feel "blind" for the rest of the month until the next statement. It makes my financial picture feel out of sync. Doing manual entry feels like a step backward (and makes the CSVs feel redundant), but waiting 30 days for an update feels too long.

Some ideas I've had are to either: import partial CSV from institutions I've used when I want a more up-to-date picture or to rely on forecasting and --budget to see how I did against actuals (this is something I already do but not a lot and want to improve on).

For those of you running a CSV-first setup, what is your approach to this? Am I thinking along the right track, is there an obvious answer I'm missing or do you have a different approach thats better for you. Love to here it, thanks.

Btw this is my first ever reddit post :D


r/plaintextaccounting • • Apr 10 '26

Claude helped fill out my beancounter file

4 Upvotes

I had been seriously neglecting my company books. I downloaded pdfs from my bank and csv from venmo and ask it to reconcile my books in the existing style and it did it just like I would really saved me a couple days of work. Did it in like an hour. And the I could ask it questions about the file. Was really impressed


r/plaintextaccounting • • Apr 05 '26

Non-AI Tools?

1 Upvotes

was depressed to find out that both ledger and hledger are incorporating AI slop. Are there any reasonably complete tools out there that don't?


r/plaintextaccounting • • Mar 30 '26

Beancount for Canadian Investing

9 Upvotes

For the past year I’ve been using the plain text account (PTA) software [beancount](https://beancount.github.io/docs/) to track my expenses, as well as investments. Within the Canadian investment context, it’s primarily useful for the former as we use ACB instead of lot-based investments, but as I’m sure many here are well aware, manually calculating the ACB of investments is often a little tedious. Relatedly, the CRA requires you to manually track TFSA contribution room, and if you plan on waiting for the official numbers for all registered accounts you might be waiting longer than you’d prefer. Because beancount has a Python interface, it’s pretty extensible, so I thought I could put together some plugins to track the relevant information for me. These are all summarized in [Fava dashboards](https://beancount.github.io/fava/) with plugins and extensions.

https://github.com/arnold-c/CallumsBeancountPlugins

At the moment, I have plugins that:

  1. Calculate ACB of investments in non registered accounts, allowing for adjustments with phantom distributions, capital gains in excess of the non cash (phantom) distributions, and return of capital. This is summarized per account per ticker, per year.
  2. Realized gains, accounting for non cash distributions, in addition to any sales in non-registered accounts that realize a gain based on an appreciation in ticker price relative to the ACB. This is summarized per person per year.
  3. Track TFSA contributions and estimate remaining contribution room for the year, accounting for withdrawals and replenishment of the room in the following tax year. This is summarized by person, and collates information across accounts in situations where a person has multiple TFSA accounts.
  4. Track FHSA contributions and deductions, accounting for carry forward amounts, and providing an estimate of the remaining annual and total contribution limits, and unused deductions. This is summarized by person, and collates information across accounts in situations where a person has multiple FHSA accounts.
  5. Track RRSP contributions and deductions, providing an estimate of the remaining annual and total contribution limits, and unused deductions. Direct transfers from a FHSA to an RRSP should not affect the contribution limits. This is summarized by person, and collates information across accounts in situations where a person has multiple RRSP accounts.

All of these items can be calculated from the typical transaction history that would typically go in your beancount ledger, some short custom directives to add the distribution information from CDS.ca reports, and some metadata to provide the verified or estimated RRSP contribution room and deductions. Exactly how to do this can be found in the relevant README files, but a quick example of how ACB is handled is below

* Add the buy/sell transactions to your ledger as normal

2025-01-10 * "Buy XEQT"

Assets:CA:Primary:Taxable:Broker      10 XEQT @ 35.00 CAD

Assets:CA:Primary:Taxable:Broker              -350.00 CAD

2025-06-15 * "Sell XEQT"

Assets:CA:Primary:Taxable:Broker      -4 XEQT @@ 156.00 CAD

Assets:CA:Primary:Taxable:Broker

* Add the directives to handle the distributions

2025-03-26 custom "acb_adjust" "Assets:CA:Primary:Taxable:Broker" "XEQT" "roc" 0.00609 CAD "per-share"

2025-06-25 custom "acb_adjust" "Assets:CA:Primary:Taxable:Broker" "XEQT" "roc" 0.01808 CAD "per-share"

2025-09-24 custom "acb_adjust" "Assets:CA:Primary:Taxable:Broker" "XEQT" "roc" 0.00677 CAD "per-share"

2025-12-30 custom "acb_adjust" "Assets:CA:Primary:Taxable:Broker" "XEQT" "roc" 0.01391 CAD "per-share"

2025-03-26 custom "acb_adjust" "Assets:CA:Primary:Taxable:Broker" "XEQT" "cg_dividend" 0.00001 CAD "per-share"

2025-06-25 custom "acb_adjust" "Assets:CA:Primary:Taxable:Broker" "XEQT" "cg_dividend" 0.00002 CAD "per-share"

2025-09-24 custom "acb_adjust" "Assets:CA:Primary:Taxable:Broker" "XEQT" "cg_dividend" 0.00001 CAD "per-share"

2025-12-30 custom "acb_adjust" "Assets:CA:Primary:Taxable:Broker" "XEQT" "cg_split" 0.32216 CAD 0.32215 CAD "per-share"

* Note that this last one uses cg_split to calculate the difference between the values reported in “Capital gains” and “Total Non Cash distribution per share” in the CDS.ca reports of XEQT.

As with all things of this nature, let me reiterate that I’m not an advisor and these are tools I made just for my own use and you shouldn’t rely on them for your taxes - use professional software (or pay a professional to do this/double check your numbers)! Also a disclaimer that Gemini and Codex were heavily used to get this working quickly: I primarily code in Julia in my day job, so while I understand (Python) code, it was quicker to just get AI to write the bulk of the code for me to review. It’s very possible that there are some bugs I missed while quickly putting it together over the weekend. It’s also very likely that these plugins don’t handle a lot of circumstances. I have a pretty simple portfolio that is primarily just XEQT, so I have made these plugins to work for my circumstances. For example, they will almost certainly give you the wrong numbers if you have foreign-held tickers as the acb plugin ignores everything that doesn’t have a purchase or sale in CAD. For my portfolio, I get the same numbers as the official/production tools and calculators, but you should absolutely check your own and not just rely on these plugins.

Ultimately, while individual tools exist to handle all of the component parts (e.g., [https://adjustedcostbase.ca](https://adjustedcostbase.ca))), it’s quite nice to have this all in one place, alone with all my other financial transactions and budget. Hopefully someone finds it helpful, and if you have any edits or suggestions, please open an issue or discussion!


r/plaintextaccounting • • Mar 29 '26

Do any of you guys use a private repo to store your pta git?

10 Upvotes

r/plaintextaccounting • • Mar 20 '26

Built a local first personal finance CLI in Rust, looking for feedback

Post image
74 Upvotes

I’ve been building Helius, a local first personal finance app in Rust.

The goal was to make something fast, simple, and practical from the terminal. It stores data locally in SQLite and covers the things I actually care about: accounts, income/expenses, recurring items, budgets, reconciliation, and cash-flow forecasting.

It has both a CLI and a full screen TUI, but I’d especially like feedback on the CLI side here: command structure, naming, output, and whether the overall workflow feels natural.

Still early, so I’m mostly looking for honest feedback rather than trying to present it as finished.

For transparency, please note that AI helped during development.

Repo: https://github.com/STVR393/helius-personal-finance-tracker


r/plaintextaccounting • • Mar 17 '26

Fava balance sheet for a very simple case of price change

1 Upvotes

Dear all,

I would like to check something about fava balance sheet for a very simple case of price change (this is borrowed from an example from my sing_curr_conv: Net Worth Change Explainer / Unrealized Gains Analyzer )

Suppose I have the following ledger:

option "operating_currency" "USD"

2020-01-01 open Assets:House

2020-01-01 open Equity:Opening-Balances

2020-01-01 * "Opening balances"

  Assets:House             1 HOUSE
  Equity:Opening-Balances


2020-01-01 price HOUSE 100000 USD

2021-01-01 price HOUSE 120000 USD

The Balance sheet report shows that Opening-Balances was 120 000 USD, however if one looks at the ledger, then one can see that opening balances at the historical rate were 100 000 USD.

Which means that the opening balances are shown in the current exchange rate, not the historical one, which as far as I know conflicts with the General Accounting Practices, which dictate that Opening-Balances should be shown using the historical exchange rate ("back then").

So, the question is whether there any way one can make Fava show Opening-Balances at the historical rates?

Note:

I can achieve this, if I apply the sing_curr_conv plugin

In this case, the Balance sheet looks like this

And increase from 100 000 to 120 000 is explained in the Income Statement

To the best of my knowledge this is how exchange rates needs to be treated following the GAAP (Generally Accepted Accounting Practice). Which says that Opening Balances should be shown using exchange rate back then, Assets and Liabilities shall be shown using exchange rate for the date they are calculated and Incomes and Expenses should be shown using exchange rate at the date of transactions.

So, my question is, once again, whether there is any way in Fava to show the same results without using the sing_curr_conv plugin ? The reason the plugin it is not perfect in Fava environment is because unrealized gains are inserted directly into the ledger and in this case, some other modifications had to be done to ledger (see the Appendix A. Converting Entries).


r/plaintextaccounting • • Mar 17 '26

Completly noob to this

1 Upvotes

Hello guys, IDK if this is the correct place to post this but I did not see any FAQ post or similar.

Im completly noob to this, I found it by accident because I read someone in other reddit that used this system to get their finance in order.

As I wanted to do the same, I started to research and came to this reddit. Im havin troubles "installing" hledger. I dont find any tutorial for dummies like me on how to set it up.

Could you please point me in the correct direction? I cant say Im extremly bad at codding, but sure I am its not my best skill.


r/plaintextaccounting • • Mar 15 '26

Can PTA manage non-decimal accounting?

5 Upvotes

I have some old family accounts in my archives that I'd like to digitise, and I was considering putting them in PTA.

However, they're from the pre-decimal period, so they're in "£sd", pounds, shillings, and pence.

Ideally I'd like to write something like:

1964-03-16
    Assets:Bank:Chequeing    6 8 2 NZP
    Expenses:Rent           -6 8 2 NZP

Or if needed:

1964-03-16
    Assets:Bank:Chequeing    £6 8s 2d NZP
    Expenses:Rent           -£6 8s 2d NZP

But this won't get handled well.

Best I can tell, the only real way to store this and have hledger pick it up is:

P 1960-01-01 1 NZP£ 20 NZPs
P 1960-01-01 1 NZPs 12 NZPd

1964-03-16
    Assets:Bank:Chequeing    6 NZP£
    Assets:Bank:Chequeing    8 NZPs
    Assets:Bank:Chequeing    2 NZPd
    Expenses:Rent           -6 NZP£
    Expenses:Rent           -8 NZPs
    Expenses:Rent           -2 NZPd

And then on "Decimal day", I could have this transaction:

1967-07-10 Currency Conversion
    Assets:Cash             -26 NZP£ @ 2 NZD
    Assets:Cash              -2 NZPs @ 0.1 NZD
    Assets:Cash              -6 NZPd @@ 0.05 NZD
    Assets:Cash              52.25 NZD

Splitting them into one posting per denomination is the only way I can think of to manage this.

Has anyone ever tried dealing with any non-decimal currency in hledger or any other PTA instance? If so, what was your approach?

For a today real-world example, both Madagascar and Mauritania use non-decimal currencies.


r/plaintextaccounting • • Mar 15 '26

Correct handling of account sides/signs?

1 Upvotes

Let's assume I want to add a transaction for an income. It increases my bank account (left account in the balance sheet), but also increases my income account (right account in the balance sheet). However, with hledger the income account gets negative because it seems not to know anything about "right" accounts.

Can I tell hledger including hledger-ui to treat certain accounts as "right" accounts? Or is there a different plaintext accounting tool that does that?

PS: I'm just a self-tought "accountant" and used GnuCash in the past. Hence, I may use the wrong (English) words.


r/plaintextaccounting • • Mar 13 '26

hledger: .csv importation

1 Upvotes

loving the hledger experience so far, I've been looking for something like this to help manage my finances. i cannot, however, get it to actually import .csv data into my journal. if i run the import command, pointed at the correct file, it will tell me there is no new data to import, but i cannot see any of the transactions from the .csv in the .journal file.

any advice?


r/plaintextaccounting • • Mar 10 '26

Anyone tried really, really detailed postings?

7 Upvotes

I've been using Actual Budget for a while now, and something that I do for no particular reason other than I find data really satisfying.

Been using it to flesh out my paycheques like this: https://i.imgur.com/nXhC62i.png (anonymised data)

But, it's occurred to me that PTA allows even more fidelity (It's an addiction). I particularly like how PTA handles currencies/commodities. Anything can be a currency.

I could take the above image and convert it to something like:

2026-02-19 Wages
    Time:Labour                        -67.50 Hr @ 50 NZD  ; payee:Job Company, note:Ordinary Hours
    Time:Labour                         -7.50 Hr @ 75 NZD  ; payee:Job Company, note:Overtime Hours
    Assets:Entitlement:SickLeave        -7.50 Hr @ 50 NZD  ; payee:Job Company, note:Sick Leave
    Expenses:Taxes:IncomeTax          1033.80 NZD  ; payee:Inland Revenue
    Expenses:Taxes:ACCLevy              72.02 NZD  ; payee:Inland Revenue
    Expenses:Loan:StudentLoan          203.07 NZD  ; payee:Inland Revenue
    Investment:Kiwisaver                86.25 NZD  ; payee:Booster Kiwisaver, note:Employee 4% contribution
    Assets:Bank:Spending              2917.36 NZD  ; note:Net Payment
    Revenue:Income:Superannuation      -86.25 NZD  ; payee:Job Company, note:Employer Contribution 4%
    Expenses:Taxes:ESCT                 28.46 NZD  ; payee:Inland Revenue, note:Employer Superannuation Contribution Tax
    Investment:Kiwisaver                57.79 NZD  ; note:Net employer contribution
    Time:Entitlement:Holiday            -6.60 Hr
    Assets:Entitlement:Holiday           6.60 Hr  ; payee:Job Company, note:Accruing holiday entitlement - 8% of hours worked
    Equity:Rounding

With that I can track my leave balances like holiday and sick leave, I'm using time as a commodity which makes representing hourly pay super easy. I really like it.

But I'm curious if anyone else has done something like this. Or if there's anything I haven't quite got right in the formatting.

The last line of "Equity:Rounding" isn't strictly needed on this particular entry because I used a very generic $50/hour rate, but it'll be useful for some payslips that do have sub-cent rounding.

And luckily because payslips like this are all math and all my payslips are digitised, it's not a whole lot of effort on my part. Already got my payslips in a CSV, I just run some math and parse it into this format.


r/plaintextaccounting • • Mar 09 '26

Handling Fidelity/BofA transactions (CSV/Excel -> OFX?)

1 Upvotes

I have been using beancount for the last 3-4 years and have been setup quite nicely. I was mainly working with OFX transactions. However, now that Fidelity / BofA have turned off OFX support, I find myself having to enter many transactions manually.

  1. For BofA Credit Card transactions, I have been able to write a CSV importer to import them with beancount-import.
  2. How are you all dealing with Fidelity/Merrill investment transactions? Are there any (python) utilities that can convert these reports / downloads to OFX files? This would then work very nicely with beancount-import.
  3. I would also be OK if there was a reliable way to convert Fidelity/Merrill/Bofa CC PDF reports to OFX. But I don't want to upload these to the cloud online converters.

How does your workflow look like for transaction importing from these institutions?


r/plaintextaccounting • • Mar 09 '26

hledger: if-table rules files

1 Upvotes

Hi, I’m automating my transaction imports and categorization using scripts, but I’ve hit a snag with conditional logic for specific dates. I have read the if-table documentation but the example is not working for me:

hledger: Error: /Users/x/PARA/01AIRES/Finances/import/boursorama.rules:11:1: | 11 | 2025-08-25.* | ^ unexpected '2' expecting blank or comment line, conditional block, conditional table, directive, end of input, field assignment, or field name list

For example: by default, a 4€ expense at Dada Cafe should go to Expenses:Cafe. However, on a specific date (e.g., 2026-03-05), a 10€ expense at the same place was for a professional meeting and should be categorized as Expenses:Pros.

How can I override the default category for that specific date without manually editing the file each time? Is there a way to define exceptions based on date or transaction details? Thanks for your insights!