CharlieHR holiday allowance and leave liability dashboard

By General Input

See who is about to lose unused holiday, which teams are hoarding leave, and what your accrued leave liability adds up to.

Integrations

  • CharlieHR
  • Google Sheets
  • Slack Bot

Type

App

Categories

  • HR & People
  • Finance

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board