These cookies are required for the website to function properly. They ensure security, enable basic features like page navigation, and store user session data. You cannot disable these cookies.
- Resource Planning System
- Data model
The tables behind Resource Planning System
Resource Planning System ships with 21 tables, grouped here by the feature that uses them. Every record your team works with lives in one of them, and you can add fields and tables in Proto.
- Tables
- 21
- Features
- 6, plus shared settings
- Change it
- Add fields and tables in Proto
How the model is organised
People and skills
Resources, Employees, Skills, resource skills, skill certifications.
Capacity planning
Weekly capacity, PTO imports, Assignments, assignment periods.
Staffing requests
Resource requests, request skills, request suggestions, Projects.
Assignments and substitutions
Assignments, assignment periods, Substitutions, resource requests.
Rates and forecasts
Rate cards, rate card rows, Assignments, assignment periods, Practices.
Utilisation and bench
Time actuals, assignment periods, Utilization, Bench, weekly capacity.
Every table, by feature
- People and skills5
- Capacity planning4
- Staffing requests4
- Assignments and substitutions4
- Rates and forecasts5
- Utilisation and bench5
- Shared and settings1
- Resources
The person-level resource record — one row per billable or chargeable person on the delivery roster. References the canonical Employee in Core HR but extends with delivery attributes (Practice, Role, resource type, bill rate, cost rate). Pay Runs and HRIS lifecycle live elsewhere; this row exists so staffing has a working record.
Linked to Employees (read-only HR mirror; null for non-employee resources), Practices, Roles, Resources (self) - Employees
Read-only identity mirror from Core HR; employment records and payroll remain owned by HR.
- Skills
The catalog of named skills used to describe what a Resource can do and what a resource request needs. Practice-tagged for search-narrowing but not Practice-scoped — a single Skill (e.g.
Linked to Skills (self)Python) crosses Practices. - Resource skills
The Resource × Skill matrix with proficiency, last-used, and a self-or-manager attestation. The grain that powers skill-match-suggester and the Skill Inventory report.
Linked to Resources, Skills, Resources (Manager who attested) - Skill certifications
Formal certifications backing a resource skills row — the issuer, the certification number, the issue and expiry dates. Drives the certifications-expiring report and the
Linked to Resource skills, ResourcesSource: CertificationDerivedproficiency bumps.
- Weekly capacity
Per-Resource per-Week capacity grid. Computed nightly by
Linked to Resourcescapacity-recomputefromBaseHoursPerWeek - PTO hours - holidays. The denominator for utilization and the source of truth for “is this Resource available?” - PTO imports
Inbound feed from
Linked to Resourceshrms-leave-attendance— approved leave and holidays per Resource per day, used bycapacity-recomputeto deduct PTO hours and holiday hours from weekly capacity. Read-only here; the source of truth lives in the leave app. - Assignments
The staffing record — a Resource on a Project at a Role at an allocation percentage over a date span. Spawned from an approved resource request. The unit of capacity consumption.
Linked to Resources, Projects, Resource requests (null for direct-staffed), Roles - Assignment periods
Week-by-week allocation rows for an Assignment. Generated on approve; the granular hours that roll up into weekly capacity and Utilization. Reconciled to actuals from
Linked to Assignments, Resourcespm-timebytime-sync-from-pm-time.
- Resource requests
Demand from a Project — “we need a Senior Data Engineer with Snowflake + dbt at 50% from May 1 through July 31.” Routes to the matching Practice’s Resource Manager for approval and a match.
Linked to Projects, Resources (Project Manager), Roles, Practices (defaults from RoleNeeded.Practice) - Request skills
Required skills for a resource request with minimum proficiency. Drives
Linked to Resource requests, Skillsskill-match-suggesterscoring. - Request suggestions
Top-N candidate Resources scored by
Linked to Resource requests, Resourcesskill-match-suggesterfor a resource request. One row per suggested Resource with the composite match score and component breakdown (skill match, proficiency delta, capacity fit, bill-rate fit) plus rank. The Resource Manager picks one of these to setResourceRequests.MatchedResource. - Projects
Scoped delivery-project mirror used for staffing; tasks, delivery approvals and billing remain in the connected project app.
Linked to Resources
- Assignments
The staffing record — a Resource on a Project at a Role at an allocation percentage over a date span. Spawned from an approved resource request. The unit of capacity consumption.
Linked to Resources, Projects, Resource requests (null for direct-staffed), Roles - Assignment periods
Week-by-week allocation rows for an Assignment. Generated on approve; the granular hours that roll up into weekly capacity and Utilization. Reconciled to actuals from
Linked to Assignments, Resourcespm-timebytime-sync-from-pm-time. - Substitutions
A formal swap mid-Assignment — Resource A rotates off, Resource B rotates in. Captures the from / to, the effective date, and the reason. The original Assignment goes Substituted; a new Assignment is created for the inbound Resource.
Linked to Assignments, Assignments (created on approval), Resources, Resources (Resource Manager) - Resource requests
Demand from a Project — “we need a Senior Data Engineer with Snowflake + dbt at 50% from May 1 through July 31.” Routes to the matching Practice’s Resource Manager for approval and a match.
Linked to Projects, Resources (Project Manager), Roles, Practices (defaults from RoleNeeded.Practice)
- Rate cards
Versioned rate cards per Practice (and optionally per US region). A rate card has effective dates and a set of rate card rows. The active card on
Linked to Practices, Resources (Practice Lead), Resources (Finance), ResourcesAssignments.StartDateprices the assignment. - Rate card rows
Per-Role rate row inside a rate card. The lookup grain for pricing an Assignment.
Linked to Rate cards, Roles - Assignments
The staffing record — a Resource on a Project at a Role at an allocation percentage over a date span. Spawned from an approved resource request. The unit of capacity consumption.
Linked to Resources, Projects, Resource requests (null for direct-staffed), Roles - Assignment periods
Week-by-week allocation rows for an Assignment. Generated on approve; the granular hours that roll up into weekly capacity and Utilization. Reconciled to actuals from
Linked to Assignments, Resourcespm-timebytime-sync-from-pm-time. - Practices
Organizational practice unit — a Practice owns a set of Resources, Roles, and rate cards. Examples: Data Engineering, Cloud Infrastructure, Business Consulting, Design.
Linked to Resources
- Time actuals
Immutable approved source-time observations for one assignment period; corrections retain source revision and reversal linkage.
Linked to Assignment periods - Assignment periods
Week-by-week allocation rows for an Assignment. Generated on approve; the granular hours that roll up into weekly capacity and Utilization. Reconciled to actuals from
Linked to Assignments, Resourcespm-timebytime-sync-from-pm-time. - Utilization
Per-Resource per-Period rollup of allocation, billable hours, and utilization percentage. Written weekly by
Linked to Resourcesutilization-rollup. The grain that backs the Utilization report and the executive dashboard. - Bench
Derived (workflow-written) row per Resource flagged as under-utilized over the next 4 weeks of forward bookings. Used for the bench digest and the bench-report. Refreshed weekly by
Linked to Resources, Practicesbench-detection. - Weekly capacity
Per-Resource per-Week capacity grid. Computed nightly by
Linked to Resourcescapacity-recomputefromBaseHoursPerWeek - PTO hours - holidays. The denominator for utilization and the source of truth for “is this Resource available?”
Keys and references
Employee and project mirrors retain source workspace and identity. Assignment periods derive Resource from their parent. Time actuals are unique by source time entry and revision; accepted history is preserved through linked corrections.
Migration order
- Bind Employees and Resources to verified principals and source systems.
- Load Practices, Roles, Skills and reviewed resource skills evidence.
- Reconcile approved leave, holidays and complete weekly capacity inputs.
- Load effective rate cards, accepted requests and active Assignments with their exact periods.
- Reconcile source-approved time actuals, prior corrections and project memberships.
- Configure scopes and independent decisions; verify capacity, replay, substitution and rate cases.
Set up Resource Planning System your way.
Start free, then use Proto to change fields, steps and approvals before your team goes live.