Install
openclaw skills install bs-quick-comparePeriod-over-period variance analysis on the Balance Sheet pulled from QuickBooks Online. Outputs a 4-tab Excel workbook: Summary, Detail, Flags, CDC Log. Covers Assets, Liabilities, and Equity sections with accounting equation validation and BS-specific analysis notes on flagged items.
openclaw skills install bs-quick-compareRuns a period-over-period variance analysis on the Balance Sheet (BS) pulled directly from QuickBooks Online. Outputs a 4-tab Excel workbook: Summary | Detail | Flags | CDC Log.
Mirrors the pl-quick-compare and scf-quick-compare patterns but for the Balance Sheet — Assets / Liabilities / Equity sections, accounting equation validation, and BS-specific analysis notes on flagged items tying changes to SCF, AR/AP aging, capex, debt schedule, and equity activity.
Use when:
NOT for:
pl-quick-compare.pyscf-quick-compare.pyar-collectionscash-flow-forecast.pyscripts/pipelines/bs-quick-compare.py
pip install openpyxl (already installed in workspace)# Current month-end vs. prior month-end (auto-detects prior)
python3 scripts/pipelines/bs-quick-compare.py \
--slug sb-paulson \
--current-end 2026-03-31
# Explicit prior period
python3 scripts/pipelines/bs-quick-compare.py \
--slug sb-paulson \
--current-end 2026-02-28 --prior-end 2026-01-31
# YTD (as of end of last completed month vs. same date prior year)
python3 scripts/pipelines/bs-quick-compare.py \
--slug sb-paulson --ytd --year 2026
# Full date control (for QBO BS reports needing explicit start dates)
python3 scripts/pipelines/bs-quick-compare.py \
--slug sb-paulson \
--current-start 2026-01-01 --current-end 2026-03-31 \
--prior-start 2025-01-01 --prior-end 2025-03-31
# Custom output directory
python3 scripts/pipelines/bs-quick-compare.py \
--slug glowlabs \
--current-end 2026-03-31 \
--out ~/Desktop/reports
# Sandbox mode (QBO sandbox environment)
python3 scripts/pipelines/bs-quick-compare.py \
--slug glowlabs \
--current-end 2026-03-31 \
--sandbox
| Flag | Required | Description |
|---|---|---|
--slug | ✅ | Company slug (must be connected in qbo-client) |
--current-end | ✅* | Current period "as of" date (YYYY-MM-DD) |
--current-start | ❌ | Current period start (default: Jan 1 same year) |
--prior-end | ❌ | Prior period "as of" date (default: 1 month back) |
--prior-start | ❌ | Prior period start (default: Jan 1 same year as prior-end) |
--ytd | ✅* | YTD mode (alternative to explicit dates) |
--year | ❌ | Year for --ytd (default: current year) |
--out | ❌ | Output directory (default: ~/Desktop) |
--sandbox | ❌ | Use QBO sandbox environment |
*Either --current-end OR --ytd is required.
Balance Sheet date note: BS is a point-in-time statement. --current-end and --prior-end are the "as of" dates. The QBO CLI requires start/end dates even for BS — the script defaults --current-start to Jan 1 of the same year if omitted.
Excel file: BS_QuickCompare_{slug}_{as-of-date}.xlsx saved to Desktop (or --out directory).
Total Assets = Total Liabilities + Total Equity (both periods, ≤$1 tolerance).cache/bs-quick-compare/{slug}.jsonEach QBO BS row is classified into sections by keyword matching:
Children inherit their parent section classification.
| Section | Increase = | Decrease = |
|---|---|---|
| Assets | ✓ Favorable | ✗ Unfavorable |
| Liabilities | ✗ Unfavorable | ✓ Favorable |
| Equity | ✓ Favorable | ✗ Unfavorable |
Strategic exceptions (new LOC for growth, timely AP buildup) are noted in the analysis notes column.
Total Assets = Total Liabilities + Total Equity (≤$1 tolerance)
Runs on both periods and displayed in Summary tab with pass/fail icons.
--ytd: Current = as of end of last completed month. Prior = same date in prior year.
Example: run on March 17, 2026 → Current = as of Feb 28, 2026 | Prior = as of Feb 28, 2025.
The Flags tab includes an Analysis Note column with BS-specific interpretation for each material change:
| Line Item | Analysis Note Focus |
|---|---|
| Cash / Bank | Tie to SCF — identify source: operating CF, capex, debt, distribution |
| Accounts Receivable | Run AR aging — check DSO, past-due balances, collection trends |
| Inventory | Monitor turnover — buildup vs. drawdown relative to sales pace |
| Prepaid Expenses | Amortization vs. new prepaid spend |
| Fixed Assets / PP&E | Capex vs. disposal — verify depreciation schedule updated |
| Accumulated Depreciation | Confirm D&A add-back in SCF operating section |
| Related-party Receivables | Repayment terms and tax treatment of officer/shareholder loans |
| Accounts Payable | Run AP aging — confirm no overdue payables; payment terms intact |
| Credit Cards | Full payment schedule; confirm all charges categorized |
| Loans / Notes Payable | New borrowing vs. paydown — tie to SCF financing; verify debt schedule |
| Line of Credit | Draw vs. paydown — monitor utilization rate and available capacity |
| Mortgage | Normal amortization vs. lump-sum payment — confirm against schedule |
| Deferred Revenue | Cash received vs. revenue not yet earned — monitor recognition schedule |
| Payroll / Accrued | Settlement timing — verify no aged accruals outstanding |
| Sales Tax Payable | Confirm remittance current; no penalties |
| Retained Earnings | Tie to net income in P&L |
| Current Year Net Income | Deep-dive in P&L quick compare |
| Distributions / Draws | Verify cash availability; tie to SCF financing section |
| Equity Contributions | Tie to SCF financing; confirm cap table updated |
| Opening Balance Equity | Should zero out once books are fully set up |
.cache/bs-quick-compare/{slug}.json
Stores the flat map of all BS line names → balances for the most recent run. On re-run, diffs against the prior cache and shows exactly what changed. Useful for catching mid-month QBO adjustments, journal entries, or bank feed imports.
All calculations use Python Decimal with ROUND_HALF_UP — no floating-point rounding errors in financial outputs.
Run all three compare pipelines for a complete monthly close package:
| Pipeline | Script | What it covers |
|---|---|---|
| P&L Quick Compare | pl-quick-compare.py | Revenue, COGS, expenses, net income |
| SCF Quick Compare | scf-quick-compare.py | Cash flows: operating, investing, financing |
| BS Quick Compare | bs-quick-compare.py | Assets, liabilities, equity positions |
Cross-reference flags across all three: