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 private or team unless 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.

Publish a validation report →

Related