Ahmed Doghri Logo Image
Ahmed Doghri

tabflowmini

Fake tables are easy. Fake tables that don't quietly wreck the churn model built on top of them are the actual assignment. tabflowmini reports marginal fit, category drift, churn drift, and duplicate rate. Mean KS lands at 0.056.

tabflowmini, a tabular synthetic data generator

Fake Rows Need Real Checks

A synthetic table can look completely plausible and still be worthless. It can match the column means and quietly ruin the category balance, or preserve the categories and leak entire rows, or worst of all, break the exact label relationship that made the table valuable in the first place.

tabflowmini fits a compact transport model over continuous columns, samples categorical marginals separately, regenerates the churn label from the synthetic features, and then actually checks all of that instead of declaring victory after one histogram looks close enough.

Small Flow, No Neural Net Hiding Anywhere

The generator is inspired by flow matching, but implemented as a readable Gaussian transport instead of a hidden neural net. That keeps the repo dependency-free and makes every assumption something you can actually see.

The benchmark reports KS distance for continuous columns, plan distribution gap, churn rate gap, and rounded duplicate rate. This is a small audit harness, not a magic anonymizer, and it will tell you exactly which number to worry about.

The Number

Mean KS distance is 0.056 across continuous columns. Plan gap is 0.040. Churn gap, the number the whole exercise exists to protect, is 0.026. Duplicate rate is 0.000, meaning zero rows leaked straight out of the training set.

3 tests pass locally and on GitHub Actions across Python 3.9, 3.11, and 3.13, with metrics written to `artifacts/metrics.json` every run.

Tools Used

Python
Synthetic Data
Tabular Modeling
Flow Transport
Privacy Checks
pytest
GitHub Actions CI