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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
SecretChimpanze
Frequent Visitor

Calculating weekly churn volume against monthly base volume

Hi - I have two tables that have been appended: Churn with volumes in week and month fields and Base with data only in the month field (week field is all blank). Reason is I need 2 years of data and the base is too big to bring in at a weekly level.

 

I need to calculate a churn rate: weekly churn / that month's base (or closest month as some weeks will be across two months)

 

This is what the data currently looks like

 

power bi problem.png

 

2 ACCEPTED SOLUTIONS
BeaBF
Super User
Super User

@SecretChimpanze Hi! Create a separate Base Table and call it BaseReference.

Then create a relationship between your combined table and BaseReference through trde_mth.

 

Create a Churn Rate Measure like:

Churn Rate (%) =
DIVIDE(
SUM(Combined[Churn Vol]),
RELATED(BaseReference[Opening Base])
)

 

BBF


💡 Did I answer your question? Mark my post as a solution!

👍 Kudos are appreciated

🔥 Proud to be a Super User!

Community News image 1920X1080.png

View solution in original post

FBergamaschi
Solution Sage
Solution Sage

Keep the two tables separated (I call then Churn Monthly Data and Churn Weekly Data just as an example)

 

Create a calendar calculate table

 

Cal = CALENDARAUTO()

 

Connect the Calendar Date column to the trade_month column of both tables

 

Create two measures

 

WeeklyChurn = SUM ( 'Churn Weekly Data'[ChurnVol] )
Monthly Churn =
VAR VisibleDate = MAX ( Cal[Date] )
VAR MonthVisibleDate = DATE ( YEAR ( VisibleDate ), MONTH( VisibleDate ), 1 )
VAR WeekChurn = [WeeklyChurn]
RETURN
IF (
     [WeeklyChurn] <>0,
    CALCULATE(
             SUM('Churn Monthly Data'[Churn]),
             REMOVEFILTERS( ),
             Cal[Date] = MonthVisibleDate )
)

 

FBergamaschi_0-1752570825061.png

If this helped, please consider giving kudos and mark as a solution

@me in replies or I'll lose your thread

consider voting this Power BI idea

Francesco Bergamaschi

MBA, M.Eng, M.Econ, Professor of BI

 

View solution in original post

4 REPLIES 4
FBergamaschi
Solution Sage
Solution Sage

Keep the two tables separated (I call then Churn Monthly Data and Churn Weekly Data just as an example)

 

Create a calendar calculate table

 

Cal = CALENDARAUTO()

 

Connect the Calendar Date column to the trade_month column of both tables

 

Create two measures

 

WeeklyChurn = SUM ( 'Churn Weekly Data'[ChurnVol] )
Monthly Churn =
VAR VisibleDate = MAX ( Cal[Date] )
VAR MonthVisibleDate = DATE ( YEAR ( VisibleDate ), MONTH( VisibleDate ), 1 )
VAR WeekChurn = [WeeklyChurn]
RETURN
IF (
     [WeeklyChurn] <>0,
    CALCULATE(
             SUM('Churn Monthly Data'[Churn]),
             REMOVEFILTERS( ),
             Cal[Date] = MonthVisibleDate )
)

 

FBergamaschi_0-1752570825061.png

If this helped, please consider giving kudos and mark as a solution

@me in replies or I'll lose your thread

consider voting this Power BI idea

Francesco Bergamaschi

MBA, M.Eng, M.Econ, Professor of BI

 

Thank you so much, this worked!

BeaBF
Super User
Super User

@SecretChimpanze Hi! Create a separate Base Table and call it BaseReference.

Then create a relationship between your combined table and BaseReference through trde_mth.

 

Create a Churn Rate Measure like:

Churn Rate (%) =
DIVIDE(
SUM(Combined[Churn Vol]),
RELATED(BaseReference[Opening Base])
)

 

BBF


💡 Did I answer your question? Mark my post as a solution!

👍 Kudos are appreciated

🔥 Proud to be a Super User!

Community News image 1920X1080.png

Great solution, thank you!

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

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