Hi mate, now we are scraping data, I want a UI to display results that are relevant to us :)
The attached "mockup.pdf" is what I propose to be the "default" report: one particular store on one particular day. The store number is something we configure in the config file.
The top row displays the scope of the report: either everywhere, a particular region* (another dropdown activates on this selection), a particular store (see the dropdown under the Store button) or a particular optometrist (another dropdown activates on this selection).
The second row displays the duration of the report: either today (default), the last week, or a specific date range (some kind of date selector activates on this selection).
The columns show each optometrist for that store, and some statistics.
The first 2, "Available/%" shows as of the last scrape how many appointments they have available, and expressed as a %age of 26 (the maximum appointments in a day on the OPSM site).
The second 2, "Ever/%" shows for the specified date range, how many appointments were ever deemed available, and the %age is the number os available appointments expressed as a %age of this figure. ie, the "fill rate".
the last 2, "Fuzzy/%" is a fuzzy logic interpretation of the number of appointments that particular practitioner ever had for that day, and the number of available appointments expressed as a %age of this figure. ie, "real fill rate". It will look at the day of week of the scrape, and attempt to match a normal workday to that based on whether they were ever available on a particular day.
In the example attachment, Fred Jones has 6 appointments available today, but since today first came on the scrape list, he had 12 and filled 6 of them. Based on his history of work on Thursdays, we estimate he is normally available for 16 appointments today, and is popular in advance, so we presume 4 of the appointments are booked before today even became available on the website.
Tom Smith does not work today.
John Citizen is a part timer, who has not secured any appointments. Perhaps he is a temp that was only hired for this store yesterday and has no appointments yet.
* note for regions: we could configure these in the config file based on an array of postcodes or store id's. Just the state is not really enough detail to drill down into.