Dimension tables
Dimensions provide context surrounding the fact tables. Simply put, they give the who, what, where of a fact.
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
This table stores detailed information on the different types of content available on the platform.
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.
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 datacamp, 2 for ai-tutor. 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
course_difficulty_level
Difficulty level of the course (Beginner, Intermediate, Advanced).
project_difficulty_level
Difficulty level of the project (Beginner, Intermediate, Advanced).
is_mobile_enabled
Whether the content can be completed on the DataCamp mobile app.
is_course_case_study
Whether the course is a case study.
content_published_at
Timestamp when the content was first published.
content_updated_at
Timestamp when the content metadata was last updated.
is_resource
Whether a content item is a resource (podcast, webinar, cheatsheet, etc.)
has_variant_datacamp
Indicates whether the course has a Datacamp variant.
has_variant_ai_tutor
Indicates whether the course has an AI Tutor 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 Datacamp or AI Tutor.
course_variant_id
The unique identifier for the course variant. 1 = datacamp, 2 = ai-tutor.
content_id
The unique identifier for the content item (course).
course_variant_name
The name of the course variant (e.g., 'datacamp', 'ai-tutor').
course_variant_description
The description of the course variant.
duration_minutes_average
Average duration of the AI Tutor variant of the course in minutes.
duration_minutes_margin
Margin in minutes of the duration of the AI Tutor 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.
user_id
The unique user identifier
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.
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.
Track fact events are always tied to a track_version_id.
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
The ordinal version number of the track. Each time the track is updated, the track_version_number increases by one
track_published_at
The timestamp when the track was published
track_updated_at
Timestamp when the track metadata was last updated.
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, only populated for DataCamp catalog tracks.
track_description
The full description of the track. For custom tracks, this is the long-form description an admin enters when creating or editing the track. For catalog tracks, this matches the description shown on the public DataCamp track page.
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.
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
Type of the certification: Public, Restricted, or Specialist
certification_is_custom
Whether the certification is custom or not
xp_available
The maximum XP a learner can earn by completing this certification
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 the 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.
For tracks, only track_id is available—join to dim_track using is_current_version = true to get the latest version.
assignment_id
The unique assignment identifier.
created_by_id
The id (user_id) of the user who created the assignment.
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.
This table includes pre-calculated values for common date-related operations, such as day, week, month, quarter, half-year, and year attributes, calendar period boundaries, weekday and weekend flags, US holidays, and business-day indicators.
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_week_name
The name of the day of the week
day_of_month
The day of the month for that date (1-31)
day_of_month_name
The display label for the day of the month
day_of_quarter
The day of the quarter for that date
day_of_year
The day of the year for that date (1-366)
day_of_year_name
The display label for the day of the year
week
The week number for that date
week_end_start
The end date of the week
week_start_date
The start date of the week
month
The month number for that date (1-12)
month_name
The month name
month_end_date
The end date of the month
month_start_date
The start date of the month
quarter
The quarter number for that date (1-4)
quarter_name
The quarter label
half_year
The half-year number for that date (1-2)
half_year_name
The half-year label
year
The year
year_end_date
The end date of the year
year_start_date
The start date of the year
is_weekday
Indicates whether the date is a weekday
is_weekend
Indicates whether the date is a weekend
month_day_name_rank
The occurrence number of that weekday within the month
month_day_name_reverse_rank
The reverse occurrence number of that weekday within the month
us_holiday_identifier
The US holiday name or identifier for that date, if applicable
is_business_day
Indicates whether the date is a business day
Last updated