Foundational essay

Payments know when money moved. They don’t know whether it was earned.

Payment systems became very good at knowing whether money moved. They rarely know whether the thing being paid for satisfied the agreement. This is the history of that gap, and the case that a general fulfillment layer is finally possible.

Published August 13, 2026

Payments have always been good at one question: did the money move? They have rarely been good at a different question: did the thing being paid for actually happen the way the two sides agreed?

Think of Spoolis as the referee, not the bank. The referee decides what counted. The bank moves the money.

Those are not the same question. A card can approve, clear, and settle a purchase while knowing almost nothing about what was bought. That gap has been survivable for a long time because a person was usually standing nearby to close it. That assumption is now breaking.

This is an essay about the history of that gap, and about a claim worth stating carefully: commerce has never had a widely available, cheap, programmable way to decide whether arbitrary economic work satisfied arbitrary agreed conditions. The pieces to build one are finally arriving at the same time.

When commerce was local, people were the verification layer

In a market you could hold the fruit, weigh the grain, and count the coins in the same moment. Payment and fulfillment were close to simultaneous, and both sides were present to judge whether the exchange was fair.

The verification layer was a human being. It did not scale, it did not travel, and it did not leave a record. But it answered the real question directly: is this the thing we agreed on, and is it acceptable, right now.

Almost every payment innovation since then has been an attempt to keep some of that trust while removing the requirement to be in the same room.

Cards separated payment from understanding

Card networks are remarkable infrastructure. They solved authorization, clearing, and settlement at global scale, and they layered fraud controls and dispute handling on top. These are distinct steps: authorization places a hold and confirms the account can pay, clearing exchanges the transaction details between banks, and settlement actually moves the funds.

But look at what an authorization message carries. In the ISO 8583 format the networks run on, the message holds the account number, the amount, a processing code, a timestamp, and the merchant and terminal identifiers. It confirms that a specific account may pay a specific merchant a specific amount at a specific time.

It does not carry what was promised. The network does not know whether the item matched its description, whether a service was delivered, or whether 98 of 100 ordered units met the agreed standard. That was never its job. The network understands the payment. It does not understand the agreement.

The distinction that runs through the whole essay: knowing money moved is not the same as knowing it was earned. Cards mastered the first and left the second to someone else.

E-commerce added proxies for a buyer who could no longer inspect

Once buyer and seller were no longer co-located, the inspection step disappeared, and commerce filled the hole with proxies: shipment events, delivery scans, reviews, refund windows, chargebacks, and buyer-protection programs.

These are genuinely useful, and they should not be dismissed. But they are coarse. A delivery scan tells you a package arrived at an address. It does not tell you the contents matched the order. Dispute systems are the clearest example of the proxy problem: the card networks group disputes into a handful of broad categories, mostly fraud, authorization, processing errors, and consumer disputes, each on a fixed deadline. That is a blunt, after-the-fact instrument for a question that is often fine-grained and specific.

"Delivered" is a proxy for "satisfied the agreement." Most of the time the proxy is close enough. The interesting cases are the ones where it is not.

Escrow made release conditional, but remained bespoke

Escrow is the first system in this history to say something important out loud: money should move when a condition is satisfied, not merely when someone asks for it. Funds sit with a neutral party and release only when predefined conditions are met.

That is a real advance, and it is worth being precise about what escrow got right and where it stops. Many escrow arrangements are administrative: the agent checks whether specified documents were presented and whether the if-then logic of the instructions was satisfied. Bespoke arrangements can go further, using inspections, experts, or acceptance certificates to evaluate the underlying work.

Letters of credit make the same boundary explicit at global scale. Under the ICC rules that govern them, banks deal in documents, not goods. A bank examines whether the presented documents strictly comply with the credit's terms, within a fixed number of banking days, and pays or refuses on that basis. It never inspects the shipment itself.

This is the closest historical ancestor of what comes next, and also the clearest statement of the limit. Escrow can recognize sophisticated conditions when the parties pay to design and administer them. What it generally does not provide is cheap, general-purpose, executable verification of arbitrary fulfillment. The arrangement remains bespoke, and adjudication is often expensive and human.

Marketplaces encoded trust that does not travel

Uber, Airbnb, Upwork, and eBay each built a working answer to the fulfillment question. They can, because they control the transaction type, the workflow, the participants, the evidence, and the payment system. Inside those walls, "the ride happened" or "the job was accepted" is a real, enforced signal. So yes, Upwork and eBay already verify fulfillment, but only inside a closed domain they define.

The limitation is portability. The verification logic is fused to the platform, and its result does not travel. A trust rule that works beautifully for a rideshare cannot be lifted out and applied to a dataset purchase or a research task. A seller cannot carry the platform's acceptance result to another rail, buyer, or workflow as a reusable artifact. Every marketplace re-solves the same problem from scratch, in a shape that only fits its own domain.

The strongest objection is that perhaps none of this needs to travel. Why should fulfillment verification be a general independent layer at all? A buyer can always write a custom check for one transaction. A marketplace can always build verification for one domain. A payment rail or buyer might reasonably prefer to own its acceptance rules rather than trust another system's result.

The general-layer bet only matters if enough economic work shares the same underlying needs: explicit criteria, evidence, reusable verifiers, partial outcomes, earned-value calculation, and a portable result other systems can consume. If those needs do not repeat across domains, the independent layer is unnecessary. If they do, rebuilding the same machinery inside every marketplace, rail, and buyer becomes the less plausible architecture.

Software commerce exposed the gap

Software started selling increasingly abstract things: compute, data, leads, enrichment, model output, research, code, media, automation. And in software, fulfillment quietly collapsed into a status code. 200 OK, or "job completed," came to mean "fulfilled."

That proxy is even leakier than a delivery scan. An API can return successfully and return bad work. A provider can deliver 100 records while only 98 meet the agreed criteria. The response says success; the agreement says partial. Nothing in the payment path notices the difference.

Agents make the gap unavoidable

Until recently, a person absorbed this problem. A human read the output, decided whether it was good enough, and only then approved the invoice. The status code was a hint; the human was the verification layer, same as in the market stall, just slower and over email.

Software can now discover, negotiate, buy, perform, deliver, authorize, and pay, at machine speed and in volume. When both sides of a transaction are software, no one is standing nearby to inspect the work. The question that a human used to answer silently now has to be answered by a system:

Did this work satisfy the terms? And, because the honest answer is often not a clean yes or no: what portion of it did, and how much was earned?

Payment, authority, verification, and earned value are separate

Most of the confusion in this space comes from collapsing four different questions into one word, "payment." Spoolis treats them as separate layers because they answer different questions and fail in separate ways.

The payment industry has spent decades on the first two. The third and fourth have mostly been left to humans, to platform-specific code, or to a status code standing in for a judgment. That is the missing middle.

The pieces of a general fulfillment layer now fit together

Conditional payment is not new. The claim here is narrower and, I think, more interesting: the components to build a general fulfillment layer have matured at roughly the same moment, and can finally be composed.

Models can read messy economic intent, the kind that lives in chats, prompts, statements of work, listings, and issues, and turn it into something structured. Deterministic tools can verify concrete outcomes against schemas, tests, URLs, APIs, and files. Grounded, evidence-based model judgment can cover the cases where a deterministic check is not enough, without pretending to certainty it does not have. Agents can carry out economic workflows on their own. Payment authority is now programmable through wallets and delegated spend policies. Settlement is getting cheap and fast. And a verification result can be captured as a portable, signed artifact that another system can check.

Each of these existed separately before. What is new is that they can be assembled into one primitive: take an agreement, decide whether it was met, decide how much was earned, and hand that result to whatever moves the money. Maybe it does not fully generalize. But it is now worth trying, which was not true even a few years ago.

Spoolis supplies the answer payment rails do not compute

This is the layer Spoolis is built around, and it sits deliberately beside the payment rail, not on top of it.

Spoolis takes messy economic intent and compiles it into explicit acceptance criteria. It decides what evidence is needed, then selects or runs the verifiers. It calculates what passed and what was earned. It emits a signed Outcome Receipt, and it lets the payment authority or rail act on that result. Spoolis signs verdicts; the buyer's wallet signs payments. Those stay separate on purpose.

The example that makes it concrete is small:

An agent buys 100 company records for $1 each. The provider delivers 100. Two fail the agreed criteria. Spoolis determines that 98 passed and $98 was earned. The payment infrastructure can then move $98, not $100 and not nothing.

No status code carries that. No chargeback expresses it cleanly. It is the plain answer to "was it earned," rendered as a number a payment system can act on. You can watch that transaction run.

The next layer may make fulfillment machine-readable

Many major commerce and payment innovations solved coordination problems that earlier systems had handled by hand. Cards let distant parties transact without cash changing hands in person. Networks scaled authorization. Escrow separated payment from immediate delivery. Marketplaces encoded domain-specific trust. Programmable money made settlement machine-readable.

The next coordination problem in that line may be making fulfillment itself machine-readable: a portable, general way to decide whether the agreed thing happened, and how much of it was earned. Spoolis does not replace any payment rail. It tries to supply the answer the rails were never built to compute.

Payments learned to understand money. We're betting the next layer learns to understand what the money was for.

Payments know when money moved. They don’t know whether it was earned. · Spoolis