Thanks for the replies and the insights. I appreciate the discussion—thank you!
I found Oscar’s suggestion to be better suited to my needs. On Saturday, March 21, 2026 at 5:27:51 AM UTC+2 Oscar Ale wrote: > For bill tracking I use a separate 'Liability:Bills' account for each of > my bills, this helps me see due dates and makes sure the expenses for each > bill land on the month it is due, not on the day the money left my account. > For example I may pay my April electricity bill in March, but the expense > will show up for April. My process is as follows: > > > > *1) Receive statement or bill:* Record bill transaction with due date as > the transaction date. Flag as '!' because it is yet unpaid. Tag with > '#bill' and a link for that month '^electricity-2026-04'. Increase > 'Liability:Bill:Electricity' debt (money owed) and expense the bill to the > appropriate expense account 'Expenses:Utilities:Electricity' > > > > 2026-04-10 ! "Xcel Energy" "April electricity bill" #bill > ^electricity-2026-04 > Expenses:Utilities:Electricity 100.00 USD > Liabilities:Bills:Electricity -100.00 USD > > > > *2) A query* will then show me any outstanding bills I may have with > their due date and amount due: > > > > 1970-01-01 query "pending-bills" " > > SELECT date, account, sum(position) as amount, flag > WHERE account ~ 'Liabilities:Bills' AND flag = '!' > GROUP BY account, flag, date ORDER BY date" > > > > --- > > > > date account amount f > ---------- ----------------------------- ------- - > 2026-04-10 Liabilities:Bills:Electricity -100.00 ! > > > > *3) Pay the bill:* Make a payment to the 'bills' account, (paying money > owed). Tag with '#payment', link to bill transaction > '^electricity-2026-04', and change the original bill transaction flag to > '*' to mark as paid. > > > > 2026-03-20 * "Xcel Energy" "April electricity payment" #payment > ^electricity-2026-04 > Liabilities:Bills:Electricity 100.00 USD > > Assets:Bank:Checking -100.00 USD > > > > 2026-04-10 * "Xcel Energy" "April electricity bill" #bill > ^electricity-2026-04 ; Update original bill flag to '*' > > > Expenses:Utilities:Electricity 100.00 USD > Liabilities:Bills:Electricity -100.00 USD > > > > *4) For credit card payments or loans* where you pay more than what is > owed you can add a pad directive to balance everything correctly and yet > still keep track of the minimum payment due > > > > 2026-04-15 ! "Discover" "Discover April bill" #bill ^discover-2026-04 > Liabilities:Discover:Credit 50.00 USD ; Minimum payment due > Liabilities:Bills:Discover -50.00 USD > > > > 2026-03-20 * "Discover" "Discover April payment" #payment ^discover-2026-04 > Liabilities:Bills:Discover 100.00 USD ; Actual amount paid > > Assets:Bank:Checking -100.00 USD > > > > 2026-04-15 pad Liabilities:Bills:Discover Liabilities:Discover:Credit ; > Pad on date of bill due, or if you paid late, on date you made the payment > > > 2026-04-16 balance Liabilities:Bills:Discover 0.00 USD ; Balance on day > after the pad directive > > > "Felipe M." [email protected] – March 19, 2026 11:57 AM > > > I do it pretty much the same way as Oscar, but with a twist. In Brazil > it's common to buy things in installments and I wanted to track the total I > still owe (future installments), the current credit card bill and account > for the full value of the expense when the transaction took place rather > than spreading it out. This is what I came up with (for purchases with > installments only). > > > > This is the transaction the registers the full value of the purchase > (disregard the extra metadata, this is for a script I'm working on) > > > 2025-11-20 * "Pedra de pizza" "Mercadolivre*Brasart" ^pedra-pizza > > installments_summary: TRUE > > installments_link: "pedra-pizza" > > Expenses:Hobbies:Cooking > 158.96 BRL > > Liabilities:Felipe:BR:Nubank:Credit:Installments:BRL > -158.96 BRL > > > This is one of the installments "moving" liability from the pool of future > installments, to the current credit card bill. You can see this is > installment ("parcela") 2 of 4. This means I've paid 1 already (NOV), I'm > paying one now (DEC) and there are two more to come (JAN and FEB) before > I'm done. > > > 2025-12-20 * "Mercadolivre*Brasart - Parcela 2/4" "Pedra de pizza" ^ > pedra-pizza > > Liabilities:Felipe:BR:Nubank:Credit:CurrentMonth:BRL > -39.74 BRL > > date: 2025-12-20 > > ofx_fitid: "6940555d-bd20-4897-9594-1864584829ab" > > ofx_memo: "Mercadolivre*Brasart - Parcela 2/4" > > ofx_type: "STMTTRN" > > Liabilities:Felipe:BR:Nubank:Credit:Installments:BRL > 39.74 BRL > > > > > > These are the accounts involved: > - Expense account charged for the full purchase when the transaction took > place: Expenses:Hobbies:Cooking > - Temporary liability account that is initially charged with the full > amount but is deducted from as pay monthly installments: > Liabilities:Felipe:BR:Nubank:Credit:Installments:BRL > - Liability account for the current credit card bill I'll have to pay at > the end of the cycle: Liabilities:Felipe:BR:Nubank:Credit:CurrentMonth:BRL > > Also not sure this is the correct way but it works for me and numbers add > up. > > @Oscar I'm interested in how you've set this up to make sure you don't > miss payments. Could you share it? > > On Wednesday, March 18, 2026 at 4:16:29 PM UTC-3 Oscar Ale wrote: > > > I'm going to assume that the two 'problems' you have is that you want to > know 'how' to record credit card transactions using beancount, if not, > disregard this and use the importers as Martin suggested. > > This is how I manage my credit card transactions, statement reconciliation > and due dates, may not be the correct way but it works for me. Credit cards > are a liability and carry a negative balance. > > > > 1) Record opening balance (if you are not importing all of your > transaction history) > > > 2026-01-01 * "Discover" "Opening credit card balance" > Liabilities:Discover:Credit -1000.00 USD > Equity:Opening 1000.00 USD > > > 2) Record/import transactions as they happen, positive for expense > accounts, negative (increase debt) for liability account > > > 2026-01-05 * "Supermarket" "Groceries" > Expenses:Groceries 50.00 USD > Liabilities:Discover:Credit -50.00 USD ; Increase debt > > > > 2026-01-10 * "Amazon" "Supplies and clothes" > Expenses:Clothes 40.00 USD > Expenses:Supplies 30.00 USD > Liabilities:Discover:Credit -70.00 USD ; Increase debt > > > 3) When you receive your statement record interest accrued and run a > balance to check against your statement balance > > > 2026-01-15 * "Discover" "Interest" > Expenses:Interest:Discover 30.00 USD > Liabilities:Discover:Credit -30.00 USD ; Increase debt > > > > 2026-01-16 balance Liabilities:Discover:Credit -1150.00 USD > > > 4) Record your credit card payment, you can add some meta data or a tag to > show for which bill it was for, or the due date > > > 2026-01-20 * "Discover" "Credit card payment for 2026-02" #discover-2026-02 > due: 2026-02-15 > Liabilities:Discover:Credit 100.00 USD ; Decrease debt > Assets:Bank:Checking -100.00 USD > > > If you are wanting to track your bills/due dates in a more granular way so > that you don't miss a payment or you want to keep track of which payments > you've already made, I have a method to do that as well, but this should > suffice for basic credit card management and to check your balance. > > > > "Yitzhak Dashevsky" [email protected] – March 17, 2026 5:21 PM > > > > > I use my credit card on a daily basis, and at the end of the month I > receive a statement. I have two problems: first, I need to record each > transaction to keep track of my expenses; second, I need to record the > total outstanding balance along with the payment due date. > Do you have any ideas on how to solve these issues? > > > > -- > 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/8cd708ce-2d4b-469f-be7a-bc73450a5b3cn%40googlegroups.com > > <https://groups.google.com/d/msgid/beancount/8cd708ce-2d4b-469f-be7a-bc73450a5b3cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > > > > > -- > 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/3738aa5a-2a2b-4fe5-8484-17d826f0fc31n%40googlegroups.com > > <https://groups.google.com/d/msgid/beancount/3738aa5a-2a2b-4fe5-8484-17d826f0fc31n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > > > -- 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/b9105803-7b76-41f0-93a2-b7bad4905e3bn%40googlegroups.com.
