Tables

A table is rows and named typed columns, and a formula cannot tell where they came from.

Rows and typed columns

A table holds rows, and named columns with a type each. A column's type is text, number, boolean, or date, and that list is closed.

table invoices

date        plan   region   amount
2024-01-05  pro    US         1000
2024-01-18  team   US         2500
2024-02-03  pro    US         1200
2024-02-14  pro    EU          800
2024-03-09  pro    US         1500

Where the rows come from

A table is synced from a source, uploaded as a file, or typed by hand. A formula reads all three the same way and cannot tell which one it is reading. Replacing a hand-typed table with a synced one changes no formula.

How a model reads a table

A model names the tables it reads and, for each one, the column that places a row on a step. Each row of invoices lands on the month its date falls in.

A table with at most one row at each slice at each step can be read as a key. Its values are then read one at a time, as scenario.growth, with no SUM around them.

Every loaded row is counted in one of five places: on a step, before the first step, after the last, with no value to place it by, or on a step but with a value no member of a dimension holds. The five counts say how much of a table a model covers.