Clean once. Trust everywhere.

Clean your data once.
Every module uses the same result.

No-code data transformation your whole team can build. Point and click from a messy table to a clean one, see the quality score move after every step, and send the result to the database you choose.

1

bad step is all it takes to change every number downstream

Nobody sets out to publish a wrong number. It happens because a join quietly multiplied the rows, or a cleanup step dropped records nobody counted, and the dashboard looked fine either way.

By the time the CFO's number and the CMO's number disagree, the pipeline that caused it ran weeks ago. Transform scores your data after every single step, so the number that moved is visible while you are building, not after someone presents it.

Your First Pipeline

Point, click, and watch the quality score move after every step.

Nothing is committed while you build. Every operation runs against an encrypted sample that is purged after 30 minutes, so you can try a step, see what it does to your data, and undo it without touching the source or spending anything.

01

Pick a table

Choose any connected source. A 16,600-row sample loads for you to work on.

02

Add an operation

Filter, join, group, clean, or reshape. Twenty-five to choose from.

03

See the quality delta

Every step shows how much it helped or hurt, column by column.

04

Choose a destination

Any connected database. Column types are converted for you.

05

Set it and forget it

Run once, daily, or on your own schedule. It reruns as new data lands.

Building And Previewing Is Free
Drop Into Python Whenever You Want
Nothing Runs Until You Save

Continuous Quality Auditing

Know which step broke your data while you are still building it.

Where most tools check your data once at the start and once at the end, Transform scores it after every operation, so a join that introduced nulls is visible immediately rather than three weeks later in a board deck.

Run-Level DQ Scoring

Live now

Pipeline DQ Report
16,600 row sample
Source (Pre-Transformation)
71%C+
manage_nullsfill → column mean on revenue, region
+14 pts
edit_dtypescreated_at → DateTime64
+8 pts
Result (Post-Transformation)
94%A
+23 point DQ improvement across this pipeline run

Column-Level DQ Delta

Live now

Column-Level DQ Delta
Live now
revenue
88%
99%
+11
region
63%
100%
+37
created_at
72%
95%
+23
product_id
91%
91%
±0

Every step shows what it did to each column as you build, so you catch the one that hurt your data before it ever runs for real.

Twenty-Five Operations, Or Your Own Code

No-code until you need code.
Then both, in the same pipeline.

Filtering, joining, grouping, and cleaning are all point-and-click, and when something genuinely needs custom logic you can drop a Python step in at any position and carry on clicking afterwards.

Native Code Editor

For The Last 5% Of Cases

Running totals, scoring against a group average, reading a value out of a JSON column: the handful of things no point-and-click operation can express. Write those in Python and drop the step anywhere in the sequence.

  • Polars, NumPy, SciPy, math and re, already loaded
  • Test it against your sample before you save
  • The next step picks up your new columns automatically
Code Editor — Polars 0.20.7
# re, math, scipy, numpy and polars are already loaded
# Flag the order where each rep first crossed 100k
df = df.sort(["sales_rep", "order_date"])
df = df.with_columns(
pl.col("revenue").cum_sum().over("sales_rep")
.alias("running_total")
)
# Score each deal against its own region
df = df.with_columns(
((pl.col("revenue") - pl.col("revenue").mean().over("region"))
/ pl.col("revenue").std().over("region"))
* 0.5 + (1 / (pl.col("days_to_delivery") + 1)) * 0.2
.alias("deal_score")
)
# Pull the campaign out of a JSON column
df = df.with_columns(
pl.col("metadata").map_elements(
lambda x: re.search(r'"campaign": "([^"]+)"', x).group(1)
).alias("campaign")
)
Visual Standard Operations Pipeline

Structural Engineering

FilterSplit ColumnsMerge ColumnsDrop DuplicatesFlattenPivot / Unpivot

Relational & Math

Joins (L/R/In/Out)ConcatGroup ByColumn AggSamplingWindow FunctionsConditional Column

Cleaning & Formatting

Manage NullsCast DatatypesDrop/RenameFind & ReplaceRound OffText Case ConvertBin / Discretize

Temporal Operations

Date Time AggDate Time DeltaManage Timezones

Ordering

Sort / Order By

It Knows What Your Columns Hold

Dates behave like dates and numbers like numbers, so the builder only offers you operations that make sense and stops you averaging a column of names.

DateTimeScalarStringList

Readable By Everyone

Your finance lead can read the pipeline you built.

Steps stack top to bottom in the order they run, so anyone can follow what happened to the data without tracing arrows across a canvas.

Transform

Readable by everyone

Linear Pipeline Builder
1
Filterrevenue > 10000
2
Group Byregion, product_id
3
Manage Nullsfill → column mean
4
Code Editorcustom scoring logic
5
Cast Datatypesscore → Float64
6
Sort / Order Byscore DESC

Legacy ETL Tools

Owner-only knowledge

Node-And-Noodle Canvas
Filter
Join
GroupBy
Nulls
Cast
Concat
ILLEGIBLE TO STAKEHOLDERS
Strictly sequential top-to-bottom
Form-based - no drag-and-drop
Legible to non-technical stakeholders

Where The Time Goes

A cleanup that used to take a week takes about five minutes.

That is our own measured time to connect a table, ask for suggestions, read them, apply them, and save a working pipeline, so long as you are doing standard cleaning and adding straightforward new columns.

Working out what needs cleaning

The usual way

Profile the table yourself, column by column, before you can start

With Transform

Quality scores are already there from the day you connected the source

Deciding which steps to apply

The usual way

Judgement call, or a meeting with whoever knows the data best

With Transform

Ask for suggestions and get an ordered set with the reason for each

Building the pipeline

The usual way

Write SQL or Python, then wait for someone to review it

With Transform

Point and click, with the result on screen after every step

Moving between two databases

The usual way

Map every column type by hand and fix what breaks on the first run

With Transform

Types are converted for you, visible in the preview before you save

Knowing a step made things worse

The usual way

Find out weeks later when a number looks wrong in a report

With Transform

The score moves the moment you apply it

Keeping it running

The usual way

Someone checks whether last night's job worked

With Transform

It emails you when a run fails, with the failing step already open

A pipeline that needs genuinely custom logic takes longer. Most do not.
0min

Raw table to saved pipeline

Our own measured time, following the suggestions

0

Column types mapped by hand

The schema mapper matches them for you

0

Cost to build and preview

Compute is metered only when a pipeline runs

0

Rows stored by Edilitics

The finished table lands in your own database

A Starting Point, Not An Autopilot

Not sure what your data needs? Ask.

Describe what you are trying to build and get back an ordered set of suggested steps with the reason behind each one, none of which touch your pipeline until you approve them.

4-Step Suggestion Workflow

From an empty pipeline to a reviewed, ready-to-run one

01

Pick a Goal

Clean up what is there, add new columns, or both. Add a note about what you are trying to build.

02

AI Reads Your Pipeline

It sees your column names, their quality scores, and the steps you already added. Never your actual rows.

03

Review Each Suggestion

Steps arrive in the order they should run, each one telling you why it was suggested.

04

Apply or Discard

Nothing writes to your pipeline until you click Apply. Start over any time, no cost, no commitment.

Clean What's There

Data Quality

Blanks, dates stored as text, duplicate rows, inconsistent formatting: it reads what is actually in your columns and proposes the cleanup steps to match.

Build What's Missing

New Columns

Days between two dates, a margin worked out from revenue and cost, customers grouped into bands: the columns you would have calculated by hand.

The Strictest Setting

Private Mode

Your column names are replaced with placeholders before the request leaves your workspace. The AI still knows what each column holds and how clean it is, so the steps it suggests are still the right ones.

Your column names become col_1, col_2, and so on
Real names are restored before anything is applied
Nothing from inside your columns is shared
For teams working with regulated data
What Most Teams Pick

Balanced Mode

The AI sees your real table and column names, so the operations it suggests refer to your data the way your team already talks about it.

Real names, so suggestions use your vocabulary
Quality scores go too, so weak columns are flagged
Still nothing from inside your columns
The right default for everyday work
The Most Context

Full Context Mode

Everything Balanced sends, plus the handful of values that come up most often in each column, so cleanup steps match the labels your data actually uses.

Adds the values that appear most often
Suggestions match real categories, not guesses
Still no rows, only the common values
Best when your columns are full of labels
None Of Your Rows Are Sent To The AI
Every Suggestion Reviewed Before Apply
Suggests Next Steps, Not Just The First

Your Database, Not Ours

The finished table lands in the database you choose.

Your data is pulled into isolated memory for the length of the run, transformed, written to your destination, and then the machine is destroyed, leaving us with the recipe and never the ingredients.

Your Source DB

Postgres · Snowflake · BigQuery

A Machine That Deletes Itself

Starts up → does the work → gone

nothing kept

Your Destination DB

You own every byte written

We keep two things, and neither is your data

The steps you built and the record of when they ran. Not a single row of what went through them. If you leave tomorrow, your clean tables are already sitting in your own database.

None Of Your Rows Are Stored
Writes To Your Own Database
We Keep The Steps, Not The Data
No Servers Sitting Idle On Your Bill

Move Between Databases

Read from Postgres. Write to BigQuery. No mapping.

Source and destination can be different databases entirely, and column types are converted to whatever the destination supports without you matching a single one by hand.

Column Types Sort Themselves Out

Moving a table from one kind of database to another normally means matching up every column type by hand. Here it just happens, and you see the result in the preview before you save.

Postgres textSnowflake VARCHAR
PostgreSQL
Snowflake

Single-Fire

Runs once when you save it, and again whenever you press the button. Good for a one-off cleanup or a test.

Daily Interval

Pick a time and it runs every day, in your timezone. Most people never need anything more than this.

Custom Cron

Every weekday at 6am, or the first of the month. Build it and we show you what it means in plain English.

Pipeline Lifecycle

Run it now, pause it for a while, or go back and change the steps. The only time editing is locked is while a run is actually in progress.

Every Run On Record

How often it worked, how long it took, and what it cost you in run time. When something fails, open that run and read exactly what went wrong.

Success Rate97.4%
Avg Runtime3.7s

Building a pipeline costs nothing. Connect a source, add a few steps, and watch the quality score move before you decide whether any of this is worth paying for.

When Something Goes Wrong

Find the run that broke, and the step inside it.

Every run is recorded with what it pulled, what it wrote, how long it took, and which step failed, so a broken pipeline is a question with an answer rather than an investigation.

Run It Now

Need today's numbers before tomorrow's scheduled run? Trigger it yourself, any time.

Pause Without Losing It

Stop a pipeline running for a while. Your steps and schedule are waiting when you turn it back on.

Change The Steps

Go back in and edit any pipeline, except while it is mid-run, when it locks to protect the result.

Undo Everything

Changed your mind halfway through an edit? Throw the draft away and go back to what was working.

Copy It And Tweak

Built something that works? Duplicate it for the next table instead of starting over.

Look Without Touching

Open any pipeline to see exactly what it does, with no risk of changing it by accident.

Success Rate

97.4%

Avg Runtime

3.7s

Total Runs

1,847

Compute Used

6,834s

RUN-1847successscheduled
3.2s
02:00 AM
RUN-1846successtriggered
4.1s
Yesterday
RUN-1845failed↗ see what went wrongscheduled
1.8s
Yesterday
RUN-1844successscheduled
3.7s
2d ago

What You Pay For

You are billed for seconds spent running. Nothing else.

No charge per row, no charge per operation, and no charge at all while you build, so the cost of a pipeline is simply how long it takes to run.

Nothing To Undo Later

Colleagues you share with can run a pipeline and read its history, but only you can change or delete it. Take their access away whenever you want.

You Hear About It First

If an overnight run fails you get an email, not a surprise in the morning meeting. Everything else shows up in the app, in your own timezone.

Billed By The Second

You pay for the seconds a pipeline actually spends running. We check you have enough before starting a run, so a job never stops halfway and leaves you with a mess.

You Cannot Break A Running Job

While a pipeline is writing to a table, editing it is locked. Two people cannot accidentally change the same thing at the same time and corrupt the result.

Building Costs Nothing

Add steps, preview them, throw them away, start again. You are only charged once a finished pipeline actually runs, so experimenting is free.

It Stops You Making A Mess

The builder knows what each column holds, so it will not let you average a list of names or run a text search on a number. Mistakes get caught as you make them.

No Charge Per Row
No Charge Per Operation
Free To Build And Preview
Top-Ups Never Expire

Sharing Without Surprises

Let your team run it without letting them change it.

Share a pipeline and your colleagues can run it, pause it, and read every log, but the steps you built stay exactly as you left them.

Capability
Owner
Shared
View operation sequence
Access Run History & Logs
Trigger on-demand execution
Duplicate to own workspace
Edit operation configuration
Delete pipeline
Share with additional users
Revoke access

If You Built It

You decide what the pipeline does, when it runs, and who else gets to see it. Nobody can change your work but you.

If Someone Shared It With You

Read every step, check when it last ran, and run it yourself when you need fresh numbers. You just cannot change or delete it.

When Someone Leaves

Take their access away and it is gone immediately, along with any alerts they were receiving about your pipelines.

While You Are Building

The sample you work on deletes itself.

Preview data is encrypted while you build and purged after 30 minutes of inactivity, so an abandoned pipeline does not leave your data sitting anywhere.

You Work On A Copy

Building a pipeline never touches your real table. You get 16,600 rows to experiment on, so a step that goes wrong costs you nothing but the time to undo it.

  • Encrypted the whole time you have it open
  • Gone the moment you save or walk away

Try It Before It Is Real

Every step shows you the result on that sample first. You decide whether it did what you wanted before it ever runs against the full table.

  • Nothing is written until you save
  • Previewing costs you nothing

Close the tab and it is gone

Save your pipeline or simply walk away, and the sample you were working on is deleted. An abandoned draft does not leave your data sitting on a server somewhere.

COMMON QUESTIONS

Everything you need to know before you decide.

No sales call needed. If you have a question we haven't answered here, reach out directly.

THE NEXT LEVEL

Clean data, on a schedule, without a data engineer.

14-day evaluation, no credit card. Building and previewing pipelines is free, so you can see the quality scores move before you pay for a single run.