Finance Manager A comprehensive toolkit for personal finance management that processes transaction data, performs sophisticated financial analysis, generates actionable insights, and creates beautiful visual reports. Core Capabilities 1. Transaction Data Processing : Extract financial data from PDFs, CSVs, or JSON files 2. Financial Analysis : Calculate key metrics, identify spending patterns, and track savings 3. Visualization : Generate interactive HTML reports with charts and graphs 4. Budget Recommendations : Provide personalized, actionable advice based on spending patterns 5. Trend Anal…

+ context.parsed.toFixed(2);\n }\n }\n }\n }\n }\n });\n \n // Monthly Comparison Bar Chart\n const comparisonCtx = document.getElementById('comparisonChart').getContext('2d');\n new Chart(comparisonCtx, {\n type: 'bar',\n data: {\n labels: [\"2025-10\", \"2025-11\"],\n datasets: [\n {\n label: 'Income',\n data: [1520.0, 5250.0],\n backgroundColor: '#10b981',\n borderRadius: 5\n },\n {\n label: 'Expenses',\n data: [474.79, 1559.07],\n backgroundColor: '#ef4444',\n borderRadius: 5\n }\n ]\n },\n options: {\n responsive: true,\n maintainAspectRatio: false,\n plugins: {\n legend: {\n position: 'top'\n }\n },\n scales: {\n y: {\n beginAtZero: true,\n ticks: {\n callback: function(value) {\n return '

Finance Manager A comprehensive toolkit for personal finance management that processes transaction data, performs sophisticated financial analysis, generates actionable insights, and creates beautiful visual reports. Core Capabilities 1. Transaction Data Processing : Extract financial data from PDFs, CSVs, or JSON files 2. Financial Analysis : Calculate key metrics, identify spending patterns, and track savings 3. Visualization : Generate interactive HTML reports with charts and graphs 4. Budget Recommendations : Provide personalized, actionable advice based on spending patterns 5. Trend Anal…

+ value.toLocaleString();\n }\n }\n }\n }\n }\n });\n \u003c/script>\n\u003c/body>\n\u003c/html>\n","content_type":"text/html; charset=utf-8","language":"markup","size":7803,"content_sha256":"b457a053d3bff89259df76a159c2d2ac7e933ff92584ef348cd44f7f0fc11228"},{"filename":"scripts/analyze_finances.py","content":"#!/usr/bin/env python3\n\"\"\"\nComprehensive financial analysis tool for processing transaction data,\ngenerating insights, and creating visualizations.\n\"\"\"\n\nimport pandas as pd\nimport json\nfrom datetime import datetime\nfrom typing import Dict, List, Tuple\nimport sys\n\n\ndef load_transactions(file_path: str) -> pd.DataFrame:\n \"\"\"Load transaction data from CSV or JSON file.\"\"\"\n if file_path.endswith('.csv'):\n df = pd.read_csv(file_path)\n elif file_path.endswith('.json'):\n df = pd.read_json(file_path)\n else:\n raise ValueError(\"Unsupported file format. Use CSV or JSON.\")\n \n # Convert date column to datetime\n df['Date'] = pd.to_datetime(df['Date'])\n return df\n\n\ndef calculate_summary_stats(df: pd.DataFrame) -> Dict:\n \"\"\"Calculate summary statistics from transaction data.\"\"\"\n total_income = df[df['Type'] == 'Income']['Amount'].sum()\n total_expenses = abs(df[df['Type'] == 'Expense']['Amount'].sum())\n net_savings = total_income - total_expenses\n \n # Category breakdown for expenses\n expense_by_category = df[df['Type'] == 'Expense'].groupby('Income')['Amount'].sum().abs().to_dict()\n \n # Income breakdown\n income_by_source = df[df['Type'] == 'Income'].groupby('Description')['Amount'].sum().to_dict()\n \n return {\n 'total_income': float(total_income),\n 'total_expenses': float(total_expenses),\n 'net_savings': float(net_savings),\n 'savings_rate': float((net_savings / total_income * 100) if total_income > 0 else 0),\n 'expense_by_category': expense_by_category,\n 'income_by_source': income_by_source,\n 'transaction_count': len(df),\n 'date_range': {\n 'start': df['Date'].min().strftime('%Y-%m-%d'),\n 'end': df['Date'].max().strftime('%Y-%m-%d')\n }\n }\n\n\ndef analyze_spending_trends(df: pd.DataFrame) -> Dict:\n \"\"\"Analyze spending patterns and trends.\"\"\"\n expenses = df[df['Type'] == 'Expense'].copy()\n \n # Daily spending average\n date_range = (expenses['Date'].max() - expenses['Date'].min()).days + 1\n daily_avg = abs(expenses['Amount'].sum()) / date_range if date_range > 0 else 0\n \n # Top expenses\n top_expenses = expenses.nlargest(5, 'Amount', keep='all')[['Date', 'Description', 'Amount']].to_dict('records')\n for expense in top_expenses:\n expense['Date'] = expense['Date'].strftime('%Y-%m-%d')\n expense['Amount'] = abs(float(expense['Amount']))\n \n # Category percentages\n category_totals = expenses.groupby('Income')['Amount'].sum().abs()\n category_percentages = (category_totals / category_totals.sum() * 100).to_dict()\n \n return {\n 'daily_average_spending': float(daily_avg),\n 'top_expenses': top_expenses,\n 'category_percentages': {k: float(v) for k, v in category_percentages.items()}\n }\n\n\ndef generate_budget_recommendations(summary: Dict, trends: Dict) -> List[str]:\n \"\"\"Generate personalized budget recommendations based on spending patterns.\"\"\"\n recommendations = []\n \n # Savings rate recommendations\n savings_rate = summary['savings_rate']\n if savings_rate \u003c 10:\n recommendations.append(\"⚠️ Your savings rate is below 10%. Consider reducing discretionary spending.\")\n elif savings_rate \u003c 20:\n recommendations.append(\"💡 Good start! Try to increase your savings rate to 20% for better financial security.\")\n else:\n recommendations.append(\"✅ Excellent savings rate! You're on track for strong financial health.\")\n \n # Category-specific recommendations\n expense_categories = summary['expense_by_category']\n total_expenses = summary['total_expenses']\n \n for category, amount in expense_categories.items():\n percentage = (amount / total_expenses * 100) if total_expenses > 0 else 0\n \n if category == 'Food' and percentage > 15:\n recommendations.append(f\"🍽️ Food spending is {percentage:.1f}% of expenses. Consider meal planning to reduce costs.\")\n elif category == 'Shopping' and percentage > 10:\n recommendations.append(f\"🛍️ Shopping represents {percentage:.1f}% of expenses. Review for unnecessary purchases.\")\n elif category == 'Transportation' and percentage > 15:\n recommendations.append(f\"🚗 Transportation costs are {percentage:.1f}% of expenses. Explore carpooling or public transit options.\")\n \n # Income diversification\n income_sources = len(summary['income_by_source'])\n if income_sources == 1:\n recommendations.append(\"💼 Consider diversifying income sources for financial stability.\")\n elif income_sources > 2:\n recommendations.append(\"✅ Great job diversifying your income streams!\")\n \n return recommendations\n\n\ndef create_visualization_data(df: pd.DataFrame) -> Dict:\n \"\"\"Prepare data structure for visualization.\"\"\"\n expenses = df[df['Type'] == 'Expense'].copy()\n income = df[df['Type'] == 'Income'].copy()\n \n # Category spending data\n category_data = expenses.groupby('Income')['Amount'].sum().abs().to_dict()\n \n # Daily spending trend\n expenses['Date_Only'] = expenses['Date'].dt.date\n daily_spending = expenses.groupby('Date_Only')['Amount'].sum().abs()\n daily_trend = [{'date': str(date), 'amount': float(amount)} for date, amount in daily_spending.items()]\n \n # Income vs Expenses over time\n expenses['YearMonth'] = expenses['Date'].dt.to_period('M').astype(str)\n income['YearMonth'] = income['Date'].dt.to_period('M').astype(str)\n \n monthly_expenses = expenses.groupby('YearMonth')['Amount'].sum().abs()\n monthly_income = income.groupby('YearMonth')['Amount'].sum()\n \n monthly_comparison = []\n all_months = sorted(set(monthly_expenses.index) | set(monthly_income.index))\n for month in all_months:\n monthly_comparison.append({\n 'month': month,\n 'income': float(monthly_income.get(month, 0)),\n 'expenses': float(monthly_expenses.get(month, 0))\n })\n \n return {\n 'category_spending': category_data,\n 'daily_trend': daily_trend,\n 'monthly_comparison': monthly_comparison\n }\n\n\ndef main():\n if len(sys.argv) \u003c 2:\n print(\"Usage: python analyze_finances.py \u003ctransaction_file.csv>\")\n sys.exit(1)\n \n file_path = sys.argv[1]\n \n # Load data\n df = load_transactions(file_path)\n \n # Generate analysis\n summary = calculate_summary_stats(df)\n trends = analyze_spending_trends(df)\n recommendations = generate_budget_recommendations(summary, trends)\n viz_data = create_visualization_data(df)\n \n # Compile full report\n report = {\n 'summary': summary,\n 'trends': trends,\n 'recommendations': recommendations,\n 'visualization_data': viz_data\n }\n \n # Output as JSON\n print(json.dumps(report, indent=2))\n\n\nif __name__ == \"__main__\":\n main()\n","content_type":"text/x-python; charset=utf-8","language":"python","size":6933,"content_sha256":"d545e515ba4986b93c609e0fed1f020b4d9c88fadc0d3845899e5c9aa7711c6e"},{"filename":"scripts/extract_pdf_data.py","content":"#!/usr/bin/env python3\n\"\"\"\nExtract financial transaction data from PDF files and convert to CSV format.\n\"\"\"\n\nimport sys\nimport csv\nimport re\nfrom datetime import datetime\n\n\ndef extract_tables_from_pdf(pdf_path: str) -> list:\n \"\"\"Extract table data from PDF using pdfplumber.\"\"\"\n try:\n import pdfplumber\n except ImportError:\n print(\"Error: pdfplumber not installed. Install with: pip install pdfplumber --break-system-packages\")\n sys.exit(1)\n \n all_transactions = []\n with pdfplumber.open(pdf_path) as pdf:\n for page in pdf.pages:\n tables = page.extract_tables()\n for table in tables:\n if table:\n # First row is usually headers\n headers = table[0] if table else []\n \n # Process data rows\n for row in table[1:]:\n if row and len(row) >= 5:\n # Skip empty rows or header rows\n if not row[0] or 'Date' in str(row[0]):\n continue\n \n try:\n # Parse the row: [Date, Description, Income/Category, Type, Amount]\n date_str = str(row[0]).strip()\n description = str(row[1]).strip()\n category = str(row[2]).strip()\n trans_type = str(row[3]).strip()\n amount_str = str(row[4]).strip().replace(',', '')\n \n # Parse date\n date = datetime.strptime(date_str, '%b %d, %Y').strftime('%Y-%m-%d')\n \n # Parse amount\n amount = float(amount_str)\n \n all_transactions.append({\n 'Date': date,\n 'Description': description,\n 'Income': category,\n 'Type': trans_type,\n 'Amount': amount\n })\n except (ValueError, IndexError) as e:\n continue\n \n return all_transactions\n\n\n\ndef save_to_csv(transactions: list, output_path: str):\n \"\"\"Save transactions to CSV file.\"\"\"\n if not transactions:\n print(\"No transactions found to save.\")\n return\n \n fieldnames = ['Date', 'Description', 'Income', 'Type', 'Amount']\n \n with open(output_path, 'w', newline='') as csvfile:\n writer = csv.DictWriter(csvfile, fieldnames=fieldnames)\n writer.writeheader()\n writer.writerows(transactions)\n \n print(f\"Extracted {len(transactions)} transactions to {output_path}\")\n\n\ndef main():\n if len(sys.argv) \u003c 3:\n print(\"Usage: python extract_pdf_data.py \u003cinput.pdf> \u003coutput.csv>\")\n sys.exit(1)\n \n pdf_path = sys.argv[1]\n csv_path = sys.argv[2]\n \n print(f\"Extracting data from {pdf_path}...\")\n transactions = extract_tables_from_pdf(pdf_path)\n \n print(\"Saving to CSV...\")\n save_to_csv(transactions, csv_path)\n\n\nif __name__ == \"__main__\":\n main()\n","content_type":"text/x-python; charset=utf-8","language":"python","size":3422,"content_sha256":"d39b52e86c7be136eab09010b7d7c4370b09f5e778966d0239d35a947a70a8b4"},{"filename":"scripts/generate_report.py","content":"#!/usr/bin/env python3\n\"\"\"\nGenerate interactive HTML financial reports with charts and visualizations.\n\"\"\"\n\nimport json\nimport sys\nfrom datetime import datetime\n\n\nHTML_TEMPLATE = \"\"\"\u003c!DOCTYPE html>\n\u003chtml lang=\"en\">\n\u003chead>\n \u003cmeta charset=\"UTF-8\">\n \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n \u003ctitle>Financial Report - {date}\u003c/title>\n \u003cscript src=\"https://cdn.jsdelivr.net/npm/[email protected]/dist/chart.umd.min.js\">\u003c/script>\n \u003cstyle>\n * {{\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }}\n \n body {{\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n padding: 20px;\n min-height: 100vh;\n }}\n \n .container {{\n max-width: 1200px;\n margin: 0 auto;\n }}\n \n .header {{\n background: white;\n padding: 30px;\n border-radius: 15px;\n box-shadow: 0 10px 30px rgba(0,0,0,0.2);\n margin-bottom: 30px;\n text-align: center;\n }}\n \n .header h1 {{\n color: #333;\n font-size: 2.5em;\n margin-bottom: 10px;\n }}\n \n .date-range {{\n color: #666;\n font-size: 1.1em;\n }}\n \n .stats-grid {{\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n margin-bottom: 30px;\n }}\n \n .stat-card {{\n background: white;\n padding: 25px;\n border-radius: 15px;\n box-shadow: 0 10px 30px rgba(0,0,0,0.2);\n }}\n \n .stat-card h3 {{\n color: #666;\n font-size: 0.9em;\n text-transform: uppercase;\n letter-spacing: 1px;\n margin-bottom: 10px;\n }}\n \n .stat-value {{\n font-size: 2em;\n font-weight: bold;\n color: #333;\n }}\n \n .stat-value.positive {{\n color: #10b981;\n }}\n \n .stat-value.negative {{\n color: #ef4444;\n }}\n \n .chart-container {{\n background: white;\n padding: 30px;\n border-radius: 15px;\n box-shadow: 0 10px 30px rgba(0,0,0,0.2);\n margin-bottom: 30px;\n }}\n \n .chart-container h2 {{\n color: #333;\n margin-bottom: 20px;\n font-size: 1.5em;\n }}\n \n .chart-wrapper {{\n position: relative;\n height: 300px;\n }}\n \n .recommendations {{\n background: white;\n padding: 30px;\n border-radius: 15px;\n box-shadow: 0 10px 30px rgba(0,0,0,0.2);\n }}\n \n .recommendations h2 {{\n color: #333;\n margin-bottom: 20px;\n font-size: 1.5em;\n }}\n \n .recommendation {{\n padding: 15px;\n margin-bottom: 15px;\n border-radius: 10px;\n background: #f3f4f6;\n border-left: 4px solid #667eea;\n }}\n \n .recommendation:last-child {{\n margin-bottom: 0;\n }}\n \n .footer {{\n text-align: center;\n color: white;\n margin-top: 30px;\n padding: 20px;\n }}\n \u003c/style>\n\u003c/head>\n\u003cbody>\n \u003cdiv class=\"container\">\n \u003cdiv class=\"header\">\n \u003ch1>💰 Financial Report\u003c/h1>\n \u003cdiv class=\"date-range\">{date_range}\u003c/div>\n \u003c/div>\n \n \u003cdiv class=\"stats-grid\">\n \u003cdiv class=\"stat-card\">\n \u003ch3>Total Income\u003c/h3>\n \u003cdiv class=\"stat-value positive\">${total_income:,.2f}\u003c/div>\n \u003c/div>\n \u003cdiv class=\"stat-card\">\n \u003ch3>Total Expenses\u003c/h3>\n \u003cdiv class=\"stat-value negative\">${total_expenses:,.2f}\u003c/div>\n \u003c/div>\n \u003cdiv class=\"stat-card\">\n \u003ch3>Net Savings\u003c/h3>\n \u003cdiv class=\"stat-value {savings_class}\">${net_savings:,.2f}\u003c/div>\n \u003c/div>\n \u003cdiv class=\"stat-card\">\n \u003ch3>Savings Rate\u003c/h3>\n \u003cdiv class=\"stat-value {savings_rate_class}\">{savings_rate:.1f}%\u003c/div>\n \u003c/div>\n \u003c/div>\n \n \u003cdiv class=\"chart-container\">\n \u003ch2>📊 Spending by Category\u003c/h2>\n \u003cdiv class=\"chart-wrapper\">\n \u003ccanvas id=\"categoryChart\">\u003c/canvas>\n \u003c/div>\n \u003c/div>\n \n \u003cdiv class=\"chart-container\">\n \u003ch2>📈 Income vs Expenses\u003c/h2>\n \u003cdiv class=\"chart-wrapper\">\n \u003ccanvas id=\"comparisonChart\">\u003c/canvas>\n \u003c/div>\n \u003c/div>\n \n \u003cdiv class=\"recommendations\">\n \u003ch2>💡 Recommendations\u003c/h2>\n {recommendations_html}\n \u003c/div>\n \n \u003cdiv class=\"footer\">\n \u003cp>Report Generated: {generation_date}\u003c/p>\n \u003c/div>\n \u003c/div>\n \n \u003cscript>\n // Category Pie Chart\n const categoryCtx = document.getElementById('categoryChart').getContext('2d');\n new Chart(categoryCtx, {{\n type: 'doughnut',\n data: {{\n labels: {category_labels},\n datasets: [{{\n data: {category_values},\n backgroundColor: [\n '#667eea', '#764ba2', '#f093fb', '#4facfe',\n '#43e97b', '#fa709a', '#fee140', '#30cfd0'\n ],\n borderWidth: 0\n }}]\n }},\n options: {{\n responsive: true,\n maintainAspectRatio: false,\n plugins: {{\n legend: {{\n position: 'right'\n }},\n tooltip: {{\n callbacks: {{\n label: function(context) {{\n return context.label + ':

Finance Manager A comprehensive toolkit for personal finance management that processes transaction data, performs sophisticated financial analysis, generates actionable insights, and creates beautiful visual reports. Core Capabilities 1. Transaction Data Processing : Extract financial data from PDFs, CSVs, or JSON files 2. Financial Analysis : Calculate key metrics, identify spending patterns, and track savings 3. Visualization : Generate interactive HTML reports with charts and graphs 4. Budget Recommendations : Provide personalized, actionable advice based on spending patterns 5. Trend Anal…

+ context.parsed.toFixed(2);\n }}\n }}\n }}\n }}\n }}\n }});\n \n // Monthly Comparison Bar Chart\n const comparisonCtx = document.getElementById('comparisonChart').getContext('2d');\n new Chart(comparisonCtx, {{\n type: 'bar',\n data: {{\n labels: {monthly_labels},\n datasets: [\n {{\n label: 'Income',\n data: {monthly_income},\n backgroundColor: '#10b981',\n borderRadius: 5\n }},\n {{\n label: 'Expenses',\n data: {monthly_expenses},\n backgroundColor: '#ef4444',\n borderRadius: 5\n }}\n ]\n }},\n options: {{\n responsive: true,\n maintainAspectRatio: false,\n plugins: {{\n legend: {{\n position: 'top'\n }}\n }},\n scales: {{\n y: {{\n beginAtZero: true,\n ticks: {{\n callback: function(value) {{\n return '

Finance Manager A comprehensive toolkit for personal finance management that processes transaction data, performs sophisticated financial analysis, generates actionable insights, and creates beautiful visual reports. Core Capabilities 1. Transaction Data Processing : Extract financial data from PDFs, CSVs, or JSON files 2. Financial Analysis : Calculate key metrics, identify spending patterns, and track savings 3. Visualization : Generate interactive HTML reports with charts and graphs 4. Budget Recommendations : Provide personalized, actionable advice based on spending patterns 5. Trend Anal…

+ value.toLocaleString();\n }}\n }}\n }}\n }}\n }}\n }});\n \u003c/script>\n\u003c/body>\n\u003c/html>\n\"\"\"\n\n\ndef generate_html_report(analysis_data: dict, output_file: str):\n \"\"\"Generate HTML report from analysis data.\"\"\"\n \n summary = analysis_data['summary']\n recommendations = analysis_data['recommendations']\n viz_data = analysis_data['visualization_data']\n \n # Format recommendations\n recommendations_html = '\\n'.join([\n f'\u003cdiv class=\"recommendation\">{rec}\u003c/div>' \n for rec in recommendations\n ])\n \n # Prepare chart data\n category_labels = list(viz_data['category_spending'].keys())\n category_values = list(viz_data['category_spending'].values())\n \n monthly_labels = [item['month'] for item in viz_data['monthly_comparison']]\n monthly_income = [item['income'] for item in viz_data['monthly_comparison']]\n monthly_expenses = [item['expenses'] for item in viz_data['monthly_comparison']]\n \n # Determine savings class\n net_savings = summary['net_savings']\n savings_rate = summary['savings_rate']\n \n savings_class = 'positive' if net_savings > 0 else 'negative'\n savings_rate_class = 'positive' if savings_rate >= 20 else ('negative' if savings_rate \u003c 10 else '')\n \n # Format HTML\n html = HTML_TEMPLATE.format(\n date=datetime.now().strftime('%B %d, %Y'),\n date_range=f\"{summary['date_range']['start']} to {summary['date_range']['end']}\",\n total_income=summary['total_income'],\n total_expenses=summary['total_expenses'],\n net_savings=net_savings,\n savings_rate=savings_rate,\n savings_class=savings_class,\n savings_rate_class=savings_rate_class,\n recommendations_html=recommendations_html,\n generation_date=datetime.now().strftime('%Y-%m-%d %H:%M:%S'),\n category_labels=json.dumps(category_labels),\n category_values=json.dumps(category_values),\n monthly_labels=json.dumps(monthly_labels),\n monthly_income=json.dumps(monthly_income),\n monthly_expenses=json.dumps(monthly_expenses)\n )\n \n with open(output_file, 'w') as f:\n f.write(html)\n \n print(f\"Report generated: {output_file}\")\n\n\ndef main():\n if len(sys.argv) \u003c 3:\n print(\"Usage: python generate_report.py \u003canalysis_data.json> \u003coutput.html>\")\n sys.exit(1)\n \n input_file = sys.argv[1]\n output_file = sys.argv[2]\n \n with open(input_file, 'r') as f:\n analysis_data = json.load(f)\n \n generate_html_report(analysis_data, output_file)\n\n\nif __name__ == \"__main__\":\n main()\n","content_type":"text/x-python; charset=utf-8","language":"python","size":10337,"content_sha256":"84b4636f25da9f619ca974a6f91753133e1d356183e837d5c2ed93cf7e0101b8"},{"filename":"transactions.csv","content":"Date,Description,Income,Type,Amount\n2025-11-01,Salary Deposit,Income,Income,4500\n2025-11-01,Rent Payment,Housing,Expense,-1200\n2025-11-02,Grocery Shopping,Food,Expense,-156.32\n2025-11-02,Electric Bill,Utilities,Expense,-89.5\n2025-11-03,Gas Station,Transportation,Expense,-45\n2025-11-03,Freelance Project,Income,Income,750\n2025-11-04,Restaurant Dinner,Food,Expense,-68.25\n2025-10-28,Internet Bill,Utilities,Expense,-65\n2025-10-27,Online Shopping,Shopping,Expense,-124.99\n2025-10-25,Investment Dividend,Income,Income,320\n2025-10-24,Gym Membership,Health,Expense,-50\n2025-10-22,Coffee Shop,Food,Expense,-12.5\n2025-10-20,Car Insurance,Transportation,Expense,-180\n2025-10-18,Consulting Income,Income,Income,1200\n2025-10-15,Pharmacy,Health,Expense,-42.3\n","content_type":"text/csv; charset=utf-8","language":"csv","size":748,"content_sha256":"64e8a6ec7cae242345da42ed3d98a6fc54b869d4af33002b263d7b15bb4c6b5e"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Finance Manager","type":"text"}]},{"type":"paragraph","content":[{"text":"A comprehensive toolkit for personal finance management that processes transaction data, performs sophisticated financial analysis, generates actionable insights, and creates beautiful visual reports.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Core Capabilities","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Transaction Data Processing","type":"text","marks":[{"type":"strong"}]},{"text":": Extract financial data from PDFs, CSVs, or JSON files","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Financial Analysis","type":"text","marks":[{"type":"strong"}]},{"text":": Calculate key metrics, identify spending patterns, and track savings","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Visualization","type":"text","marks":[{"type":"strong"}]},{"text":": Generate interactive HTML reports with charts and graphs","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Budget Recommendations","type":"text","marks":[{"type":"strong"}]},{"text":": Provide personalized, actionable advice based on spending patterns","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Trend Analysis","type":"text","marks":[{"type":"strong"}]},{"text":": Identify spending patterns, anomalies, and opportunities for optimization","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Workflow","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"1. Data Extraction and Preparation","type":"text"}]},{"type":"paragraph","content":[{"text":"For PDF files:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python scripts/extract_pdf_data.py \u003cinput.pdf> \u003coutput.csv>","type":"text"}]},{"type":"paragraph","content":[{"text":"For CSV/JSON files:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ensure data has columns: ","type":"text"},{"text":"Date","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Description","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Income","type":"text","marks":[{"type":"code_inline"}]},{"text":" (category), ","type":"text"},{"text":"Type","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Amount","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Date format: YYYY-MM-DD or parseable date string","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Amount: Positive for income, negative for expenses","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"2. Financial Analysis","type":"text"}]},{"type":"paragraph","content":[{"text":"Run comprehensive analysis on transaction data:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python scripts/analyze_finances.py \u003ctransactions.csv> > analysis_output.json","type":"text"}]},{"type":"paragraph","content":[{"text":"Output includes:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Summary statistics (total income, expenses, net savings, savings rate)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Spending trends (daily averages, top expenses, category percentages)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Budget recommendations (personalized based on spending patterns)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Visualization data (prepared for charting)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3. Report Generation","type":"text"}]},{"type":"paragraph","content":[{"text":"Create interactive HTML report with visualizations:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"python scripts/generate_report.py \u003canalysis_output.json> \u003creport.html>","type":"text"}]},{"type":"paragraph","content":[{"text":"Report features:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Summary dashboard with key metrics","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Interactive pie chart showing spending by category","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Bar chart comparing income vs expenses over time","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Color-coded indicators (green for positive, red for negative)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Personalized recommendations section","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Responsive design for all devices","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"4. Complete Workflow Example","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Extract data from PDF\npython scripts/extract_pdf_data.py finance_data.pdf transactions.csv\n\n# Analyze the data\npython scripts/analyze_finances.py transactions.csv > analysis.json\n\n# Generate visual report\npython scripts/generate_report.py analysis.json financial_report.html","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Key Metrics and Benchmarks","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Savings Rate","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Savings Rate = (Total Income - Total Expenses) / Total Income × 100","type":"text"}]},{"type":"paragraph","content":[{"text":"Benchmarks:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Below 10%: Needs improvement","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"10-20%: Good","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"20-30%: Excellent","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Above 30%: Outstanding","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Category Guidelines (% of income)","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Housing: 25-30%","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Transportation: 10-15%","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Food: 10-15%","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Utilities: 5-10%","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Savings: Minimum 20%","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"For detailed frameworks and methodologies, see ","type":"text"},{"text":"references/financial_frameworks.md","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Analysis Features","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Summary Statistics","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Total income and expenses for the period","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Net savings (can be positive or negative)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Savings rate percentage","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Transaction count","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Date range covered","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Spending Trends","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Daily average spending","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Top 5 largest expenses with details","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Category percentage breakdown","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Spending patterns over time","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Budget Recommendations","type":"text"}]},{"type":"paragraph","content":[{"text":"The system generates personalized recommendations based on:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Savings rate thresholds","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Category spending percentages","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Income diversification","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Budget guideline comparisons","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Example recommendations:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"⚠️ Your savings rate is below 10%. Consider reducing discretionary spending.\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"🍽️ Food spending is 18% of expenses. Consider meal planning to reduce costs.\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"✅ Excellent savings rate! You're on track for strong financial health.\"","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Visualization Components","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Category Spending Chart (Doughnut)","type":"text"}]},{"type":"paragraph","content":[{"text":"Shows proportional breakdown of expenses by category with color coding.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Income vs Expenses Chart (Bar)","type":"text"}]},{"type":"paragraph","content":[{"text":"Displays monthly comparison of income and expenses to identify cash flow trends.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Interactive Features","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Hover tooltips showing exact values","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Responsive design adapting to screen size","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Color-coded positive (green) and negative (red) indicators","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Tips for Best Results","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Data Quality","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ensure all transactions are properly categorized","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use consistent category names","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Include complete date information","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify amounts are correctly signed (+ for income, - for expenses)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Analysis Frequency","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run monthly analysis for trend tracking","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generate reports at month-end for review","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Compare month-over-month to identify changes","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Action on Recommendations","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Prioritize recommendations by potential impact","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Set specific, measurable goals based on insights","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Track progress by re-running analysis regularly","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Dependencies","type":"text"}]},{"type":"paragraph","content":[{"text":"All scripts require Python 3.7+ with standard libraries. Additional requirements:","type":"text"}]},{"type":"paragraph","content":[{"text":"For PDF extraction:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"pip install pdfplumber --break-system-packages","type":"text"}]},{"type":"paragraph","content":[{"text":"For data analysis:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"pip install pandas --break-system-packages","type":"text"}]},{"type":"paragraph","content":[{"text":"All visualization dependencies are loaded from CDN in the HTML output (Chart.js).","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"File Organization","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"finance-manager/\n├── scripts/\n│ ├── extract_pdf_data.py # PDF → CSV conversion\n│ ├── analyze_finances.py # Financial analysis engine\n│ └── generate_report.py # HTML report generator\n└── references/\n └── financial_frameworks.md # Detailed analysis methodologies","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Customization","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Adding Custom Categories","type":"text"}]},{"type":"paragraph","content":[{"text":"Edit the category definitions in ","type":"text"},{"text":"analyze_finances.py","type":"text","marks":[{"type":"code_inline"}]},{"text":" to match your tracking system.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Adjusting Thresholds","type":"text"}]},{"type":"paragraph","content":[{"text":"Modify recommendation thresholds in the ","type":"text"},{"text":"generate_budget_recommendations()","type":"text","marks":[{"type":"code_inline"}]},{"text":" function to match personal goals.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Styling Reports","type":"text"}]},{"type":"paragraph","content":[{"text":"Customize the HTML_TEMPLATE in ","type":"text"},{"text":"generate_report.py","type":"text","marks":[{"type":"code_inline"}]},{"text":" to adjust colors, fonts, or layout.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Common Use Cases","type":"text"}]},{"type":"paragraph","content":[{"text":"Monthly Review:","type":"text","marks":[{"type":"strong"}]},{"text":" \"Analyze my October spending and create a report\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Budget Optimization:","type":"text","marks":[{"type":"strong"}]},{"type":"br"},{"text":"\"Where am I spending too much money?\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Trend Analysis:","type":"text","marks":[{"type":"strong"}]},{"text":" \"How does my spending this month compare to last month?\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Goal Setting:","type":"text","marks":[{"type":"strong"}]},{"text":" \"What's my savings rate and how can I improve it?\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Category Insights:","type":"text","marks":[{"type":"strong"}]},{"text":" \"Break down my food spending by transaction\"","type":"text"}]},{"type":"paragraph","content":[{"text":"PDF Processing:","type":"text","marks":[{"type":"strong"}]},{"text":" \"Extract all transactions from my bank statement PDF\"","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Best Practices","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Consistent Categorization","type":"text","marks":[{"type":"strong"}]},{"text":": Use the same category names across all transactions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Regular Analysis","type":"text","marks":[{"type":"strong"}]},{"text":": Run monthly to spot trends early","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Act on Insights","type":"text","marks":[{"type":"strong"}]},{"text":": Use recommendations to make specific spending changes","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Track Progress","type":"text","marks":[{"type":"strong"}]},{"text":": Compare reports month-over-month","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify Data","type":"text","marks":[{"type":"strong"}]},{"text":": Always check extracted PDF data for accuracy before analysis","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Reference Materials","type":"text"}]},{"type":"paragraph","content":[{"text":"For comprehensive financial frameworks, budgeting guidelines, and analysis methodologies, read:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"view references/financial_frameworks.md","type":"text"}]},{"type":"paragraph","content":[{"text":"This includes:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The 50/30/20 budget rule","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Category spending benchmarks","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Financial health indicators","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Analysis workflow details","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Visualization best practices","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Recommendation logic","type":"text"}]}]}]}]},"metadata":{"date":"2026-11-02","name":"finance-manager","author":"@skillopedia","source":{"stars":463,"repo_name":"ai-labs-claude-skills","origin_url":"https://github.com/ailabs-393/ai-labs-claude-skills/blob/HEAD/dist/skills/finance-manager/SKILL.md","repo_owner":"ailabs-393","body_sha256":"30c41d88e1b72d3feb4b5d286c8eb3b7e2db9999622be046238fedd1f1a87ebc","cluster_key":"2f46a8fc07b42bd57fbc873b720615754a30f5325de1fa37361a2226d76d3b41","clean_bundle":{"format":"clean-skill-bundle-v1","source":"ailabs-393/ai-labs-claude-skills/dist/skills/finance-manager/SKILL.md","text_bytes":38286,"source_commit":"1a12bc7aadcc7b211f77a7455db454b77a71f827","skills_sh_rank":7465,"attachment_count":9,"text_attachments":9,"attachment_storage":"skill_attachments","binary_attachments":0},"cluster_size":1,"skill_md_path":"dist/skills/finance-manager/SKILL.md","import_metadata":{"date":"2026-11-02","author":"@skillopedia","version":"v1","category":"finance-legal-compliance","category_label":"Finance"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"finance-legal-compliance","import_tag":"skills-sh-top20k-2026-11","description":"Comprehensive personal finance management system for analyzing transaction data, generating insights, creating visualizations, and providing actionable financial recommendations. Use when users need to analyze spending patterns, track budgets, visualize financial data, extract transactions from PDFs, calculate savings rates, identify spending trends, generate financial reports, or receive personalized budget recommendations. Triggers include requests like \"analyze my finances\", \"track my spending\", \"create a financial report\", \"extract transactions from PDF\", \"visualize my budget\", \"where is my money going\", \"financial insights\", \"spending breakdown\", or any finance-related analysis tasks."}},"renderedAt":1793671524381}

Finance Manager A comprehensive toolkit for personal finance management that processes transaction data, performs sophisticated financial analysis, generates actionable insights, and creates beautiful visual reports. Core Capabilities 1. Transaction Data Processing : Extract financial data from PDFs, CSVs, or JSON files 2. Financial Analysis : Calculate key metrics, identify spending patterns, and track savings 3. Visualization : Generate interactive HTML reports with charts and graphs 4. Budget Recommendations : Provide personalized, actionable advice based on spending patterns 5. Trend Anal…