The biggest benefit is that it makes beancount Turing-complete, so you can use typescript to write recurring bills.
import { EAccountType, Ledger, utils } from "../index.js"; const { USD, CNY } = utils.createCurrencies({ defaultDate: "1970-10-01" }, [ "USD", "CNY", ] as const); const Assets = utils.buildAccountHierarchy(USD, EAccountType.Assets, { CN: { Cash: utils.createAccountNodeConfig({ open: "1970-01-01", currency: CNY }), }, Cash: utils.createAccountNodeConfig({ open: "1970-01-01" }), UTrade: { Account: { AAPL: utils.createAccountNodeConfig({ open: "1970-01-01" }), EWJ: utils.createAccountNodeConfig({ open: "1970-01-01" }), }, }, }); const Expenses = utils.buildAccountHierarchy(USD, EAccountType.Expenses, { Food: { Groceries: utils.createAccountNodeConfig({ open: "1970-01-01" }), Alcool: utils.createAccountNodeConfig({ open: "1970-01-01" }), }, }); const ledger = new Ledger( [ ...utils.flattenAccountHierarchy(Assets), ...utils.flattenAccountHierarchy(Expenses), ], [USD, CNY] ); const { tr } = utils.transactionBuilder(ledger); tr( "1970-01-01", "Distribution of cash expenses", Assets.Cash.posting(-300), Expenses.Food.Alcool.posting(300) ); console.log(utils.beanCount.serializationLedger(ledger)); -- 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 beancount+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/a52e830a-de80-484e-8ad3-c6fe4f444409n%40googlegroups.com.