Projects & Timesheets
Track employee hours against client projects with a full two-stage approval chain (Project Manager β Finance) and automatic labor-cost calculations.
Prerequisites
Before using this module, the following must be configured in Core HR:
- β Active employees - project members must already exist in the system
- β At least one Location - projects are linked to office locations
- β Designations assigned - used for team role identification
π€ Role-Based Access
| Action | SUPER_ADMIN / HR_ADMIN / ACCOUNT_ADMIN | Project Manager | EMPLOYEE |
|---|---|---|---|
| Create / edit projects | β | β | β |
| Add / remove members | β | β | β |
| Set billing rates | β | β | β |
| View project cost summary | β | β (own project) | β |
| Log timesheets | β | β | β |
| Approve timesheets (L1) | - | β | β |
| Final approve timesheets (L2) | β (ACCOUNT_ADMIN) | β | β |
Admin Workflow
Step 1 - Create a Project
Navigate to: Projects β Create Project
| Field | Description | Example |
|---|---|---|
| Name | Human-readable project name | Project Delta |
| Code | Short unique code | DELTA01 |
| Description | Brief summary | High-impact client build |
| Manager | Assign a Project Manager (from employees) | (select employee) |
| Status | Initial state | ACTIVE |
| Start Date | When work begins | 2026-01-01 |
Step 2 - Link Project Locations
If the project is tied to specific offices (useful for geofencing and multi-location companies), link them:
Navigate to: Project Detail β Locations Tab β Add Location
This restricts which office locations are associated with the project for reporting purposes.
Step 3 - Assign Project Members & Billing Rates
Each member must be assigned with a role and an hourly billing rate.
Navigate to: Project Detail β Members Tab β Add Member
| Field | Description | Example |
|---|---|---|
| Employee | Select from active employee list | John Doe |
| Role | MEMBER or LEAD | MEMBER |
| Hourly Rate | Billing rate in base currency | 75 (per hour) |
Updating a rate: Click the edit icon next to the member and enter the new rate. The old rate is automatically snapshotted on existing submitted timesheets to protect financial history.
Removing a member: This is a soft delete - the member can no longer log hours, but all their historic timesheets remain intact.
Employee Workflow
Step 1 - View My Projects
Navigate to: My Projects (sidebar)
Employees see all projects they are assigned to, along with their role (MEMBER or LEAD) and joining date.
Step 2 - Log Timesheet Hours
Navigate to: Timesheets β Log Time
| Field | Description | Notes |
|---|---|---|
| Project | Select from assigned projects | Only ACTIVE projects are shown |
| Date | Date work was performed | Cannot be a future date |
| Hours | Hours worked | Total across all projects cannot exceed 24 hours per day |
| Description | What was accomplished | e.g. Implemented login features |
| Billable | Whether hours are billable to client | Affects cost calculations |
System validation guards (automatic):
| Rule | What it checks |
|---|---|
| π΄ Future Date Guard | Rejects dates later than today |
| π΄ Project Status Guard | Rejects hours on COMPLETED or INACTIVE projects |
| π΄ Joining Date Guard | Rejects hours before the employee joined the project |
| π΄ 24-Hour Daily Cap | Rejects entries that would push total daily hours past 24 |
Entries saved but not submitted are shown as DRAFT (yellow/orange in the calendar view).
Step 3 - Submit Timesheet for Approval
Once ready, submit your draft entry for manager review:
Navigate to: Timesheets β click the draft entry β Submit
Step 4 - Respond to Returns
If your manager returns a timesheet with comments:
- You will see the entry marked RETURNED with the managerβs comment
- Edit the hours or description as needed
- Click Resubmit - it goes back to
PENDING_PM
Timesheet Approval Workflow
Timesheets follow a two-step approval chain:
DRAFT β [Employee Submits] β PENDING_PM β [PM Approves] β PENDING_FINANCE β [Finance Approves] β APPROVED β [PM Returns] RETURNED β [Employee Edits & Resubmits] β PENDING_PML1 - Project Manager Approval
Navigate to: Team Approvals β Timesheets
- Review the employeeβs hours and description
- Click Approve (moves to
PENDING_FINANCE) or Return with comments
L2 - Finance Final Approval
Navigate to: Finance Portal β Timesheet Audit
- Only
ACCOUNT_ADMINorSUPER_ADMINcan complete L2 - Click Approve - moves status to
APPROVED
Project Cost Analysis
Admins and the Project Manager can see labor cost breakdowns.
Navigate to: Project Detail β Costs Tab
How Labor Cost is Calculated
Labor Cost = Approved Hours Γ Snapshotted Hourly Rate- Billable hours are included in the project P&L
- Non-billable hours appear in utilization analytics only
The Costs tab also shows:
- Expense claims linked to this project (by category)
- Date range filtering to query specific billing windows
- Per-employee cost breakdown
Common Troubleshooting
| Problem | Solution |
|---|---|
| Project not visible when logging time | Ensure you are listed as a member; check project status is ACTIVE |
| Hours rejected due to daily cap | Youβve already logged 24 hours for that date across all projects |
| Timesheet locked - cannot edit | Only DRAFT and RETURNED timesheets can be edited |
| Cannot see project costs tab | Your role doesnβt have cost view access; contact your PM or admin |
| Billing rate changed but old timesheets look wrong | Rate changes are snapshotted at submission; only new submissions use the new rate |