Month End Close
by @samledger67-dotcom
Orchestrate and validate the full month-end close for a QBO client. Reads client SOP, runs automated close checks, scores each item, proposes journal entries...
clawhub install month-end-closeπ About This Skill
name: month-end-close description: "Orchestrate and validate the full month-end close for a QBO client. Reads client SOP, runs automated close checks, scores each item, proposes journal entries, tracks CDC progress, and outputs a controller-ready Excel workbook. Use when running monthly close for any QBO-connected client. NOT for P&L variance analysis, bank reconciliation only, or budget vs. actual comparisons." license: MIT metadata: openclaw: emoji: "π "
Month-End Close Checklist β SKILL.md
Orchestrates and validates the full month-end close for a QBO client.
Reads clients/{slug}/sop.md to determine which checks apply,
runs automated close checks against QBO, scores each item,
proposes journal entries for missing items, tracks progress with CDC,
and outputs a controller-ready Excel workbook.
Trigger
Use this skill when:
Do NOT use for:
pl-quick-compare or pl-deep-analysisbank-reconciliationbudget-vs-actualScript Location
scripts/pipelines/month-end-close.py
Usage
# Standard close run
python3 scripts/pipelines/month-end-close.py --slug sb-paulson --month 2026-03Skip GL drill (faster; prepaid/depr/payroll checks have limited data)
python3 scripts/pipelines/month-end-close.py --slug willo-salons --month 2026-02 --skip-glRe-run as items get resolved (CDC tracks progress between runs)
python3 scripts/pipelines/month-end-close.py --slug glowlabs --month 2026-03Force fresh QBO pulls (ignore CDC cache)
python3 scripts/pipelines/month-end-close.py --slug sb-paulson --month 2026-03 --rerunCustom output directory
python3 scripts/pipelines/month-end-close.py --slug sb-paulson --month 2026-03 --out ~/Desktop/closeQBO Sandbox
python3 scripts/pipelines/month-end-close.py --slug sb-paulson --month 2026-03 --sandbox
Arguments
| Argument | Required | Description |
|---|---|---|
| --slug | β
| Company slug (must match qbo-client connection) |
| --month | β
| Close period in YYYY-MM format (e.g. 2026-03) |
| --skip-gl | β | Skip GL pull β faster but prepaid/depr/payroll checks limited |
| --rerun | β | Force all checks fresh β ignores CDC state for check selection |
| --out | β | Output directory (default: ~/Desktop) |
| --sandbox | β | Use QBO sandbox environment |
Close Checks
| Check | ID | Default | SOP Override |
|---|---|---|---|
| Bank Reconciliation | bank_recon | β
| Disable: bank reconciliation: β |
| Trial Balance (D=C) | trial_balance | β
| Always enabled |
| AP Aging | ap_aging | β
| Disable: ap aging: β |
| AR Aging | ar_aging | β
| Auto-disabled if SOP says no AR/POS |
| Prepaid Amortization | prepaid_amortization | β
| Disable: prepaid: β |
| Depreciation | depreciation | β
| Disable: no fixed assets |
| Payroll Reconciliation | payroll_recon | β
| Disable: payroll: β |
| Revenue Recognition | revenue_recognition | β
| Disable: deferred revenue: β |
| Accrued Expenses | accrued_expenses | β
| Disable: accruals: β |
| Intercompany Eliminations | intercompany | β OFF | Enable: multi-entity or intercompany: β
|
SOP Integration
The pipeline reads clients/{slug}/sop.md and parses it for:
no accounts receivable, POS collection,AR aging: β, or AR: Not applicable
multi-entity,intercompany: β
, or consolidated
interest expense, cash burn, deferred revenue, SAFE)Client SOP Quick Reference
| Client | AR? | Interco? | Notes |
|---|---|---|---|
| willo-salons | β No | β No | POS/cash β no AR |
| glowlabs | β No | β No | Gaming/Web3; high burn |
| sb-paulson | β
Verify | β No | Advisory; watch interest expense |
| opdo | Check SOP | β No | Review SOP |
Outputs
Excel Workbook
Saved to~/Desktop/MonthEndClose_{slug}_{YYYY-MM}_Run{N}.xlsx| Tab | Contents | |---|---| | Close Checklist | Dashboard β PASS/FAIL/ACTION per item + completion % + proposed JE count | | Trial Balance | Full TB with debit/credit validation, per-account rows, totals | | Proposed Entries | All JEs needed for missing/flagged items, sorted HIGHβMEDIUMβLOW | | CDC Log | Status changes between runs β tracks close progress over time |
Completion Score
Completion % = (PASS + N/A) / Total Γ 100
Close is "READY" when FAIL = 0 and ACTION = 0
Proposed JE Format
Each proposed entry has:CDC (Change Data Capture)
Cache file: .cache/month-end-close/{slug}-{YYYY-MM}.json
--rerun to force fresh QBO pulls without clearing CDC historyCheck Logic Summary
Bank Recon
Checks.cache/bank-reconciliation/{slug}.json for a completed reconciliation matching the
close period end date. If found and is_reconciled: true β PASS. If different period or
missing β ACTION NEEDED with command to run.Trial Balance
Pulls QBO TB report viaqbo report tb, sums all debit and credit columns, validates
|debits - credits| < $0.02. OUT OF BALANCE β FAIL with proposed suspense entry.AP / AR Aging
Scans QBO Balance Sheet for AP/AR account balances. Flags material balances β₯ $500 as ACTION NEEDED. Proposes accrual entry for largest outstanding item > $2,500.Prepaid Amortization
Compares prior-month BS prepaid balances to current. If prior balance > $0 and no GL activity or balance reduction β ACTION NEEDED with estimated monthly amort entry (straight-line over 12 months as placeholder).Depreciation
Checks fixed asset accounts on BS + scans GL for depreciation/journal entries to accumulated depreciation accounts. No activity on period with known fixed assets β ACTION NEEDED.Payroll Reconciliation
Sums payroll GL accounts for current period, compares to prior P&L payroll total. Flags if variance > $500 or > 15% month-over-month.Revenue Recognition
Checks deferred revenue BS balance for movement. No change with known balance β ACTION NEEDED with estimated recognition entry (straight-line over 12 months as placeholder).Accrued Expenses
Compares accrual account balances prior-vs-current. Flags individual account changes β₯ $1,000 or near-zero reversal from significant balance.Intercompany
Only runs if enabled by SOP. Checks for non-zero intercompany/due-to/due-from balances. Net balance β $0.02 β ACTION NEEDED with elimination entry.Dependencies
openpyxl (pip install openpyxl)clients/{slug}/sop.md (optional but recommended)bank_recon check to PASSRelated Pipelines
| Pipeline | Script | Use |
|---|---|---|
| P&L Quick Compare | pl-quick-compare.py | Revenue/expense variance |
| P&L Deep Analysis | pl-deep-analysis.py | GL drill-down + accrual proposals |
| Bank Reconciliation | bank-reconciliation.py | Must complete before close PASS |
Bank Recon must be run first β month-end-close reads its CDC cache to verify completion.
Notes
Decimal for precisionπ‘ Examples
# Standard close run
python3 scripts/pipelines/month-end-close.py --slug sb-paulson --month 2026-03Skip GL drill (faster; prepaid/depr/payroll checks have limited data)
python3 scripts/pipelines/month-end-close.py --slug willo-salons --month 2026-02 --skip-glRe-run as items get resolved (CDC tracks progress between runs)
python3 scripts/pipelines/month-end-close.py --slug glowlabs --month 2026-03Force fresh QBO pulls (ignore CDC cache)
python3 scripts/pipelines/month-end-close.py --slug sb-paulson --month 2026-03 --rerunCustom output directory
python3 scripts/pipelines/month-end-close.py --slug sb-paulson --month 2026-03 --out ~/Desktop/closeQBO Sandbox
python3 scripts/pipelines/month-end-close.py --slug sb-paulson --month 2026-03 --sandbox
π Tips & Best Practices
Decimal for precision