Documentation

How Calcbird turns a project's tables and formulas into one grid of values per model.

Start here

A project holds tables and models. Each model reads some of the project's tables, spreads its drivers across some dimensions, and computes one grid of values. These pages follow that order: what a project holds, what a grid is, where its numbers come from, and how a run produces it.

Pages

  1. ProjectsA project holds models, tables, and scalar parameters, and it is what a run is handed.
  2. The gridEvery model computes one grid: each driver, at each slice, at each step.
  3. TablesA table is rows and named typed columns, and a formula cannot tell where they came from.
  4. DimensionsA dimension is an ordered list of members. A slice is one coordinate from each of them.
  5. StepsA model steps along one dimension, and only that dimension can be read at a distance.
  6. Drivers and phasesA driver is one row of the grid, and it holds one formula for each phase of the model.
  7. FormulasA formula is the only place arithmetic is written. It reads tables, drivers, and parameters.
  8. ParametersA scalar parameter is one named value for the whole project, written with an @.
  9. ValuesEvery cell holds a number, an absence, or an error, and that list is closed.
  10. Roll-upsRows are aggregated, steps are coarsened, and dimensions are rolled up.
  11. RunsA run compiles a checked model into SQL, DuckDB computes it, and the grid comes back whole.
  12. PricingEvery plan computes the whole grid. The plans differ in who can edit, where data comes from, and how many cells one run may produce.