5.0 KiB
Dispo v2 Implementation Plan — Overview
Date: 2026-03-13
Status: Draft
Source: MandatoryDispoCategories_V3.xlsx + 20260309_Bi-Weekly_Chargeability_Reporting_Content_Production_V0.943_4Hartmut.xlsx
Goal
Extend CapaKraken to support chargeability reporting with country-specific SAH (Standard Available Hours), FTE-based capacity, organizational hierarchy, utilization categories, client/WBS management, and a native chargeability report replacing the current Excel workflow.
Plan Documents
| # | Plan | File | Core Deliverable |
|---|---|---|---|
| 1 | Country, SAH & FTE | plan-country-sah-fte.md | Country/MetroCity models, SAH calculator, FTE-scaled daily hours |
| 2 | Org Unit Hierarchy | plan-org-unit-hierarchy.md | 3-level OrgUnit tree (L5→L6→L7), resource assignment, admin UI |
| 3 | Utilization Categories | plan-utilization-categories.md | UtilizationCategory model on projects (Chg, BD, MD&I, M&O, PD&R, Absence) |
| 4 | Client & WBS | plan-client-wbs-model.md | Client tree (Master→Entity), project-client linking |
| 5 | Resource Extensions | plan-resource-extensions.md | EID attributes, ManagementLevel, ResourceType, Chg Responsibility, derivation rules |
| 6 | Chargeability Report | plan-chargeability-report.md | Native report replacing Excel, forecast from assignments + SAH, SAP import for actuals |
Key Design Decisions
SAH as capacity basis
Standard Available Hours = (dailyHours * FTE) * (workingDays - publicHolidays - absence).
Country drives daily hours (8h most, 9h India, variable Spain). FTE reduces proportionally.
Resource Type derivation (Option A)
Store only 5 base types in DB: Employee, Freelancer, Apprentice, Intern, Student. Derive reporting types at query time:
- Production Studios =
chgResponsibility = trueAND country = Germany - Near&Offshore = country NOT Germany AND type = Employee/Freelancer
- Accenture =
chgResponsibility = false - Long-term absence = derived from absence system
Derivation rules are configurable in admin (which countries map to which reporting type).
Utilization on projects, not allocations
Each project carries a utilization category (Chg, BD, MD&I, etc.). Hours assigned to a project inherit its category for reporting. Unassigned hours = SAH minus all categorized hours.
Forecast chargeability = derived metric
forecastChg = hours on Chg projects / SAH. No manual chargeability entry — it comes from what CapaKraken already knows about assignments.
Dependency Order
1. Country/SAH ─────────────────┐
2. OrgUnit Hierarchy ───────────┤
3. Utilization Categories ──────┼──→ 5. Resource Extensions ──→ 6. Chargeability Report
4. Client/WBS ──────────────────┘
Plans 1-4 are independent and can be implemented in parallel. Plan 5 (Resource Extensions) depends on 1-4 for the FK targets. Plan 6 (Chargeability Report) depends on all others.
New Prisma Models Summary
| Model | Purpose |
|---|---|
Country |
Country with daily working hours and schedule rules |
MetroCity |
City within a country (for public holidays) |
OrgUnit |
Self-referencing 3-level org hierarchy |
UtilizationCategory |
Project classification for hour bucketing |
Client |
Self-referencing client hierarchy (Master → Entity) |
ManagementLevelGroup |
Career level grouping with target chargeability % |
ManagementLevel |
Specific level within a group |
ChargeabilitySnapshot |
Imported SAP actuals for historical reporting |
Resource Model Changes Summary
New fields on Resource:
enterpriseId(String, unique)countryId→ CountrymetroCityId→ MetroCityorgUnitId→ OrgUnit (L7)managementLevelGroupId→ ManagementLevelGroupmanagementLevelId→ ManagementLevelresourceType(enum: EMPLOYEE, FREELANCER, APPRENTICE, INTERN, STUDENT)chgResponsibility(Boolean, default true)rolledOff(Boolean)departed(Boolean)clientUnitId→ Client (primary client for reporting)lcrCents,ucrCents(Int, placeholder for cost rates)
Project Model Changes Summary
New fields on Project:
utilizationCategoryId→ UtilizationCategoryclientId→ Client (WBS Client Name)
Open Questions
- Resource Type derivation rules: The country→reporting-type mapping should be admin-configurable. Exact admin UI TBD.
- Win Probability: The Dispo file mentions it "should contain the value from MMS". Is this relevant for CapaKraken? If so, it's a field on Project.
- LCR/UCR: Cost rate definitions are not yet available. Placeholder fields are included.
- SAP import format: What format do SAP period exports come in? CSV? API? Needs clarification for the import mechanism.
- FTE history: Currently single
ftefield. Monthly FTE tracking may be needed if contract changes happen mid-month.