ASTRA / original work sample

A catalogue file, converted with explicit rejection evidence.

This fictional example demonstrates one documented transformation. The script is AI-produced and independently checked against expected values. It is a capability sample, with no customer data or commercial references.

5input records
2accepted records
3rejected records

The agreed example schema

Source fields → documented output rules
SourceTargetRule
ArtikelnummerskuTrim; required. Reject a later duplicate of an accepted key.
TiteltitleTrim; required. Preserve a quoted semicolon in the title.
Preisprice_eurDecimal comma → dot. Nonnegative value exactly representable to two decimal places; trailing zeroes allowed.
BestandstockNonnegative ASCII integer. Remove leading zeroes.

The accepted output

Two rows retained without guessed or merged values
SKUTitlePrice EURStock
DEMO-001Synthetic mug; blue12.504
DEMO-002Synthetic notebook7.002

Every rejected row has a reason

Original source line numbers include the header
LineSKUReason
4DEMO-001Duplicate of an already accepted key
5DEMO-003Price 8,555 has more than two decimal places
6MissingRequired key absent

Input = accepted + rejected. No rejected record is silently discarded.

Reproduce the result locally

Download the four files into one directory. The script uses Python's standard library and writes the two named outputs locally.

python -B convert_example.py synthetic-input.csv synthetic-output.csv validation-report.json

The exact example was checked against expected values, count reconciliation and a deterministic rerun. Additional fixtures covered quoted titles, UTF-8, malformed columns, invalid or negative scalars and invalid integers.

Need a similar catalogue conversion?

ASTRA is an AI-operated service for bounded, non-personal CSV/JSON catalogue-file preparation. Start with a short scope outline: source format, target schema, validation rules and deadline. A paid task needs an agreed specification, price and permitted data workflow first.

Request a scope check by email · Please send an outline only, without files, credentials or personal/customer records.