Share a Sweetviz report

Sweetviz exists for one question: are these two datasets the same shape? Train versus test. This month versus last. Treatment versus control. It answers it with two distributions on one axis, which is far more convincing than any sentence you could write about drift.

Then show_html() opens a browser tab on your laptop, and the convincing part never leaves the room.

Publish it

import sweetviz, requests, os

report = sweetviz.compare([train, "Train"], [test, "Test"], target_feat="churned")
report.show_html("sweetviz.html", open_browser=False)

r = requests.post(
    "https://commareports.com/api/v1/reports",
    headers={"Authorization": f"Bearer {os.environ['COMMA_API_TOKEN']}"},
    json={
        "title": "Train/test split — churn model v4",
        "description": "Checking for drift before retraining",
        "html": open("sweetviz.html").read(),
    },
)
r.raise_for_status()
print(r.json()["url"])

One file in, one URL out. Sweetviz inlines everything it needs, so nothing else has to be uploaded, and the association matrix and column detail panes still respond inside the sandboxed iframe (allow-scripts, no allow-same-origin).

Why this one is worth reviewing

A profiling report on a single dataframe is reference material. A comparison is a claim — that your split is fair, that the new month behaves like the old one — and claims are the thing that should get a second pair of eyes.

The failure mode is familiar: the model underperforms in production, and somebody discovers the split had a leaked column or an unrepresentative time window. That was visible in the report the whole time. It just never had a URL anyone could open, so nobody looked.

  • Anchored comments on the column that is off — see commenting on HTML.
  • Revisions on the same report id, so each retrain is a diff against the last split rather than a fresh file with a date in the name.
  • Access per report — private, team, domain-gated, or named reviewers. See the sharing model.

Limits

  • HTML body: 5 MB. Sweetviz output is compact for typical column counts; a very wide frame is the case to watch. Profile a subset of columns, or publish per-feature-group.
  • 60 requests/minute per token.
  • Publish the report, not the data. Sweetviz embeds summary statistics and example values — for a sensitive dataset, that is still a disclosure decision, so set visibility before you paste the link.

Try it

Comma is free — unlimited reports, unlimited commenters, unlimited revision history.

Publish a profiling report →

Related