Files
CapaKraken/samples/Dispov2/plan-overview.md
T

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 = true AND 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 → Country
  • metroCityId → MetroCity
  • orgUnitId → OrgUnit (L7)
  • managementLevelGroupId → ManagementLevelGroup
  • managementLevelId → ManagementLevel
  • resourceType (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 → UtilizationCategory
  • clientId → Client (WBS Client Name)

Open Questions

  1. Resource Type derivation rules: The country→reporting-type mapping should be admin-configurable. Exact admin UI TBD.
  2. 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.
  3. LCR/UCR: Cost rate definitions are not yet available. Placeholder fields are included.
  4. SAP import format: What format do SAP period exports come in? CSV? API? Needs clarification for the import mechanism.
  5. FTE history: Currently single fte field. Monthly FTE tracking may be needed if contract changes happen mid-month.