← Back

Skills · digital agency

Skills for the marketing agency.

The same method applied to a business with almost nothing operationally in common with a donut shop: departmental P&L, revenue recognition off a billing sheet, and a partner deck every month.

None of these post to QuickBooks. Every one ends in a file to import or a report to act on, so the posting decision stays with a person.

Close & reporting

hc-monthly-financial-package

Refreshes the monthly financials workbook from QuickBooks, then builds the ~31-slide partner deck out of it — every dependent tab updated, headcount reconciled against payroll, and four partner personas pressure-testing the deck before it reaches a real partner's inbox.

Replaced Five separate spreadsheets kept by hand, figures pasted into slides as screenshots, and commentary written from scratch — three to four hours of production work every month.
  • Produces The refreshed workbook and the partner deck, with a PDF preview to review before anything is shared
  • You step in A hard stop before the deck is built, until the workbook is confirmed final
  • Read more The full case study →

Journal entries

jw-payroll-je

Builds the semi-monthly payroll journal entry as a QuickBooks import, pulling payroll straight from the provider's API rather than from a manual check entry. It reads paystubs, fees and member departments, converts cents to dollars, and aggregates earnings, deductions, employer contributions and workers' comp into a balanced entry that credits the operating bank account for the invoice total. Non-executive rows map to salary and wages by department; executive rows split per partner into separate accounts with matching partner classes.

It exists because the native payroll-to-QuickBooks sync maps per-partner executive compensation wrong. The import format is a spec arrived at after six failed attempts — leaf account number plus full qualified path, currency on every row, fully qualified classes, and a plain numeric journal number repeated on every line.

Replaced A lot of Excel. Different ledger accounts and classes at the employee level, and the payroll provider's own overrides weren't deep enough to express it — so the mapping got rebuilt by hand each run.
  • Fires on "book payroll", "make the payroll JE", or naming a pay date with booking intent
  • Produces A QuickBooks journal-entry import CSV, a tie-out summary, and a list of everything it flagged rather than guessed at
  • Guardrails Non-negotiable tie-outs run before delivery: debits less expense credits must equal the company debit, salary buckets must equal gross pay, tax buckets must equal employer taxes, fees must tie to the fee list
  • You step in Every reimbursable expense, S-corp health premium, unknown deduction or earning type, changed department, and unrecognized executive is flagged before the file is delivered. You run the import yourself
monthly-rev-rec-je

Turns the month's billing sheet into a balanced draft revenue-recognition entry, then converts that draft into an import file once it's been reviewed. It reads only the rows tagged for rev rec, finds columns by header name rather than position because they move between months, and reads the human-written finance notes to derive hours and rate per performing department. It debits where the revenue was billed and credits the department that did the work, carrying the client tag, a derived class, and the originating row numbers.

Replaced Hand-creating zero-dollar invoice records in QuickBooks to move revenue in and out of departments — one at a time, every month.
  • Fires on "build the rev rec JE for May", or pasting a billing-sheet link alongside any mention of revenue recognition
  • Produces Phase one, a two-sheet Excel draft — JE lines with flagged rows highlighted, a balance check, and a backup sheet tying every line to its source row. Phase two, the import CSV plus a names-to-verify list
  • Guardrails Scope is decided solely by the tag, even when other rows discuss rev rec at length — those flow through rev rec invoices and would double-count. One month is kept as a regression anchor with expected row, entry and line counts recorded, so a run that drifts is caught immediately
  • You step in The draft is the review gate. Phase two never runs until you've looked at phase one, and the CSV is never volunteered alongside the draft

Reconciliation

prepaid-reconciliation

Ties one month's column of the prepaid expenses amortization schedule to the general ledger and explains any variance transaction by transaction. It pulls month-end balances from the accrual balance sheet, compares the schedule against the ledger, and walks back through prior months to find where the break started — then queries journal entries, bills and purchases to isolate the lines that actually drove it.

The usual culprit is timing on new subscriptions: a renewal bill or card charge dated late in the month hits the ledger, but the schedule keeper parks the setup in the following month's column. A few cents of residual is normal penny rounding on the monthly amortization entries and isn't worth chasing.

Replaced Comparing two Excel files by hand with lookups.
  • Fires on "reconcile the May column", "tie out the prepaid schedule", "why doesn't column O match"
  • Produces A report giving the schedule balance, the ledger balance, the variance, the specific transactions driving it, and the recommended correction — or a written reconciliation memo on request
  • You step in It reports and recommends; it only writes corrected figures into the schedule if you ask

Variance analysis

Two skills, deliberately split. The expense one drills to vendor; the revenue one drills to client. If the account is income, the revenue skill supersedes.

flux-analysis

Runs a month-over-month flux on any expense account or account group, drilled to vendor and transaction level. It maps a plain-English category to real accounts, pulls the P&L for both periods to set the reconciliation target, then queries all three sources that post to expense accounts — card charges, AP bills, and journal entries carrying the monthly amortization of annual prepaid software. It handles the credit flag on purchases, signs journal entries by posting type, and infers vendors for journal entries from line descriptions.

The hard rule is that nothing is produced until all three sources reconcile exactly to the P&L. Forgetting amortization entries is the most common failure and it hides a material amount every month.

Replaced Side-by-side Excel comparisons stitched together with lookups.
  • Fires on "what changed in professional fees last month", "why did marketing spend jump in Q2", "compare hosting costs October vs November"
  • Produces A four-tab workbook — summary with a written narrative and top-ten preview, full vendor detail sorted by absolute delta, every underlying transaction as an audit trail, and a methodology tab documenting scope and caveats
  • Nuance A vendor appearing as both a cash charge and an amortization entry gets two rows so the distinction stays visible. Vendors with no prior-period baseline are marked NEW rather than showing an infinite percentage. Renewals are timing, not real change
  • You step in Scope confirmation up front — which accounts the category means, which two periods, accrual or cash basis
revenue-flux-analysis

The income counterpart, drilled to client rather than vendor. It maps plain-English revenue terms to account families, sources by-customer revenue from a transaction-detail export, pulls client names out of commission journal-entry descriptions where the name field is blank, and rolls sub-jobs up to the parent client against a canonical list. It can corroborate a movement with logged hours rather than leaving it as a guess.

Each period has to tie to the penny before the workbook gets built. A zeroed-out client isn't automatically a loss and a new one isn't automatically a win — the hours tab is there so you can tell which.

Replaced The same side-by-side Excel lookups, on the income side.
  • Fires on "why did analytics income drop from April", "which clients drove the development revenue change"
  • Produces A four-tab workbook plus an optional fifth putting logged hours beside revenue by client, with project-level detail underneath
  • Nuance A service team logs across project types, so total team hours per client won't be one-to-one with a single income account — which is why project-level detail stays visible instead of being rolled away
  • You step in Scope confirmation when the account group is ambiguous, and supplying the period exports. Genuinely new, unmatched clients are flagged rather than invented

The other side of the same method — ten skills for a nine-location food business →