Skip to main content
Preisser Solutions
Case Studies/The Preisser Solutions back office
Internal Platform

The Back Office We Built to Run Our Own Business

One administration panel, built the same way we build for clients, solving the ordinary problems of running a services business, starting with a rule that refuses to guess whose deposit is whose.

Evidence, not odds
A deposit auto-pays only on a name match and an exact amount
Flags, not guesses
An amount that also fits a combination of other invoices is never auto-applied
Nothing silent
Every refusal is logged and later resolved by a person, not dropped
01
Evidence, not odds
A deposit auto-pays only on a name match and an exact amount
02
Flags, not guesses
An amount that also fits a combination of other invoices is never auto-applied
03
Nothing silent
Every refusal is logged and later resolved by a person, not dropped
Before

Bank deposits arrived with almost nothing identifying who sent them.

Every deposit posts with only what the bank happened to capture: a merchant name that may or may not name the client, and an amount that on its own proves nothing. An amount matching an invoice is a coincidence until something else confirms it, and reconciling that by eye does not scale past a handful of accounts.

The back office we run our own business on needed the same discipline we build for clients: never post a match it cannot prove, and never leave a person guessing which reading is real.

What we built

A matcher that ties a deposit to an invoice only when nothing is left to guess.

A daily job compares every unmatched deposit's bank text and amount against the client's open invoices. A deposit only pays automatically when the bank text names that client and the amount matches exactly one open invoice; anything else is left in a queue with the reason attached, never auto-posted on a guess.

When a deposit's amount exactly matches one open invoice but is also exactly a combination of other open invoices for that client, the matcher will not pick a reading. A person decides. The same discipline applies to a deposit that repeats an amount already paid: nothing open explains it, so it waits for a person rather than being guessed at.

See it work

Watch it work on demonstration data.

A deposit that will not guess

Demonstration data

This Money tab normally holds two more groups: charges waiting for a bucket, and proposals waiting for a yes. Here it shows only deposits waiting for an invoice.

This stage shows the Preisser Solutions back office matching bank deposits to open invoices. Deposits arrive, three are matched cleanly to a single invoice each, one amount matches an invoice exactly but also a combination of two smaller ones and is held rather than guessed, one deposit is still pending at the bank, one names no client the system recognizes, one matches no open invoice for its client, and one repeats an amount already paid and is left unexplained. The clients, invoices, and bank rows shown are an invented demonstration.

Before

Before: a bank statement on one screen, a spreadsheet of open invoices on another, and a person cross-checking both by eye.

Bank statement: deposits

LARKSPUR FENCE SUP$1,850.00
CEDARBEND VET CLINIC$960.00
LARKSPUR FENCE SUP$2,275.00
MILLBROOK GRAIN SV$4,200.00
MILLBROOK GRAIN SV$960.00
Mobile Check Deposit$640.00
LARKSPUR FENCE SUP$1,500.00
LARKSPUR FENCE SUP$1,850.00

+4 more

Ledger: open invoices

INV-2101, Larkspur Fence & Supply$1,850.00
INV-2102, Millbrook Grain Services$4,200.00
INV-2103, Cedar Bend Veterinary Clinic$960.00
INV-2104, Larkspur Fence & Supply$2,275.00
INV-2106, Cedar Bend Veterinary Clinic$640.00
INV-2107, Millbrook Grain Services$1,500.00
INV-2108, Millbrook Grain Services$2,700.00
INV-2109, Larkspur Fence & Supply$950.00

+4 more

The read

Deposits post from the bank, and the matcher decides on each one before a person ever sees it.

Today's bank feed
LARKSPUR FENCE SUP$1,850.00Paid
CEDARBEND VET CLINIC$960.00Paid
LARKSPUR FENCE SUP$2,275.00Paid
MILLBROOK GRAIN SV$4,200.00Held for a person

This deposit matches an invoice, but the amount is also two smaller invoices combined.

MILLBROOK GRAIN SV$960.00Not posted yet
Step 5 of 5
What it caught

Three more deposits, three different reasons the matcher will not guess.

A deposit with no name on it.

Mobile Check Deposit for $640.00. The bank text names no client the system recognizes.

A deposit that matches no open invoice for its client.

LARKSPUR FENCE SUP, $1,500.00. No open invoice for this client is $1,500.00.

A deposit that repeats one already paid.

LARKSPUR FENCE SUP, $1,850.00. INV-2101 already paid this amount. Nothing open matches, so it is left for a person.

Step 3 of 3
The screen

The Money tab's Review view, recreated: the deposits still waiting on a person.

Specifications

The deposit-to-invoice matcher, the first proof stage of the back office.

A daily matcher that ties a bank deposit to an invoice only on a name match and an exact amount

A hold queue for anything the matcher cannot prove: a competing combination, no counterparty, no exact match

A repeat deposit against an amount already paid matches nothing open, and is left for a person, never re-paid

Results

Outcomes the engagement actually produced.

Result 01
Evidence, not odds
A deposit auto-pays only on a name match and an exact amount

The bank text has to name the client and the amount has to match exactly: a coincidence never posts on its own.

Result 02
Flags, not guesses
An amount that also fits a combination of other invoices is never auto-applied

When a deposit's amount exactly matches one invoice but is also exactly a combination of others for that client, the matcher will not choose a reading and flags it for a person.

Result 03
Nothing silent
Every refusal is logged and later resolved by a person, not dropped

A deposit the matcher cannot place stays queued with its reason attached until a person decides.

Tech stack
Cloudflare WorkersReact administration panelPython back-office agentPlaid bank feed

Want a back office that refuses to guess?

Preisser Solutions builds the administration panels and the automation underneath them. Scoping begins with a conversation about your sources and your decisions.