Create your own
Lesson illustration

Classifying Dataset Fields: Identifiers, Dimensions, Measures, and Dates

Hello again. Last lesson established the first safeguard in analysis: identify the grain of the dataset by stating what one row represents. For example, a Resolved_Incidents table might have one row per resolved ticket, while an activity log has one row per ticket update.

Now we will look across the row and classify its fields. This is the next step in making a dataset usable: distinguish the codes that identify records, the attributes that describe them, the quantities that can be calculated, and the fields that locate activity in time. By the end of this lesson, you will be able to classify fields as identifiers, dimensions, measures, or dates and explain the reasoning behind each classification.


Four analytical roles for fields

A spreadsheet column has a data type—text, number, date, or Boolean—but it also has an analytical role. Those are different ideas.

For example, Ticket_ID may be stored as text, while Customer_ID may be stored as a number. Neither is a measure: adding ticket IDs or averaging customer IDs produces nonsense. Their role is to identify business entities.

Use these four categories as your working vocabulary:

Field roleMain purposeTypical examplesMain analytical use
IdentifierUniquely labels or connects a business entity or recordTicket ID, Customer ID, Product Key, Order NumberFinding records, checking duplicates, joining tables
DimensionDescribes, categorizes, filters, or groups dataAssignment Group, Priority, Region, Category, Status“By priority,” “for each region,” filtering and grouping
MeasureStores a quantity that can be meaningfully summarizedSales Amount, Quantity, Resolution Minutes, CostSum, average, minimum, maximum, count
DateRepresents when an event occurred or the period it belongs toOpened Date, Resolved Date, Month, Fiscal YearTrends, period comparisons, time filters

A useful shorthand is:

Identifiers label. Dimensions describe. Measures quantify. Dates locate activity in time.

The categories are not merely terminology. They determine what you can safely do with the column. If you treat an identifier as a measure, you get meaningless arithmetic. If you treat a date as ordinary text, monthly trends may sort incorrectly. If you summarize a measure at the wrong grain, you can produce a plausible but inaccurate KPI.

What Are Metrics & Dimensions? | BI For Beginners

Watch “What Are Metrics & Dimensions?” by Adam Finer - Learn BI for a concise visual introduction to the distinction between quantitative measures and descriptive dimensions. Its example also reinforces why a numeric-looking ID is not automatically a quantity.

Watch metrics for the definition of a metric and its relationship to aggregation. Then watch dimensions to see how descriptive fields break a metric into meaningful groups. Finish with the spreadsheet example, paying particular attention to why Order ID is not treated as a metric despite consisting of digits.

The video uses “metrics” for what this course calls measures. In workplace reporting, you will hear both terms. A metric often refers to a calculated business result—such as “monthly SLA breach rate”—while a measure can also mean the underlying numeric field used in calculations, such as Resolution_Minutes or Sales_Amount. For now, treat a measure as a field containing a quantity that supports meaningful numerical analysis.


Identifiers: codes, not quantities

An identifier is a field whose values label a particular business object, record, or relationship. It answers “which one?” rather than “how much?” or “which category?”

In a service-desk context, examples include:

  • Ticket_ID: identifies a ticket.
  • Customer_ID: identifies the customer linked to a ticket.
  • Agent_ID: identifies an agent.
  • Assignment_Group_ID: identifies an assignment group.
  • Update_ID: identifies an individual ticket-history event.

Identifiers are central to data quality and table relationships. In the previous lesson, you learned that the intended grain determines whether an identifier should be unique. In a one-row-per-ticket table, Ticket_ID should generally appear once. In a ticket-update table, Ticket_ID should repeat because many updates can belong to one ticket; in that case, Update_ID may be the unique row identifier.

The “meaningful math” test

A reliable test for numeric fields is:

Does summing, averaging, or otherwise calculating with these values express a meaningful business quantity?

For example:

This result has no business meaning. Customer IDs are codes assigned to customers, not measurements of customers. The same applies to:

  • ticket numbers;
  • invoice numbers;
  • employee IDs;
  • postal codes;
  • product SKUs;
  • system-generated row IDs.

Even when an identifier contains only digits, it remains an identifier.

Identifiers are not always unique in a table

A common beginner mistake is to define an identifier as “a column with no repeated values.” That is too narrow.

Consider this ticket table at one-row-per-ticket grain:

Ticket IDCustomer IDAssignment GroupResolution Minutes
INC-100120014Network Support95
INC-100220014Service Desk24
INC-100320087Network Support180

Ticket_ID identifies each row and should be unique. Customer_ID is also an identifier, but it repeats because one customer can submit several tickets.

So distinguish these two questions:

  1. Is this field an identifier?
    Does it label or connect a business entity?

  2. Should it be unique at this table’s grain?
    Does the grain imply one row per value of this field?

You will apply this distinction later when joining tables in SQL and building Power BI relationships.


Dimensions: the fields that provide context

A dimension is a descriptive field used to categorize, filter, group, or display measures. It gives a number context.

Suppose an analyst reports:

Total resolution time was 12,450 minutes.

That single total is rarely enough to guide action. Add dimensions:

  • total resolution time by assignment group;
  • average resolution time by priority;
  • ticket count by category;
  • SLA breach rate by region.

The measure has not changed. The dimension determines how the measure is split.

For a resolved-ticket dataset, these are likely dimensions:

FieldWhy it is a dimension
Assignment_GroupCategorizes responsibility for a ticket
PriorityDescribes urgency, such as P1, P2, or P3
CategoryDescribes the type of issue
StatusDescribes the ticket’s current or final state
ChannelDescribes how the ticket was submitted
Customer_SegmentGroups customers into business categories
RegionDescribes customer or operational location

Dimensions are often text, but text is not a requirement. A numeric field can be a dimension when it is a coded label rather than a quantity. Examples include:

  • Postal_Code
  • Priority_Code
  • Store_Number
  • Fiscal_Year
  • Month_Number

A Boolean field can also act as a dimension. For example, SLA_Breached with values Yes and No can filter tickets into two groups.

Dimensions help you ask “by what?”

When you encounter a likely measure, pair it with the phrase “by what?”

Business questionMeasureDimension
How many resolved tickets were there by group?Ticket countAssignment Group
What was average resolution time by priority?Average Resolution MinutesPriority
Which regions generated the most tickets?Ticket countRegion
How did ticket volume differ by category?Ticket countCategory

This pattern will soon become familiar in Excel PivotTables, SQL GROUP BY queries, pandas groupby, and Power BI visuals.


Measures: quantities with meaningful aggregation

A measure is a numeric quantity that can be summarized meaningfully. Typical operations include:

  • sum;
  • average;
  • minimum;
  • maximum;
  • count;
  • median.

Common service-desk measures include:

FieldLikely useful aggregationMeaning
Resolution_MinutesAverage, median, minimum, maximumTime taken to resolve tickets
Work_HoursSum, averageRecorded effort
Ticket_CostSum, averageCost associated with a ticket
Reopen_CountSum, averageNumber of times a ticket was reopened
Satisfaction_ScoreAverage, distributionCustomer rating
Tickets_ResolvedSumVolume in an already summarized table

The word meaningfully matters. Not every measure should be summed.

For example, individual ticket resolution times can be summed, but the result is a total elapsed duration across tickets—not necessarily the amount of agent labor, because multiple people or systems may have been involved and ticket durations can overlap. More commonly, you would report the average or median resolution time.

Similarly, a pre-calculated SLA_Breach_Rate is a measure, but you should not automatically average rates across groups. The correct combined rate normally uses the underlying numerator and denominator:

If Group A resolved 20 tickets with a 20% breach rate and Group B resolved 200 tickets with a 5% breach rate, the overall result is not simply:

It must weight each rate by ticket volume:

This is why analysts prefer storing or obtaining counts such as Breached_Tickets and Resolved_Tickets, rather than relying only on pre-calculated percentages.

Flags can play two roles

Some fields are context-dependent. Suppose SLA_Breached is stored as Yes or No.

  • As a field you filter or group by, it acts as a dimension.
  • If it is stored as 1 for breached and 0 for not breached, summing it counts breached tickets—so it can function as a measure.

For field documentation, choose the primary role relevant to your analysis and note the calculation rule. If your team uses SLA_Breached to segment tickets, document it as a dimension. If it uses SLA_Breach_Flag to calculate counts, document it as a measure.


Dates: a separate analytical role

A date field tells you when something happened, when it was recorded, or which reporting period it belongs to.

In an incident table, several dates may coexist:

FieldMeaningTypical use
Opened_DateWhen the ticket was createdVolume trend by opening period
Assigned_DateWhen ownership was assignedQueue-delay analysis
Resolved_DateWhen resolution occurredResolved volume and SLA reporting
Closed_DateWhen the ticket was formally closedClosure-process reporting
Snapshot_DateDate on which a system state was capturedBacklog trend reporting

Do not assume fields called “date” are interchangeable. A ticket opened in April and resolved in May belongs to different reporting periods depending on the question.

For the stakeholder question introduced in the previous lesson—

For resolved incident tickets in May 2025, which assignment group had the highest SLA-breach rate?

—the relevant date is probably Resolved_Date, not Opened_Date. The time field must match the KPI definition.

A Power BI date table with one row per calendar date and date-derived fields such as day, month, quarter, and year. The fields make it possible to summarize the same measure at different calendar levels.

A date table often contains derived calendar fields such as Year, Quarter, Month, and MonthNo. In everyday conversation, these may be called dimensions because they group data. For the classification system in this course, record them as date-related fields because their core purpose is time-based analysis.

Be careful with Month alone. A value such as January is not enough to distinguish January 2024 from January 2025. For trend reporting, pair it with a year, use a complete date, or use a sortable period field such as 2025-01.

Numeric date keys are still dates

Some source systems use values such as 20250531 instead of a standard date. Although this value looks numeric, it represents 31 May 2025. Its analytical role is a date key, not a measure. You would never sum all date keys.

This reinforces a central rule:

Classify a field by its business meaning, not by how it happens to be stored.

A date saved as text needs conversion before analysis. An ID saved as a number remains an identifier. A postcode saved as a number remains a descriptive code.


A practical classification workflow

When you open a new dataset, classify fields after identifying its grain. Work through this sequence:

  1. Read the field name and inspect example values.
    Names such as Ticket_ID, Opened_At, Resolution_Minutes, and Assignment_Group provide clues. Samples confirm whether the name is trustworthy.

  2. Check whether it identifies or connects something.
    If it is a record code, entity code, or foreign key, classify it as an identifier.

  3. Check whether it represents time.
    If it records a date, timestamp, month, quarter, year, or reporting period, classify it as a date or date-related field.

  4. Apply the meaningful-math test.
    If sum, average, minimum, maximum, or another aggregation has a valid interpretation, classify it as a measure.

  5. Otherwise, ask whether it describes or groups records.
    A field used to filter, categorize, or break down results is a dimension.

This decision order avoids a common error: calling every numeric field a measure.

The workflow is a guide, not an excuse to ignore context. Agent_ID in a ticket table is an identifier even though it may appear in grouping. MonthNo is numeric but supports calendar ordering rather than quantity calculation. A Breach_Flag can be a dimension or measure depending on its representation and intended use.


Classifying a realistic ticket dataset

Assume a table called Resolved_Incidents has this grain:

Each row represents one resolved incident ticket.

Here is a practical field classification.

FieldExamplePrimary roleReason
Ticket_IDINC-10428IdentifierLabels the ticket; should be unique at ticket grain
Customer_ID20014IdentifierConnects the ticket to a customer; may repeat
Assignment_GroupNetwork SupportDimensionDescribes ownership and supports grouping
PriorityP2DimensionCategorizes urgency
CategoryVPN AccessDimensionDescribes issue type
Opened_Date2025-05-03DateIdentifies when the ticket was created
Resolved_Date2025-05-05DateIdentifies when it was resolved
Resolution_Minutes2,880MeasureSupports average, median, and distribution analysis
SLA_BreachedYesDimensionSupports filtering or grouping by breach status
SLA_Breach_Flag1MeasureCan be summed to count breached tickets
Customer_RegionNorthDimensionDescribes customer location
Resolution_CodeSolved by resetDimensionCategorizes the resolution outcome

Notice that Customer_ID is an identifier but does not need to be the row key. This table’s key is Ticket_ID. In a separate customer table, the same Customer_ID would probably be the primary identifier for that table.


How these roles appear in a Power BI model

Power BI models are built around the same logic. A fact table records events or observations, while dimension tables provide the descriptive context for those events.

Understand star schema and the importance for Power BI

Read Microsoft’s Power BI guidance to connect today’s field classifications to the data models you will create later. Focus on how dimension tables provide descriptive attributes, fact tables hold observations and numeric values, and keys make relationships possible.

In the “Star schema overview” section, read the dimension-table explanation, focusing on keys versus fields used for filtering and grouping. Continue in the “Fact tables” subsection with the fact-table explanation, especially the relationship between dimension keys, numeric measure columns, and granularity. Then read the “Measures” section from the definition and examples. Finally, in “Surrogate keys,” read the surrogate-key overview to see why unique identifiers matter in a model.

A Power BI star-style model: the central Sales table records sales events and numeric amounts, while surrounding tables such as Product, Customer, Reseller, SalesTerritory, and Date provide descriptive and calendar context through relationships.

In the model shown above:

  • Sales Amount, Unit Price, and Total Product Cost in the central Sales table are measures.
  • ProductKey, ResellerKey, and SalesTerritoryKey are identifiers used to connect the Sales table to related tables.
  • Product fields such as Category, Color, and Subcategory are dimensions.
  • Date fields such as Date, Fiscal Quarter, and Fiscal Year provide time context.

You may notice that Power BI also uses the word measure for a DAX formula, such as:

That is an explicit DAX measure, which you will build later in the course. Today’s focus is the underlying classification of source fields. Sales Amount is a numeric measure column; Total Sales is a calculated measure based on that column.


Record classifications in your data dictionary

A data dictionary should capture not only a field’s data type, but also its analytical role and expected use. Start using a structure like this:

FieldExample valueRoleDefinitionValid analysis note
Ticket_IDINC-10428IdentifierUnique incident ticket codeCount distinct when ticket grain is uncertain
Assignment_GroupNetwork SupportDimensionTeam responsible for resolving the ticketGroup and filter ticket metrics
Resolved_Date2025-05-05DateDate the ticket reached resolved statusUse for resolved-ticket monthly reporting
Resolution_Minutes2,880MeasureElapsed minutes from opening to resolutionAverage or median is usually more interpretable than total
SLA_Breach_Flag1Measure1 if the ticket breached SLA; otherwise 0Sum to count breached tickets

This documentation makes your reasoning visible. It also reduces errors when the dataset is later used in Excel formulas, SQL queries, pandas code, or a Power BI report.

A short hands-on habit

When you next receive a non-sensitive spreadsheet or CSV export, create a new worksheet named Field_Classification. List each source field, add a Role column, and classify each as identifier, dimension, measure, or date. For every numeric field, write one brief note answering: “What would the sum or average of this field mean?” If you cannot answer that clearly, it is probably not a measure.


Key takeaways

A field’s analytical role is determined by its business meaning and intended use, not merely by whether it contains text or numbers.

  • Identifiers label records or entities and support duplicate checks and relationships. They are not quantities to sum.
  • Dimensions describe records and let you group, filter, and compare results.
  • Measures are quantities that support meaningful aggregation, though the correct aggregation depends on the measure and dataset grain.
  • Dates identify when activity occurred and enable trend and period analysis.
  • Numeric values are not automatically measures: IDs, postcodes, codes, and date keys are common exceptions.
  • A field can sometimes serve more than one purpose, so document its primary role for the analysis at hand.

Next, you will use these classifications to define a KPI precisely: its formula, unit, aggregation level, and time period.

Can't find a good explanation? Sign up and we'll make it for you

Sign up