Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
CSpina
Helper III
Helper III

Count customers per periods with different rules - churn

Hi, guys and girls.

 

I need to create a measure to calculate the customers churn. Using IF it´s ok. 

 

varResultadoAtual > 0 &&
varResultadoMesPosterior = 0 &&
varResultadoPeriodo = 0

 

Customer Churn 2 = 
VAR varSalesActualMonth = [Sales] 
VAR varSalesNextMonth = [Sales Next Month]
VAR varSalesPerPeriod = [Sales Period] // what if 1 to 12 months
RETURN
IF(
    varSalesActualMonth > 0 && varSalesNextMonth = 0 && varSalesPerPeriod = 0,
    1,
    BLANK()
)

 I already calculate 1 month churn

 

Customer Churn =
VAR varCustomersTotal = VALUES('fSales'[CustomerID])
VAR varCustomersPerPeriod=
CALCULATETABLE(
VALUES('fSales'[CustomerID]),
DATESINPERIOD(
'dCalendar'[Date],
MIN('dCalendar'[Date]) -1,
-1,
YEAR)
)
RETURN
COUNTROWS(EXCEPT(varCustomersPerPeriod, varCustomersTotal )

 

Any idea?

 

Thanks.

1 ACCEPTED SOLUTION
CSpina
Helper III
Helper III

Customers Churn = 
VAR varActualCustomers = VALUES('fSales'[IDCustomer])
VAR varCPeriodCustomers =
CALCULATETABLE(
    VALUES('fSales'[IDCustomer]),
    DATESINPERIOD(
        'dCalendar'[Data],
        DATEADD(NEXTDAY('dCalendar'[Date]), -1 * ([Period] + 1), MONTH),
        [Period], // (what if 1-12)
        MONTH
    )
)
VAR varClustomersNextMonth = 
CALCULATETABLE(
    VALUES('fSales'[IDCustomer]),
    DATEADD('dCalendar'[Date], +1, MONTH)
)
RETURN
COUNTROWS(EXCEPT(varActualCustomers, UNION(varCPeriodCustomers, varClustomersNextMonth)))

View solution in original post

2 REPLIES 2
CSpina
Helper III
Helper III

Customers Churn = 
VAR varActualCustomers = VALUES('fSales'[IDCustomer])
VAR varCPeriodCustomers =
CALCULATETABLE(
    VALUES('fSales'[IDCustomer]),
    DATESINPERIOD(
        'dCalendar'[Data],
        DATEADD(NEXTDAY('dCalendar'[Date]), -1 * ([Period] + 1), MONTH),
        [Period], // (what if 1-12)
        MONTH
    )
)
VAR varClustomersNextMonth = 
CALCULATETABLE(
    VALUES('fSales'[IDCustomer]),
    DATEADD('dCalendar'[Date], +1, MONTH)
)
RETURN
COUNTROWS(EXCEPT(varActualCustomers, UNION(varCPeriodCustomers, varClustomersNextMonth)))
amitchandak
Super User
Super User

@CSpina , the Requirement is not clear. Can you explain that.

 

refer

 

Customer Retention Part 1:
https://community.powerbi.com/t5/Community-Blog/Customer-Retention-Part-1-Month-on-Month-Retention/b...
Customer Retention Part 2: Period over Period Retention:https://community.powerbi.com/t5/Community-Blog/Customer-Retention-Part-2-Period-over-Period-Retenti...

 

 

Full Power BI Video 20 Hours YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.