Textual Facts
Although fact tables primarily contain numeric measures, sometimes a fact or measure may have a textual value associated with a specific business event.
Consider the fact table for an Employee Swipe Card log. While an individual card swipe does not generate a numeric quantity to sum, it does produce a specific textual result for that exact moment in time.
| swipe_date | swipe_time | employee_name | card_reader_location | swipe_status |
|---|---|---|---|---|
| Jan 1 | 08:00 | Alice | Front Door | Granted |
| Jan 1 | 08:05 | Bob | Front Door | Denied |
| Jan 1 | 08:06 | Bob | Front Door | Granted |
Here, the swipe_status column is a textual fact because it captures the discrete outcome of a specific event. While you cannot sum this column, it can still be analyzed by counting the occurrences (for example, counting the total number of Granted or Denied swipes).
💡 Textual Fact or Dimension?
The key distinction is what the text value describes. If it describes the outcome or state of a specific business event, it can be modeled as a textual fact. If it describes an entity itself and provides descriptive context for filtering or grouping, it belongs in a dimension table instead.
