SOP: money — reconciliation, AR & ROAS
Bank ledger (Plaid → Chase)
Section titled “Bank ledger (Plaid → Chase)”Chase checking + credit-card transactions are pulled automatically every morning into the read-only Bank Transactions ledger (Admin area). Balances show at the top — checking, credit-card owed, and net cash position. Cash never appears here by definition — it’s tracked through tech balances.
Weekly SOP — reconcile the bank
Section titled “Weekly SOP — reconcile the bank”Goal: every Chase transaction gets accounted for. The auto-matcher does most of the work; the team confirms and fills gaps.
flowchart TD PULL[Daily automatic pull + auto-matcher] --> TAB[Open Bank Transactions<br/>Needs review tab] TAB --> SUG{Suggested match shown?} SUG -- Yes --> OK["Confirm it (one click)"] SUG -- No --> MAN[Match manually:<br/>job payment / part purchase / tech payout / misc] OK --> ZERO{Badge at zero?} MAN --> ZERO ZERO -- No --> TAB ZERO -- Yes --> DONE[Week reconciled]- Open Bank Transactions — it lands on the Needs review tab (badge = open items).
- Confirm each suggested match (✓). Suggestions only appear when there’s exactly one candidate, so they’re safe to trust — but glance at them.
- Match the rest manually: pick the kind —
- Job payment — incoming Zelle/CC → the job’s customer payment
- Part purchase — vendor charge → the job(s) it was for (one charge can cover several)
- Tech payout — outgoing Zelle → that day’s End-of-Day payout (matched on the net amount)
- Misc — Google Ads, card autopay, bank fee, transfer, refund, other
- Repeat until the badge hits zero. Unmatch undoes any mistake.
Obvious recurring items (Google Ads charges, Chase card autopay, fees) are auto-matched with no review needed. If a new glass supplier shows up, ask Claude to add it to the parts-vendor keyword list so their charges auto-suggest.
Accounts Receivable (admin-only)
Section titled “Accounts Receivable (admin-only)”Admin → Finance → Accounts Receivable shows two buckets — work through both regularly:
- Awaiting payment — work is complete but no payment recorded. Action: Record payment.
- Collected · unconfirmed — a non-cash payment (Zelle/Venmo/Stripe) was recorded but hasn’t been verified against the bank yet. It clears automatically when the bank reconciliation matches it, or hit Confirm received if you’ve verified it by hand.
- Cash is always considered confirmed (the tech-balance system tracks it).
ROAS report
Section titled “ROAS report”Weekly per-location: Ads spend + leads vs booked revenue & profit (revenue = job quote; profit = quote − part cost − tech pay; attributed to the week the job was created; lost/canceled excluded). Ad metrics pull automatically every morning from Google Ads.
Caveats to remember when reading it:
- Insurance jobs understate revenue — the quote is just the deductible; the carrier’s payment isn’t counted (by design, for now).
- If ad metrics stop updating, the Google OAuth token likely expired — flag to Alex/Claude.