Skip to content
All Skills

50/30/20 Budget Planner

Creates a personalized monthly budget using the 50/30/20 framework. Calculates target allocations from income, maps actual spending from CSV data, and identifies overspending. Prerequisites: python3.

Finance & Budgeting|v1|Updated 5/18/2026
MCP get_skill({ skillId: "50-30-20-budget-planner-ecb20b80" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# 50/30/20 Budget Planner

Build a monthly budget using the 50/30/20 framework: 50% needs, 30% wants, 20% savings/debt. Maps your actual spending to targets.

## When to Use

- "Create a monthly budget for me"
- "How should I split my $5000/month salary?"
- "Am I spending too much on wants?"

## Requirements

- **python3** for calculations
- Optional: Bank CSV for actual-vs-budget comparison

## Workflow

### Step 1 — Collect Income Details

Gather:
- **Take-home pay** (after tax, per month)
- **Additional income** (side hustles, freelance, etc.)
- **Irregular income?** (if variable, use average of last 3 months)

### Step 2 — Calculate 50/30/20 Targets

```bash
python3 << 'PYEOF'
import json

income = {MONTHLY_INCOME}

budget = {
    "income": income,
    "needs_50": {
        "target": income * 0.50,
        "items": {
            "Housing (rent/mortgage)": 0,
            "Utilities (electric, water, internet)": 0,
            "Groceries": 0,
            "Transportation (gas, transit, insurance)": 0,
            "Health insurance": 0,
            "Minimum debt payments": 0,
        }
    },
    "wants_30": {
        "target": income * 0.30,
        "items": {
            "Dining out": 0,
            "Entertainment/subscriptions": 0,
            "Shopping": 0,
            "Hobbies": 0,
            "Personal care": 0,
        }
    },
    "savings_20": {
        "target": income * 0.20,
        "items": {
            "Emergency fund": 0,
            "Retirement (401k/IRA)": 0,
            "Extra debt payments": 0,
            "Investment": 0,
            "Short-term savings goals": 0,
        }
    }
}

print(f"Monthly income: ${income:,.2f}")
print(f"  Needs (50%):    ${budget['needs_50']['target']:,.2f}")
print(f"  Wants (30%):    ${budget['wants_30']['target']:,.2f}")
print(f"  Savings (20%):  ${budget['savings_20']['target']:,.2f}")

with open('outputs/finance/budget-template.json', 'w') as f:
    json.dump(budget, f, indent=2)
PYEOF
```

### Step 3 — Fill in Actual Amounts

Ask user for actual monthly spending in each category, or pull from a CSV analyzer output if available.

### Step 4 — Generate Budget Report

```markdown
# Monthly Budget — {MONTH} {YEAR}
💰 Take-home income: ${INCOME}/mo

## 🏠 Needs (50% = ${TARGET})
| Category | Budget | Actual | Status |
|----------|--------|--------|--------|
| Housing | ${X} | ${X} | ✅ / 🔴 |
| Utilities | ${X} | ${X} | |
| Groceries | ${X} | ${X} | |
| Transport | ${X} | ${X} | |
| Insurance | ${X} | ${X} | |
| **Total Needs** | **${T}** | **${A}** | {over/under} |

## 🎉 Wants (30% = ${TARGET})
| Category | Budget | Actual | Status |
|----------|--------|--------|--------|
| Dining | ${X} | ${X} | |
| Subscriptions | ${X} | ${X} | |
| Shopping | ${X} | ${X} | |
| **Total Wants** | **${T}** | **${A}** | {over/under} |

## 🏦 Savings & Debt (20% = ${TARGET})
| Category | Budget | Actual | Status |
|----------|--------|--------|--------|
| Emergency fund | ${X} | ${X} | |
| Retirement | ${X} | ${X} | |
| Extra debt | ${X} | ${X} | |
| **Total Savings** | **${T}** | **${A}** | {over/under} |

## Recommendations
- {Specific recommendation based on over/under spending}
```

### Step 5 — Save Budget

```bash
mkdir -p outputs/finance
cat > "outputs/finance/budget-{MONTH}-{YEAR}.md" << 'EOF'
{BUDGET_REPORT}
EOF
```

## Important Rules

- 50/30/20 is a starting framework — adjust ratios based on user's situation (high-cost cities may need 60/20/20)
- Never provide investment or tax advice
- Focus on actionable, specific suggestions not generic advice

## Example Prompts

- "Create a budget for $4500/month income"
- "I make $80k/year, build me a 50/30/20 budget"
- "Am I spending too much on wants?"
#finance#budget#planning#pythonpython3