Legacy ERP · Flagship service

Your 1990s ERP, queryable by your dashboards and your AI — today.

COBOL-era ERPs still run a surprising amount of American manufacturing and distribution. They work. They're also locked: no API, seat-limited ODBC, a data format nobody documented, and a vendor roadmap that doesn't include you.

We don't replace the ERP. We read it — clean-room, read-only, proven — and put a live modern data layer next to it.

66 / 66
Record types decoded, gate clean
11,766
Programs mapped, one ERP
350+
Tables mirrored live
16 s
Mirror hot cycle
How it works

Three separable pieces. The middle one is the moat.

Anyone can claim to parse COBOL files. The difference is proving it against your own system before anything depends on it.

1

The decoder

A clean-room decoder for AcuCOBOL Vision files and other COBOL data formats, built to an ODBC-parity contract: code-page handling, empty-field semantics, COMP-3 and COMP-6 packed decimals, sign overpunch, C-string truncation, per-record framing maps. On its first ERP: all 66 record types decoded, gate clean 66/66, a 34-test fixture suite, nightly shadow campaign running.

Vision / AcuCOBOLCOMP-3 / COMP-6Overpunchcp1252Drift tripwires
2

The validation — the part that earns trust

We show up with a shadow campaign: the decoder runs beside your own live pipeline and every record is compared byte for byte. Discrepancies are adjudicated, clean streaks are tracked, and cutover waits for a written gate — not a feeling.

The trick: you already own the oracle. Your existing ODBC seat is the validator. We generate framing maps at your site, prove parity against your own system, run the campaign, then cut over.

3

The live mirror

A delta-synced Postgres mirror of the legacy ERP — all tables, deletes included, refreshed in minutes. Your dashboards, BI tools, AI agents, and integrations all read from the mirror. The ERP never feels a thing.

All tablesDeletes trackedMinutes, not nightlyRead-only on source

What "live mirror" means in numbers: ~52 curated, typed tables plus ~300 auto-discovered raw tables from one ERP; hot cycle cut from ~3 minutes to 16 seconds; a measured bulk loader at 8,500 rows per second; a 7-million-row seed in about 15 minutes; row-level security containing 218 tables of accidental exposure in one remediation. Everything downstream — dashboards, planning, AI agents — reads from here.

Beyond reading

Deeper cuts — all done on one live COBOL ERP

Reading the data is the entry ticket. These are the moves that turn a closed system into one you can actually operate through.

11,766 PROGRAMS

Full call-graph corpus

Every caller-to-callee edge in a closed-source AcuCOBOL ERP, mapped from the object files. We know what runs before we touch anything.

~984 TABLES

Field-level data dictionary

PIC clauses, signedness, keys, and copybook lineage for the entire schema — the Rosetta stone for everything downstream.

0.2 s · ZERO WRITES

Hardened read-only ODBC gateway

SELECT-only, bounded, explicit-column queries into a live production ERP. Writes are impossible by policy, not by promise.

20 / 20 ORDERS

Headless order creation

Marketplace orders created inside the ERP by driving its own import programs headlessly — no screen scraping, no RPA, no vendor.

KEY-VERIFIED

Index-safe ISAM writes

Post-create field writes into keyed records via unload, edit, reload — the index stays intact, and every write is verified against its keys.

23% OF ACCOUNTS FIXED

Work-file intercept

Rewrote an intermediate work record between two ERP steps to correct customer resolution — no source change, no vendor ticket.

128-STREAM CORPUS

Byte-exact document generation

Traced the ERP's print path and rebuilt its invoices and pick tickets byte for byte, regression-tested against live output.

DOCTRINE

The control matrix

Every subsystem rated Observe / Mutate / Actuate / Comprehend — an honest map of what's automatable and what isn't, before the budget gets spent.

Same discipline, other platforms: vendor-package reverse engineering on Salesforce-based TMS systems (object inventories, relationship maps, behavior specs before a rebuild), legacy print-path and batch-job automation, and a protocol bridge that lets a 1998-era payment integration talk to Stripe without changing the ERP.

What it unlocks

The ERP stays. Everything around it gets modern.

Read-only first. Parallel-run always. Cut over on evidence.

We never write to a live system of record until the read side is proven and the write side has run in the shadows. It's slower than a demo. It's faster than a rollback.