Python + Pandas: Automate Your Weekly Business Reports
Tired of spending 2 hours every Monday on the same reports? Here's how to automate them.
The Problem
Most small businesses generate reports manually:
- Export data from multiple sources
- Paste into Excel or Sheets
- Format, calculate, visualize
- Email to stakeholders
This takes 2-4 hours/week. That's 100-200 hours/year.
Core Script
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime, timedelta
def generate_weekly_report(data_file, output_dir):
df = pd.read_csv(data_file)
df['date'] = pd.to_datetime(df['date'])
last_week = datetime.now() - timedelta(days=7)
weekly = df[df['date'] >= last_week]
metrics = {
'total_revenue': weekly['revenue'].sum(),
'new_customers': weekly['new_customers'].sum(),
'avg_order': weekly['revenue'].mean(),
}
fig, axes = plt.subplots(2, 2, figsize=(12, 8))
weekly.groupby('date')['revenue'].sum().plot(ax=axes[0,0], title='Daily Revenue')
weekly.groupby('date')['new_customers'].sum().plot(ax=axes[0,1], title='New Customers')
plt.tight_layout()
plt.savefig(f"{output_dir}/report_{datetime.now().strftime('%Y_%m_%d')}.png")
return metrics
Scheduling It
import schedule
def run_weekly():
metrics = generate_weekly_report('sales.csv', 'reports/')
print(f"Revenue: ${metrics['total_revenue']:,.2f}")
schedule.every().monday.at('08:00').do(run_weekly)
Real Impact
A Shopify store owner I worked with saved 3 hours every Monday after setting this up.
That's 156 hours/year. At $50/hour value of time, that's $7,800/year saved.
Get 12 Automation Scripts
This report generator plus 11 more business automation scripts (invoicing, email, inventory, web scraping) for $9:
Python Business Automation Toolkit
One-time purchase, instant download, full source code.
Top comments (0)