skills/monthly-reports/SKILL.md
# Monthly Reports Generate monthly expense summaries with spending breakdown, trend analysis, budget comparison, and visual charts. ## Dependencies - `expense-categorizer` - For categorized expense data - `receipts-ocr` - For receipt information ## Capabilities ### Core Features - **Monthly Expense Reports**: Generate comprehensive reports for any month - **Spending Breakdown**: View expenses categorized with percentages - **Trend Analysis**: Compare month-over-month and year-over-year spe
npx skillsauth add ticruz38/skills skills/monthly-reportsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate monthly expense summaries with spending breakdown, trend analysis, budget comparison, and visual charts.
expense-categorizer - For categorized expense datareceipts-ocr - For receipt informationEach monthly report includes:
# Generate report for current month
monthly-reports current
# Generate report for specific month
monthly-reports generate 2024 1
# Generate report for last month
monthly-reports last
# List report history
monthly-reports list 12
# View a specific report
monthly-reports get 2024 1
# Set budget for a month
monthly-reports budget 2024 2 --total 5000 --category Groceries=800 --category Dining=400
# View budget
monthly-reports budget-view 2024 2
# Export to HTML
monthly-reports export 2024 1 --output ~/reports/january.html
# Display ASCII chart
monthly-reports chart 2024 1
# Show spending trend
monthly-reports trend 6
# System health check
monthly-reports health
# Statistics
monthly-reports stats
import { MonthlyReportsSkill } from '@openclaw/monthly-reports';
const skill = new MonthlyReportsSkill();
// Generate a monthly report
const report = await skill.generateReport(2024, 1);
// Access report data
console.log(`Total spending: $${report.summary.totalSpending}`);
console.log(`Top category: ${report.summary.topCategory}`);
// View spending by category
report.spendingByCategory.forEach(cat => {
console.log(`${cat.category}: $${cat.amount} (${cat.percentage}%)`);
});
// Check trends
console.log(`vs last month: ${report.trends.vsPreviousMonth.percentageChange}%`);
// Set a budget
await skill.setBudget(2024, 2, 5000, {
'Groceries': 800,
'Dining': 400,
'Entertainment': 200
});
// Generate and save HTML report
const html = skill.exportToHTML(report);
await skill.saveReportToFile(report, './report.html');
// Close connections
await skill.close();
// Category spending chart
const chart = skill.generateAsciiChart(report.spendingByCategory);
console.log(chart);
// Trend chart over multiple months
const history = await skill.getReportHistory(6);
const trendData = history.map(r => ({
month: r.monthName,
amount: r.summary.totalSpending
}));
const trendChart = skill.generateTrendChart(trendData);
console.log(trendChart);
All data is stored locally in SQLite:
~/.openclaw/skills/monthly-reports/monthly-reports.db~/.openclaw/skills/monthly-reports/reports/ - HTML exportsbudgets table
year, month - Budget periodtotal_budget - Total budget amountcategory_budgets - JSON object of category budgetsreport_history table
year, month - Report periodtotal_spending, transaction_count - Summary statsreport_data - Full report JSONinterface MonthlyReport {
year: number;
month: number;
monthName: string;
summary: {
totalSpending: number;
transactionCount: number;
averageTransaction: number;
topCategory: string;
topCategoryAmount: number;
};
spendingByCategory: Array<{
category: string;
amount: number;
percentage: number;
transactionCount: number;
trend: 'up' | 'down' | 'stable';
trendPercentage: number;
}>;
trends: {
vsPreviousMonth: { amountChange, percentageChange, direction };
vsSameMonthLastYear?: { amountChange, percentageChange, direction };
dailyAverage: number;
};
budgetComparison?: {
budgetAmount: number;
actualAmount: number;
variance: number;
status: 'under' | 'over' | 'on_track';
byCategory: Array<{
category: string;
budget: number;
actual: number;
variance: number;
}>;
};
insights: string[];
}
Reports automatically generate insights such as:
Reports can be exported as styled HTML documents with:
testing
Suggest recipes based on dietary preferences, available ingredients, and cuisine preferences
development
Extract data from receipt photos using Google Vision API
business
QuickBooks Online integration for accounting sync - sync customers, invoices, and transactions with two-way sync and conflict resolution
testing
QuickBooks OAuth adapter for QuickBooks Online accounting integration. Built on top of auth-provider for secure token management with automatic refresh, multi-profile support, sandbox/production toggle, and health checks.