Roadmap → Process → Simulator → Deep Dive · R2 Live Demo
One conversation. Sixteen hours. One path to $5M ARR.

A single customer.
$5M ARR.
Not a TAM. Known volume. Known price. Real math.

T-16h (yesterday, 21:00 CEST): Damon describes the gap — CBP filer code acquired, ACE sandbox open, missing is the byte-exact software layer. T-0h (now): 326 tests green across the three priority clearances (Type 1 · Type 11 · T-1), live transformation demo at catair.atwenture.com/simulator, component-flow map at /process, Damon's 14-point checklist answered end-to-end. This isn't a pitch anymore. It's a kickoff.

Type 1 · Type 11 · T-1 · 326 tests green live simulator · /simulator component map · /process jurisdictions · /roadmap
The problem

100 PDFs.
10,000 rules.
Every broker re-implements by hand.

  • CATAIR specifies ~25 transaction types across ~30 chapters, plus a dozen PGAs (TTB, EPA, FDA, APHIS, NHTSA…) each with its own message set
  • Positional records with fixed byte-lengths and revision histories going back to 2008 one typo rejects the filing
  • Every filer re-implements the same Pydantic models, validators, enums hand-copied from PDFs
  • CBP revises a chapter → 3-8 weeks of human labor to re-align code per chapter, every year
The approach

Typed graph, not text-blob RAG.

A ten-entity ontology — Module · Transaction · Record · DataElement · CodeTable · ErrorCode · BusinessRule · Workflow · RevHistory · PGAIntegration — extracted from every PDF, linked with typed edges, queryable by code.

  • Structured extraction: an LLM fills typed slots, never free-form summaries
  • Verbatim retrieval: every answer quotes the PDF byte-for-byte or returns "not found"
  • Code as a mirror: one module → one package. One record → one Pydantic class.
The revenue math

This is not a TAM.
It's one customer. Known volume.

Damon's network routes ~350,000 customs filings per month per operating company — Type 1, Type 11, and T-1 clearances flowing through the compliance software we're building. Damon's own pricing anchor: $0.12 per clearance (his words, this meeting). The math is trivial. The work is to make it real.

$0.12per filing×350,000filings / month
$42,000per month · per company×12months
$504K
ARR · per single operating company
×10+companies in Damon's network
$5M+
ARR · not TAM · stakeholder-committed volume

Business model: equity-partnership + per-clearance volume. Not day-rate. Not projections. Damon has the filer code, the ACE sandbox, the volume, and the network. The question isn't "will customers buy?" — it's "can we ship byte-exact compliance fast enough?"

The corpus · live

What's already indexed.

—
CBP source PDFs
—
Verbatim chunks indexed
—
Data elements (typed fields)
—
Records across modules
—
Enumerated code tables
—
Error codes indexed

Plus 18,691 typed edges connecting records, fields, codes, and rules — and a cross-jurisdiction concept map with 87 typed concepts spanning US, UK, EU and Mexico.

Generated output · real

What the agent actually writes.

From a single MCP call (e.g. catair_get_record("entry_summary_r10")), the builder-agent produces:

  • A Pydantic v2 class with every field verbatim
  • Exact positions + lengths as Field constraints 10N → zero-pad, right-align, length 10
  • StrEnums for every CodeTable referenced EntryTypeCode = 01 | 11 | 03 | 23 | …
  • Byte-diff tests against Appendix examples 326 green · 80-byte-per-line CATAIR output
src/catair/ebond/records/record_10_bond_header.py● generated
# Record Identifier 10 · eBond CB/CX V1.9 · p.23 class Record10(BondRecord): """Bond Header Record. Mandatory input/output record. Source: eBond V1.9, p.23 """ control_identifier: str = Field( default="10", min_length=2, max_length=2, description='"Must always equal 10" — pos 1-2, 2AN, M', ) bond_designation_type_code: BondDesignationCode = Field( description="pos 3, 1AN, M — code for general purpose of bond", ) bond_type_code: int = Field( ge=0, le=9, description="pos 4, 1N, M — numeric bond type from CBP 301", ) # ... 14 more fields, all byte-exact
The knowledge graph · rendered

1,897 records. 4,604 fields.
Every line cites a CBP page.

Below: the typed knowledge graph our Builder-Agent reads. Every node is a compliance entity, every edge is a schema relationship — extracted from 100 CBP specification PDFs.

Record
● live · catair-vault
● Records ● CodeTables ● BusinessRules
115 modules
1,897 records
4,604 fields
836 code tables
18,691 typed edges
verbatim sample · cited● ground-truth
# ebond · p.23 ebond_record_10.control_identifier pos 1-2 · 2AN · M "Must always equal 10"

Every node carries a page reference. Every edge is typed. The graph is the product.

What shipped · T-16h → T+0h

Three priority clearances.
326 tests green.

Not a deck. Not a plan. Real code, in a repository, deployed to production. The three Damon-priority clearance types — Type 1 (C_01), Type 11 (C_11), T-1 In-Bond (QP/WP) — are byte-exact today and live on catair.atwenture.com/simulator.

01 · PRIORITY

Type 1 · Consumption

C_01 full Entry Summary · R20–R90 · byte-exact

02 · PRIORITY

Type 11 · Informal

C_11 low-value entry · simplified record set

03 · PRIORITY

T-1 · In-Bond (QP/WP)

In-bond transportation messages · byte-exact

04 · Input

ace_broker_download

ABS/Broker Statement records + parser

05 · Core

entry_summary

R20–R90 foundation · PGA hooks ready

06 · Identity

importer_id_5106

Create / Update / Delete importer records

07 · PGA

pga_nhtsa

NHTSA vehicle / HS-7 · first PGA module

08 · Output

census_warning

Census warning message parsing

09 · Output

courtesy_notice

CBP courtesy-notice records

10 · Tariff

ad_cvd

AD/CVD case lookup + filing records

11 · In-Bond

in_bond

QP/WP message set · underlies T-1 above

V2 · OCEAN

eBond Input

R10/20/30/35/36/45/46 · scoped for ocean-freight phase (Damon: "eBond is for ocean brokers")

TOTAL · PRIORITY PATH

Type 1 · Type 11 · T-1 · 326 tests green

all green · first-run · regression-pinned · live in /simulator

Pre-meeting checklist · 14 of 14 answered

Your 14 answers. Integrated.

You answered the full 14-point pre-meeting checklist — MQ config (QGC1, CBITAMERICA, cbpgw-trade-cert.cbp.dhs.gov:31531), keystore path, retention, Azure posture. Every answer wired into the architecture before this meeting. Below: what you said ↔ where it lives in our code today.

What you saidWhere it lives nowStatus
MQ Series via QGC1 · cbpgw-trade-cert.cbp.dhs.gov:31531 · channel CBITAMERICA transport/mq_client.py · QGC1 wired, awaiting keystore handoff stub → 4-6h
HTTPS preferred over MQ (newer, simpler to onboard) transport/https_client.py · dual-transport abstraction · CBIT Swagger v0.1 in hand scaffolded
mTLS with Keystore + CCDT Keystore loader scaffolded · CCDT env-var path awaits cert
Type 1 · Type 11 · T-1 as priority clearances (eBond is ocean-freight V2) entry_summary/ · type_01 · type_11 · in_bond QP/WP · all byte-exact done · 326 tests
Option B — we host the runtime Docker on Hetzner · Azure-replication one config-port away live
Azure-side: unclear, to confirm Killer #2 tracked · stack already containerized flagged
99.9% SLA target Monitoring scaffold + status page on roadmap phase 1 phase 1
7-year audit-log retention · test-data only (GDPR + Damon's data-protection agreements) audit/ · append-only SQLite + JSONL · signed + timestamped · 7y window done
Paper PoA upstream from us Not blocking filing · handled upstream by broker of record clear

Checklist complete. Three operational unknowns remain: filer-code timeline, cert-handoff channel, Azure-vs-Hetzner compliance requirement. Everything else is us executing.

Live transformation · /simulator

The simulation is live.

JSON in → byte-exact CATAIR records out → mock CBP MRN. Running now at catair.atwenture.com/simulator?entry_type=01|11|t-1. Paste a JSON payload, hit submit, watch the 80-byte positional records render line-by-line. No vaporware.

Type 1 · Consumption

C_01 · R10

10A01ABC12345 000001202604190000000000000IMP12345CBP

MRN · MOCK-01-20260419-0001 · ACCEPTED

Type 11 · Informal

C_11 · R10

10A11DEF67890 000001202604190000000000000IMP67890CBP

MRN · MOCK-11-20260419-0042 · ACCEPTED

T-1 · In-Bond (QP/WP)

QP · Header

QPH0001234567890123 2604194705LAX2704194901JFK0001

MRN · MOCK-T1-20260419-0007 · IN_TRANSIT

Verifiable today: /simulator — live transformer. /process — component-flow map with reject-loop + 7y-retention timeline. /roadmap — five jurisdictions on a premium world map.

Why we win

The moat is the graph. Not the LLM.

Competitors can call Claude too. They can't replicate ten-entity ontology × 100 CBP PDFs × 18,691 typed edges — plus a live byte-exact transformer (/simulator), a component-flow map (/process), and a cross-jurisdiction concept layer spanning US, UK, EU, Mexico (+ China exploratory).

01 · US DATA MOAT

100 PDFs ingested.
Day one for everyone else.

115 modules · 1,897 records · 4,604 fields · 836 code tables · 18,691 typed edges. A structured asset — not a prompt hack.

02 · UK GREEN LANE

27–30 docs. Rescoped.

Verify-Pass found >10,000 UKIMS-authorised traders (vs. ~3,000 in 2024). Green Lane is now the dominant NI flow — V1 scope is H1/H7/I1 + UKIMS, not the full 100–120 doc corpus.

03 · EU CBAM + COMMON LAYER

DE · NL · FR first.
~50% of EU-27 volume.

EUCDM 7.0 + WCO DM v4.1 alignment makes the payload mechanically mappable. CBAM (live 2026-01) integrated as cross-cut module from day one.

04 · LIVE DEMO

Live transformation at /simulator. JSON in, byte-exact CATAIR out, mock MRN back. Type 1 · Type 11 · T-1. Verifiable in 10 seconds — not in a sales cycle.

05 · COMPONENT MAP

Full flow-map at /process. Bi-directional flows, reject-loop semantics, 7-year-retention timeline. What Mark wanted to see. Rendered, not pitched.

06 · LOCK-IN + PACE

Schema is sticky. CBP revises quarterly — we compound, competitors restart. Every filing pipeline depends on our Pydantic naming, validators, error taxonomy.

Expansion timeline · honest

US → UK → EU → MX in 3-4 months.
The limiter isn't the code. It's certs and customer onboarding cycles.

Phase · CalendarDev timeDocsGate / limiter
🇺🇸US · MVP sandbox
day +7
~12-16h 100 ✓ Cert handoff · filer-code confirmation
🇺🇸US · first operating company live
day +30
~1 week — CBP sandbox-to-prod promotion · customer onboarding
🇬🇧UK · Green Lane V1
month 2
~2 weeks 27-30 HMRC Developer Hub approval · UKIMS cert
🇪🇺EU · DE+NL+FR + CBAM
month 3
~3 weeks 64 ATLAS/DMS/DELTA envelopes · EUCDM 7.0 common layer
🇲🇽MX · VUCEM V1
month 4
~2 weeks 78 e.firma · Anexo 22 XSDs (publicly available)

Honest framing: dev-time per jurisdiction is days to weeks — the calendar is gated by certification cycles, HMRC approval, CBP sandbox-to-prod promotion, and customer onboarding. If all three killers fire, timeline × 1.6 — still under six months.

Why now

The stack finally fits.

This project was impossible 18 months ago. Three pieces landed at once — each necessary, none individually sufficient.

01 · Vision OCR

Tables stay tables.

Multimodal OCR preserves CATAIR record layouts byte-exact. Positions, lengths, and codes survive the scan. Legacy PDF-scrapers could not do this.

02 · Claude Opus 4.7

Grounded, not guessed.

Million-token context + strict system-prompt enforcement makes "cite or refuse" reliable at production volume. Hallucination on positions = rejection by CBP.

03 · MCP

Every agent is a client.

The knowledge base exposes tools; any capable agent becomes a filer-dev overnight. We sell knowledge, not compute.

The ask · three answers

Three decisions unblock phase 0.

Checklist: 14/14 answered. Code: 326 tests green across Type 1 · Type 11 · T-1. Live: /simulator + /process + /roadmap. Math: $0.12 × 350k × 10 companies = $5M+ ARR. Three operational answers move us from kickoff to first real sandbox submission.

01 · Filer code

Reactivation, or
new 60-90d app?

If reactivatable: 7 days to first sandbox. If new-apply: placeholder mode keeps us moving in parallel. We need the path.

02 · Cert handoff

SFTP · PGP · Box?

mTLS keystore + CCDT need a secure channel. Whatever your side prefers, we adopt. 1-2h dev once it lands.

03 · Azure hard-req?

Hetzner OK, or
Azure mandatory?

Stack is containerized — Azure replication is config-port, not rewrite. But we need the answer to plan phase 0 vs. phase 0 + 2 weeks.

Answer the three — we commit to a first sandbox submission (Type 1 or T-1) within 5-7 working days, conditional on cert-handoff and filer-code arrival.

CCATAIR / ai

Let's ship customs code
at machine pace.

Live simulator · catair.atwenture.com/simulator
Component flow-map · catair.atwenture.com/process
Full roadmap · catair.atwenture.com/roadmap
Contact · j.wenk@mobilityacademy.de

Press ←/→ to navigate Press F for fullscreen