Skip to content

Instantly share code, notes, and snippets.

@StephenBrown2
Last active October 7, 2025 16:10
Show Gist options
  • Save StephenBrown2/166e6801c7e87774238d7f2c59eab684 to your computer and use it in GitHub Desktop.
Save StephenBrown2/166e6801c7e87774238d7f2c59eab684 to your computer and use it in GitHub Desktop.
Actual Envelope Budget Flow Diagram

Envelope Budgeting Flowchart

This flowchart explains how envelope budgeting works in Actual, showing the relationship between transactions in accounts and budget assignments in categories.

High-Level Overview

flowchart LR
    %% Define styles
    classDef stepStyle fill:#e8f5e9,stroke:#4caf50,stroke-width:3px,color:#000000

    Step1["1️⃣ Gather All Your Money<br/><br/>Accounts → To Budget<br/>Track all money across accounts"]
    Step2["2️⃣ Decide What Money Needs to Do<br/><br/>To Budget → Categories<br/>Assign money to categories"]
    Step3["3️⃣ Record Transactions<br/><br/>Categories → Activity<br/>Track spending and activity"]

    Step1 ==> Step2
    Step2 ==> Step3

    class Step1,Step2,Step3 stepStyle
Loading

Detailed Flow

flowchart TD
    %% Define styles
    classDef accountStyle fill:#e1f5ff,stroke:#0288d1,stroke-width:2px,color:#000000
    classDef budgetStyle fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000000
    classDef processStyle fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#000000

    %% Account Area (Transactions)
    subgraph ACCOUNT["📊 ACCOUNT (Transactions)"]
        direction LR
        A1[Income Transaction]
        A2[Categorize as 'Income' or<br/>Income Group Category]

        %% Special case
        SB[Starting Balance<br/>Transaction]
        SB -.-> |Initial funds| A3

        A3[Money becomes<br/>Available 'To Budget']
        A4[Create Transaction]
        A5[Assign Category to<br/>Transaction]

        A1 --> A2
        A2 --> A3
        A4 --> A5
    end

    %% Budget Area (Categories)
    subgraph BUDGET["💰 BUDGET (Categories)"]
        direction LR
        B0[Last Month's Unbudgeted<br/>Carried Forward]
        B1[To Budget Amount<br/>+ Previous Unbudgeted]
        B2[Assign Money to Category<br/>BUDGETED Column]
        B3[Category Balance Updated<br/>+ Previous Category Balance]
        B4[Transaction Activity<br/>SPENT Column]
        B5[Category Balance Adjusted]

        B0 -.-> B1
        B1 --> B2
        B2 --> B3
        B3 -.-> B4
        B4 --> B5
    end

    %% Connections between areas
    A3 ==> |Income flows to budget| B1
    A5 ==> |Transaction affects category| B4
    B0 -.-> |Previous category<br/>balances| B3

    %% Notes
    NOTE1[" 📝 BUDGETED: Amount assigned this month<br/>📝 SPENT: Activity from transactions (negative for outflows)<br/>📝 BALANCE: Previous Balance + Budgeted + Spent"]

    B5 -.-> NOTE1

    %% Apply styles
    class A1,A2,A3,A4,A5,SB accountStyle
    class B1,B2,B3,B4,B5 budgetStyle
    class NOTE1 processStyle
Loading

How Envelope Budgeting Works in Actual

1. Income Phase (Accounts → To Budget)

  • Income transactions are entered in your accounts
  • These are categorized as "Income" or placed in an Income Group Category
  • Special case: Starting Balance transactions also count as income
  • This income becomes Available "To Budget"
  • Any leftover money from previous months also carries forward to "To Budget"

2. Assignment Phase (To Budget → Categories)

  • Available funds appear in the budget as "To Budget" (including any unbudgeted money from last month)
  • You assign money to categories (this updates the BUDGETED column)
  • Each category starts with its previous month's balance carried forward from last month
  • Category balance = Previous Balance + Budgeted this month

3. Activity Phase (Categories → Transactions)

  • When transactions occur in your accounts, you assign them to categories
  • The transaction amount is reflected in the SPENT column (can be positive or negative)
  • The category balance is adjusted accordingly
  • Note: "Spent" really means "activity" - it can increase or decrease based on the transaction

Key Columns in Budget View

  • BUDGETED: The amount of money you've assigned to this category this month
  • SPENT: The total activity from all transactions in this category (negative for outflows, positive for inflows)
  • BALANCE: Previous Balance + Budgeted + Spent (what's left in the envelope)

Important Notes

  • Rollover: Category balances roll over from month to month. If you don't spend all budgeted money, it stays in that category.
  • To Budget Rollover: Any unassigned "To Budget" amount also carries forward to the next month.
  • Activity vs. Spending: The "Spent" column includes all transaction activity. Transactions that bring money back in (like returns or moving money back from savings) reduce the "Spent" amount.

The Envelope Metaphor

Think of each category as an envelope:

  1. 💵 You gather all your money from various sources (accounts → wallet)
  2. 📨 You decide what that money needs to do by putting it into envelopes (To Budget → categories)
  3. � You record when money moves in or out of envelopes (transactions)
  4. 👀 You can see how much is in each envelope at any time (balance)
  5. 🔄 Money stays in envelopes month-to-month until you use it

This system helps you be intentional about what your money needs to do before you spend it!


Sequence Diagram: Envelope Budgeting Flow

This sequence diagram shows the same envelope budgeting process from a time-based perspective, illustrating the interactions between the user, accounts, and budget.

sequenceDiagram
    actor User
    participant Account as 📊 Account<br/>(Transactions)
    participant Budget as 💰 Budget<br/>(Categories)

    Note over User,Budget: Start of Month: Carry Forward Balances
    Budget->>Budget: Previous Unbudgeted money carries forward to "To Budget"
    Budget->>Budget: Previous Category Balances carry forward to Categories
    Budget->>Budget: Previous Category Overspending carries forward to "To Budget"

    Note over User,Budget: Step 1: Gather Your Money (Accounts → To Budget)

    alt Starting Balance
        User->>Account: Create Starting Balance Transaction
    else Regular Income
        User->>Account: Create Income Transaction
    end

    Account->>Budget: Income flows to "To Budget"
    Note right of Budget: Combined with previous balance

    Note over User,Budget: Step 2: Decide What Money Needs to Do (To Budget → Categories)

    User->>Budget: Assign money to Category
    Budget->>Budget: Update BUDGETED column
    Budget->>Budget: Calculate Category Balance
    Note right of Budget: Balance = Prev Category Balance + Budgeted

    Note over User,Budget: Step 3: Record Transactions (Categories → Activity)

    User->>Account: Create Transaction (outflow or inflow)
    User->>Account: Assign Category to Transaction
    Account->>Budget: Updates SPENT column for Category
    Budget->>Budget: Adjusts Category Balance
    Note right of Budget: Balance = Prev Balance + Budgeted + Spent<br/>(Spent is negative for outflows, positive for inflows)

    Note over User,Budget: Result: Category shows<br/>Budgeted, Spent, and Balance<br/>All balances carry to next month
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment