Forum Discussion
Calculating Remaining Days from last reporting date
- 5 years ago
Hi veerub , just so we are clear Remaining Days calculates the remaining days from today, and the Date Count calculates from the reporting date to the maturity. Added some dax to make a negative number if the report date exceeds maturity. Changed the date to 6/3/2021 so that it exceeds the maturity date in one instance.
Let me know if you have any questions.
If this solves your issues, please mark it as the solution, so that others can find it easily. Kudos 👍are nice too.
NathanielDateCount = VAR _today = TODAY () //This measure returns the count from last reporting date to maturity, but if the bond has already matured, returns the diff from last reporting date to maturity date VAR _reportDate = [ReportDate] VAR _bondMaturity = MAX ( Maturity[MaturityDate] ) VAR _dateDiff = DATEDIFF ( _reportDate, IF ( _today > _bondMaturity, _today, _bondMaturity ), DAY ) var _reverseDateDiff = DATEDIFF(_reportDate,_bondMaturity,DAY) RETURN If(_bondMaturity>_today, _dateDiff,if(_bondMaturity<_reportDate,_reverseDateDiff)) ======================================================================= RemainingDays = VAR _today = TODAY () //This measure returns 0 if matured else number of remaining dayes VAR _reportDate = [ReportDate] VAR _bondMaturity = MAX ( Maturity[MaturityDate] ) VAR _dateDiff = DATEDIFF ( _today,_bondMaturity, DAY ) var _reverseDateDiff = DATEDIFF(_reportDate,_bondMaturity,DAY) RETURN If(_bondMaturity>_today, _dateDiff,if(_bondMaturity<_reportDate,_reverseDateDiff))
Hi Nathaniel,
Thanks for the response. Here are some additional comments
1. If maturity date < reporting date, it shall return the negative values. that is maturity date minus reporting date.
2. The 57 in your example above is correct. But how did you bring the reportingdate into the model? the reporting date will be a single value. What would be the most appropriate way to get the reportDate updated
Regards,
Veeru
Hi veerub , just so we are clear Remaining Days calculates the remaining days from today, and the Date Count calculates from the reporting date to the maturity. Added some dax to make a negative number if the report date exceeds maturity. Changed the date to 6/3/2021 so that it exceeds the maturity date in one instance.
Let me know if you have any questions.
If this solves your issues, please mark it as the solution, so that others can find it easily. Kudos 👍are nice too.
Nathaniel
DateCount =
VAR _today =
TODAY () //This measure returns the count from last reporting date to maturity, but if the bond has already matured, returns the diff from last reporting date to maturity date
VAR _reportDate = [ReportDate]
VAR _bondMaturity =
MAX ( Maturity[MaturityDate] )
VAR _dateDiff =
DATEDIFF (
_reportDate,
IF ( _today > _bondMaturity, _today, _bondMaturity ),
DAY
)
var _reverseDateDiff = DATEDIFF(_reportDate,_bondMaturity,DAY)
RETURN
If(_bondMaturity>_today, _dateDiff,if(_bondMaturity<_reportDate,_reverseDateDiff))
=======================================================================
RemainingDays =
VAR _today =
TODAY () //This measure returns 0 if matured else number of remaining dayes
VAR _reportDate = [ReportDate]
VAR _bondMaturity =
MAX ( Maturity[MaturityDate] )
VAR _dateDiff =
DATEDIFF (
_today,_bondMaturity,
DAY
)
var _reverseDateDiff = DATEDIFF(_reportDate,_bondMaturity,DAY)
RETURN
If(_bondMaturity>_today, _dateDiff,if(_bondMaturity<_reportDate,_reverseDateDiff))
- veerub5 years agoFrequent Visitor
Hi Nathaniel,
Remaining Days calculates the remaining days from reporting date (which represent the DateCount in your example).
The utimate objective is to bucket these remaining days into the following buckets
1. Matured ( all negative values)
2. 0-1 month (0 to 30 days)
3. 3-6 months (31 to 180 days)
4. 6-12 months (181 to 365 days)
5. Above 1 year (greater than 365 days)
Can you please share your pbix file. Thanks