Agent Skills
These documents are intended for AI agents and teach your agent how to manage your budget. See the Quickstart guide for setup instructions.
Credit Cards
How credit cards work in Actual Budget
Credit card accounts are on-budget accounts with a negative balance. Actual treats them like any other account — the negative balance is subtracted from your positive deposit account balances to give your total on-budget funds.
When you make a credit card purchase and categorize it, the money comes from that budget category (just like a debit card purchase). The only difference is the timing of when the actual cash leaves your checking account (when you pay the credit card bill).
Key insight: If every credit card purchase is categorized to a funded budget category, you will always have enough money to pay the bill. The budget already accounted for the spending.
Strategy: Paying in Full (Within the Budget)
Use this when you pay off your credit card statement every month.
Rules
- Never over-budget. Only budget funds you actually have
- Check your category balance before spending
- Enter purchase transactions promptly
- Cover all overspending by moving money between categories
- Reconcile accounts at least monthly
- Pay at least your statement balance before the due date
Setup
-
Confirm the account is a credit card (not checking/savings) before creating it.
-
Create the credit card as an on-budget account with a negative starting balance. Include account type in the name:
fscl accounts create "Chase Credit 5736" --balance -35.00- No special budget category needed — each purchase uses your regular expense categories
Monthly workflow
- Throughout the month, categorize every credit card purchase to a funded category
- When the statement arrives, note the New Balance
- Reconcile the account
- Pay the statement balance as a linked transfer from checking:
fscl transactions transfer <checking-acct-id> <chase-acct-id> \
--date 2026-02-15 --amount 213.15 --notes "Statement payment"Strategy: Carrying Debt
Use this when you have a credit card balance you cannot pay in full. The goal is to pay it off safely without incurring more debt.
Setup
- Create a "Credit Card Debt" category group:
fscl categories create-group "Credit Card Debt"- Create a debt category for each card carrying debt:
fscl categories create "Citi Card Debt" --group <debt-group-id>
fscl categories create "DEMO Card Debt" --group <debt-group-id>- Enable rollover overspending on each debt category:
fscl month set-carryover 2026-02 <citi-debt-cat-id> true
fscl month set-carryover 2026-02 <demo-debt-cat-id> true- Create the credit card account with the total amount owed as the starting balance, categorized to the debt category. Include account type in the name:
fscl accounts create "Citibank Credit 4455" --balance -2590.00The starting balance transaction should be categorized to the debt category.
Why rollover is needed
Negative credit card account balances are already subtracted from your available on-budget funds. Without rollover, the negative debt category balance would also be deducted from "To Budget" — double-counting the debt. Rollover prevents this.
Monthly workflow (card with debt, no new purchases)
- At the start of the month, budget the expected minimum payment to the debt category:
fscl month set 2026-02 <citi-debt-cat-id> 90.00- If you have extra money after funding all expenses, add it to the debt category to pay down faster:
fscl month set 2026-02 <citi-debt-cat-id> 290.00 # 90 minimum + 200 extra- When the statement arrives, enter interest and fees as a transaction categorized to the debt category:
fscl transactions add <citi-acct-id> --date 2026-02-10 --amount -64.00 \
--payee "Citibank" --category <citi-debt-cat-id> --notes "Interest charge"- Make the payment as a linked transfer from checking:
fscl transactions transfer <checking-acct-id> <citi-acct-id> \
--date 2026-02-15 --amount 290.00 --notes "CC payment"Monthly workflow (card with debt AND new purchases)
If you must use a card that has existing debt:
- Categorize new purchases to regular funded budget categories (staying Within the Budget)
- When the statement arrives, enter interest/fees to the debt category
- Reconcile the account
- Calculate payment:
- Payment = New Purchases - Return Credits + Uncleared Total + Budgeted Column
- Or equivalently: Account Balance - Debt Category Balance (using absolute values)
- The minimum payment must be at least the statement minimum
Paying off the highest interest first
When carrying debt on multiple cards:
- Budget minimum payments for all cards
- After funding all necessary expenses, add extra to the highest-interest card
- Once the highest-interest card is paid off, redirect that extra payment to the next highest
- Use only one card for new purchases and pay it in full monthly
Linking payments when both accounts are imported
When you import transactions for both the checking account and the credit card, payment entries appear on both sides as standalone transactions — they are not automatically linked as transfers. You must manually link them.
The problem: Checking shows "Payment to Chase Card -$500" and the credit card shows "Payment Thank You $500" as two independent transactions. Both are categorized as "Credit Card Payments" but they aren't connected.
The fix — delete one side, convert the other to a transfer:
-
Identify matching pairs — Match checking outgoing payments with credit card incoming payments by date and amount. Dates may differ by 1-5 days due to processing time.
-
Delete the credit card side — Remove the "Payment Thank You" entries from the credit card. The transfer conversion will recreate them as linked transfers.
fscl transactions delete <payment-thank-you-id> --yes- Convert the checking side to transfers — Use
transactions editto change the payee on checking payment entries to the credit card's transfer payee. Find the transfer payee viafscl payees list --json(look for entries withtransfer_acctmatching the credit card account ID).
fscl transactions edit draft --account <checking-acct-id> --start <date> --end <date>
# In the draft, change "payee" to the credit card's transfer payee ID
# for each payment transaction
fscl transactions edit apply- Verify — Confirm transfers appear on both sides with
transfer_idset:
fscl transactions list <cc-acct-id> --start <date> --end <date> --json
# Look for entries with payee "Chase Checking 5736" and a transfer_idImportant: This also works via transactions edit (not just rules). Setting a transaction's payee to a transfer payee ID converts it into a linked transfer, automatically creating the corresponding entry on the other account.
Important notes
- All credit card accounts should be on-budget (not off-budget)
- Include account type in the account name (for example,
Chase Credit 5736) so account context stays clear in future chats - You cannot change an off-budget account to on-budget — set it correctly from the start
- Only set a credit card as off-budget if there will be no new purchases and the account will be closed once paid off
- A credit limit is not an invitation to spend it
- If you lose your grace period due to late payment, you'll incur interest from purchase date on all new purchases until you pay in full for several consecutive months