Resource Calendars, Availability & Utilization

Business perspective: Resource Calendars, Availability & Utilization

1. Business Summary

Tracks daily availability for resources and users (PMs/managers), holidays, calendar updates, and computes utilization for selection.

2. Business Value

Ensures assignments respect time zone, working days, holidays, and daily/monthly limits — preventing missed deadlines.

3. Users / Stakeholders

PMs, vendor managers, resources.

4. Workflows

  • Resource has ResourceCalendarDay records (working hours, available flag).
  • ResourceCalendarUpdate records vacation/blocking.
  • UserCalendarDay/UserCalendarUpdate mirror for users.
  • Availability requests issued via AvailabilityRequest with constraints (TaskType, SourceLanguage, TargetLanguage, DtpLevel, QcLevel, PhaseNumber, SubjectMatter, ContentType).
  • Cron jobs (CronAvailabilityRequestsSchedule) drive request scheduling.

5. Sub-Features

  • Calendar admin (templates, holidays, times).
  • Availability requests with strategies and plans.
  • Utilization computations.

6. Business Rules

  • Availability windows respect template + holidays + calendar updates.
  • Utilization = assigned hours / available hours.
  • Resources blocked when utilization ≥ threshold (threshold not defined in models — likely in component).

7. Data Entities

ResourceCalendarDay, ResourceCalendarUpdate, ResourceAvailability, AvailabilityRequest, AvailabilityRequestsResource, CronAvailabilityRequestsSchedule, UserCalendarDay, UserCalendarUpdate.

8. Entry Points

  • resources/availabilityRequests, resources/resourceCalendarDays, resources/resourceCalendarUpdates, resources/userCalendarDays.

9. Inputs & Outputs

  • Inputs: calendar updates, availability responses.
  • Outputs: availability windows, utilization metrics, selection inputs.

10. Integrations

  • Email (availability request notifications).
  • Cron (scheduling).

11. Calculations / Logic

  • Window expansion: skip non-working days.
  • Utilization aggregation cron-driven.

12. Status Lifecycle

  • AvailabilityRequest statuses (pending → responded → expired/closed).

13. Permissions

  • VM, PM, resource (view own).

14. Reports & KPIs

  • Utilization by resource, calendar fill rate, response times.

15. Risks & Observations

  • Concurrent calendar updates without locking → stale values.
  • Threshold for utilization gating not configurable in visible code.

16. Source Code Evidence

  • app/Plugin/resources/Model/ResourceCalendarDay.php, ResourceCalendarUpdate.php, ResourceAvailability.php, AvailabilityRequest.php, CronAvailabilityRequestsSchedule.php, UserCalendarDay.php, UserCalendarUpdate.php.
  • app/Plugin/resources/Controller/AvailabilityRequestsController.php, ResourceCalendarDaysController.php, CronAvailabilityRequestsSchedulesController.php.

← Deep dives index