Quick expense summary for a date range — totals, category breakdown, top vendors, tax deductible amount
From founder-osnpx claudepluginhub thecloudtips/founder-os --plugin founder-os[date-range] [--top=10]expense//summaryPosts structured summary comment to GitHub PR documenting review fixes, issue linkages, suggestions, deferred items, and resolutions. Ensures test plan section in PR description.
/summarySummarizes content at a specified path with options for output (executive|action|role), role (engineer|marketer|founder), and depth (quick|deep).
/summaryAggregate journal entries to surface patterns — recurring blockers, most-modified files, effective tools, and velocity trends.
/summaryAggregate journal entries to surface patterns — recurring blockers, most-modified files, effective tools, and velocity trends.
Ephemeral spending overview for a given period. Output directly to chat — no file saving, no Notion DB write. This is the lightweight counterpart to /founder-os:expense:report, optimized for a quick "how much did I spend?" answer.
Read the expense-reporting skill at ${CLAUDE_PLUGIN_ROOT}/skills/expense/expense-reporting/SKILL.md for date range parsing rules, the data aggregation pipeline, and the P11 category taxonomy.
Read the expense-categorization skill at ${CLAUDE_PLUGIN_ROOT}/skills/expense/expense-categorization/SKILL.md for the 14-category taxonomy, classification signals, and confidence scoring — needed when local files lack pre-assigned categories.
Extract from $ARGUMENTS:
[date-range] (optional) — the period to summarize. Accepts all formats defined in the expense-reporting skill's Date Range Parsing section:
YYYY-MM, Q1 YYYY through Q4 YYYY, YYYY-MM to YYYY-MMthis month, last month, this quarter, last quarter--top=N (optional) — maximum number of vendors to display in the Top Vendors table. Default: 10. Minimum: 1.Resolve the date range into concrete start_date and end_date using the skill's parsing rules. Apply the same validation: reject future end dates beyond today (clamp and note "partial period"), reject end-before-start.
Check if context files exist at _infrastructure/context/active/. If the directory contains .md files, read business-info.md, strategy.md, and current-data.md. Use this context to personalize output (e.g., prioritize known clients, use correct terminology, align with current strategy). If files don't exist, skip silently.
Read the context-injection skill at _infrastructure/memory/context-injection/SKILL.md.
Query for memories relevant to the current input (company, contacts, topics detected in arguments).
If memories are returned, incorporate them into your working context for this execution.
Follow the expense-reporting skill's Data Aggregation Pipeline (Steps 1-3) to collect expense data for the resolved date range.
When Notion MCP is available, search for the "[FOS] Finance" database. If not found, fall back to "Founder OS HQ - Finance". If not found, fall back to searching for the legacy name "Invoice Processor - Invoices". Filter by Type equal to "Invoice" (HQ database only -- skip this filter for legacy DB), Invoice Date within the resolved range, and Approval Status equal to "approved". Extract: Vendor, Amount, Currency, Category, Tax Deductible, Invoice Date.
When Notion is unavailable, skip silently and proceed to Step 2.
Scan the working directory and receipts/ or invoices/ subdirectories for *.csv files containing expense data. Parse rows for date, vendor, amount, and category columns. Skip image and PDF files — this is a summary command, not a processing command.
Apply the same deduplication rules from the skill: Invoice # match first, then Vendor + Amount + Date (within 3 days). Keep Notion records over local duplicates.
After merging, filter the dataset to only entries where Invoice Date falls within the resolved start_date to end_date.
From the merged dataset, compute:
--top argument).Display the summary directly in chat. Use this exact structure.
## Expense Summary -- [Period Label]
**Total:** $[amount] across [count] invoices
### By Category
| Category | Amount | % |
|:---------|-------:|--:|
| [category] | $[amount] | [pct]% |
| ... | ... | ... |
### Top [N] Vendors
| Vendor | Total | Invoices |
|:-------|------:|---------:|
| [vendor] | $[amount] | [count] |
| ... | ... | ... |
**Tax Deductible:** $[deductible_amount] ([pct]% of total)
Formatting rules:
$12,847.50).33.3%).When the end date was clamped to today, append after the header line:
_Partial period -- data through [today's date]_
## Expense Summary -- [Period Label]
No expenses found for [Period Label]. Run `/founder-os:invoice:process` to import invoices, or check that the date range is correct.
When Notion was skipped, append a note at the bottom of the output:
_Summary from local files only -- Notion data unavailable_
This command does NOT save output to a file or write to a Notion database. It is ephemeral by design. For a full 7-section report with file output and Notion logging, use /founder-os:expense:report.
Read the pattern-detection skill at _infrastructure/memory/pattern-detection/SKILL.md.
Log this execution as an observation with: plugin name, primary action performed, key entities (companies, contacts), and output summary.
Check for emerging patterns per the detection rules. If a memory reaches the adaptation threshold, append the notification to the output.
Notion MCP unavailable: Continue with local files only. Add the "local files only" note to the output footer.
No data in period: Display the "No expenses found" message. Do not error.
Mixed currencies: Report amounts in the majority currency. Add a note: "[N] entries in other currencies excluded -- run /founder-os:expense:report for full multi-currency handling".
/founder-os:expense:summary
/founder-os:expense:summary 2024-03
/founder-os:expense:summary Q1 2024
/founder-os:expense:summary "last month"
/founder-os:expense:summary "this quarter" --top=5
/founder-os:expense:summary "last quarter" --top=20