PlainLogic

Interactive lab · Data engineering

Data Pipeline Lab

Twelve messy records go in, a trustworthy dashboard comes out. Follow each record through every stage — then break the pipeline on purpose.

Follow one record

One messy record, seven steps

Before you run the full pipeline below, meet record #102 — "  JOHN@EMAIL.COM " — spaces, capitals and all. Follow it through every stage, then watch what happens to a record with no email at all.

Follow one messy record as it gets cleaned up.

Follow record #102 as it travels the seven stages.

  1. Source (where data is born)

    "  JOHN@EMAIL.COM " — spaces, capitals and all, exactly as the signup form sent it.

  2. Ingest (reading it in)

    The row is parsed into fields — name, email, zip, date. Celebration: “parsed!”

  3. Validate (checking the rules)

    Email is present, the zip is five digits, the date is real. “checks passed!”

  4. Clean (fixing formatting)

    Trim the spaces — “trimmed!” — then lowercase — “lowercased!”. The record itself changes: "JOHN@EMAIL.COM" → "john@email.com".

  5. Transform (reshaping for charts)

    Pulls "email.com" out of the address so the dashboard can group by domain. “domain added!”

  6. Database (storing it)

    The finished record is saved. “stored!”

  7. Dashboard (the charts)

    The clean record lands on the chart. “on the chart!”

Record #103 has no email at all, so it never gets past step 3: no email address → rejected. The reject bin isn't a failure — it's where broken records wait for a human to fix the source. Pipelines never guess.

The simulator

Messy signups in, dashboard out

This is ETL — with the two steps pipelines spend most of their time on: cleaning and validation. Press Run pipeline: each dot is one signup record. Watch what each stage does to it.

Simulated dataset of twelve made-up records. Everything runs in your browser — nothing is uploaded anywhere.

Mode

Repair challenge: the CLEAN step's “normalize email” rule is off, so VALIDATE will reject the messy emails. Run the pipeline, read the rejected-records log, then click the CLEAN stage to find the switch.

record in flightrejectedClick any stage to inspect its rules. Records move through concurrently, like an assembly line.

See the raw dataset (12 records)
#nameemailzipsignup_date
101Ava Martinezava.m@example.com339012026-08-12
102John Reyes" JOHN@EMAIL.COM "339022026-08-19
103Sofia Patel(missing)339032026-08-21
104Noah Kimnoah.kim@example.comABCDE2026-08-25
105Emma Liuemma.liu@example.com339042026-13-45
106Ava Martinezava.m@example.com (duplicate of #101)339012026-08-12
107" olivia brown "olivia.b@sample.org339092026-09-02
108Ethan WrightETHAN.W@MAIL.IO339122026-09-15
109Mia Garciamia.garcia@example339132026-09-18
110Lucas Moorelucas.m@example.com33902026-09-21
111Isabella Rossisabella.r@test.net3399009/24/2026
112James Parkjames.p@example.com339142026-09-29

Made-up data. Messy cells are highlighted; quotes show where stray spaces hide.

Metrics

Pipeline health

Inputs12
Accepted–
Rejected–
Runtime (simulated)–
Current stageidle

Throughput per stage

Records entering each stage. The bars shrink wherever a stage rejects records — that shrinkage is the pipeline doing its job.

Inspector

Select a stage

Click any stage above to see what it does and the exact rules it runs. Tip: the repair challenge involves the CLEAN stage.

Event log

What happened

  1. readyChoose a mode and press Run pipeline. The dataset and timings are simulated.

Rejected records

With reasons

  1. No rejections yet — run the pipeline.

Three jobs

Validate, clean, transform — not the same thing

Every data pipeline does these three jobs in the middle, and mixing them up is where most data bugs come from.

Judges · changes nothing

Validation

The bouncer. It checks each record against rules — a zip must be five digits, a date must be a real calendar day — and never edits the data. Record #104's zip ABCDE is rejected with a reason. One question: is this record acceptable as it stands?

Fixes formatting · never facts

Cleaning

The tidy-up. It repairs formatting, not substance: " JOHN@EMAIL.COM " becomes "john@email.com". It can't rescue a missing email or turn letters into a zip code — what it can't fix moves on to be judged.

Reshapes for analysis

Transformation

The reshape. It derives new fields the dashboard needs: the email domain, the signup month. It assumes the data is already clean and valid — which is exactly why it runs last.

A design decision

Why reject instead of guess?

A guess that looks like data is worse than a rejection you can see.

CLEAN VALIDATE DASHBOARD REJECTED LOG REJECTED

Record #104's zip is ABCDE — no cleaning rule can turn letters into a zip code, and inventing one would corrupt every chart downstream. So the pipeline refuses to guess: it stamps the record, drops it in the log with a reason, and a human fixes the source. Loud beats clever, every time.

Try it

Fix the broken pipeline in four steps

  1. Run the broken pipeline.

    Press Run pipeline in challenge mode. Watch VALIDATE reject the messy emails while the log explains why.

  2. Open the CLEAN stage.

    Click the CLEAN node: “Normalize email (trim + lowercase)” is switched off. This pipeline cleans before it validates — formatting fixes first, judgment after.

  3. Enable the rule and rerun.

    Flip the switch and run again. The two messy emails are normalized and sail through; the genuinely broken records are still rejected, correctly.

  4. Try free run.

    Switch to free-run mode for a healthy end-to-end run — or click any stage to inspect its real rules. Toggling one genuinely changes the run.

Behind the build

What powers this experiment

ETL, honestly
Extract, clean, validate, transform, load — the unglamorous middle of every data project. The lab teaches the real distinction: cleaning fixes formatting, validation judges truth, and transformation reshapes for analysis.
Deterministic simulation
A fixed twelve-record dataset and pure rule functions: the same input with the same rule switches always produces the same output. There is no randomness anywhere in a run.
Pipeline parallelism
Records advance one stage per beat, all in flight at once — like an assembly line, which is how real pipelines keep throughput up. Counts, metrics, and charts update live as the dots move.
Hand-rolled SVG
The throughput sparkline and the dashboard charts are plain SVG drawn by the page's own script. No chart library — a dozen bars don't need one.
Rules are data
Each stage's rules are real functions, not decoration. Flipping the “normalize email” switch genuinely changes what VALIDATE sees, which is why the repair challenge actually works.

Questions

Fair questions

What is ETL?

ETL stands for Extract, Transform, Load: pulling data out of where it is born, reshaping it, and loading it where it will be used. This lab shows the fuller modern version — extract, clean, validate, transform, load — because real pipelines spend most of their effort on the cleaning and checking in the middle.

What is the difference between validation and cleaning?

Cleaning fixes formatting: trimming spaces, lowercasing an email, reformatting a date. Validation checks truth: is this a real calendar date, is the zip five digits, is the email actually present? Cleaning changes how a value looks; validation judges whether the record is acceptable. A record that cleaning cannot fix is rejected, never guessed.

Why do pipelines reject records instead of guessing?

A guess that looks like data is worse than a rejection you can see. If the pipeline invented a zip code for “ABCDE”, every report downstream would be quietly wrong. A rejected record lands in a log with a plain-language reason, so a human can fix the source. Rejection is a feature, not a failure.

Is my data uploaded anywhere?

No. The dataset is twelve made-up signup records, and the entire pipeline runs in your browser tab. Nothing you do here leaves your device.

Is it free?

Yes. The Data Pipeline Lab is free to use as often as you like — no account, no sign-up. PlainLogic may introduce optional accounts or paid features in the future, but the core labs are free to use today.

Keep exploring

More from the lab

Live data

Situation Room

Real pipelines carry real data. Watch live weather, alerts, earthquakes, and radar flow through an operations console.

Interactive lab

Network Operations Lab

Another simulator from the bench: send packets through switches and routers, inject faults, and learn to diagnose them.

The lab

PlainLogic home

Games, experiments, tools, and the blog — the full bench.