Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowData Days is here! Join us now for 60+ days of learning, challenges, and connection. Learn more
Hi there.
I want to create a monthly report that shows me some KPI's, from the data pulled from our database about the players.
I have this Table called IAPs (In App Purchases)
In this table I have all the players that bought, in the "Player" Collumn.
The "Player date created" column shows when the player entered the game.
"DATECREATED" Shows when was the purchase made.
"Id" Shows the purchase Id, wich is the unique field in this table, all the other ones repeat.
Month cohort is the datediff between "Player date created" and "DATECREATED".
I want to make a cohort analysis that watches the players that keep buying trhough months. Thats what the selected table means in the second picture. The formula is as follows:
Conversion rate = divide([buyers per month], [New Players Month])
buyers per month =
CALCULATE(DISTINCTCOUNT([Player]),ALLEXCEPT(IAPs,IAPs[player date created (bins)]),IAPs[month cohort] >= EARLIER(IAPs[month cohort]))
New Players Month = Calculate(countrows('Player Master'), ALLEXCEPT('Player Master','Player Master'[DateCreated (bins) 2]))
New Players month is all correct, I double checked. The problem is in buyers per month.The thing is Buyers per month distinct counts players buying in months cohort that already passed when I refresh the report!
(player created: November; cohort : 1; purchase month: december) This player can never buy again once december 2016 has passed, but when I resfresh the report, the conversion rate for this conditions change!
Either I invented the time machine or I'm missing something.
Can someone help?
Solved! Go to Solution.
Hi @v-qiuyu-msft
I managed to solve this issue, your inclination was ritgh, the final formula that sucessfully calculates the Cohort KPI is the following:
buyers per month = CALCULATE(DISTINCTCOUNT(IAPs[player]),ALLEXCEPT(IAPs,IAPs[player date created mensal], IAPs[month cohort]), IAPs[DATECREATED (bins)]>= EARLIER(IAPs[DATECREATED (bins)]))
Then I just divided buyers per month by the new players that entered that month and obtained the correct answer :
I used to think that the data should decrease as the month cohort raised, that thought is correct although that's not the proper way to calculate it. The values should decrease as the DATECREATED (the date of the events; i.e. the actual Time, with capital T) passes.
Hi @vitoraraujo,
Can you clarify the formula to count buyers each month? I notice you use IAPs[month cohort] >= EARLIER(IAPs[month cohort])), why don't use the [Player date created] or [DATECREATED]?
Please share some sample data and desired results for our analysis if possible.
Best Regards,
Qiuyun Yu
Hi @v-qiuyu-msft
I managed to solve this issue, your inclination was ritgh, the final formula that sucessfully calculates the Cohort KPI is the following:
buyers per month = CALCULATE(DISTINCTCOUNT(IAPs[player]),ALLEXCEPT(IAPs,IAPs[player date created mensal], IAPs[month cohort]), IAPs[DATECREATED (bins)]>= EARLIER(IAPs[DATECREATED (bins)]))
Then I just divided buyers per month by the new players that entered that month and obtained the correct answer :
I used to think that the data should decrease as the month cohort raised, that thought is correct although that's not the proper way to calculate it. The values should decrease as the DATECREATED (the date of the events; i.e. the actual Time, with capital T) passes.
Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.
Check out the May 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 23 | |
| 21 | |
| 20 | |
| 18 | |
| 13 |
| User | Count |
|---|---|
| 58 | |
| 51 | |
| 38 | |
| 31 | |
| 26 |