Balmer Works
Back to the works
Live since July 2026 From the works · The layer · Orders

Order intake at Peter Fasano

It reads. It validates. You decide.

Peter Fasano is a home-furnishings textile house. Orders arrive as email, typed, scanned, sometimes handwritten, and every one of them was entered into the ERP by hand, across modules that do not talk to each other.

What we built is a layer between the inbox and the ERP. Every hour it reads the mail, extracts each order, checks and corrects it against the live catalog, and holds it for a person with every field traced to the paperwork it came from. It enters nothing into the ERP and decides nothing. It flags, never blocks. The ERP is still the system of record. The layer is where the morning actually starts.

An order that passed all three checks: extraction, SKU and account, house rules
The calm state · all three checks passedScreens shown are from Halden & Roe, an invented house. Every name and number is made up.
What happened
01

Live in two days

First commit to a working demo on the client's real orders. The review board was already running at its own address during that first call.

02

The first flag caught a real rule

During the demo, one line of 21 yards came in at $103.50 against a catalog list of $138.00. Not an error: that showroom deducts its 25% commission when writing the purchase order. Keyed as written, with the monthly commission check also going out, $724.50 would have been paid twice. Nothing was double-paid. It was flagged for confirmation. The system knew none of the rule. It just declined to stay quiet about a number that disagreed, which is the whole design. Flag, never block.

An order held for review: a price that does not match the catalog, with the arithmetic shown
Held for reviewThe flag says what disagreed, and with what. The order moves on.
03

It says what it cannot see

Intake keys on attachments, so an ask typed into the body of an email was structurally invisible. Instead of pretending otherwise, a watcher was built for exactly that blind spot. Over 90 days it found five asks typed into email bodies with no attachment, roughly $6,530 at list. People had caught every one by hand. The gap was real, it was being covered by vigilance, and now the system names it instead of passing in silence.

The same rule runs at line level: a price the catalog cannot check raises "No list price" rather than saying nothing.

An order held because one item could not be identified: one check passed, one failed, one never ran. It hands the line to a person instead of guessing
Unresolved itemOne pass, one fail, one that never ran. It says so instead of guessing.
A wrong item number caught and swapped, with the reasoning written out
What it read: a wrong item number caught and swapped, reasoning written out.
The original order document opened from the sheet
What it read from: the original paperwork, one click away.
04

It ran seven days with nobody watching

In August the laptop that publishes the review board traveled for a week, lid closed. The cloud half of the pipeline ran the whole week without a missed cycle. The board froze and said so: its freshness stamp told the stale truth all week, because the one thing a review surface must never do is look fresher than it is. On wake, a catch-up cycle pulled 32 missed messages through in six minutes.

The move to the cloud waited until the checks agreed. The laptop and cloud pipelines run side by side, and a comparator grades them against each other. Before cutover it caught a one-line disagreement, and checking rather than assuming found a defect on both sides: each had skipped a price check silently when the catalog had no price to check against. Both now say so out loud. The cutover was postponed on the record until the checks agreed, and the parity was re-verified across the full live queue in September 2026.

268 / 268
Extractions resolve identically through both pipelines
135 / 135
Report pages render identically from the same data
0
Missed cycles in seven unattended days
05

It notices a habit and offers a saved sort. It never applies one.

The person who clears the queue at Peter Fasano works in two passes: the orders that passed every check first, then back for the flagged ones. Your team will have its own habits. The board notices patterns like that, deterministically, no model involved, and after three sessions offers them back as a saved sort with the person's name on it. Renamable, refusable, and only their default if they keep it.

It offers once. The board's own default stays chronological, and nothing it learns about your people becomes a default without a yes.

The board offering a saved sort it learned from one reviewer, named for her, with the option to keep, rename or refuse it
A learned sort, offeredKeep it, rename it, or turn it off
The posture, in one list
  • It flags, never blocks. A discount can be legitimate. The flag says so, and the order moves on.
  • Every automated correction is logged with before, after, and a reason.
  • It says when it could not check.
  • The freshness stamp tells the truth, including when the truth is stale.
  • It stays quiet unless a person is needed.
  • It observes, then offers. Nothing it learns becomes a default without a yes.
  • Nothing trains on your data. Access to the ERP is read-only.
Where it stands

A live queue, checked hourly, unattended, at about five cents an order. Everything stays human-reviewed by agreement while trust builds.

Nothing writes back into the ERP today. Approving an order marks it ready and a person enters it.

Where it goes next

Three phases. We are deliberately still in the first.

The last step is settled in format and unsettled in trust. The file the ERP will accept is confirmed with its vendor; what earns a slice the word proven is not, and until it is, nothing moves off human review.

Now
Every order read by a person
The board reads, checks and presents. A person approves, and a person types it in.
Next
A proven slice clears itself
Orders of a kind that has been right for a long time land in a ready-to-enter queue. Still entered by hand, on a shorter list.
Later
Approving writes the file
Approve for entry will produce a spreadsheet in the format the ERP accepts, confirmed with the vendor's lead engineer. The click stays a person's, and the file carries the same before, after and reason as everything else.

One piece of phase two is real: a staging endpoint that creates a genuine pending transaction. It wants a rep id for each showroom branch and the reading keeps only the showroom name, so on a sample day about half the orders could not be filled. That gap is the work, and it is a reason to keep the whole thing in hand.

The mechanical work moves. The decision stays with you.

This one started as an order queue at a textile house. Yours starts wherever the paperwork piles up. One conversation, no deck: describe how work reaches your team and I'll tell you what a layer would catch, and whether it's worth building.

Let's talk greg@balmerworks.com