People Report Builder
Route: /org/people/reports · Permission: Open the people report builder (view) / Manage saved reports
Module: org_people_reports · Menu: People Reports (under Employee Management)
1. What the People Report Builder is
A drag-and-drop report designer over your organization's HR data. You choose the dataset (Employees, Leave, Expenses or Attendance), drag fields into Rows, Columns, Measures and Filters, press Run, and read the result as a pivot table or a chart. Reports can be saved for reuse, privately or shared with the project.
It is the same builder as Task Reports and its siblings, pointed at HR data.
Unlike the other report builders, People reports always cover the whole organization — the currently selected project does not filter the data. The project only decides where a saved report lives: a report saved while project A is selected is listed under project A.
No compensation or cost data, no leave reasons or contact persons, no emergency contacts or personal phone numbers, no attendance coordinates or device details. These fields are excluded at the engine level — they are not hidden columns, they simply do not exist here.
2. How a report is put together
3. Building and running a report — step by step
Step 1 · Pick the dataset
Employees (the directory: departments, grades, designations, zones, tenure), Leave (applications by type/status with day counts and decision turnaround), Expenses (claims by category/status/grade/department with amounts), Attendance (daily logs with hours, overtime, lateness), Leave Balances (opening/accrued/used/remaining per employee, type and year) or Site Visits (field check-ins per site with visit hours). Switching clears the canvas (the page asks first).
Step 2 · Drag fields into the zones
Filter pickers offer the org's leave types, zones, expense categories, grades and departments; fixed vocabularies for leave status (draft → revoked), attendance enums and expense statuses. Department, designation and employment type are free-text on the employee record — the picker offers the configured values, and contains filters catch variants.
Step 3 · Run, read, drill
- Table — pivot with totals; two or more row dimensions become collapsible groups with subtotal rows.
- Chart — bar (stacked with a pivot column or a second row dimension), line (best with a date grain), pie.
- Drill-down — click any number: a drawer lists the underlying rows (employees, applications, claims or attendance days). Rows carry no deep links — the employee detail is a drawer without its own URL.
Step 4 · Save, share, templates, export
Identical to the other builders: private saves with a Share with project toggle, Save as,
a Templates menu (Headcount by Department, Headcount by Department × Grade, Hiring by
Month, Avg Tenure, Leave Days by Type × Status, Expense Amount by Category, Work Hours by
Month, Attendance Status Mix, Expense Spend by Grade, Leave Approval Turnaround, Leave
Balances by Type, Site Visits (last 30 days)…), CSV download, and print-to-PDF. Templates are
linkable — /org/people/reports?template=<key> opens the builder with the template loaded and
already run; the Open in Report Builder buttons on the Leave, Expense and Team Attendance
analytics pages use exactly this.
4. Field reference
| Dataset | Dimensions | Measures | Notable filters |
|---|---|---|---|
| Employees | Employee, Code, Department, Grade, Designation, Employment Type, Cost Center, Zone, User Status, HR Active, Joined / Account Created date | Count, Avg Tenure (years) | Name contains, any dimension |
| Leave | Leave Type, Status (draft/pending/approved/rejected/cancelled/revoked), Paid Leave, Applicant, Zone, From/To/Applied date (grain) | Count, Sum/Avg Days | Any dimension |
| Expenses | Category, Status, Employee, Department, Grade, Cost Center, Project, Currency, Expense/Submitted date (grain) | Count, Distinct Claimers, Sum/Avg/Min/Max Amount | Any dimension |
| Attendance | Attendance Status, Work Location, Shift, Source, Employee, Zone, Department, Grade, Manual Entry, Session Open, Date (grain) | Count, Sum Work / Effective / Overtime / Break Hours, Sum/Avg Late Minutes | Any dimension |
| Leave Balances | Employee, Leave Type, Year, Zone, Department, Active Period, Period Start/End (grain) | Count, Distinct Employees, Sum/Avg Opening / Accrued / Used / Carry Over / Encashed / Lapsed / Closing | Active Period = Yes for the current cycle |
| Site Visits | Site, Employee, Zone, Visited date (grain), Visit Open | Count, Distinct Visitors, Sum/Avg Duration (hours), Avg Location Security Score | In the last N days on Visited |
Semantics worth knowing
| Field | Meaning |
|---|---|
| Tenure (years) | Years since the HR joining date — employees without one are excluded from the average |
| Department | The free-text value on the employee record (the departments list is a naming aid, not an enforced link) |
| Days (leave) | The application's computed day count (half-days give fractions) |
| Submitted (expense) | The claim's creation date — approval timestamps live in the approval engine |
| Attendance hours | Prefer SUM when grouping by day: multiple sessions per person per day are legal; open sessions have no hours yet |
| Days to Decide (leave) | Days from application to approval/rejection — pending applications are excluded from the average |
| Relative dates | Date filters offer is today, in the last N days and in the next N days, evaluated when the report runs — a saved "last 30 days" report is always current |
5. The admin contract
| Prerequisite | Without it |
|---|---|
| Open the people report builder permission | No access — grant deliberately: it exposes org-wide HR aggregates |
| People Reports menu permission | No sidebar entry |
| Manage saved reports permission | Run and export only — no Save / Share / Delete |
| Employee HR records (joining dates, departments, grades) | Employees group under (none), tenure is empty |
| Leave types / zones configured | Leave pickers are empty |
| Check-in/checkout enabled | The Attendance dataset is empty |
6. Downstream
Read-only over HR data. The only thing a report writes is its own saved definition. Shared reports
are also readable (and runnable) through the Orbit public API
(developers.<your-domain> — Orbit People → People Reports, scope people:report:read, shared
reports only, PII-free aggregates). Private reports are never exposed there.
7. Don't confuse this with…
| Screen | Route | Shows |
|---|---|---|
| People Report Builder (this page) | /org/people/reports | Org-wide HR reports you compose |
| Employees list | /org/users | Individual people, editable |
| Leave report | /org/leaves/report | The fixed leave analytics page |
| Expense analytics | /org/expenses/my → analytics | The fixed expense dashboard |
| Team Attendance Pulse | Analytics rail | The fixed attendance dashboard |
8. Troubleshooting
| Symptom | Cause |
|---|---|
| Numbers don't change when switching projects | By design — HR data is organization-wide |
| A saved report "disappeared" | It was saved under a different project — switch back, or Save-as under the current one |
| Employees group under (none) | Their HR record has no department/grade/designation value |
| Tenure looks low | Employees without a joining date are excluded; the rest average normally |
| No salary or leave-reason fields anywhere | Deliberate — excluded at the engine level |
| Attendance daily hours look doubled | Multiple sessions per day are legal; group by Employee × Date and SUM |
| Run is disabled | A report needs at least one row/column dimension and one measure |
| A saved report is read-only | Shared by someone else — Save as makes your own copy |
Related
- People overview — the module tour
- Task Report Builder — the same builder over tasks