I have a SharePoint list with all of our employees in it (current and past), with a status field. There are also fields with their birthday month and birthday day (two fields), and their hire date.
There are about 300 current employees, with an index on the status field.
I want to display upcoming birthdays of current employees (say, within the next 2 weeks) and the current employees with service anniversaries this calendar month.
Also, I want to do this in a nicely formatted way, not the standard SharePoint list view.
One thought was that I could use a list view web part and CSR on the current employees view. But this will be on the home page of the intranet portal, meaning every time someone hits the page, it's going to cycle through 300 list items and filter and format them. And the data is relatively static - it would only change when someone new is hired or someone leaves the company - maybe one or two changes every few months. Seems like a waste of resources and unnecessary increase in page load time/data transfer.
One thought I had was to have a Powershell script that on a daily basis, would read the employee list, and write an HTML file with the birthdays and anniversaries, then upload it to a document library. Then on the intranet home page, it would have a Content Editor Web Part that referenced this HTML file to display them.
Does this sound like a decent solution or am I missing something?
We are using SharePoint 2013 on-prem, but whatever solution I implement must work with SharePoint Online in the future.