modellerUpdated 2026-04-17

Projects and Models

What this covers

This article explains what projects and models are, how they differ, and how the Model Builder is organised.

Projects

A project is a container for one or more models. Projects exist within a workspace and group related models — for example, all models related to sales in one project, all models related to inventory in another.

A project has a name, a creation date, and a list of members. Each member has a role within the project: Modeller or Viewer.

Projects are created by Modellers or Tenant Admins.

Models

A model is the core object in Tessallite. It defines a single business fact — the central event or transaction being analysed. A model is built by a Modeller using the Model Builder.

A model contains:

The one-fact rule

Each model must have exactly one fact table. Multi-fact analysis is handled by creating one model per fact within the same project.

The Model Builder

Selecting a model opens the Model Builder. It has five distinct areas.

Canvas — a visual diagram of the tables and joins in the model. Nodes are colour-coded: blue for fact tables, green for aggregate dimensions, yellow for detail dimensions. Drawing a line between two nodes creates a join.

Toolbelt — a vertical icon strip on the left side of the screen. Each icon opens a panel in the Drawer for managing one aspect of the model: Sources, Joins, Dimensions, Measures, Targets, Aggregates, Refresh, Lineage, Diagnostics.

Drawer — the detail panel on the right, showing the content of whichever Toolbelt panel is currently open.

Summary Bar — a bar below the page header showing the current count of tables, joins, dimensions, measures, and aggregates, and the target status. The Summary Bar is always visible.

Model Health tab — a dedicated view showing structural alerts, recent aggregate refresh runs, recent Optimiser runs, and any invalid objects.

Table types

Tessallite classifies each table in a model into one of three types.

TypeDescriptionWhen to use
factThe central event or transaction tableOne per model — the primary data being analysed
dim_aggregateA dimension with low to moderate cardinalityCountry, category, status — data that groups well
dim_detailA high-cardinality dimensionCustomer, product catalogue, address — data for lookup and filtering

The table type affects how Tessallite builds aggregates and how the query router selects pre-computed summaries.

Related