Share a Deepchecks report
Deepchecks is at its most useful in the argument after the run — the feature drifted, the label distribution shifted, the train/test split leaks. That argument needs everyone looking at the same output.
from deepchecks.tabular.suites import train_test_validation
result = train_test_validation().run(train_ds, test_ds, model)
result.save_as_html("deepchecks.html")
save_as_html writes one self-contained file: the conditions table, the
per-check detail, and the Plotly figures inlined. Nothing to lose in
transit — and nothing anyone else can open, because it's sitting in your
working directory.
Why the notebook isn't the share
result.show() renders inline, so the audience is exactly one person.
What gets shared instead is a screenshot of the conditions summary,
which drops the part that decides the argument: the distribution plot
under the failing check.
Publish the file
Drag deepchecks.html into Comma:
- The report body renders faithfully, and the Plotly figures stay interactive — scripts run inside a sandboxed iframe with no same-origin access. See interactive HTML reports.
- One URL, openable on a phone, with no account for the reader.
- Access per report: private, team, anyone signed in, or link holders with view, comment or edit — sharing & access control.
From a training or validation pipeline
import requests
result = train_test_validation().run(train_ds, test_ds, model)
result.save_as_html("deepchecks.html")
with open("deepchecks.html") as f:
requests.patch(
f"https://commareports.com/api/v1/reports/{report_id}",
headers={"Authorization": f"Bearer {token}"},
json={"title": f"Validation — {model_version}", "html": f.read()},
timeout=60,
).raise_for_status()
One report id per model or per dataset keeps one URL and appends a revision per run — so "when did this check start failing" is a question the history answers. See publishing from CI and scheduled HTML reports.
What review adds
- Anchored threads on the failing check — "expected, promo window" or "no, this is a join bug" — which is the context a red condition row never carries by itself. See commenting on HTML.
- Revisions, so a drift claim is a diff between two runs rather than two screenshots.
- Access per report, which matters when the check output includes
feature values from production data. Keep it
privateorteamunless you've looked.
Limits
- Entry HTML: 5 MB. A full default suite with many figures exceeds
this. Run the narrower suite you actually want reviewed
(
data_integrity(),train_test_validation()), or export a single check's result on its own. - Assets: 25 MB per file, 250 MB and 500 files. 60 requests/minute per token.
Try it
Comma is free — unlimited reports, unlimited commenters, unlimited revision history.