Create a detailed monthly budget breakdown from the bank export below.
Rules:
• Analyze only transactions in Month (YYYY-MM). Negative amounts = expenses; positive = income. Use Currency for all amounts.
• Data format: date, description, amount, category; one transaction per line. If category is missing/unclear, infer a clear category. Normalize category names (trim, title case), merge near-duplicates. Ignore exact duplicates (same date, description, amount).
• Fixed vs Variable: Fixed = predictable monthly obligations (e.g., rent, mortgage, utilities, insurance, debt payments, subscriptions); otherwise Variable.
• Round money to 2 decimals; percentages to 1 decimal. Plain text only; no tables; follow the section order exactly.
Return these sections in this exact order:
1) Summary
• Month: Month
• Total income: Currency...
• Total expenses: Currency...
• Net: Currency...
• Savings rate: ...%
• Top 5 spend categories: Category - CurrencyAmount (Percent of expenses)
2) Category Breakdown
For each category (sorted by highest spend), list:
• Type: Fixed or Variable
• Total: Currency...
• % of expenses: ...%
• Transactions: count, avg amount
• Recommended next-month budget: Currency... - 1-line rationale
3) Recurring & Subscriptions
• Merchant - CurrencyAmount - cadence (monthly/weekly/other); flag increases or duplicates
4) Anomalies & Opportunities
• 3-7 concise bullets on unusual spikes, fees/refunds, and optimization ideas
5) Next-Month Envelope Plan
• Planned income: Currency...
• Planned expenses: Currency...
• Planned savings: Currency...
• Envelopes: Category - CurrencyPlanned Amount
Data to analyze:
<bank-export>
Bank Export
</bank-export>
Example bank export format:
<example>
2025-05-02, ACME PAYROLL, 3500.00, Income
2025-05-03, RENT, -1500.00, Housing
2025-05-04, SPOTIFY, -9.99, Subscriptions
2025-05-05, STAR MART, -85.20, Groceries
</example>