esya
Selected work · Relationship intelligence

The relationships buried in a decade of correspondence

A client’s most valuable relationships were already in the building, sitting in years of email nobody could see through.

What it does
Reads the correspondence history at scale, classifies every counterparty as a person, an organisation or machine traffic, and aggregates each one into a profile: how much passed between you, in which direction, and how long ago it went quiet.
The control
A person decides which relationships are worth reviving. Nothing reaches the CRM before that sign-off.
Failure
A CRM populated by hand only ever captures the relationships somebody already remembered.
Unit of work
A decision per relationship, rather than per message.
Authority
  • Acts alone Reads and classifies, checkpointed so an interrupted run resumes rather than restarts.
  • Asks first Every write. Not one profile reaches the CRM without a person approving it.
  • Refuses To treat a classification as a decision. Machine traffic is separated from people, and the separating is where its job stops.
  • Never exceeds Read access to the mailbox and write access to nothing until sign-off.
Named systems
Google Workspace · Microsoft 365 · two implementations, no shared runtime code
Claims
Forty thousand messages judged at three seconds each take about thirty-three hours; about four thousand pre-classified correspondents judged at two seconds each take a little over two hours. At enterprise scenario inputs of one million messages, 100,000 counterparties, 90 seconds a review and $100 an hour, a separate sensitivity model removes 900,000 review decisions and values the 22,500 released hours as a one-off $2.25 million of operating capacity.
Non-claims
That this client measured either figure. They did not, and the sentence carrying the figure says so.
Evidence held
Of four thousand correspondents, 2,610 classified as machine traffic and 1,390 as people or organisations. The client’s team approved 412 into the CRM, 147 of which had been quiet for more than two years.
Status
In production
At length

The same ten fields, with the arguments behind them.

Unit of work

The saving is the unit, not the speed.

The order-of-magnitude change here has nothing to do with how fast a model reads. It comes from moving the decision from the message to the relationship. Forty thousand messages judged at three seconds each is about thirty-three hours of somebody’s life. Four thousand pre-classified relationships confirmed at two seconds each is a little over two.

That is a property of the design rather than of the model, which is why it survives a change of model and why it is the number worth quoting.

Named systems

Two implementations that share no runtime code.

It runs against Google Workspace and Microsoft 365 as two independent implementations, deliberately. A shared abstraction over two mail APIs looks tidy and fails in the way that matters: a change made for one silently alters the other, and nobody finds out until a run against the quieter estate produces a different answer.

Both produce the same auditable record of what was decided, which is the only thing that genuinely has to be identical.

The control

Classification is not a decision.

The pipeline says a counterparty looks like a person, an organisation or a machine. It does not say the relationship is worth reviving, and it never writes as though it did. Every profile waits for somebody who knows the business to approve it, and the CRM receives nothing else.

The distinction sounds pedantic until the first wrong classification, which is when a system that writes on its own has already put a supplier’s no-reply address into the relationship list.

Evidence held

One measured number, three modelled ones.

The triage arithmetic is modelled from a stated volume and a stated rate, and it says so in the sentence it appears in. The classification split and the count the client’s team actually approved are the measured part, because both are records the system produced rather than estimates about it.

How the work moved

Read everything, decide nothing, then hand it over.

The pipeline had full read access to a decade of correspondence for weeks before it was allowed to write a single record. That ordering is not caution, it is the design: a system that reads and a system that writes are two different risk profiles, and joining them early removes the chance to look at what the reading found.

Map

Ingest the estate, checkpointed.

An interrupted run resumes rather than restarts, which is what makes a decade of mail a job rather than an expedition.

Forty thousand messages, about four thousand correspondents

Build · Workspace

The Google implementation.

Its own runtime, its own tests, and no code shared with the other.

Build · Microsoft 365

The Graph implementation.

Same auditable record of what was decided, arrived at independently.

Two implementations on purpose, so a change made for one cannot silently break the other

Ship

A person approves, relationship by relationship.

Deterministic rules and a language model classify; the client decides which relationships are worth reviving.

Four hundred and twelve approved into the CRM

Run

Dormancy keeps surfacing.

The profile carries how long ago a relationship went quiet, so the same review runs again without a second ingest.

Six weeks from first workshop to a reviewed first pass

Read access to the mailbox. Write access to nothing until a person signs off.

Before and after.

Measure Before After
Counterparties the CRM knew about 310, entered by hand 722, after 412 were approved in
Counterparties classified, ahead of any sign-off Not applicable; nobody had read the estate 1,390 of 4,000, the rest machine traffic
Human decisions to triage the estate 40,000, one per message About 4,000, one per relationship
Relationships quiet for over two years, resurfaced None 147

Human decisions to triage the estate is arithmetic from the volume and the unit of work, not a figure this client measured. Deliberately excluded: any revenue attributed to a revived relationship. We did not see it, so we do not claim it.

Half of these were people I would have said I knew well, and I could not have named one of them from memory on the day we started.

Approved testimonial wording · Managing partner at the client
Enterprise value lens

The economic lever is 900,000 decisions that no longer need making.

The case above ran on forty thousand messages. The value model below shows the same design at an enterprise estate of one million messages and 100,000 counterparties. Moving the decision from each message to each relationship removes 900,000 human review decisions. At 90 seconds per review and a $100 fully loaded hourly cost, that releases 22,500 hours, or $2.25 million of one-off operating capacity.

AssumptionModel
Messages1 million
Counterparties100,000
Human decisions removed900,000
One-off capacity value$2.25 million

This is a sensitivity model, not this client’s measured saving. Revenue from a revived relationship is excluded because the system did not measure it.

What this case does not claim.

No revenue. What a revived relationship is worth belongs to the client’s pipeline and not to our page, and we never saw the figure.

No accuracy percentage on the classification. Precision on a task this open depends entirely on how a mailbox was used, and a number from one estate would mislead about yours.

No claim that the model chose anything. It sorted, and a person decided, which is the whole control and the reason the CRM is not full of no-reply addresses.

Book a call Read the register