How to Track ML Experiments with JSON and CSV (Before You Need a Tracker)
A practical, low-tech workflow for logging, comparing and exporting machine learning runs with JSON and CSV, plus the signs it is time to move to MLflow, W&B or ClearML.
Contents
Most machine learning projects start the same way: a notebook, a few training runs, and results scattered across filenames like model_final_v2_REAL.pt. You do not need a full MLOps platform on day one. A disciplined JSON log and a couple of free online tools will carry a solo developer or a two-person team surprisingly far. This guide shows the workflow, and then the point at which you should stop hand-rolling and adopt a proper tracker.
Step 1: Write one JSON record per run
The single most useful habit is to save every run as one self-describing record: what you ran, what data you used, and what came out. Append each record as a line to a runs.jsonl file. A record can be as small as this:
{
"run_id": "2026-10-23-001",
"git_commit": "a1b2c3d",
"dataset": "reviews_v3",
"params": {"lr": 0.0003, "batch_size": 32, "epochs": 5},
"metrics": {"val_accuracy": 0.912, "val_loss": 0.287},
"notes": "added dropout"
} Two rules keep this honest. Always store the git commit and a dataset identifier, because a metric without its code and data cannot be reproduced. And never overwrite a record; append a new one. If a line looks broken or hard to read, paste it into a JSON formatter, and use a JSON repair tool when a crashed run left a half-written line.
Step 2: Keep the format consistent with a schema
The log is only useful if every record has the same fields. Generate a schema from your first good record with a JSON schema generator, then check new entries against it with a JSON schema validator. It takes a minute and prevents the classic problem of one run calling the metric acc and the next calling it accuracy.
Step 3: Compare two runs
When a run is suddenly better or worse, the question is always the same: what changed? Paste the two records into a JSON diff and the differing parameters jump out. For config files or training scripts, a plain diff checker does the same job. Changing one thing at a time makes this step almost trivial, so resist the urge to tweak five hyperparameters between runs.
Step 4: Turn the log into a table
For a quick leaderboard, convert the log to a spreadsheet. Nested fields such as params and metrics need flattening first, and a JSON flattener handles that. Then a JSON to CSV converter gives you a file you can sort in any spreadsheet app. Going the other way, a CSV to JSON converter lets you import results someone else tracked in a sheet. Sort by validation metric, scan the top five rows, and you have a working leaderboard without any new infrastructure.
When this stops working
A JSON log is a fine start, but it has limits. Watch for these signs that you have outgrown it:
- More than one person is running experiments and you keep merging log files.
- You want live training curves, not final numbers.
- You need to attach model files, plots or datasets to a run.
- You are asked to reproduce a result from months ago and the data has moved.
At that point, pick a real tracker. The landscape changed a lot in the past year: Neptune's hosted service was shut down, Weights & Biases was acquired by CoreWeave, and DVC changed stewards. ProductListo's Best Experiment Tracking Tools for Small ML Teams (2026) compares the main options using pricing taken from the vendors' own pages. The short version: MLflow is the portable open-source default, Weights & Biases has the strongest hosted dashboards, ClearML adds pipelines and orchestration, and DVC versions your data alongside code. The directory's AI & ML buyer's guide covers more tools.
The good news is that the JSON habit above makes migration painless. If every run already has parameters, metrics, a git commit and a dataset ID, importing that history into any tracker is a short script rather than an archaeology project.
Related reading
If your experiments end in a deployed model, see the guide to the best platforms to host and deploy open-source AI models, and check how to stay legally safe when using open-source AI models before shipping. For the bigger picture on autonomous systems, read AI agents in 2026.
Makers of ML and developer tools can submit a tool to the ProductListo directory for review, or read about guest posts and sponsored placements.
Frequently asked questions
Can I track ML experiments without a dedicated tool?
When should I switch to MLflow, Weights & Biases or ClearML?
What should every experiment record include?
How do I compare two experiment runs quickly?
The UrwaTools Editorial Team delivers clear, practical, and trustworthy content designed to help users solve problems efficiently. Our articles focus on accurac...