Studio in public beta

Data, designed.
Not just generated.

Draw the tables, or just describe them. Declare the outcome the data has to hit, revenue climbing then dipping in Q3, an 18% churn rate, zero orphan rows, and Misata builds a real, connected world to match it exactly, from customer demos and test environments to analytics and AI workflows. Not sampled and hoped for. Designed on purpose.

Q4 revenue lands at exactly $2.4M
customers
0 rows
addresses
0 rows
orders
0 rows
order_items
0 rows
products
0 rows
categories
0 rows
payments
0 rows
refunds
0 rows
shipments
0 rows
9 tables · 8 relationships · drawn, not scripted
What Misata actually is

The parameterized synthetic
data generation suite.

One core, built outward in three directions at once: open for anyone who wants to read it, no-code for anyone who wants to skip straight to designing, and an agent for the moment an AI-built pipeline needs a demo that actually earns the room.

OPEN SOURCE
Live today

The engine

The parameterized core. MIT licensed, pip install misata, and readable end to end, so trusting it never requires taking our word for it.

pip install misata
NO-CODE
Live today

Misata Studio

The design surface. Draw the tables, describe them in a sentence, or start from a template, all running the same engine in your browser.

AGENTIC AI
Coming soon

Misata Backlot

The agent. Describe a data world in plain English, declare what has to be true about it, and it builds, verifies, and lands the result, demo environments first, with more workflows to follow.

Works withDatabricksdbtSparkPostgresDelta LakeParquetClaudeCursorWindsurfTableauPower BIpytest
Build the data for the job

Most tools generate rows.
Misata designs a world.

A row-by-row generator fills columns with no idea what the neighbouring column says. Misata designs the whole thing at once, the schema, the relationships, the numbers you declared, so it holds together wherever someone clicks into it. One engine, aimed at whatever you’re building right now.

live
Demo Engineering
Build prospect-specific demo data for the deal in front of you: their vertical, their schema, the number the demo has to hit.
Explore Demo Engineering
live
Test & Development
Seed a dev database from its own schema, with every foreign key verified afterward, and no production record ever in the room to explain in a security review.
Explore Test Data
live
Analytics & BI
Build the dataset behind a dashboard on purpose, so the story it tells, in Tableau, Power BI, or Looker, is the one you meant.
Explore Analytics
live
AI & Agent Workflows
Give an agent real, relational rows to read and act on, over MCP, so what it did can be checked against what was actually true.
Explore AI Data
Why this exists

You can copy production and hope it survives the trip. You can fake it by hand and hope nobody looks too closely. Or you can design it, on purpose, and get exactly the data you meant to build.

beforeThe usual approach
copy production.sql && edit.sh
Row 12: customer lives in two countries
ORDER total ≠ sum of LINE_ITEMS
dates go backward in March
demo breaks in front of the client
with misataWhat ships with every dataset
built exactly like you designed it
the story you wrote, sitting in every table
0 orphan rows, nothing to patch after
change one thing, without breaking the rest
ready to hand to your product, today
Start from anywhere

A sentence is the fast way in,
not the only way in.

However you think about your data, Studio meets you there. Type it, draw it, import a schema you already have, or begin from a template. Every dataset shapes, corrects, and exports the same way from any starting point.

A sentence
Describe what you need in plain English and Studio designs the schema for you: tables, types, and relationships included.
A canvas
Draw the tables yourself on a blank canvas and drag to connect them. Full control when you already know the shape.
An import
Paste a SQL schema, a Prisma schema, or a JSON definition, and Studio turns it into editable tables in seconds.
A template
Start from a ready-made domain like e-commerce or SaaS and reshape it to fit the story you are telling.
Then shape it into a story
Step 1
Shape the story
Drag a revenue line into the trend you are presenting. Set a churn rate, a fraud rate, a Q4 spike. The numbers become the message your demo has to make.
Step 2
Fix anything
See a value that looks wrong, a column to change, a trend that should climb higher. Correct it, and everything else stays consistent underneath you.
Step 3
Export it
Straight to CSV, JSON, SQL, Parquet, or your database. Open it in Sheets, Excel, Tableau, Power BI, Databricks, and get on with the work.
For when you want to look closer

Designed freely.
Held together exactly.

The canvas is the part you feel. Underneath it is a deterministic engine: whatever story you designed, the numbers it produces actually match, every foreign key resolves, and a proof ships with the result, so the freedom to design it your way never costs you data that falls apart on the first join.

It hits your number exactly
Say Q4 revenue is $2M and the rows sum to it, to the cent. The engine solves for it in closed form, a result serious enough that we published the math in a research paper. Point the numbers at your story and they land on it, every time.
It never contradicts itself
Names match nationalities, timestamps fall where a calendar would put them, related tables stay in sync, and a total always equals the sum of its parts. The classic tells of fake data are engineered out, one mechanism at a time.
It comes with a proof
Every dataset ships with a check you can read: keys resolve, roll-ups reconcile, declared targets are met. You know it holds up before it is ever on a screen in front of a client or in a CI run.
It is the same every time
One command reproduces the exact dataset, or reshapes a single slice without disturbing the rest. Nothing is random when you need it not to be, so a demo you liked yesterday is still there tomorrow.
Declaredmisata.yaml
q4_revenue$2,000,000.00exact
orders → customersevery row resolvesfk
churn_rate18%of customers
Generated6 of 4,200 rows
ordercustomerplacedamount
10441Amara Okafor2025-10-04612.40
10442Jonas Lindqvist2025-10-0489.99
10443Priya Raghunathan2025-10-051,204.75
10444Tomás Herrera2025-10-06247.10
10445Wei Zhang2025-10-0658.25
10446Fatima Al-Sayed2025-10-07430.00
Verified independentlyDuckDB
orphaned foreign keys0
sum(amount) where quarter = Q42,000,000.00
churn rate18.0%
orders placed before signup0
integrity proof attachedseed 7 · reproducible
126/126assertions passed on the GauntletSee the run →
Custom dataset service

Need it built for you?
We will build it.

Describe your schema, constraints, and deadlines. We will produce a custom relational dataset with integrity proofs, realistic distributions, and the exact aggregate targets you need, and deliver it to your inbox.

Schema design and foreign-key wiring included
Declared aggregate targets hit exactly
Any format: SQL, Parquet, Delta Lake, CSV, JSON
Integrity proof attached to every delivery

Bespoke datasets start at $50, quoted before any work begins.

Describe tables, relationships, row counts, distributions, or constraints you care about.

We will respond within 24 hours with a schema preview and a quote. Bespoke datasets start at $50. Your email is never shared or added to a list.

Frequently asked questions

Everything you need to know about
relational synthetic data.

Common questions about generating synthetic data, referential integrity, database formats, and compliance.

Declare it. Shape it.
Ship it with proof.

Studio is in public beta. Describe what you need, shape it, correct it, and export it. If something is missing for your use case, tell us and we will build toward it.

Talk to the developer

There is no support queue. Just me.

Misata is built by one person, so anything you send is read by the person who can actually change it. Ask how to model something awkward, tell me what data shape you keep wishing existed, or point at the thing that broke.

Requests that come with a real use case tend to get built first, because they are the ones I can verify I got right.

Goes directly to the person who builds Misata. Your email is never shown publicly or added to a mailing list.