/month-end-recon
Run the full billing-drift sweep for a billing period, formatted as a month-end reconciliation report
$ npx -y skills add wyre-technology/msp-claude-plugins --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/month-end-recon
Context preview
What this command does when you run it.
Run the full billing-drift sweep for a billing period, formatted as a month-end reconciliation report
Command definition
month-end-recon.mddescription: Run the full billing-drift sweep for a billing period, formatted as a month-end reconciliation report
argument-hint: "[month]"
arguments: [month]
Month-End Reconciliation
Runs the `billing-drift-detector` agent's full contract-vs-invoice sweep for a given billing period across whichever PSA and accounting connectors are live, formatted as a month-end reconciliation report ready for a controller or billing team review.
Prerequisites
- WYRE MCP Gateway connected via Conduit (`.mcp.json` → `conduit`)
- At least one PSA connector (Autotask, HaloPSA, ConnectWise, or Syncro)
- At least one accounting connector (QuickBooks Online or Xero)
- If either category is entirely absent, the report is produced with the
missing side stated explicitly rather than skipped silently
Steps
1. Call `conduit__search_tools` to discover which PSA and accounting tools are actually connected for this org — do not assume a specific vendor. 2. Resolve the billing period: use `month` if given (format `YYYY-MM`, e.g. `2026-06`); otherwise default to the current calendar month. 3. Run the `agreement-reconciliation` skill's workflow for the resolved period: pull active PSA contracts/agreements, pull accounting invoices for the period, and match agreement lines to invoice lines. 4. Classify every mismatch as under-billing, over-billing, lapsed-agreement- still-invoiced, or active-agreement-with-no-invoice, and compute the dollar impact of each. 5. Rank all findings by dollar impact and format as a month-end reconciliation report, including a matched-clean tally and an explicit unable-to-verify section for any disconnected vendor family.
Parameters
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|--------------| | month | string | No | current calendar month | Billing period to reconcile, `YYYY-MM` format (e.g. `2026-06`) |
Examples
Current month, whatever PSA/accounting is connected
/finance-pack:month-end-recon
Specific month
/finance-pack:month-end-recon 2026-06
Output
═══════════════════════════════════════════════════════════════════
MONTH-END RECONCILIATION REPORT
Period: June 2026
PSA: [connected PSA(s)]
Accounting: [connected platform(s)]
Generated: [Date]
═══════════════════════════════════════════════════════════════════
SUMMARY
Clients Checked: [N]
Contract Lines Reviewed: [N]
Gaps Found: [N] (Total Dollar Impact: $[X]/month)
RANKED FINDINGS (by dollar impact)
1. [Client] — [Category] — $[X]/month
2. [Client] — [Category] — $[X]/month
...
MATCHED CLEAN
[N] contract lines confirmed matching invoiced amounts within tolerance.
UNABLE TO VERIFY
[Vendor family not connected, if any]
RECOMMENDED NEXT STEPS
1. ...
2. ...
═══════════════════════════════════════════════════════════════════
Related
- Agent: `billing-drift-detector` — the underlying sweep this command runs
- Skill: `agreement-reconciliation` — the reconciliation methodology
- Command: `/finance-pack:true-up` — license-level (rather than contract-level) reconciliation
Read more
description: Run the full billing-drift sweep for a billing period, formatted as a month-end reconciliation report argument-hint: "[month]" arguments: [month]
Month-End Reconciliation
Runs the `billing-drift-detector` agent's full contract-vs-invoice sweep for a given billing period across whichever PSA and accounting connectors are live, formatted as a month-end reconciliation report ready for a controller or billing team review.
Prerequisites
- WYRE MCP Gateway connected via Conduit (`.mcp.json` → `conduit`)
- At least one PSA connector (Autotask, HaloPSA, ConnectWise, or Syncro)
- At least one accounting connector (QuickBooks Online or Xero)
- If either category is entirely absent, the report is produced with the
missing side stated explicitly rather than skipped silently
Steps
1. Call `conduit__search_tools` to discover which PSA and accounting tools are actually connected for this org — do not assume a specific vendor. 2. Resolve the billing period: use `month` if given (format `YYYY-MM`, e.g. `2026-06`); otherwise default to the current calendar month. 3. Run the `agreement-reconciliation` skill's workflow for the resolved period: pull active PSA contracts/agreements, pull accounting invoices for the period, and match agreement lines to invoice lines. 4. Classify every mismatch as under-billing, over-billing, lapsed-agreement- still-invoiced, or active-agreement-with-no-invoice, and compute the dollar impact of each. 5. Rank all findings by dollar impact and format as a month-end reconciliation report, including a matched-clean tally and an explicit unable-to-verify section for any disconnected vendor family.
Parameters
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|--------------| | month | string | No | current calendar month | Billing period to reconcile, `YYYY-MM` format (e.g. `2026-06`) |
Examples
Current month, whatever PSA/accounting is connected
/finance-pack:month-end-recon
Specific month
/finance-pack:month-end-recon 2026-06
Output
═══════════════════════════════════════════════════════════════════ MONTH-END RECONCILIATION REPORT Period: June 2026 PSA: [connected PSA(s)] Accounting: [connected platform(s)] Generated: [Date] ═══════════════════════════════════════════════════════════════════ SUMMARY Clients Checked: [N] Contract Lines Reviewed: [N] Gaps Found: [N] (Total Dollar Impact: $[X]/month) RANKED FINDINGS (by dollar impact) 1. [Client] — [Category] — $[X]/month 2. [Client] — [Category] — $[X]/month ... MATCHED CLEAN [N] contract lines confirmed matching invoiced amounts within tolerance. UNABLE TO VERIFY [Vendor family not connected, if any] RECOMMENDED NEXT STEPS 1. ... 2. ... ═══════════════════════════════════════════════════════════════════
Related
- Agent: `billing-drift-detector` — the underlying sweep this command runs
- Skill: `agreement-reconciliation` — the reconciliation methodology
- Command: `/finance-pack:true-up` — license-level (rather than contract-level) reconciliation
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai
Repo: wyre-technology/msp-claude-plugins
Other commands on msp-claude-plugins.
- /case-review
Review and triage abuse mailbox cases in Abnormal Security
Open command - /search-threats
Search for specific threat patterns in Abnormal Security by sender, recipient, attack type, or keywords
Open command - /threat-triage
Triage recent email threats detected by Abnormal Security by severity and attack type
Open command - /list-overdue-invoices
List open and overdue Alternative Payments invoices and optionally generate hosted payment links for them
Open command - /reconcile-payout
Reconcile an Alternative Payments payout by listing its transactions and matching them against invoices and customers
Open command - /eol-report
EOL/EOS risk report — devices, OS versions, and firmware approaching or past end-of-life/end-of-support, prioritized by criticality
Open command

