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

Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare 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...

 

 

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here

Helpful resources

Announcements
OCT PBI Update Carousel

Power BI Monthly Update - October 2024

Check out the October 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

October NL Carousel

Fabric Community Update - October 2024

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