You know how in many analytical tools one can schedule a report of a certain kind to be delivered every X days (or similar)? What are good UIs for setting what's the date range that the report is generated with?

Here are some examples from Google Analytics, the most puzzling option there is - what happens if you select a set custom date range, like from Sep 2nd to Sep 23rd and then schedule a weekly delivery. What would you expect the Sep 2nd-23rd range to be - a sliding window or a set date range?


Custom Range - https://www.dropbox.com/s/mo1zd9h5z81pod9/CustomRange.png Custom Range

Email Report - https://www.dropbox.com/s/tsa3kljemz5bykt/EmailReport.png Email Report

  • You specifically ask in your question "What are good UIs for setting what's the date range that the report is generated with?", but you state in Daniel Brown's answer that you mean selecting a 'sliding window', and not just a date range. Could you edit your question to make it more obvious?
    – icc97
    Jan 30, 2016 at 23:27

3 Answers 3


Looking at Daniel's answer and your comment, I wonder whether letting the user pick concrete days and calculating the "sliding range" automatically is a good idea.

The fact that Airbnb uses a calendar is based on their use case (travel booking), while your use case (reporting) is different. There's no "repeat booking" or "sliding range" within Airbnb.

  • One concern is that this added flexibility makes it harder to use, and I - like Daniel - would question that this added complexity is needed often. For example, quarterly or yearly reports will be hard to specify with a calendar.

  • Another concern is that months don't have the same number of days, and depending on which month is now, I have more or fewer days in my report. If your report is about working days (like customers entering a store), similar issues exist with bank holidays. It sounds like a contradiction if you want exact control over the day when reporting starts ("the 23rd"), but then cannot ensure it's covering an exact number of days (picking the 23rd of the previous month results in 6 days when done on March 1st, but 9 days when done on April 1st).

So I'd offer standard options ("Yesterday", "Last Week", "Last 2 Weeks", "Last Month"). If the "odd" periods are really required (according to user research), add an "Other" option which shows a more detailed selection in a pop-up or elsewhere. In this way, the standard selections are still easily accessible.

Even on the detailed view, I would not show a calendar to pick from, for the second reason above. Let the user specify "X days", "X working days", even "from the X of the last month", if they really need it.


For picking a range? I have always been a fan of components like the one below. It allows for:

  • Easy visualization of selected range
  • Is touch friendly
  • Covers most use cases without the need of an input field
  • Allows for selecting larger ranges with input fields bound to a format

It's really just a prettier version of the first image you posted. The dates, being a little larger, are likely more touch friendly.

You'll notice in your second photo, while you have selected "weekly" you have also selected "M", implying that you will receive reports weekly on every Monday in your active range.

The UX is pretty solid, in my opinion. At least for the individual components.

AirBnB Datepicker


  • I meant selecting a sliding window, rather than a specific date range Oct 2, 2015 at 20:39
  • I'm not sure what you mean by a "sliding window". Could you please elaborate? Oct 2, 2015 at 20:41
  • Given the AirBNB example, let's say you want to get a weekly report that specifies how much money you made in the last 21 days. One way to implement that would be a drop down that literally sais "yesterday, 7 days, 1 month etc". The other option I'm considering is leaving the user the option to choose specific days, but those dates will not be permanent. For example to have a weekly delivered report that shows how much money you have made in the last 23 days, you would select Sep 1st to Sep 23rd, but when the reports get delivered in December it would actually mean Nov 1st to Nov 23rd Oct 2, 2015 at 20:51
  • 3
    Is it common for your users to want such "odd" report periods? Google Analytics offers report periods that way it does because it covers 99% of users' use cases. "23 day periods" sounds more like a one-off than something that would be repeated. I could see: "From the 1st to the 15th" and "From the 15th to the end of the month", but 23 days is odd. If that's truly a desired feature, then why not offer: "Every X days, starting on 'Specific Date'"? Oct 2, 2015 at 21:04

I'm working on a niche business intel product right now. I can't reveal much about the solutions I've developed, but rolling date ranges and quick range selection are pivotal features.

Based on a lot of user interviews and some low-fidelty proto testing, I've found that it's best to focus heavily on relative date ranges and downplay specific range selection. Things like this month vs same time last year, or last 28 days make reports much more powerful and repeatable. Feed subscription is a logical expectation in that scenario.

Explicit ranges can be reported on, exported, bookmarked, and shared, but there is no repeating event to subscribe to. For that reason, I've disabled subscription to ranges specified in this way.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.