DataRefine

A DataOps / MLOps-integrable platform

Every transformation has a name.

DataRefine turns a raw spreadsheet into a refined dataset, an exploration report and a trained model — using only pre-registered operations you chose. Then predict with the model you trained here: point it at new data and get your rows back with the answers added. Nothing is invented at runtime. Nothing is hidden. Run the same plan tomorrow and get the same result.

It is built to sit inside the stack you already run — databases, warehouses and lakehouses on one side, your DataOps and MLOps tooling on the other — rather than to replace it.

In development · early access opening to a small group first

The receipt

What a run leaves behind

Every run writes an execution report — successful or failed. One row per operation, in the order it happened, with the parameters it used, what it did to your data, and how long it took. This is the document you hand to whoever asks.

Execution report customers.csv · 6 340 rows · target: monthly_spend · finished in 1.9 s Example
# Operation Stage What changed Time
1 info explore Profiled 9 columns on the raw file, before anything touched it. 41 ms
2 describe explore Summary statistics for 5 numeric columns. 88 ms
3 missing_summary explore 412 missing values found across 3 columns. 12 ms
4 remove_duplicates keep=first clean 222 duplicate rows dropped. 6 340 → 6 118 rows. 63 ms
5 impute_missing strategy=mean clean 412 nulls filled — column means for numeric, most common value for categorical. 57 ms
6 standard_scaler scale 4 numeric feature columns centred on zero. The target column was not touched. 34 ms
7 one_hot_encoding encode 1 categorical column replaced by 3 indicator columns. 9 → 11 columns. 72 ms
8 random_forest_regressor fit Fitted on an 80 / 20 split and scored on the fifth it never saw. 1.42 s
Refined datasetrefined.csv · 6 118 rows · 11 columns
Exploration reporteda_report.json
Trained modelmodel.pkl · scikit-learn
0.841
RMSE14.27
Rows kept96.5%
Operations8
The target column is excluded from every feature operation — enforced in one place in the code, not by convention. A failed run writes this same report, ending at the operation that failed and saying why.

Days later, with the model you just trained

Prediction new_customers.csv · scored against the model from the run above Example
01 Choose the data

A file, or a table read straight out of your database. The same five connectors that feed a run feed a prediction.

02 The columns get checked

Against exactly what the model was trained on. A missing column is named — never quietly worked around, because a prediction that is wrong should not look like one that is right.

03 Download the answers

predictions.csv — your rows exactly as you sent them, with the model's output added as one more column.

Columns the model never saw — an id, a date, the true value you are checking against — are carried through untouched and sit next to the prediction.

What it does

Seven things, and it says so every time it does one

Build

A pipeline you assemble, not code you write

Drag operations onto a canvas — explore, clean, scale, derive, encode, fit. 27 registered operations and 4 models. You never write Python, and nothing is generated on your behalf.

Connect

Your database, not an export

PostgreSQL, MySQL, MongoDB, Snowflake and Databricks. Point at a table or write a SELECT. Read-only statements only, and your credentials are never stored.

Watch

See it happen, operation by operation

Each step appears as it finishes — rows in and out, columns added or dropped, nulls filled, milliseconds spent. A long run is never a spinner.

Predict

Use the model, not just download it

Predict with the very model you trained in DataRefine. Point it at new data — a file or a table — and get your rows back with the answers added. It checks the columns first and tells you if they don't match.

Integrate

A step in your DataOps / MLOps pipeline

DataRefine is built to be integrable, not to be another island. Plans, runs and predictions are addressable pieces of work, so refinement and training can be triggered from the orchestration you already use, and the artifacts a run produces — dataset, report, model — land where the rest of your stack expects them. Deployable inside your own VPC.

Prove

A report for every run, including the failed ones

Every operation, its parameters, its effect and its timing, written down. Especially useful the day something goes wrong — the trace ends exactly at the step that broke.

Repeat

The same plan gives the same result

A plan is data, not a script. Save it, re-run it next quarter on next quarter's file, and compare like with like — because nothing about the run was improvised.

About

Built for the people who have to explain the model

Most tools that promise machine learning without code work by hiding the decisions. You upload a file, something happens, a number comes out. That is fine until somebody asks what exactly did you do to this data — a risk officer, an auditor, a regulator, or the analyst who inherits your work in six months.

DataRefine answers that question by construction. You assemble a refinement plan from a fixed catalogue of registered operations. The system executes exactly those operations, in the order you set, and writes down every one of them with its parameters, its timing, and what it changed. No code is generated on the fly and no step is invented.

The same principle decides what the product refuses to do. Ask it to predict on data whose columns don't match what the model was trained on, and it stops and tells you which ones are missing — rather than reshaping your file until something comes out. A number that looks like an answer and isn't one is the only truly expensive bug in this business.

It is also meant to live inside a stack rather than beside one. DataRefine is integrable with existing DataOps and MLOps workflows — it reads from the databases and warehouses your data already sits in, and the artifacts it produces are ordinary files a downstream pipeline can pick up. And the model you train here does not have to leave: you can predict with it directly in DataRefine, on a new file or a new table, whenever you need to.

You do not need to know scikit-learn to use it. You do need to be able to read a list of what was done to your data — and that list is the product.

01

A refined dataset

Your data after exactly the operations you selected, and nothing else.

02

An exploration report

Profiles, distributions, missingness and outliers — computed on the raw file, before anything transforms it.

03

A trained model

Fitted and scored on a held-out split, with the metrics that suit the problem you chose.

04

Predictions on new data

Predict with the model you trained here — point it at a fresh file or table. It checks the columns against what it learned from, then hands back your rows with the answers added.

Early access

Join the waitlist

We are opening to a small first group. Tell us roughly what you work with and we will get in touch when there is something worth your time — no newsletter, no drip campaign.