A working audit of two commercial products

Where the AI
actually is.

Everyone says “add AI to your business.” Almost nobody says where. Here is where, measured from products I run.

Three kinds of machinery run a modern business. Only one of them is a model.

When I open up any system I have built, every moving part is one of three things. Knowing which is which is the entire discipline. It is also most of what I would bring to yours.

Software

Deterministic software

The vast majority of any system, including an AI-native one. Payments, schedules, records, rules. Testable, repeatable, near-zero cost to run. Boring on purpose.

Math

Computational reasoning

Judgement rewritten as equations: relevance as distance, demand as decay, performance as statistics. Objective, instant, and it gives the same answer every time.

Model

Generative AI

The scarce ingredient. Language and judgement where they are genuinely the product. Used surgically, guarded well, and never trusted with a job that maths or code can do.

130,000+
lines of production code in the engine behind Tention
30
places in all that code where a model is called
1 : 4,300
model call sites to lines of ordinary software
61%
of background pipelines never touch a model at all
Case one · Tention

One article’s journey to one question.

Tention turns world news into personal filming prompts for busy professionals. Watch a single story travel from the wire to a user’s phone, and count how rarely a model is allowed to touch it. Tap any step for the why.

news wire → filming question terracotta = a model was allowed in
Every topic cell carries a demand score that halves every fourteen days unless real users touch it. Hot topics get checked every forty-five minutes, warm ones every five hours, dormant ones barely at all. No one decides this in a meeting, and no model is asked. The system simply stops spending attention on things nobody wants.
lib/workers/cells.ts · decay = score × 0.5^(days/14) · hot 45min / warm 5h / heartbeat 72h
Each incoming story is reduced to a fingerprint of its title and address. If the database has seen that fingerprint before, the insert is refused in a single instruction. Paging through the feed stops at the first familiar fingerprint. Cost of this decision: effectively zero, forever.
sha256(title|url) · ON CONFLICT DO NOTHING · lib/ingestion/canonical-item.ts
An embedding model converts the article’s meaning into a list of 1,536 numbers, a point in space where similar meanings sit close together. This is machine learning but not generation: nothing is written, nothing can be made up. From here on, hard questions about meaning become geometry, and geometry is cheap.
text-embedding-3-small · 1536-d · pgvector, HNSW cosine index · batched up to 2,048 per call
Four outlets running the same wire story used to be four articles to process and pay for. Now it is a distance check: anything closer than 0.05 to an existing article inside a seven-day window is flagged as a duplicate, and the paid classification step downstream is skipped for it. Asking a model “are these the same story?” would work too. It would also cost money every single time, and occasionally be wrong in a new and creative way.
NEAR_DUP_MAX_DISTANCE = 0.05 · 7-day window · duplicates flagged, never deleted · lib/workers/near-dup.ts
The first model in the chain, and it is the cheap one. Filing an article under the right topics is language work, so a model has to do it, but it is internal plumbing no customer ever reads. So it runs on a fast low-cost model, in batches of up to fifty articles per call, at a strict low temperature, and its answers are validated in code against the real topic list before anything is saved. An article that fits nowhere is filed nowhere: it gets an empty tag list and quietly never serves, rather than being forced into the nearest wrong topic.
gemini-2.5-flash · temp 0.2 · batch ≤ 50 · slugs validated in code · off-taxonomy = empty array, never force-fit
Deciding what a user actually sees is the step most builders would hand to a model, and the step where a model would be slowest, priciest and least accountable. In the live news feed it is one database query: articles must share a topic with the user, be under seven days old, and pass a proximity test in that 1,536-dimension space, closer than 0.71 to something the user cares about. That number was not guessed. It was calibrated against real good and bad matches, and the working record is written into the code, including the measured edge where relevance falls apart. Newest first, no more than two per publisher, done. Same inputs, same feed, every time, for nothing.
GATE_DISTANCE = 0.71, calibrated 2026-06-07 (best good match 0.6902, wrong cluster from ~0.73) · window 7d · cap 2 per source · lib/workers/feed-matcher.ts
Now, and only now, the premium model earns its keep: it writes three distinct angles the user could take on this story, in their profession’s language, as questions worth filming an answer to. This is the product itself, words a human reads, so it gets the best writer available. But note what surrounds it: it fires only on the user’s explicit tap, never on scroll; the stable part of the prompt is cached so repeat generations reuse paid work; and the call is metered by a budget that would rather refuse than run away.
claude-sonnet · temp 0.8 · 3 angles · prompt-cache ttl 300s · opt-in on tap, never on mount · lib/workers/voice-angle-fork.ts
The three angles are written to the database, keyed to that user and that article. Open the story again tomorrow and the stored answer comes back instantly, no model involved, no charge incurred. The cache check runs before the spend guard, so a repeat visit costs nothing, and cannot even be refused. Across the whole system the same rule holds: transcripts, reports and generated answers are kept and reused. Nothing expensive is ever paid for twice.
v3_feed_questions · invalidated only when user prefs change · cache-before-budget ordering

Eight steps. Two model calls: the cheap classifier, and one premium writer that is cached, tap-gated and budget-capped. Everything else is code and maths that cannot hallucinate and costs next to nothing to re-run. That ratio is not an accident. It is the design.

The method

The maths I didn’t write.

Here is the part that should interest a business owner most. None of these equations came from a data-science team, and honestly, not all of them came from me. I described the outcome I needed in plain English and directed Claude until the machinery existed, behaved, and was calibrated against real examples. AI’s quietest superpower is designing the systems that replace it.

Relevance as distance

Meaning mapped to geometry, with one calibrated threshold deciding what serves. It replaces a model’s opinion: slower, priced per ask, and different every time you ask it.

Demand as decay

A half-life curve quietly retires topics nobody touches, and the polling schedule follows it. It replaces a human deciding what is still worth watching, which in practice means nobody deciding.

Performance as statistics

Creators in Tention are scored only against their own history: a baseline, a spread, a curve mapping to a number. It replaces vanity metrics: comparing a physiotherapist’s reach to a footballer’s.

Learning as arithmetic

Which style of question suits each user is decided by a bandit algorithm, a running tally that sharpens with every film or skip. It replaces guesswork A/B tests, and it costs nothing to run.

This is what AI makes newly affordable: not chat, but bespoke computational reasoning. Objective answers, from your own data, to questions that used to need a research budget. The model designs the equation once. The equation then runs forever, at no cost, and never makes anything up.

Where a model is trusted, it works inside rules.

Models hallucinate and models cost money. Neither is a reason to avoid them. Both are reasons to engineer around them. Five rules from inside Tention, all enforced in code rather than in good intentions.

Nothing can invent the user’s words

Tention publishes quotes from what users actually said on camera. The model choosing a quote is only allowed to return positions, numbered locations in the user’s own transcript. Pure code slices the words out. The published string is always theirs, because no component that could invent words is ever in a position to produce it.

“No network, no database, no LLM, no clock, no randomness.”
header of the module that cuts the quote, verbatim

Nothing runs uninvited

Every model call made on a user’s behalf sits behind a deliberate tap. The one user-facing check that once fired automatically was removed from the schedule, and a test now asserts it stays removed. Consent is a screen, not a checkbox in settings.

Premium spend fails closed

Spend is counted before a call, not discovered on an invoice. The premium paths are built to refuse at their cap rather than run on. The written rule: unbounded premium-model spend is worse than a feature being briefly unavailable.

The right model for the job

Premium models are spent where humans see the result. Cheap fast models do the internal sorting. The single most expensive model in the system runs once per change to a creator’s brand guidelines, and its answer is reused ever after.

Every call leaves a receipt

Each model call writes a telemetry row: tokens, cost, latency, retries, errors. What it never writes is the content itself. The logging system cannot leak a transcript, because content fields are simply not on its allowlist.

Case two · Heirloom Prints

A complete commerce business. Model calls at the checkout: none.

0models in production

Heirloom Prints is a premium framed-print store: a visual product configurator, Stripe checkout, a full order lifecycle with automated invoicing, a commission ledger for partner photographers, transactional email, and an admin back office.

Every part of it is deterministic. Payment confirmation is an idempotent transaction that retries safely. Shipping is rules. Margins and commissions are arithmetic with a 90-day hold. Nothing in a checkout should be creative.

And yet AI built nearly all of it, under direction, the same way it built Tention. That is the finding most businesses miss: the most valuable AI in this company finished its work before launch. If your operation runs on spreadsheets and swivel-chair admin, your biggest AI win is probably AI-built software, not AI-run software.

stripe webhook, idempotent order lifecycle pdf invoicing commission ledger shipping tiers image compositing admin portal

The same audit, on your business.

This is the consulting work I am beginning to take on: sitting inside a business, mapping how it actually operates, and placing AI only where it earns its keep. Three questions I would bring on day one:

Where in your operation are language and judgement genuinely the product, the places a model deserves to be?
Which decisions are made by gut feel today that should be equations: objective, instant and costing nothing to re-run?
And how much of what you call an AI problem is really a software problem AI can now build you out of?