Data Modeling

Narrator provides the best of Activity Schema and Star Schema.

Activity Schema

Start with Activities

Everything is built upon activities. These activities are building blocks written in simple SQL to answer questions

Learn more about Activity Schema

Simple SQL Definitions

Activities are often created from a single data source, which makes them super easy to define.

Building Blocks

Once each activity is validated and pushed to production, it can be used anywhere in Narrator.

Joined using Customer and Time

All activities have customer and time as features thus making it really easy to combine data.

Activity Schema

Combine data from anywhere in your Activity Schema

Temporal joins are super powerful and allow you to use all your activities as you want. Any activity can be added to any other activity using customer and time.

Learn more about temporal joins


You can use your data in any way you want to answer any type of question.


By having consistent ways of relating data, you no longer have to hack at combining data with lots of sql.


Temporal joins are optimized for query speed by taking advantage of the time-series nature of Activity Schema.

Star Schema

Add dimensions to your activities from anywhere in your warehouse

If the data is in your warehouse–either as raw data or already modeled–you can use it in Narrator. Add any table in your warehouse as a dimension to be used with an activity, customer, or in an aggregation.

Build on top of your work

All your work can be joined into an activity schema to drive more value.

Seamless joining

Dimensions are joined when you use a column.


We don't simply point at your dimensions, we treat them like activities, which means we test them periodically for duplications, nulls, and more.

Ready to iterate quickly from question to answer?

Create an account today.