Share an Elementary data report
Elementary sits on top of dbt and answers the question dbt's own output
doesn't: not just "did the tests pass" but "is this column behaving the way it
did last week". edr report renders all of it into a single HTML file.
Then the file sits on the machine that ran edr, and the analyst who needs it
is somewhere else entirely.
Generate the report
pip install elementary-data
dbt deps && dbt run && dbt test # populates elementary's tables
edr report --file-path elementary_report.html
One file, self-contained, no server.
Publish it
Drag elementary_report.html into the app, or
from your orchestrator:
curl -fsS -X PATCH "https://commareports.com/api/v1/reports/$REPORT_ID" \
-H "Authorization: Bearer $COMMA_API_TOKEN" \
-H "Content-Type: application/json" \
-d "$(jq -n --rawfile html elementary_report.html \
--arg title "Data quality — $(date +%F)" '{title: $title, html: $html}')"
Same id every run. The link in the analytics channel keeps working; the runs behind it accumulate as revisions.
The alternative is a bucket
edr send-report will push to S3, GCS or Azure, and that is a reasonable
thing to do if you already have the bucket, the lifecycle policy, the CDN and
somebody who remembers how the IAM policy was written. For a single HTML file
that changes once a day, it is a lot of infrastructure to own — see
hosting an HTML file for the general version of this
trade-off.
What the analysts get
- Anchored threads on the failing test — "the vendor's Sunday batch lands late, this freshness failure is expected" — attached to the test rather than re-explained every Monday. See commenting on HTML.
- Revisions, so "when did this column start drifting" is answerable.
- A routine if you want the report regenerated and republished on a schedule.
- Access per report — data quality reports name your tables; keep them team-scoped. See the sharing model.
Limits
- Entry HTML: 5 MB. Assets: 25 MB per file, 250 MB and 500 files total.
A project with thousands of models can produce a large single file — scope
the report with
--selectif it approaches the entry cap. - 60 requests/minute per token.
Try it
Comma is free — unlimited reports, unlimited commenters, unlimited revision history.