# Dimension tables

Dimensions provide context surrounding the fact tables. Simply put, they give the who, what, where of a fact.&#x20;

`fact_learn_events`, for example, can be joined to `dim_content` to get more information on the content items (title, technology, topic, etc.)

* The dimension tables available are:
  * [**dim\_content**](#dim_content)
  * [**dim\_course\_variant**](#dim_course_variant)
  * [**dim\_user**](#dim_user)
  * [**dim\_team**](#dim_team)
  * [**dim\_track**](#dim_track)
  * [**dim\_certification**](#dim_certification)
  * [**dim\_assignment**](#dim_assignment)
  * [**dim\_date**](#dim_date)

### dim\_content

This table stores detailed information on the different types of content available on the platform.

{% hint style="warning" %}
The `chapter_id` column type has changed from integer to string in March 2026. If your existing queries cast `chapter_id` to an integer or use integer comparison operators, they will need to be updated. See Domain Gotchas for more details.
{% endhint %}

| Field                    | Description                                                                                                                       |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
| group\_id                | The unique group identifier                                                                                                       |
| content\_type            | The type of content (course, chapter, project, assessment, etc.)                                                                  |
| content\_id              | The unique content identifier                                                                                                     |
| exercise\_id             | The unique exercise identifier                                                                                                    |
| chapter\_id              | The unique course chapter identifier                                                                                              |
| course\_id               | The unique course identifier                                                                                                      |
| course\_variant\_id      | The unique ID of the course variant, 1 for classic, 2 for AI-native. Can be joined with `dim_course_variant` for variant details. |
| content\_title           | The title of the content item                                                                                                     |
| technology               | The technology of the content item (R, Python, SQL, Spark, etc.)                                                                  |
| topic                    | The topic of the content item (Programming, Data Manipulation, Artificial Intelligence, etc.)                                     |
| slug                     | The slug of the content item, if applicable                                                                                       |
| content\_url             | The URL of the content                                                                                                            |
| xp\_available            | The maximum XP points the user can earn by completing the content item                                                            |
| course\_state            | The current status of the course (Live, Soft Launch, Archived)                                                                    |
| course\_is\_custom       | Whether the course is custom or not                                                                                               |
| assessment\_id           | The unique identifier of the assessment                                                                                           |
| assessment\_active       | The current status of the assessment                                                                                              |
| project\_id              | The unique identifier of the project                                                                                              |
| project\_is\_guided      | Whether the project is guided or unguided                                                                                         |
| project\_state           | The current status of the project (Live, Archived)                                                                                |
| project\_is\_custom      | Whether the project is custom or not                                                                                              |
| practice\_pool\_id       | The unique identifier of the practice pool                                                                                        |
| practice\_pool\_status   | The current status of the practice pool (Live, Archived)                                                                          |
| exercise\_is\_deleted    | Whether the exercise has been deleted                                                                                             |
| time\_needed\_in\_hours  | The estimated time needed in hours to complete the content item                                                                   |
| description              | A description of the content                                                                                                      |
| short\_description       | A short description of the content                                                                                                |
| assessment\_is\_custom   | Whether the assessment is custom or not                                                                                           |
| is\_resource             | Whether a content item is a resource (podcast, webinar, cheatsheet, etc.)                                                         |
| has\_variant\_classic    | Indicates whether the course has a classic variant.                                                                               |
| has\_variant\_ai\_native | Indicates whether the course has an AI-native variant.                                                                            |

### dim\_course\_variant

This table provides information about course variants. A course variant represents a specific version of a course's learning experience. Currently, courses can be either **classic** or **AI-native.**

| Field                        | Description                                                                                                                                              |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| course\_variant\_id          | The unique identifier for the course variant. `1` = classic, `2` = AI-native.                                                                            |
| content\_id                  | The unique identifier for the content item (course).                                                                                                     |
| course\_variant\_name        | The name of the course variant (e.g., 'classic', 'ai-native').                                                                                           |
| course\_variant\_description | The description of the course variant.                                                                                                                   |
| duration\_minutes\_average   | Average duration of the AI-native variant of the course in minutes.                                                                                      |
| duration\_minutes\_margin    | Margin in minutes of the duration of the AI-native variant of the course. The range of durations of the course is the duration plus or minus the margin. |

### dim\_user

This table contains detailed information on the user. This table is commonly joined with other tables to enrich user-related data, as most fact event tables contain a user ID.

| Field              | Description                                                    |
| ------------------ | -------------------------------------------------------------- |
| group\_id          | The unique group identifier                                    |
| user\_id           | The unique user identifier                                     |
| email              | The user’s email address                                       |
| first\_name        | The user’s first name                                          |
| last\_name         | The user’s last name                                           |
| slug               | The slug of the user, used in the user's portfolio/profile URL |
| avatar\_file\_name | The avatar file name of the user                               |

### dim\_team

This table stores detailed information about teams.

| Field                | Description                                            |
| -------------------- | ------------------------------------------------------ |
| group\_id            | The unique group identifier                            |
| team\_id             | The unique team identifier                             |
| team\_name           | The name of the team                                   |
| created\_at          | The timestamp when the team was created                |
| updated\_at          | The timestamp when the team was last updated           |
| deleted\_at          | The timestamp when the team was deleted, if applicable |
| group\_created\_at   | The timestamp when the group was created               |
| slug                 | The slug of the team                                   |
| team\_color\_hexcode | The hexacode of the team’s color                       |

### dim\_track

This dimension table is designed to store detailed information about skill, career, and custom tracks. It’s commonly used to enrich track metrics with track information. For example, it helps in the Progress report where it provides the track title.

Entries in this table contain both a `track_id` and `track_version_id` because a track can contain multiple versions.&#x20;

Track fact events are always tied to a `track_version_id`.

| Field                      | Description                                                                                                                                       |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| group\_id                  | The unique group identifier                                                                                                                       |
| track\_version\_id         | The unique track version identifier. Every time a particular track is updated, it gets a new `track_version_id` while keeping the same `track_id` |
| track\_id                  | The unique track identifier                                                                                                                       |
| track\_type                | The type of track (public or custom)                                                                                                              |
| track\_title               | The title of the track. The full name of the track is a concatenation of `track_title` and `track_subtitle`                                       |
| track\_subtitle            | The subtitle of the track                                                                                                                         |
| track\_category            | The category of the track (career or skills)                                                                                                      |
| track\_topic               | The topic of the track                                                                                                                            |
| is\_current\_version       | Whether this track version is the current (latest) version of the track                                                                           |
| track\_version\_number     | <p></p><p>The ordinal version number of the track. Each time the track is updated, the <code>track\_version\_number</code> increases by one</p>   |
| track\_published\_at       | The timestamp when the track was published                                                                                                        |
| track\_archived\_at        | The timestamp when the track was archived, if applicable                                                                                          |
| track\_technology          | The technology of the track (R, Python, Shell, etc.)                                                                                              |
| track\_state               | The current status of the track (live, archived)                                                                                                  |
| track\_short\_description  | A short description of the track                                                                                                                  |
| track\_slug                | The track slug                                                                                                                                    |
| track\_url                 | The URL of the track                                                                                                                              |
| track\_time\_needed\_hours | Time needed (in hours) to complete the track                                                                                                      |

### dim\_certification

This table stores details on certifications.

| Field                        | Description                                                                    |
| ---------------------------- | ------------------------------------------------------------------------------ |
| group\_id                    | The unique group identifier                                                    |
| certification\_id            | The unique certification identifier                                            |
| certification\_name          | The name of the certificate                                                    |
| certification\_slug          | The slug of the certificate                                                    |
| certification\_description   | Description summarizing the certification content                              |
| certification\_type          | The certification is restricted if applicable (Public, Restricted, Specialist) |
| certification\_is\_custom    | Whether the certification is custom or not                                     |
| certification\_level         | The level of the certification                                                 |
| certification\_url           | The URL of the certification                                                   |
| certification\_published\_at | Timestamp when the certification was published                                 |
| certification\_updated\_at   | Timestamp when then certification metadata were updated                        |

### dim\_assignment

This table contains metadata for each assignment, including its creator, assigned content, target audience, type, XP value, status, and key timestamps. It includes foreign keys to join with assigned elements (content, track, certification) for additional details.&#x20;

For tracks, only `track_id` is available—join to `dim_track` using `is_current_version = true` to get the latest version.

| Field                          | Description                                                                           |
| ------------------------------ | ------------------------------------------------------------------------------------- |
| assignment\_id                 | The unique assignment identifier.                                                     |
| created\_by\_id                | The id (user\_id) of the user who created the assignment.                             |
| group\_id                      | The unique identifier of the group.                                                   |
| content\_id                    | The id of the content assigned (assessment, chapter, course, or project).             |
| certification\_id              | The id of the certification assigned.                                                 |
| track\_id                      | The id of the track or custom track assigned.                                         |
| assignment\_type               | The type of assignment (custom track, assessment, chapter, course, project, xp, etc). |
| assignment\_xp                 | The XP or goal value of the assignment. Only filled for assignment type ‘xp’.         |
| assignment\_status             | The status of the assignment (e.g., active or archived).                              |
| created\_at                    | The timestamp when the assignment was created.                                        |
| due\_at                        | The due date of the assignment.                                                       |
| deleted\_at                    | The timestamp when the assignment was deleted, if applicable.                         |
| personalized\_message\_content | The personalized message content for the assignment.                                  |
| assignee\_type                 | The type of assignee (group, team, user).                                             |
| team\_id                       | The unique team identifier                                                            |

### dim\_date

This table contains a row per date from the year 2010 onwards. It serves as a support table for joining other tables with `date_id`.&#x20;

This table includes pre-calculated values for common date-related operations, such as the day of the year, the day of the month, and the day of the week.

| Field            | Description                                 |
| ---------------- | ------------------------------------------- |
| date\_id         | The unique date identifier (YYYYMMDD)       |
| date             | The date                                    |
| day\_of\_week    | The day of the week for that date (1-7)     |
| day\_of\_month   | The day of the month for that date (1-31)   |
| day\_of\_quarter | The day of the quarter for that date (1-91) |
| day\_of\_year    | The day of the year for that date (1-366)   |
