Legacy file modernization

Convert CSV to fixed-width files, to a spec the receiver accepts.

Plenty of banks, payers, and state agencies still require positional files, and they reject anything a byte out of place. Describe the layout or upload the spec: field positions, padding, alignment, and the header and trailer records with their counts. Data Shepherd writes scripts that produce the exact bytes, you preview against the spec, and the sealed run produces the same output for the same input, every time.

Free plan available. No card required.

No data sent to a model at run-time · transparent, versioned scripts
CSV to fixed-width
Input · payments.csv
acct,name,date,amount
0001,Jane Doe,2026-01-31,1250.00
0002,Acme Logistics LLC,2026-01-31,14800.50
▾ AI-written transformation, reviewed and versioned
Output · positional submission
HDR20260131PAYMENTS
0001JANE DOE            20260131000125000
0002ACME LOGISTICS LLC  20260131001480050
TRL000002000160050
Runs with no AI, your data stays out of the model

How it works

From a messy file to a tested pipeline, in minutes.

1

Describe it and bring your spec

Plain English, plus a sample, a spec, or a data dictionary. Cannot share data at all? Build from the spec alone.

2

AI writes transparent scripts

You get reviewable, versioned Python, never a black box. Inspect every line and preview the output on a sample.

3

Run it anywhere, with no AI

Trigger by API, schedule, or click, or pull from SFTP, S3, or Azure Blob. The sealed script does the work; nothing goes to a model.

The AI builds it. A sealed script runs it.

Most AI data tools push records through a language model on every run. We keep the model in the build phase only, so production never sends your data to a model.

Build (one time): AI writes the scripts, from your spec, or a sample you control
Every run after: sealed sandbox, no network, no AI, no data to any model

Full data-flow table and sub-processor list in our Trust Center →

Common questions

CSV to fixed-width, answered.

Can it generate header and trailer records with record counts?

Yes. Describe the control records, counts, totals, dates, filler, and the generated script computes and emits them from the data on every run.

How do we know the output matches the spec before submitting?

Preview the output on a sample and inspect it against the layout, and review the script itself read-only. Because runs are deterministic, what you validated is what every future run produces.

The receiving spec is confidential. Do we have to upload it?

You can describe the layout in plain English instead of uploading the document. Either way, specs and samples are only used during the build phase, and nothing is sent to a model at run-time.

Describe it once. Run it forever.

Build the transformation on a sample in minutes, review the scripts line by line, and let the sealed runs handle every file after that.