AI planned, deterministically computed

Turn data into dashboards in seconds.

Drop in a spreadsheet or connect an API. DashVault designs the charts and computes every number from every row.

DashVault turns a plain English request into a chart specification, then computes the chart from every row of the dataset. The model returns the plan; the engine returns the numbers.

The model sees

A small sample and an exact statistics digest. Never the full dataset, never your credentials.

The engine computes

Chart specs run through aggregate.ts over every row, in your browser or on the server.

The key stays put

One server-side environment variable. Nothing prefixed NEXT_PUBLIC, nothing in the bundle.

01/How it works

Three moves, no spreadsheet gymnastics.

01

Bring data

Drop a CSV or an Excel workbook, or point DashVault at a JSON API with auth, pagination and a data path. Saved connections keep credentials server-side and masked in every list.

report.csvledger.xlsxGET /v1/points?page=auth: basic ●●●

02

Describe the outcome

Ask in plain English, or hand over a screenshot of the dashboard you already have. Claude replies with chart specs: what to group, what to measure, how to aggregate. Specs, never values.

points by region, monthly

{ "groupBy": "region", "aggregation": "sum" }

03

Keep it living

Dashboards self-heal broken specs, filter globally across every chart, export to CSV and PDF, refresh on a schedule and travel by gated share link.

global filtersself-healCSV · PDFshare /r/…scheduled refresh

02/The engine

Don't trust it. Test it.

This block imports the production aggregation module and runs it over a 48-row sample, right here on this page. Change the spec; the same code that computes every DashVault chart recomputes.

playground · edit the specengine: src/lib/aggregate.ts

Group by

Measure

Aggregation

{
  "type": "bar",
  "groupBy": "region",
  "measure": "points",
  "aggregation": "sum",
  "sort": "desc"
}

Result

48 rows → 4 groups

Melbourne
9,540
Auckland
9,485
Perth
9,455
Sydney
8,635

4 groups computed. Total 37,115.

Same code path as production: the spec above runs through the aggregation engine over every row, and what you see is its return value. Claude writes specs like this one; it never writes the numbers.

03/For points programs

A loyalty ledger, fully accounted for.

Connect a partnership program once. DashVault pulls organisations, profiles, credits, debits and website activity with full pagination, then keeps six standing reports current.

Program Overview

Awards, redemptions and running balance, month over month.

Liability Forecast

Rolls the unspent balance forward and prices the breakage.

Rewards by User

Who earns what, ranked, filtered and exportable.

Awarded by User MoM

Every award as a user-by-month pivot table.

Redeemed by User MoM

The same pivot, for what flows back out.

Engagement

Sessions, active users and activity, day by day.

Flagship report

The forecast your finance team asks about

The Liability Forecast estimates monthly award volume and the redemption rate against the available balance, rolls the unspent balance forward, and reports outstanding liability plus present and projected breakage on a directly comparable basis. Scheduled insight emails carry it to your inbox.

unspent balancetodayprojected breakage

04/Sharing

Share the report, not the spreadsheet.

  • One link, one report

    A /r/ link shows that report alone, with your saved filters as the viewer’s starting point. No navigation, no wandering.

  • Gated by email

    Allowlists decide who gets in and magic links do the signing in. Flip a share public only when it should be.

  • Never quietly stale

    Shares backed by a live connection re-fetch and re-aggregate server-side once their snapshot ages past 24 hours.

  • CSV that matches the screen

    Exports download exactly what the filters show. No hidden rows, no surprise columns.

0

data sources pulled per connected program

0

standing reports on every project

0h

max age of a live share snapshot

0

numbers invented by the model

Ready when your data is

Put your numbers on the record.

Open the vault, drop in a dataset and ask for the dashboard you actually want.