Sharing & Publishing
Getting the Insight to the People Who Decide
Analysis that no one sees changes nothing. Sharing and publishing is the final step: distributing the report and its insights to the right audiences, in the right format, through the right channel — and doing it reliably and repeatedly. This is also where governance matters most: the moment data leaves the analyst's machine, access, accuracy, and privacy become everyone's problem.
Publishing pushes one governed source of truth out to dashboards, portals, and stakeholders.
Channels for Sharing
- Live dashboards: Power BI, Tableau, or Looker — self-serve, always current, best for ongoing monitoring.
- Data portals / workspaces: a shared, governed location where teams find the trusted version.
- Static artifacts: PDF decks, exported tables, and documents for point-in-time communication.
- Notebooks: a reproducible end-to-end story for technical audiences — like the one at the end of this series.
Make It Reproducible, Not Manual
The difference between a one-off chart and a real deliverable is repeatability. Export from code so the same report can be regenerated on demand; schedule refreshes so the numbers are never stale; and version the output so people know which copy is current. A pipeline that rebuilds the report on a schedule beats a spreadsheet someone updates by hand.
In Python — export the deliverables
Python · pandas
import pandas as pd
# The summary table from the Reporting step
summary = (orders.groupby(["region", "category"])
.agg(sales=("sales", "sum"), profit=("profit", "sum"))
.reset_index())
# Publish to several formats from a single source of truth
summary.to_csv("retail_summary.csv", index=False) # for analysts
summary.to_excel("retail_summary.xlsx", index=False) # for business users
# A styled HTML table to embed in a portal or email
(summary.style
.format({"sales": "${:,.0f}", "profit": "${:,.0f}"})
.background_gradient(subset=["sales"], cmap="Blues")
.to_html("retail_summary.html"))
In SQL — publish to a shareable view
SQL
-- A governed view is the warehouse-native way to "publish":
-- one definition, granted to the right roles, queried by every BI tool.
CREATE OR REPLACE VIEW reporting.retail_summary AS
SELECT region, category,
SUM(sales) AS sales,
SUM(profit) AS profit
FROM orders
GROUP BY region, category;
GRANT SELECT ON reporting.retail_summary TO ROLE bi_readers;
Tools Commonly Used
- Python: Pandas
to_csv/to_excel/to_html,Styler;nbconvertfor notebooks. - SQL: governed
VIEWs and role-basedGRANTs as the published interface. - BI & collaboration: Power BI / Tableau publishing, scheduled refreshes, shared workspaces.
Best Practices
- Publish a single source of truth; avoid emailing copies that immediately drift out of date.
- Automate generation and refresh so the report is always current and reproducible.
- Apply access control and respect privacy/compliance (e.g., GDPR) before anything is shared.
- Match the format to the audience — a dashboard for monitoring, a deck for a decision meeting.
Example: Publishing the Retail Report
For the retail dataset, publishing might involve:
- A scheduled Power BI dashboard for the regional managers to monitor sales and margin.
- A governed warehouse view that every BI tool reads from, so the numbers always agree.
- A reproducible notebook — exactly the one below — that walks the full pipeline for technical reviewers.