CharlieHR holiday allowance and leave liability dashboard
See who is about to lose unused holiday, which teams are hoarding leave, and what your accrued leave liability adds up to.
Build me a holiday allowance and leave liability dashboard for CharlieHR that I open through the leave year to see who is going to lose holiday and what our accrued leave liability looks like. The audience is our HR or ops lead plus finance, so it has to be readable at a glance and accurate down to the individual.
The main view is a table of every team member showing their holiday allowance, days booked, days already taken, days remaining, team and office. Pull balances for everyone from CharlieHR List Leave Allowances, and use Get Team Member Leave Allowance when I drill into one person. Get names and employment status from List Team Members, and resolve the team and office columns through List Teams and List Offices so I see readable names rather than ids. Derive days booked but not yet taken from List Leave Requests, restricted to approved holiday requests inside the current leave year. Let me sort and filter by team, office and days remaining, and search by name.
Critical correctness rule, and the single biggest trap in this data: CharlieHR returns 0, not null, for the leave unit a person does not use. allowance_in_hours is 0 for anyone tracked in days, and the days figure is 0 for anyone tracked in hours. Decide the unit per person from whichever value is non zero, render each row in that person's own unit with the unit labelled, and never render a wall of zeros. When totalling or rolling up, either keep hours tracked people in their own subtotal or convert using that person's working pattern, never by mixing units silently.
Part timers need pro rata handling. Read each person's working pattern from List Team Member Working Weeks instead of assuming a five day week, and use it both when converting between hours and days and when judging how much leave someone can realistically still take before the year ends.
Add a team rollup view that groups the same people by team and shows total allowance, total taken, total remaining, average remaining per person and the percentage of allowance used, sorted so the teams hoarding the most leave float to the top. Clicking a team drops me into the member list filtered to that team.
Highlight anyone projected to finish the leave year with more than a threshold of unused days. Let me set that threshold and the leave year end date inside the app and remember both between visits. Project the end of year balance as days remaining minus approved future leave already booked. Across the top of the dashboard show the count of people at risk, the total days remaining across the company, and optionally a money figure if I enter a blended day rate, since accrued untaken leave is a real balance sheet item and finance cares about the number.
Clicking a person opens a detail panel showing their carryover and any manual edits from List Team Member Allowance Adjustments, their sick and compassionate balances from List Team Member Non-Holiday Leave Allowances, and their holiday requests for the year from List Leave Requests, so I can see exactly how the headline number was arrived at.
Give me a snapshot button that writes the current balances to a Google Sheet with Append Values: one row per person carrying the snapshot date, name, team, office, allowance, booked, taken, remaining, the unit, and carryover. CharlieHR only reports current day balances and keeps no point in time history, so these appended rows are how we manufacture the month by month trend. Let me pick the spreadsheet and tab once and remember it, show me when the last snapshot was taken, and warn me if I am about to snapshot twice on the same day.
Let me nudge people carrying large unused balances. From the at risk list I select people and send each a direct message using Slack Bot Send a Message, matching their CharlieHR email address to a Slack account with Look Up User by Email. The message template should be editable and fill in their remaining days and the leave year end date. Record who has been nudged and when, and surface that in the table so I do not chase the same person twice in a week.
Technical constraints to respect. CharlieHR list endpoints cap per_page at 25 and paginate through meta.next_url, so page through every list rather than reading only the first page. On leave requests, start_date and end_date must be passed together as YYYY-MM-DD, because passing one without the other is silently ignored and you will get unfiltered data back without noticing. Every response is wrapped in success, data and meta, so read data and check success before trusting a payload.
CharlieHR is read only for leave, so this app reports, projects and exports only. It cannot book, approve or cancel time off, and no button, label or help text should imply that it can. Anywhere someone would expect to act on a request, point them back to CharlieHR instead.
What does this prompt do?
- Lists every team member with their holiday allowance, days booked, days already taken and days remaining, alongside their team and office
- Rolls the same numbers up by team so you can see at a glance which teams are sitting on the most unused leave
- Flags anyone on track to reach the end of the leave year with more unused days than the threshold you set, and shows carryover, manual adjustments and sick or compassionate balances per person
- Saves a dated snapshot of every balance to a Google Sheet, building the month by month history CharlieHR does not keep, and lets you nudge people with big balances over Slack
What do I need to use this?
- A CharlieHR account with admin access, since holiday allowance and leave data is only visible to admins
- A Google account and a Google Sheet to hold the snapshot history
- A Slack workspace, if you want to send nudges to people with large unused balances
- Your leave year end date and the number of unused days you consider a problem
How can I customize it?
- Change the unused days threshold that marks someone as at risk of losing holiday, and set your leave year end date so projections match your policy
- Filter the dashboard down to a single team or office, and reword the Slack nudge to sound like your company
- Add a blended day rate so remaining days are also shown as a money figure for finance
FAQs
Can this app book or approve time off?
Does it handle part time staff correctly?
What if some of our people are tracked in hours instead of days?
Why snapshot to Google Sheets instead of just reading CharlieHR?
Does this run on a schedule?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Stop finding out in December who is about to lose their holiday.
One dashboard for balances, team rollups and accrued leave liability, plus the month by month history CharlieHR never saves.