Hello,
I have looked all over, but canot find the answer to this question. Currently, eazyBI shows the weekly report by the dat that that week begins. Is there a way to change the date to reflect the week end date? For example, week 1 for 2019 gives date of Dec 31, and lists all the days up through Jan 6. Week 2 then begins with Jan 7. I need week 1 to give a date of Jan 6, and include the days from Dec 31 to Jan 6. Any help would be greatly appreciated.
- current

W01, Jan 6, 2019 - Needed
Dec 31 2018
Jan 01 2019
Jan 02 2019
Jan 03 2019
Jan 04 2019
Jan 05 2019
Jan 06 2019
Currently, there is no option to change what values for Time members show up in the report. We show the first date of any period always.
We have some ideas in our backlog for this improvement. I added a community vote to the ticket. We will post it here if there will be any updates.
For now, you can define a new calculated measure to show the last day of the week. However, It will work for Table report only:
CASE WHEN
[Time].CurrentHierarchyMember.Level.Name = "Week"
THEN
DateAdd("d",6,[Time.Weekly].CurrentMember.StartDate)
END

Daina / support@eazybi.com
Thank you so much for your help Daina.
Hi @daina.tupule
Is there any updates on this feature? I have the same issue and I would like my charts to display the week points by the last weekday instead of first.
Hello @stefano.matos
Currently, we do not have any clear plans for this feature. Some time ago we added an option to create custom hierarchies that could be as a workaround for cases like this.
See more here: Custom time hierarchies
Here is an example JavaScript code for such a hierarchy:
let date = new Date(timeValue);
date.setMinutes(date.getTimezoneOffset()); // Adjust for timezone
let getWeekNumber = function(date) {
let target = new Date(date.valueOf());
let dayNr = (date.getDay() + 6) % 7;
target.setDate(target.getDate() - dayNr + 3);
let firstThursday = target.valueOf();
target.setMonth(0, 1);
if (target.getDay() !== 4) {
target.setMonth(0, 1 + ((4 - target.getDay()) + 7) % 7);
}
let weekNumber = 1 + Math.ceil((firstThursday - target) / 604800000);
return weekNumber;
};
let getStartOfWeek = function(date) {
let day = date.getDay();
let diff = date.getDate() - (day === 0 ? 6 : day - 1);
let startOfWeek = new Date(date);
startOfWeek.setDate(diff);
return startOfWeek;
};
let week = getWeekNumber(date);
let startOfWeek = getStartOfWeek(date);
let startOfWeekYear = startOfWeek.getFullYear();
// Adjust year based on the ISO week number and start of the week year
let year = (startOfWeek.getMonth() === 11 && week === 1) ? startOfWeek.getFullYear() + 1 :
(startOfWeek.getMonth() === 0 && week > 50) ? startOfWeek.getFullYear() - 1 : startOfWeek.getFullYear();
let dayInWeek = date.getDay() === 0 ? 7 : date.getDay();
let endOfWeek = new Date(startOfWeek);
endOfWeek.setDate(endOfWeek.getDate() + 6);
return {
year: year,
year_name: year,
week: week,
week_name: "W" + week + ", " + strftime("%b %d %Y", endOfWeek),
day: dayInWeek,
day_name: strftime("%b %d %Y", timeValue)
};
Here is how it looks for W18 of this year 2025:
You can use this base to adjust it to your needs.
Daina / support@eazybi.com