ModvenRun an Opportunity ID →

Operating system

Four moves, found in twenty ventures and run the same way in every sector.

We went back through more than twenty of our own ventures and innovation projects looking for what the wins had in common. The opportunity DNA turned out to be identical every time. This is the system that came out of that work.

01 / 04 · Assumption

Name it. The hunch comes first.

Before anyone opens the data, we spend an afternoon with the owner and the people who run the floor. Every instinct, gripe, and workaround gets written down as an assumption with a number and a range. Writing it first is the point: once people see the data, they remember having believed whatever it says.

02 / 04 · Signal

Find it. The records answer.

Then the records get their turn. Quotes, invoices, contracts, redemptions, routing: years of the business recording its own behavior. Agents test every assumption against them, and they also surface the gaps nobody in the room raised. Those are often the biggest, because nobody was looking.

03 / 04 · Alpha and holdout

Size it, then prove it. The gap, sized and explained.

A gap becomes an alpha candidate when it has a dollar range drawn from your own records and a reason it survived: the incentive that kept everyone playing the old game, or a habit that was rational for each person and expensive for the business. Then it has to hold up twice, found in one stretch of your history and confirmed in a stretch nobody looked at. History makes it credible. Only a live test makes it real.

04 / 04 · Mechanism

Build it. Built, not handed over.

We build what captures the alpha: a new company, an internal product, a pricing engine, or a workflow. The stop condition is written before the build starts, and the first weeks live are the test. When there is more than one bet worth making, they run as a portfolio, each one scaled or killed on evidence.

Two inputs

What the team believes, and what the records say.

People know what was never written down. The records show what actually happened. We collect both, then let simulated panels argue before anything is tested for real.

The room

The owner and operators, one afternoon, before the data. Every hunch gets a number.

The records

12 to 24 months of quotes, invoices, and orders, as one export. No system access.

Never evidence

The panels

Simulated buyers and skeptics argue with each assumption and choose what gets tested for real.

Signals, live

Recorded. Expected. The gap between them.

Our agents read what actually happened against what the operating model says should have happened. Wherever the two diverge, an alpha gets sized and a stop condition gets written, and only then does anyone build.

Signals — extraction run
extract.pyassumptions.pysources.sqlMODVEN / SIGNALS
1# Read what the business already records. Write nothing back.
2from modven.sources import Export, Ledger
3from modven.models import SignalExtractor, AssumptionMap
4from modven.alpha import size, grade, StopCondition
5
6sources = Export.load("client_2024-2026.zip") # structured export, nothing connected
7tables = ["quotes", "invoice_lines", "shipments", "contracts", "returns"]
8
9extractor = SignalExtractor(window="24M", grain="line")
10ledger = Ledger()
11assumed = AssumptionMap.from_operating_model(sources)
12
13for t in tables:
14 recorded = extractor.read(t) # what actually happened
15 expected = assumed.project(t) # what the model says should
16 gap = extractor.diverge(recorded, expected)
17
18 for signal in gap.signals(min_strength=0.6):
19 alpha = size(signal, horizon="90d")
20 alpha.stop = StopCondition.write(signal) # before anyone builds
21 ledger.add(alpha, grade(alpha))
› export 24M window · 5 tables · 2.3M rows
› quotes 2.1M lines · assumption: price follows list · divergence 0.71
› shipments 184K loads · assumption: freight is billed · divergence 0.83
› contracts · assumption: resets track the index · divergence 0.64
› panel buyers ×40 · operators ×20 · skeptics ×20 · 3 assumptions failed
› 3 signals above threshold · stop conditions written · next: assumptions.py

The clock

Ten days to know what’s worth testing. Ten weeks to have it running.

Day 0

NDA signed. Nothing moves before it.

Day 1

An afternoon with your team. Every hunch gets a number.

Days 2–9

Agents test each hunch against your records and size the gaps.

Day 10

The signed OID: three to five opportunities, or a plain no.

Week 3

The build is architected at a fixed price.

Week 10

Live in your operation, then scaled or killed on the numbers.

Guarantees

True of every engagement, every time.

01

Stop condition. In writing, before anyone builds. Stopping is never a matter of opinion.

02

Your staff. No one changes how they work unless the OID says so first.

03

Price. Fixed and stated before any money moves. Never hourly.

04

Ownership. What we build is yours. No license, no dependency on us.

05

Your data. Used for this engagement only. Never kept, sold, shared, or trained on.

06

No theater. No innovation lab, no workshop series. One room, one decision, written down, then something running or a written reason it stopped.

The door

Opportunity ID. Ten days. $500, credited against any build.

The proof

The work. Cases with numbers on them.

Start here

Where do you suspect the value is hiding? Tell us your hunch. Ten days later it comes back with numbers on it.

10 business days · $500, credited against any build