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