Skip to content

Every chart is one query document. Yours to run too.

The dashboard's charts are built from a small declarative query, and the same query works from your own code. No export step between a question and its answer.

One document, chart or code

POST /analytics/query

{
  "resource": "reviews",
  "measures": ["count", "avgRating"],
  "groupBy": ["createdAt"],
  "granularity": "week"
}

Built to answer, not to impress.

The questions merchants actually ask are simple: how many, how good, since when, compared to what. Cascade answers them without a data team.

Measures and dimensions
Each resource publishes what you can count, average and group by, and the schema endpoint describes all of it. The chart builder reads that schema; so can your code.
Filters that travel
The filter is the same JSON document the list endpoints take, so the filter bar's current state goes verbatim to both the list and the chart. What you see is what you counted.
Your time zone, honest gaps
Time series are bucketed in your organization's own time zone, and a week with nothing in it shows as zero rather than silently disappearing from the axis.
Saved charts and dashboards
Any chart you build can be saved and arranged into dashboards, and a reviews dashboard ships ready-made so the first useful screen costs nothing.

A chart builder that makes the safe choice for you.

Most analytics screens hand you thirty chart types and wish you luck. Cascade derives the right one from what you asked.

  • Pick a resource, a measure and a grouping, and the chart type follows from the shape of the answer. A time series is a line, a breakdown is bars; nobody chooses a pie.
  • Long tails are folded into an Other bucket instead of a legend with forty entries.
  • Every chart on a dashboard re-runs against live data with the same document it was saved with.