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
payment2026-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:BRLAlso 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] view this discussion visit
>>>
https://groups.google.com/d/msgid/beancount/8cd708ce-2d4b-469f-be7a-bc73450a5b3cn%40googlegroups.com.
 
>
>  
> -- 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] view this discussion visit
>
https://groups.google.com/d/msgid/beancount/3738aa5a-2a2b-4fe5-8484-17d826f0fc31n%40googlegroups.com.
 

-- 
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/20260320181247.Horde.bJ7ELXV5L4-iVgZZZQUaQ4F%40cloud.aleyoscar.com.

Reply via email to