AI-powered data storytelling

From spreadsheet to
published story

Connect a Google Sheet. Write a few lines of DSL—or hand it to your favorite AI agent. Publish an interactive chart, dashboard, or slide deck at its own URL, with version history and viewer analytics built in.

Google sign-in · No credit card · No install

revenue-vs-plan.pvt
Data: [google sheets url]

Title: Revenue vs plan — FY24

series: line(showmarkers)
  x: Month
  y: Revenue [indigo 3px]
  zoneby: y 100,crimson,140,goldenrod,mediumseagreen
  plotlines: 140,Plan [gray dash]; 180,Stretch [indigo dash]

Nine lines. Zones, target lines, and interaction come free.

Revenue vs plan — FY24
Below plan On plan Stretch

Three steps to a published story

From raw data to a shareable link in under a minute.

1

Connect your data

Paste a Google Sheets URL, upload a CSV, or type data inline. Pvt keeps a live connection—your charts update when your spreadsheet does.

2

Write it, or have AI write it

The DSL is short and declarative—a few lines per chart. Write it yourself, or paste the schema into Claude, ChatGPT, or Cursor and get a working chart back on the first try.

3

Publish and share

One click to publish. Choose public, unlisted, password-protected, or domain-restricted access. Track who views your work with built-in analytics.

Why a text language beats a code notebook

Pvt uses a concise markup language instead of Python or JavaScript. Here's why that matters.

Readable

You can read the chart without running it

Five lines tell you exactly what a chart does: what data, what axes, how it's grouped, how it's styled. No scrolling through 40 lines of matplotlib boilerplate.

Pvt
series: column(stack)
x: Quarter
y: Revenue
groupby: Region
format: legend-right
5 lines
Python
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('revenue.csv')
pivot = df.pivot_table(
  values='Revenue',
  index='Quarter',
  columns='Region',
  aggfunc='sum'
)
ax = pivot.plot(
  kind='bar', stacked=True,
  figsize=(10, 6)
)
ax.legend(loc='center right')
plt.title('Revenue by Region')
plt.tight_layout()
plt.show()
18 lines
LLM artifact
  • One chart, one file
  • No URL to share
  • No version history
  • No viewer analytics
Pvt document
  • Charts, tables, slides in one doc
  • Published URL: pvt.app/@you/story
  • Version history + rollback
  • Viewer analytics + tracked sharing
Beyond artifacts

An artifact is a chart. Pvt is a publishable story.

Ask an LLM for a chart and you get a single-file artifact—great for a one-off question, useless for an exec review. Pvt's DSL composes charts, dashboards, and slides into one document that publishes to its own URL—with version history and viewer analytics built in. Same AI. Finished product.

Zero environment

No install. No runtime. No errors.

No pip install. No Jupyter. No version conflicts. No “works on my machine.” Open your browser, connect your data, get a chart. It runs everywhere because there's nothing to run.

$ pip install pandas matplotlib seaborn
$ jupyter notebook
$ # fix numpy version conflict...
$ # google "matplotlib tight_layout warning"
$ # export to PNG, email it, lose interactivity

None of this.

Four ways to share one document

Write it once. Present it however your audience needs it—no copy-paste, no re-export.

Interactive Charts

40+ chart types powered by Highcharts. Tooltips, zoom, drill-down, and responsive design by default. Line, bar, scatter, heatmap, treemap, sankey, gauge, and more.

Browse chart types →
$2.4M
Revenue
+18%
Growth
1,205
Customers

Live Dashboards

KPI modules, sparklines, data tables with conditional formatting, and drill-down hierarchies. Connected to Google Sheets for real-time updates.

See dashboard examples →

Slide Presentations

Full-screen presentations with speaker notes, transitions, multi-column layouts, and embedded live charts. Present from your browser—no PowerPoint needed.

See presentation examples →
pvt.app/s/your-story

Published Pages

Real web pages with their own URLs. Public, unlisted, password-protected, or domain-restricted. Version history and viewer analytics built in.

Learn about publishing →

Built for the space between spreadsheets and code

If you've tried these tools, you know the gap Pvt fills.

Pvt Google Charts Python / Jupyter Hex / Observable
Learning curve DSL in minutes, or let AI write it Point and click Python required SQL + Python
Chart types 40+ interactive ~15 basic Unlimited (manual) Good selection
Live data connection
Dashboards + KPIs With frameworks
Slide presentations
Publishing + access control Embed only Manual hosting
No install required

110+ interactive examples

Every chart type, every feature, with live DSL you can copy and tweak.

Browse all examples

Start telling your data story

Free to start. No credit card. Works in any browser.

Get started with Google

Or browse charts · see how publishing works