Forum Discussion

srl01's avatar
srl01
Helper II
8 years ago
Solved

Customer segmentation mix over time

I'm working with a sales transaction dataset with unique customer IDs for each customer, and want to graph customer segments overtime (defined various ways, but to start off I want to split into 2 segments - HighFrequencyCustomers, who have move than 6 transactions in the previous 12 months, and then all the rest).
 

TransactionsLast12Months = calculate(distinctcount(SalesRawData[TransactionCode]),filter(SalesRawData,SalesRawData[customerCode]<=max(SalesRawData[customerCode])),filter(all('Calendar'[Date]),'Calendar'[Date]>max('Calendar'[Date])-365 && 'Calendar'[Date]<=max('Calendar'[Date])))

IsHighFrequencyCustomer = [TransactionsLast12Months]>6



So far so good.
But how do I use the IsHighFrequencyCustomer as a filter or axis to be able to show the change over time in the mix between these two customer groups?
 
Would greatly appreciate guidance.
 


  • srl01 wrote:

    I'm working with a sales transaction dataset with unique customer IDs for each customer, and want to graph customer segments overtime (defined various ways, but to start off I want to split into 2 segments - HighFrequencyCustomers, who have move than 6 transactions in the previous 12 months, and then all the rest).
     

    TransactionsLast12Months = calculate(distinctcount(SalesRawData[TransactionCode]),filter(SalesRawData,SalesRawData[customerCode]<=max(SalesRawData[customerCode])),filter(all('Calendar'[Date]),'Calendar'[Date]>max('Calendar'[Date])-365 && 'Calendar'[Date]<=max('Calendar'[Date])))
    
    IsHighFrequencyCustomer = [TransactionsLast12Months]>6



    So far so good.
    But how do I use the IsHighFrequencyCustomer as a filter or axis to be able to show the change over time in the mix between these two customer groups?
     
    Would greatly appreciate guidance.
     


    srl01

    It is not possible to put a measure to axis. To show the change over time, you can put calendar dates as X-axis and create two measures in a linechart. 

    HighFrequencyCustomer = calculate( [some expression], FILTER('table',IsHighFrequencyCustomer))
    
    NonHighFrequencyCustomer = calculate( [some expression], FILTER('table',NOT(IsHighFrequencyCustomer)))

1 Reply

  • Eric_Zhang's avatar
    Eric_Zhang
    Microsoft Employee

    srl01 wrote:

    I'm working with a sales transaction dataset with unique customer IDs for each customer, and want to graph customer segments overtime (defined various ways, but to start off I want to split into 2 segments - HighFrequencyCustomers, who have move than 6 transactions in the previous 12 months, and then all the rest).
     

    TransactionsLast12Months = calculate(distinctcount(SalesRawData[TransactionCode]),filter(SalesRawData,SalesRawData[customerCode]<=max(SalesRawData[customerCode])),filter(all('Calendar'[Date]),'Calendar'[Date]>max('Calendar'[Date])-365 && 'Calendar'[Date]<=max('Calendar'[Date])))
    
    IsHighFrequencyCustomer = [TransactionsLast12Months]>6



    So far so good.
    But how do I use the IsHighFrequencyCustomer as a filter or axis to be able to show the change over time in the mix between these two customer groups?
     
    Would greatly appreciate guidance.
     


    srl01

    It is not possible to put a measure to axis. To show the change over time, you can put calendar dates as X-axis and create two measures in a linechart. 

    HighFrequencyCustomer = calculate( [some expression], FILTER('table',IsHighFrequencyCustomer))
    
    NonHighFrequencyCustomer = calculate( [some expression], FILTER('table',NOT(IsHighFrequencyCustomer)))