I am in the process of designing a new customer fact and dimensions for my warehouse. In my search for good example models I noticed something odd. No one seems to have a customer-centric fact. Every example I found has a transaction event such as a sale or order as the central fact with customers as a dimension. This raises a question for me.
Am I doing something seriously wrong by wanting a customer fact? The goal is to enable analysis of customer behavior such as order frequency, total spend, acquisition cost, distinct, product count,...etc These questions naturally imply a fact to me not a dimension. I already have an order fact that is great for order-centric queries but is not good for customer-centric queries.
To give you a little more detail the Customer Fact will likely have the following measures and dimensions:
Measures:
- Count of Customers
- Distinct Product Count
- Completed Order Count
- Total Revenue
- Total Cost
- Count of Coupons Received
- Count of Coupons Redeemed
- Cost of Coupons Redeemed
Dimensions:
- Order Delivery Date
- Order Delivery Time
- Order Delivery Geography
- Acquisition Source
- Order Type
- Coupon Type
The above seems pretty natural to me but I am concerned I am missing an obvious no-no by taking a customer-centric approach in this new cube.