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

Compete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.

Reply
tyee
New Member

Repeating Recurring Revenues for a matrix style view with Start & end dates

I have data of our clients that has start and end dates, along with the revenue that is to be repeated within this timeframe (some customers have multiple transactions that could overlap). 

 

Many of the dates are also not the start or end of a month, but mid-month - and i'm also unsure of how to prevent double counting by summarizing by month/year where one client would have a start date of e.g. (7/5/2023 - 7/4/2024), and then have an identical contract for (7/5/2024 - 7/4/2025) for the same product (see below in red font).  I think i would need to allocate the balance of month payment on this product to July, but not sure how to do this so it displays accurately in the Matrix table.

 

CustomerMRRRevenue StartRevenue EndProduct
174 Power Global04/30/20234/30/2023X
547 Energy55005/16/20228/31/2023X
Accelergen20007/5/20237/4/2024X
Accelergen44657/5/20247/4/2025X
Accelergen38009/6/20229/6/2022Y
Accelergen35005/1/202312/31/2023Z
Agilitas44001/1/202212/31/2023Y
Balanced Rock Power44001/1/202212/31/2024Y
Cypress Creek50007/1/202112/31/2024X
Energy Vault58859/6/20228/31/2023X
Idemitsu Renewables500012/1/20225/31/2023X
Indian Energy400011/1/202210/31/2023X
Lightsource BP55002/1/20221/31/2024X
Rondo05/12/20235/12/2023Y

 

Below is a table of what I'm trying to get to display in PowerBI - a matrix style view that i can run charts on

 

 1/1/20222/1/20223/1/20224/1/20225/1/20226/1/20227/1/20228/1/20229/1/202210/1/202211/1/202212/1/20221/1/20232/1/20233/1/20234/1/20235/1/20236/1/20237/1/20238/1/20239/1/202310/1/202311/1/202312/1/20231/1/20242/1/20243/1/20244/1/20245/1/20246/1/20247/1/20248/1/20249/1/202410/1/202411/1/202412/1/20241/1/20252/1/20253/1/20254/1/20255/1/20256/1/2025
174 Power Global000000000000000000000000000000000000000000
547 Energy000005500550055005500550055005500550055005500550055005500550000000000000000000000000
Accelergen000000000000000035003500350055005500550055002000200020002000200020002000044654465446544654465446544654465446544654465
Rondo000000000000000000000000000000000000000000
Agilitas440044004400440044004400440044004400440044004400440044004400440044004400440044004400440044000000000000000000000
Balanced Rock Power440044004400440044004400440044004400440044004400440044004400440044004400440044004400440044004400440044004400440044004400440044004400440044000000000
Cypress Creek500050005000500050005000500050005000500050005000500050005000500050005000500050005000500050005000500050005000500050005000500050005000500050000000000
Energy Vault000000000588558855885588558855885588558855885588500000000000000000000000
Idemitsu Renewables000000000000000000000000000000000000000000
1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @tyee ,

 

You can create date table and add date column to slicer, then try formula like below to create measure:

 

Dates = 
ADDCOLUMNS (
    CALENDAR ( DATE ( 2022, 1, 1 ), DATE ( 2025, 12, 31 ) ),
    "YearMonth", FORMAT ( [Date], "YYYY-MM" )
)

 

vkongfanfmsft_1-1719368262442.png

 

MonthlyRevenue = 
VAR SelectedDate = MAX('Dates'[Date])
RETURN
SUMX (
    FILTER (
        Clientes,
        Clientes[Revenue Start] <= SelectedDate &&
        Clientes[Revenue End] >= SelectedDate
    ),
    Clientes[MRR]
)

 

vkongfanfmsft_0-1719368239692.png

Best Regards,
Adamk Kong

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

1 REPLY 1
Anonymous
Not applicable

Hi @tyee ,

 

You can create date table and add date column to slicer, then try formula like below to create measure:

 

Dates = 
ADDCOLUMNS (
    CALENDAR ( DATE ( 2022, 1, 1 ), DATE ( 2025, 12, 31 ) ),
    "YearMonth", FORMAT ( [Date], "YYYY-MM" )
)

 

vkongfanfmsft_1-1719368262442.png

 

MonthlyRevenue = 
VAR SelectedDate = MAX('Dates'[Date])
RETURN
SUMX (
    FILTER (
        Clientes,
        Clientes[Revenue Start] <= SelectedDate &&
        Clientes[Revenue End] >= SelectedDate
    ),
    Clientes[MRR]
)

 

vkongfanfmsft_0-1719368239692.png

Best Regards,
Adamk Kong

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

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

August 2025 community update carousel

Fabric Community Update - August 2025

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