Hi all - 

I wanted to share a scheduled transaction repo I've been vibe coding as I 
learned Beancount over the past few months. It's still a work in progress 
but I've been using it consistently.

beanschedule <https://github.com/slimslickner/beanschedule> provides two 
primary features: a plugin for forecasting scheduled transactions and a 
hook for augmenting imported transactions.

Every schedule is defined as a yaml file with match logic, recurrence 
rules, and expected postings. Currently, the only "dynamic" posting is loan 
amortization which would include accounts like Interest and Principal; the 
basic match is just a cost range.

Beangulp Import Hook
If you use the import hook, then imported transactions will be matched with 
metadata and postings applied. Missing schedules are logged as part of the 
beangulp logging.

Schedules Plugin
If you use the plugin, then forward looking transactions are added to the 
ledger in the same style as the `beanlabs.plugins.forecast.py` transactions 
with a `#` flag. I currently have this commented out most of the time 
because past forecasted transactions (e.g. the transaction hasn't posted 
yet) will mess with balance assertions, but it can be helpful to see cash 
flow (obviously, doesn't capture non-scheduled transactions).

CLI
Beanschedule provides a CLI, `beanschedule`, with a few commands for 
viewing loan amortization, detecting existing recurring transactions, 
summarizing configured schedules, and a few more commands (see the docs and 
code).

Roadmap
The roadmap is mostly administrative, specifically improving the formatting 
and making the repo more Ruff-compliant.

--- 

This is my first "real" open repo so I'd love to get any feedback! I'd love 
feedback on the repo, documentation, or feature requests! I know there are 
some *similar* implementations and some of the stuff that's been built here 
may not be super beancount-esque, so I'd love to hear about how I can 
improve the style. To be clear, this is *heavily vibe coded*, I don't want 
to claim credit for most of the code, but wanted to share with the 
community in case something like this is helpful for someone else.

It's very much a set-and-forget library, once schedules are onboarded, it's 
a pretty easy maintenance process.

---

Thanks all!
Tim

-- 
You received this message because you are subscribed to the Google Groups 
"Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/beancount/0d2b86cc-be4e-4dc0-b3ec-5dceba0d639en%40googlegroups.com.

Reply via email to