Go with the grain.

Determining fact granularity in dimensional modeling involves several key steps to ensure that your data warehouse can effectively support business processes and decision-making. Here’s a concise guide to help you through the process:

  1. Identify the Grain: Specify exactly what each fact table record represents. This sets the level of detail for the measurements within the fact table¹.
  2. Level of Detail: The grain, or granularity, is the finest level of detail when fact and dimension tables are joined. For instance, a model with Date, Store, and Product dimensions might have a granularity of daily product sales by store¹.
  3. Handle Multiple Grains: Manage different data granularities with multiple fact tables (daily, monthly, yearly) or a single table with a granularity indicator¹.
  4. Atomicity of Grains: Ensure that the data at the grain level is atomic, meaning it’s the most detailed level and cannot be further decomposed without losing its meaning².
  5. Fact Table Types: Choose the appropriate type of fact table based on the granularity and the specific business process being modeled¹.

By carefully determining the granularity of your fact tables, you can capture data at the most detailed level possible, which provides flexibility for analysis and reporting while maintaining consistency and clarity in your dimensional model.


(1) Dimensional modeling: Identify the grain – IBM. https://www.ibm.com/docs/en/ida/9.1?topic=phase-step-identify-grain.
(2) Keep to the Grain in Dimensional Modeling – Kimball Group. https://www.kimballgroup.com/2007/07/keep-to-the-grain-in-dimensional-modeling/.
(3) Fact Table Granularity – 1Keydata. https://www.1keydata.com/datawarehousing/fact-table-granularity.html.