Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal Budget & Spending Analyzer

A beginner-friendly finance data analysis project built with Python, pandas, and Matplotlib.

Project Overview

This project analyzes six months of personal transaction data to understand income, expenses, savings, and spending behavior. The objective is to identify key spending patterns and provide simple financial insights that can support better budgeting and saving decisions.

Financial Problem

The individual wants to understand where their salary goes each month, how much they are able to save, and which spending categories have the greatest impact on their budget. The analysis aims to support decisions about whether spending habits should be adjusted to improve savings.

Objectives

  • Calculate total income, total expenses, net savings, and savings rate.
  • Analyze spending by category.
  • Compare monthly income, expenses, and savings.
  • Identify the highest-spending and lowest-saving months.
  • Create visualizations that make spending patterns easier to understand.
  • Translate the results into simple financial insights and recommendations.

Dataset

The dataset contains 48 fictional personal transactions covering January to June 2026. Each row represents one transaction.

Column Description
Date Date of the transaction
Description Name or short description of the transaction
Category Spending or income category
Amount Transaction amount in euros
Type Indicates whether the transaction is Income or Expense

Methodology

  • Loaded the transaction dataset using pandas.
  • Converted the Date column into a datetime format for time-based analysis.
  • Checked for missing values and duplicate transactions.
  • Calculated core financial KPIs such as total income, total expenses, net savings, and savings rate.
  • Grouped expenses by category to identify the largest spending areas.
  • Analyzed monthly income, expenses, and savings.
  • Created charts to visualize category spending and monthly financial patterns.

Key Financial Metrics

KPI Result
Total Income €15,000.00
Total Expenses €7,123.00
Net Savings €7,877.00
Savings Rate 52.51%
Expense Ratio 47.49%
Average Monthly Spending €1,187.17
Average Monthly Savings €1,312.83
Largest Expense Category Housing
Housing Share of Total Expenses 63.18%
Highest-Spending Month May 2026 (€1,357.00)
Lowest-Spending Month February 2026 (€1,098.00)

Visualizations

Spending by Category

Spending by Category

Monthly Income vs Expenses

Monthly Income vs Expenses

Monthly Savings

Monthly Savings

Monthly Spending Trend

Monthly Spending Trend

Key Insights

  • Sara generated €15,000 in total income and €7,123 in total expenses over the six-month period, resulting in €7,877 in net savings.

  • The overall savings rate was 52.51%, meaning that slightly more than half of total income was retained.

  • Housing was the largest expense category at €4,500 and represented 63.18% of total expenses.

  • Shopping was the largest non-housing expense category, followed by groceries and dining.

  • May 2026 was the highest-spending month at €1,357 and also the month with the lowest savings at €1,143.

  • Monthly spending fluctuated over the six-month period rather than showing a consistent upward or downward trend.

Recommendations

  • Maintain the current overall saving behavior, as the six-month savings rate is strong at approximately 52.5%.

  • Monitor discretionary spending, particularly Shopping and Dining, because these categories contributed to higher spending in months such as May.

  • Consider setting monthly budgets for discretionary categories and comparing actual spending against those limits.

  • Continue tracking additional months before concluding that spending follows a long-term increasing or decreasing trend.

Tools Used

  • Python
  • pandas
  • Matplotlib
  • Visual Studio Code
  • Git
  • GitHub

Project Structure

personal-budget-analyzer/
│
├── data/
│   └── transactions.csv
│
├── charts/
│   ├── spending_by_category.png
│   ├── monthly_income_vs_expenses.png
│   ├── monthly_savings.png
│   └── monthly_spending_trend.png
│
├── analysis.py
├── README.md
├── requirements.txt
└── .gitignore

How to Run the Project

  1. Install the required Python packages:
python -m pip install -r requirements.txt
  1. Run the analysis:
python analysis.py
  1. View the generated charts in the charts folder.

Future Improvements

  • Replace the fictional dataset with real or anonymized banking transaction data.
  • Extend the analysis to cover a longer time period.
  • Add budget targets and compare actual spending against planned limits.
  • Detect unusually high transactions or spending months.
  • Build a simple Streamlit dashboard for interactive exploration.

About

Personal finance data analysis in Python using pandas and Matplotlib to explore spending, savings, and budgeting patterns.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages