# ROI-Rechner Schichtplanung - Comprehensive Documentation

**Last Updated:** 2026-04-08

## Tool Overview

### Basic Information

- **Tool Name:** ROI-Rechner Schichtplanung
- **Slug:** `roi-rechner-schichtplanung`
- **URL:** `https://www.ordio.com/tools/roi-rechner-schichtplanung`
- **Status:** Available
- **Last Updated:** 2026-01-07

### Purpose

Calculate ROI (Return on Investment) for switching to digital shift planning with Ordio. Shows time savings, overtime reduction, faster payroll, error reduction, and overall cost savings. Helps businesses evaluate the financial benefits of digital workforce management solutions.

### Use Cases

- **Business Owners:** Evaluate digital shift planning ROI
- **HR Professionals:** Calculate potential savings and benefits
- **Decision Makers:** Make informed software investment decisions
- **Cost Analysts:** Understand comprehensive cost-benefit analysis
- **Operations Managers:** Assess operational efficiency gains

### Real-World Scenarios

**Scenario 1: Restaurant Owner Evaluating Software Investment**
- **User:** Restaurant owner with 20 employees, considering Ordio
- **Situation:** Currently spends 10 hours/week on scheduling, has overtime issues, wants to calculate ROI
- **Goal:** Understand financial benefits of switching to digital shift planning
- **Steps:**
  1. Enter company profile (20 employees, restaurant industry)
  2. Enter current situation (10h/week scheduling, overtime issues)
  3. Enter potential improvements (time savings, overtime reduction)
  4. Review calculated ROI
  5. See payback period and annual savings
- **Result:** Sieht modellabhängigen ROI, Payback und jährliche Einsparungen (abhängig von Eingaben)
- **Related Tools:** [Kostenrechner](kostenrechner-documentation.md) (for cost calculation), [Arbeitszeitrechner](arbeitszeitrechner-documentation.md) (for time analysis)

**Scenario 2: HR Manager Preparing Business Case**
- **User:** HR professional preparing ROI analysis for management
- **Situation:** Need to justify software investment to CFO
- **Goal:** Create comprehensive ROI report with financial projections
- **Steps:**
  1. Enter detailed current state metrics
  2. Enter potential improvements
  3. Review calculated ROI and savings
  4. Export results for presentation
  5. Present to management
- **Result:** Sees detailed ROI breakdown, can present compelling business case
- **Related Tools:** [Kostenrechner](kostenrechner-documentation.md) (for cost details), [Zuschlagsrechner](zuschlagsrechner-documentation.md) (for labor costs)

**Scenario 3: Operations Manager Assessing Efficiency**
- **User:** Operations manager evaluating process improvements
- **Situation:** Want to quantify benefits of digital shift planning
- **Goal:** Understand operational efficiency gains and cost savings
- **Steps:**
  1. Enter current operational metrics
  2. Enter expected improvements
  3. Review calculated efficiency gains
  4. See time savings and cost reductions
  5. Plan implementation
- **Result:** Sees quantified efficiency gains, can prioritize improvements
- **Related Tools:** [Arbeitszeitrechner](arbeitszeitrechner-documentation.md) (for time tracking), [Kostenrechner](kostenrechner-documentation.md) (for cost analysis)

**Scenario 4: Business Owner Comparing Solutions**
- **User:** Business owner comparing multiple software options
- **Situation:** Evaluating Ordio vs competitors, need ROI comparison
- **Goal:** Compare ROI of different solutions
- **Steps:**
  1. Calculate ROI for Ordio
  2. Calculate ROI for competitor (using their pricing)
  3. Compare ROI, payback period, annual savings
  4. Make informed decision
- **Result:** Sees ROI comparison, can choose best solution
- **Related Tools:** [Kostenrechner](kostenrechner-documentation.md) (for cost comparison), [Arbeitszeitrechner](arbeitszeitrechner-documentation.md) (for time comparison)

### Target Audience

- Business owners
- HR professionals
- Decision makers
- Shift planning managers
- Operations managers

### Visual Description

**Hero Section:**

- Layout: Centered hero section with badge, headline, and description
- Badge: "ROI Rechner" badge with blue background
- Headline: Large bold headline "ROI-Rechner Schichtplanung: Lohnt sich digitale Dienstplanung für dich?" with blue accent
- Description: Paragraph explaining ROI calculation
- Background: Gradient blur effect

**Visual Examples (To Be Added):**

**Hero Section Screenshot:**
- Location: `docs/guides/tools-pages/screenshots/roi-rechner-schichtplanung-hero.png`
- Description: Full hero section showing badge, headline, description
- Dimensions: 1920x1080 (desktop), 375x667 (mobile)
- Shows: Complete above-fold content with visual styling

**Calculator Form Screenshot:**
- Location: `docs/guides/tools-pages/screenshots/roi-rechner-schichtplanung-form.png`
- Description: Calculator form showing company profile, current state, improvements sections
- Dimensions: 1920x1080 (desktop)
- Shows: Collapsible sections, input fields, calculate button

**ROI Results Screenshot:**
- Location: `docs/guides/tools-pages/screenshots/roi-rechner-schichtplanung-results.png`
- Description: Results section showing ROI percentage, payback period, annual savings
- Dimensions: 1920x1080 (desktop)
- Shows: ROI display, savings breakdown, payback period visualization

**ROI Calculation Flow Diagram:**
- Location: `docs/guides/tools-pages/diagrams/roi-rechner-schichtplanung-flow.svg`
- Description: Flow diagram showing ROI calculation process
- Format: SVG (vector) for scalability
- Shows: Input → Calculation → ROI Output flow with savings breakdown

**Calculator Form:**

- Layout: Large white card with rounded corners, shadow, max-width container
- Form Sections: Multiple collapsible sections:
  - Firmenprofil (Company Profile) - Blue background
  - Aktuelle Situation (Current State) - White background
  - Erwartete Verbesserungen (Expected Improvements) - White background
  - Ordio Konfiguration (Ordio Configuration) - White background
  - Erweiterte Optionen (Advanced Options) - Collapsible
- Input Fields: Mix of number inputs, selects, radio buttons, checkboxes, toggles
- Tooltips: Info icons with tooltips explaining each field
- Calculate Button: Large blue button "Jetzt berechnen"
- Styling: Blue accent color (#4D8EF3), gray borders, rounded corners, hover effects

**Result Display:**

- Layout: Results section below form (scrolls into view after calculation)
- Header: Blue background with title and VAT indicator
- KPI Cards: Three large cards showing:
  - Jährlicher Nettonutzen (Annual Net Benefit)
  - ROI Percentage
  - Amortisation (Payback Period)
- Savings Breakdown: Grid showing individual savings:
  - Admin-Zeit (Admin Time)
  - Überstunden (Overtime)
  - No-Shows
  - Payroll-Fehler (Payroll Errors)
  - Payroll-Bearbeitung (Payroll Processing)
  - Attrition/Turnover (optional)
- Cost Breakdown: Grid showing Ordio costs:
  - Ordio Abonnement (Subscription)
  - Payroll Plus (if enabled)
  - Umsatzsteuer (VAT, if included)
- Total Sections: Highlighted sections for total savings and total costs
- Legal Information: Section showing key metrics (Mindestlohn, Minijob-Grenze, BBG)

### UI/UX Flow

**Initial Load:**

- Page loads with hero section visible
- Calculator form shows default values:
  - Industry: Gastronomie
  - Locations: 1
  - Employees: 25
  - Average Hourly Wage: 13.00 €/hour
  - Manager Hourly Wage: 25.00 €/hour
  - Employer On-cost Rate: 22%
  - Schedule Hours: 15 h/week
  - Overtime Hours: 80 h/month
  - Premium Rate: 30%
  - Unplanned Absence: 24 h/month
  - Payroll Error Rate: 1.2%
  - Cost per Error: 350 €
  - Schedule Time Reduction: 35%
  - Overtime Reduction: 40%
  - No-show Reduction: 45%
  - Payroll Error Reduction: 30%
  - Minutes Saved per Payslip: 12
  - Last Minute Multiplier: 2.0
  - Plan: Starter
  - Payroll Plus: Enabled
- Advanced options hidden by default
- No results displayed initially

**User Interaction Flow:**

1. User selects industry
2. User enters company profile data (locations, employees, wages)
3. User enters current state data (hours, overtime, errors)
4. User enters expected improvements (reduction percentages)
5. User selects Ordio plan and options
6. User can toggle advanced options (attrition savings, VAT)
7. User clicks "Jetzt berechnen" button
8. Form submits (prevents default, calculates)
9. Page scrolls smoothly to results section
10. Results appear with animations
11. User can see detailed breakdowns and KPIs

**Error Handling Flow:**

- Input validation: Min/max values enforced
- Auto-correction: Values capped at reasonable limits
- Warnings: Manager wage validation (warning only)
- Results only shown after successful calculation

## Technical Documentation

### File Structure

- **PHP File:** `v2/pages/tools_roi_rechner_schichtplanung.php` (3,090 lines)
- **JavaScript:** Inline Alpine.js component (embedded in PHP file)
- **CSS:** Uses shared `v2/css/tools-pages.css` + extensive inline styles

### Code Organization

**Alpine.js Component Structure:**

- Main component: Inline `x-data` object in body tag
- All logic embedded in PHP file
- No separate JavaScript file

**State Management:**

- Alpine.js reactive state for all UI state
- No localStorage usage
- No URL parameter sharing

**Code Patterns:**

- Alpine.js reactive data properties
- Form submission handler
- Complex calculation function
- Currency formatting function
- Smooth scroll to results

### Calculation Modes

**Single Mode: Comprehensive ROI Calculator**

- **Visual Description:** Single calculation mode with extensive form inputs and detailed results
- **Purpose:** Calculate comprehensive ROI for digital shift planning investment
- **Input Fields:**

  **Company Profile:**

  - `industry` (select): Industry selection
    - Options: Gastronomie, Einzelhandel, Gesundheit & Pflege, Handwerk & Industrie, Freizeit & Kultur, Sonstiges
    - Default: Gastronomie
  - `locations` (number): Number of locations
    - Default: 1
    - Validation: min=1, max=500
  - `employees_total` (number): Total number of employees
    - Default: 25
    - Validation: min=1, max=5000
  - `avg_hourly_wage` (number): Average hourly wage (€/hour)
    - Default: 13.00
    - Validation: min=8, max=100
  - `manager_hourly_wage` (number): Manager hourly wage (€/hour)
    - Default: 25.00
    - Validation: min=avg_hourly_wage, max=200
  - `employer_oncost_rate` (number): Employer on-cost rate (%)
    - Default: 22
    - Validation: min=15, max=35
  - `include_vat_in_costs` (checkbox): Include VAT in costs
    - Default: false

  **Current State:**

  - `schedule_hours_per_week` (number): Schedule planning hours per week
    - Default: 15
    - Validation: min=0, max=80
  - `overtime_hours_per_month` (number): Overtime hours per month
    - Default: 80
    - Validation: min=0, max=1000
  - `avg_premium_rate` (number): Average premium rate for overtime (%)
    - Default: 30
    - Validation: min=0, max=300
  - `unplanned_absence_hours_per_month` (number): Unplanned absence hours per month
    - Default: 24
    - Validation: min=0, max=200
  - `payslips_per_month` (number): Payslips per month (calculated automatically)
    - Default: 0 (calculated as employees_total)
    - Readonly: true
  - `payroll_error_rate` (number): Payroll error rate (%)
    - Default: 1.2
    - Validation: min=0, max=20
  - `cost_per_payroll_error` (number): Cost per payroll error (€)
    - Default: 350
    - Validation: min=50, max=5000

  **Expected Improvements:**

  - `schedule_time_reduction_pct` (number): Schedule time reduction (%)
    - Default: 35
    - Validation: min=0, max=95
  - `overtime_reduction_pct` (number): Overtime reduction (%)
    - Default: 40
    - Validation: min=0, max=95
  - `no_show_reduction_pct` (number): No-show reduction (%)
    - Default: 45
    - Validation: min=0, max=80
  - `payroll_error_reduction_pct` (number): Payroll error reduction (%)
    - Default: 30
    - Validation: min=0, max=90
    - Dynamic: Minimum 55% with Payroll Plus, maximum 35% without
  - `minutes_saved_per_payslip` (number): Minutes saved per payslip
    - Default: 12
    - Validation: min=0, max=120
  - `last_minute_multiplier` (number): Last minute multiplier
    - Default: 2.0
    - Validation: min=1, max=10

  **Ordio Configuration:**

  - `plan` (radio): Ordio plan selection
    - Options: Starter (€89), Plus (€129), Pro (€149)
    - Default: Starter
  - `use_payroll_plus` (checkbox): Use Payroll Plus
    - Default: true
    - Cost: €15 per payslip per month

  **Advanced Options (Optional):**

  - `include_attrition_savings` (checkbox): Include attrition savings
    - Default: false
  - `old_turnover_rate` (number): Old turnover rate (%)
    - Default: 25
    - Validation: min=0, max=100
  - `new_turnover_rate` (number): New turnover rate (%)
    - Default: 20
    - Validation: min=0, max=100
  - `replacement_cost_per_hire` (number): Replacement cost per hire (€)
    - Default: 2500
    - Validation: min=500, max=10000

- **Output Fields:**

  - `loaded_hourly_wage` (number): Loaded hourly wage (with on-costs)
  - `manager_loaded_wage` (number): Manager loaded wage (with on-costs)
  - `ordio_subscription_cost` (number): Ordio subscription cost per year (€)
  - `payroll_plus_cost` (number): Payroll Plus cost per year (€)
  - `total_ordio_cost` (number): Total Ordio cost per year (€, with VAT if enabled)
  - `total_ordio_cost_net` (number): Total Ordio cost net (€)
  - `total_ordio_cost_vat` (number): VAT amount (€)
  - `admin_savings` (number): Admin/scheduling time savings per year (€)
  - `overtime_savings` (number): Overtime premium savings per year (€)
  - `no_show_savings` (number): No-show savings per year (€)
  - `payroll_error_savings` (number): Payroll error savings per year (€)
  - `payroll_processing_savings` (number): Payroll processing time savings per year (€)
  - `attrition_savings` (number): Attrition/turnover savings per year (€)
  - `total_savings` (number): Total savings per year (€)
  - `net_benefit` (number): Net benefit per year (€)
  - `roi_pct` (number): ROI percentage (%)
  - `payback_months` (number): Payback period in months
  - `monthly_savings` (number): Monthly savings (€)
  - `monthly_cost` (number): Monthly cost (€)
  - `savings_per_employee` (number): Savings per employee (€)
  - `cost_per_employee` (number): Cost per employee (€)

- **Formula:**

  ```
  Loaded Hourly Wage = Avg Hourly Wage × (1 + Employer On-cost Rate / 100)
  Manager Loaded Wage = Manager Hourly Wage × (1 + Employer On-cost Rate / 100)

  Payslips Per Month = Employees Total

  Ordio Subscription Cost = Plan Price × Locations × 12
  Payroll Plus Cost = Payslips Per Month × 12 × 15 (if enabled)
  Total Ordio Cost Net = Subscription Cost + Payroll Plus Cost
  Total Ordio Cost = Total Ordio Cost Net × 1.19 (if VAT enabled)

  Admin Savings = Schedule Hours × (Reduction % / 100) × 52 × Manager Loaded Wage × Locations

  Overtime Premium Cost = Avg Hourly Wage × (Premium Rate / 100) × (1 + On-cost Rate / 100)
  Overtime Savings = Overtime Hours × (Reduction % / 100) × 12 × Premium Cost × Locations

  No-show Savings = Unplanned Absence Hours × (Reduction % / 100) × 12 × Avg Hourly Wage × (1 + On-cost Rate / 100) × Last Minute Multiplier × Locations

  Payroll Error Savings = Payslips × 12 × (Error Rate / 100) × Cost Per Error × (Reduction % / 100)

  Hours Saved = Payslips × 12 × Minutes Saved Per Payslip / 60
  Payroll Processing Savings = Hours Saved × Manager Loaded Wage

  Turnover Reduction = Old Turnover Rate - New Turnover Rate
  Attrition Savings = Employees × (Turnover Reduction / 100) × Replacement Cost Per Hire (if enabled)

  Total Savings = Admin Savings + Overtime Savings + No-show Savings + Payroll Error Savings + Payroll Processing Savings + Attrition Savings

  Net Benefit = Total Savings - Total Ordio Cost

  ROI % = (Net Benefit / Total Ordio Cost) × 100 (capped at 1000%)

  Payback Months = Total Ordio Cost / (Total Savings / 12) (capped at 60 months)
  ```

- **Calculation Steps:**

  1. Validate and cap input values
  2. Calculate payslips per month (equals employees total)
  3. Calculate loaded wages (with on-costs)
  4. Calculate Ordio costs:
     - Subscription cost based on plan and locations
     - Payroll Plus cost if enabled
     - Apply VAT if toggle enabled
  5. Calculate admin/scheduling savings:
     - Time reduction × weeks × loaded manager wage × locations
  6. Calculate overtime savings (if overtime hours > 0):
     - Premium cost per hour × reduction × months × locations
  7. Calculate no-show savings:
     - Absence hours × reduction × months × loaded wage × multiplier × locations
  8. Calculate payroll error savings:
     - Payslips × months × error rate × cost × reduction
  9. Calculate payroll processing savings:
     - Minutes saved × payslips × months / 60 × loaded manager wage
  10. Calculate attrition savings (if enabled):
      - Turnover reduction × employees × replacement cost
  11. Sum all savings
  12. Calculate net benefit
  13. Calculate ROI percentage (capped at 1000%)
  14. Calculate payback period (capped at 60 months)
  15. Calculate derived values (monthly, per employee)

- **Example:**

  - Input:
    - Industry: Gastronomie
    - Locations: 2
    - Employees: 50
    - Avg Hourly Wage: 15 €/hour
    - Manager Hourly Wage: 30 €/hour
    - Employer On-cost Rate: 22%
    - Schedule Hours: 20 h/week
    - Overtime Hours: 100 h/month
    - Premium Rate: 30%
    - Unplanned Absence: 30 h/month
    - Payroll Error Rate: 2%
    - Cost per Error: 400 €
    - Schedule Reduction: 40%
    - Overtime Reduction: 45%
    - No-show Reduction: 50%
    - Payroll Error Reduction: 60%
    - Minutes Saved: 15
    - Last Minute Multiplier: 2.5
    - Plan: Plus (€129)
    - Payroll Plus: Enabled
  - Calculation:
    - Loaded Wage: 15 × 1.22 = 18.30 €/hour
    - Manager Loaded Wage: 30 × 1.22 = 36.60 €/hour
    - Payslips: 50
    - Ordio Subscription: 129 × 2 × 12 = 3,096 €
    - Payroll Plus: 50 × 12 × 15 = 9,000 €
    - Total Ordio Cost: 3,096 + 9,000 = 12,096 €
    - Admin Savings: 20 × 0.40 × 52 × 36.60 × 2 = 30,451.20 €
    - Overtime Premium: 15 × 0.30 × 1.22 = 5.49 €/hour
    - Overtime Savings: 100 × 0.45 × 12 × 5.49 × 2 = 5,929.20 €
    - No-show Savings: 30 × 0.50 × 12 × 18.30 × 2.5 × 2 = 16,470 €
    - Payroll Error Savings: 50 × 12 × 0.02 × 400 × 0.60 = 2,880 €
    - Hours Saved: 50 × 12 × 15 / 60 = 150 hours
    - Payroll Processing Savings: 150 × 36.60 = 5,490 €
    - Total Savings: 30,451.20 + 5,929.20 + 16,470 + 2,880 + 5,490 = 61,220.40 €
    - Net Benefit: 61,220.40 - 12,096 = 49,124.40 €
    - ROI: (49,124.40 / 12,096) × 100 = 406.1%
    - Payback: 12,096 / (61,220.40 / 12) = 2.37 months
  - Output:
    - Net Benefit: 49,124.40 €/year
    - ROI: 406.1%
    - Payback: 2.4 months
    - Total Savings: 61,220.40 €/year

- **Edge Cases:**
  - Zero overtime hours: Overtime savings = 0
  - Payroll Plus disabled: Payroll error reduction capped at 35%
  - Payroll Plus enabled: Payroll error reduction minimum 55%
  - Attrition savings disabled: Attrition savings = 0
  - VAT disabled: Costs shown net
  - VAT enabled: Costs shown with 19% VAT
  - Very high ROI: Capped at 1000%
  - Very long payback: Capped at 60 months
  - Single location: No location multiplier
  - Multiple locations: All savings scale with locations

### Constants and Thresholds

**2026 Values:**

- **Ordio Plan Pricing:**
  - Starter: €89 per location per month
  - Plus: €129 per location per month
  - Pro: €149 per location per month
- **Payroll Plus:** €15 per payslip per month
- **VAT Rate:** 19% (if included)
- **Weeks per Year:** 52
- **Months per Year:** 12
- **Default Reduction Rates:**
  - Schedule Time: 35%
  - Overtime: 40%
  - No-show: 45%
  - Payroll Error: 30% (35% max without Payroll Plus, 55% min with Payroll Plus)
- **Default Values:**
  - Employer On-cost Rate: 22%
  - Premium Rate: 30%
  - Last Minute Multiplier: 2.0
  - Minutes Saved per Payslip: 12

**Previous Values (for reference):**

- Same as 2026 (pricing and rates typically stable)

### Validation Rules

- Locations: min=1, max=500
- Employees: min=1, max=5000
- Avg Hourly Wage: min=8, max=100
- Manager Hourly Wage: min=avg_hourly_wage, max=200
- Employer On-cost Rate: min=15, max=35
- Schedule Hours: min=0, max=80
- Overtime Hours: min=0, max=1000
- Premium Rate: min=0, max=300
- Unplanned Absence: min=0, max=200
- Payroll Error Rate: min=0, max=20
- Cost per Error: min=50, max=5000
- Reduction Percentages: min=0, max varies (80-95%)
- Minutes Saved: min=0, max=120
- Last Minute Multiplier: min=1, max=10
- Turnover Rates: min=0, max=100
- Replacement Cost: min=500, max=10000

### Edge Cases Handled

- Different team sizes: All calculations scale appropriately
- Multiple locations: Savings scale with locations
- Zero overtime: Overtime savings = 0
- Payroll Plus toggle: Affects error reduction limits
- VAT toggle: Affects total costs
- Attrition toggle: Optional savings calculation
- High ROI: Capped at 1000%
- Long payback: Capped at 60 months
- Invalid inputs: Auto-corrected to valid ranges

### Dependencies

- **External Libraries:** None
- **APIs:** None
- **Alpine.js:** Used for reactive UI (version from base includes)
- **Inline JavaScript:** All logic embedded in PHP file

## Functions & Methods

### Main Component Function

**Function:** Inline Alpine.js component

- **Location:** `v2/pages/tools_roi_rechner_schichtplanung.php:1185`
- **Purpose:** Main Alpine.js component for ROI calculator functionality
- **Returns:** Alpine.js component object with data properties and methods
- **Dependencies:** Alpine.js framework
- **Side Effects:** Manages DOM state, triggers scroll

### Calculation Functions

**Function:** `calculateROI()`

- **Location:** `v2/pages/tools_roi_rechner_schichtplanung.php:1243`
- **Purpose:** Calculate comprehensive ROI with all savings factors
- **Parameters:** None (uses component state)
- **Returns:** void (sets component state)
- **Dependencies:** None (pure calculation)
- **Side Effects:** Updates `results` object, sets `showResults` to true

**Function:** `formatCurrency(amount)`

- **Location:** `v2/pages/tools_roi_rechner_schichtplanung.php:1374`
- **Purpose:** Format number as currency with proper rounding
- **Parameters:**
  - `amount` (number): Amount to format
- **Returns:** String (formatted currency)
- **Dependencies:** Intl.NumberFormat
- **Side Effects:** None
- **Special Handling:**
  - Handles billions (shows "Mrd.")
  - Handles millions (shows "Mio.")
  - Handles thousands (no decimals)
  - Handles smaller amounts (2 decimals)

### Event Handlers

**Form Submit Handler:**

- **Location:** `v2/pages/tools_roi_rechner_schichtplanung.php:1440`
- **Purpose:** Handle form submission, calculate, and scroll to results
- **Event:** `x-on:submit.prevent`
- **Handler:** `calculateROI(); $nextTick(() => { scroll to results })`
- **Dependencies:** `calculateROI()`
- **Side Effects:** Prevents default form submission, triggers calculation, scrolls to results

## Formulas & Calculations

### Primary Formulas

**Loaded Wages:**

```
Loaded Hourly Wage = Avg Hourly Wage × (1 + Employer On-cost Rate / 100)
Manager Loaded Wage = Manager Hourly Wage × (1 + Employer On-cost Rate / 100)
```

**Ordio Costs:**

```
Ordio Subscription Cost = Plan Price × Locations × 12
Payroll Plus Cost = Payslips Per Month × 12 × 15 (if enabled)
Total Ordio Cost Net = Subscription Cost + Payroll Plus Cost
Total Ordio Cost = Total Ordio Cost Net × 1.19 (if VAT enabled)
```

**Admin/Scheduling Savings:**

```
Admin Savings = Schedule Hours × (Reduction % / 100) × 52 × Manager Loaded Wage × Locations
```

**Overtime Savings:**

```
Premium Cost Per Hour = Avg Hourly Wage × (Premium Rate / 100) × (1 + On-cost Rate / 100)
Overtime Savings = Overtime Hours × (Reduction % / 100) × 12 × Premium Cost × Locations
```

**No-show Savings:**

```
No-show Savings = Unplanned Absence Hours × (Reduction % / 100) × 12 × Avg Hourly Wage × (1 + On-cost Rate / 100) × Last Minute Multiplier × Locations
```

**Payroll Error Savings:**

```
Payroll Error Savings = Payslips × 12 × (Error Rate / 100) × Cost Per Error × (Reduction % / 100)
```

**Payroll Processing Savings:**

```
Hours Saved = Payslips × 12 × Minutes Saved Per Payslip / 60
Payroll Processing Savings = Hours Saved × Manager Loaded Wage
```

**Attrition Savings (Optional):**

```
Turnover Reduction = Old Turnover Rate - New Turnover Rate
Attrition Savings = Employees × (Turnover Reduction / 100) × Replacement Cost Per Hire
```

**Total Calculations:**

```
Total Savings = Admin Savings + Overtime Savings + No-show Savings + Payroll Error Savings + Payroll Processing Savings + Attrition Savings

Net Benefit = Total Savings - Total Ordio Cost

ROI % = (Net Benefit / Total Ordio Cost) × 100 (capped at 1000%)

Payback Months = Total Ordio Cost / (Total Savings / 12) (capped at 60 months)
```

### Legal Basis

- **No specific laws:** ROI calculation, not legal requirement
- **Industry averages:** Based on typical industry data and Ordio customer data
- **Ordio Pricing:** Official Ordio pricing (Starter €89, Plus €129, Pro €149 per location/month - yearly rates)
- **Payroll Plus:** €15 per payslip per month (verified 2026)
- **VAT:** German VAT rate (19%)
- **Employer On-cost Rate:** Default 22% (actual 2026 rates ~21.15%, rounded approximation)

### Step-by-Step Calculation Example

**Input:**

- Industry: Gastronomie
- Locations: 1
- Employees: 30
- Avg Hourly Wage: 14 €/hour
- Manager Hourly Wage: 28 €/hour
- Employer On-cost Rate: 22%
- Schedule Hours: 18 h/week
- Overtime Hours: 60 h/month
- Premium Rate: 25%
- Unplanned Absence: 20 h/month
- Payroll Error Rate: 1.5%
- Cost per Error: 300 €
- Schedule Reduction: 40%
- Overtime Reduction: 35%
- No-show Reduction: 50%
- Payroll Error Reduction: 50%
- Minutes Saved: 10
- Last Minute Multiplier: 2.0
- Plan: Starter (€89)
- Payroll Plus: Enabled

**Calculation:**

1. Calculate loaded wages:

   - Loaded Wage: 14 × 1.22 = 17.08 €/hour
   - Manager Loaded Wage: 28 × 1.22 = 34.16 €/hour

2. Calculate payslips:

   - Payslips: 30

3. Calculate Ordio costs:

   - Subscription: 89 × 1 × 12 = 1,068 €
   - Payroll Plus: 30 × 12 × 15 = 5,400 €
   - Total Net: 1,068 + 5,400 = 6,468 €
   - Total (no VAT): 6,468 €

4. Calculate admin savings:

   - Admin Savings: 18 × 0.40 × 52 × 34.16 × 1 = 12,789.50 €

5. Calculate overtime savings:

   - Premium Cost: 14 × 0.25 × 1.22 = 4.27 €/hour
   - Overtime Savings: 60 × 0.35 × 12 × 4.27 × 1 = 1,075.14 €

6. Calculate no-show savings:

   - No-show Savings: 20 × 0.50 × 12 × 17.08 × 2.0 × 1 = 4,099.20 €

7. Calculate payroll error savings:

   - Payroll Error Savings: 30 × 12 × 0.015 × 300 × 0.50 = 810 €

8. Calculate payroll processing savings:

   - Hours Saved: 30 × 12 × 10 / 60 = 60 hours
   - Payroll Processing Savings: 60 × 34.16 = 2,049.60 €

9. Calculate total savings:

   - Total Savings: 12,789.50 + 1,075.14 + 4,099.20 + 810 + 2,049.60 = 20,823.44 €

10. Calculate net benefit:

    - Net Benefit: 20,823.44 - 6,468 = 14,355.44 €

11. Calculate ROI:

    - ROI: (14,355.44 / 6,468) × 100 = 221.9%

12. Calculate payback:
    - Payback: 6,468 / (20,823.44 / 12) = 3.73 months

**Output:**

- Net Benefit: 14,355.44 €/year
- ROI: 221.9%
- Payback: 3.7 months
- Total Savings: 20,823.44 €/year

## Export Functionality

**Export Types:** Not implemented

**Email Gating:** Not implemented

**Sharing:** Not implemented

## Sharing Functionality

**Share URL Generation:** Not implemented

**Shareable Parameters:** Not implemented

**Share Restoration:** Not implemented

**Social Sharing:** Not implemented

## Results & Insights

### Result Display

**Primary Results (KPI Cards):**

- Jährlicher Nettonutzen: Large display of annual net benefit (€)
- ROI: Large display of ROI percentage (%)
- Amortisation: Large display of payback period (months)

**Savings Breakdown:**

- Admin-Zeit: Admin/scheduling time savings (€)
- Überstunden: Overtime premium savings (€)
- No-Shows: No-show savings (€)
- Payroll-Fehler: Payroll error savings (€)
- Payroll-Bearbeitung: Payroll processing time savings (€)
- Attrition/Turnover: Attrition savings (€, if enabled)
- Gesamte Einsparungen: Total savings highlighted (€)

**Cost Breakdown:**

- Ordio Abonnement: Subscription cost (€)
- Payroll Plus: Payroll Plus cost (€, if enabled)
- Umsatzsteuer: VAT amount (€, if included)
- Gesamtkosten Ordio: Total Ordio costs highlighted (€)

**Legal Information:**

- Mindestlohn: €12.82/hour (2026)
- Minijob-Grenze: €603/month (2026)
- BBG: €8,050 (Beitragsbemessungsgrenze)
- Berechnung: Netto/Gross indicator

**Result Formatting:**

- Currency: Formatted with `formatCurrency()` function
  - Billions: Shows "Mrd."
  - Millions: Shows "Mio."
  - Thousands: No decimals
  - Smaller: 2 decimals
- Percentages: One decimal place
- Months: One decimal place

**Result Styling:**

- Large, bold numbers for KPIs
- Color-coded cards (green for savings, blue for costs)
- Grid layout for breakdowns
- Highlighted total sections
- Animations on display

### Visualizations

**Charts/Graphs:** Not implemented

**Insights Provided:**

- Detailed breakdown of all savings sources
- Cost breakdown showing all Ordio costs
- ROI percentage for investment evaluation
- Payback period for timing assessment
- Per-employee metrics (savings and costs)

## Test Coverage

### Automated Testing

The ROI-Rechner Schichtplanung includes comprehensive automated test coverage via `v2/scripts/dev-helpers/test-roi-rechner-calculations.js`.

**Test Suite Overview:**
- **Total Test Cases:** 48
- **Coverage Areas:**
  - Basic ROI Calculations (3 tests)
  - Savings Components (9 tests)
  - VAT and Payroll Plus (4 tests)
  - Edge Cases (5 tests)
  - Formula Verification (3 tests)
  - Integration Tests (2 tests)
  - Plan Comparison (1 test)
  - Derived Values (1 test)

**Running Tests:**
```bash
node v2/scripts/dev-helpers/test-roi-rechner-calculations.js
```

**Test Results:**
- ✅ **100% Pass Rate** (48/48 tests passing)
- All calculation formulas verified
- All savings components tested
- Edge cases handled correctly
- VAT and Payroll Plus functionality verified
- Plan pricing verified (Starter, Plus, Pro)

**Test Coverage Details:**
- Loaded wage calculations
- Ordio cost calculations (subscription + Payroll Plus + VAT)
- All savings components (admin, overtime, no-show, payroll error, payroll processing, attrition)
- ROI and payback period calculations
- Input validation and capping
- Plan selection (Starter, Plus, Pro)
- VAT toggle functionality
- Payroll Plus toggle functionality
- Edge cases (zero values, maximum values, negative ROI)

## Browser Testing Results

### Desktop Browsers

**Chrome (Latest):**

- Status: ✅ Fully functional
- Issues: None
- Notes: All features working correctly

**Firefox (Latest):**

- Status: ✅ Fully functional
- Issues: None
- Notes: All features working correctly

**Safari (Latest):**

- Status: ✅ Fully functional
- Issues: None
- Notes: All features working correctly

**Edge (Latest):**

- Status: ✅ Fully functional
- Issues: None
- Notes: All features working correctly

### Mobile Testing

**iOS Safari:**

- Status: ✅ Functional
- Device: iPhone (tested)
- Issues: Minor UI adjustments on small screens
- Notes: Responsive design works well, form sections stack vertically

**Android Chrome:**

- Status: ✅ Functional
- Device: Android (tested)
- Issues: None
- Notes: Touch interactions work correctly

**Mobile UI Differences:**

- Form sections stack vertically on mobile
- Result cards stack vertically on small screens
- Grid layouts become single column
- Tooltips work on mobile

**Mobile Interactions:**

- Touch-friendly button sizes
- Keyboard input works correctly
- Form submission works on mobile
- Smooth scroll works on mobile
- Toggles and checkboxes work correctly

### Responsive Design

**Desktop (>1024px):**

- Layout: Multi-column form grid
- Results: Three-column KPI cards, multi-column breakdowns

**Tablet (768px-1024px):**

- Layout: Two-column form grid
- Results: Two-column KPI cards, two-column breakdowns

**Mobile (<768px):**

- Layout: Single-column form
- Results: Single-column cards, single-column breakdowns

**Breakpoints:**

- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px

### Accessibility

**Keyboard Navigation:**

- Tab navigation works through all form fields
- Enter key submits form
- Focus indicators visible
- Radio buttons keyboard accessible

**Screen Reader:**

- Form labels properly associated
- Tooltips accessible
- Results announced after calculation
- Section headings properly structured

**ARIA Labels:**

- Input fields have labels
- Buttons have descriptive text
- Results have proper roles
- Sections have proper headings

**Focus Management:**

- Focus moves through form fields
- Focus returns after calculation
- Focus trapped in modals (if any)

**Color Contrast:**

- Meets WCAG AA standards
- Text readable on all backgrounds
- Color not sole indicator

**Text Readability:**

- Font sizes appropriate for all screen sizes
- Line height comfortable for reading
- Text not too small on mobile

### Performance

**Page Load Time:**

- Initial load: < 2 seconds
- Calculator ready: Immediate
- No external libraries to load

**Calculation Speed:**

- Calculation: < 50ms (complex calculations)
- No noticeable lag

**Smooth Scroll:**

- Scroll animation: Smooth
- No performance issues

## Code Analysis

### Key Functions Location

- Main component: `v2/pages/tools_roi_rechner_schichtplanung.php:1185`
- Calculation function: `v2/pages/tools_roi_rechner_schichtplanung.php:1243`
- Format function: `v2/pages/tools_roi_rechner_schichtplanung.php:1374`
- Form handler: `v2/pages/tools_roi_rechner_schichtplanung.php:1440`

### Constants Location

- Default values: `v2/pages/tools_roi_rechner_schichtplanung.php:1193-1231`
- Plan prices: `v2/pages/tools_roi_rechner_schichtplanung.php:1276-1280`
- Payroll Plus pricing: Embedded in calculation (€15 per payslip)

### Calculation Logic Flow

1. **Form Submitted:**

   - User clicks "Jetzt berechnen" button
   - Form submit handler triggered

2. **Validation:**

   - Input values validated and capped
   - Payslips calculated automatically
   - Payroll error reduction adjusted based on Payroll Plus toggle

3. **Calculation:**

   - `calculateROI()` function called
   - Loaded wages calculated
   - Ordio costs calculated
   - All savings calculated (6 different types)
   - Totals calculated
   - ROI and payback calculated

4. **Display:**
   - Results updated in component state
   - Page scrolls smoothly to results section
   - Results displayed with animations

### State Management Flow

**Initialization:**

- Component initialized with Alpine.js
- Default values set
- Results initialized to empty object
- showResults initialized to false

**Updates:**

- Form submission triggers calculation
- Calculation updates results object
- Results display automatically when showResults = true

**Dependencies:**

- Input state → Calculation → Result state
- Result state → Display
- Toggles affect calculation (Payroll Plus, VAT, Attrition)

### Event Handler Flow

**Form Events:**

- Submit: Prevents default, calculates, scrolls
- Input: Real-time updates (if any)
- Toggle: Affects calculation (Payroll Plus, VAT, Attrition)

**Calculation Triggers:**

- Manual: Button click triggers calculation
- No auto-calculation on input change

## Content Documentation

### Hero Section

- **H1:** "ROI-Rechner Schichtplanung: Lohnt sich digitale Dienstplanung für dich?"
- **Description:** "Berechne in wenigen Minuten, ob sich der Wechsel von analoger/Excel-Schichtplanung zu Ordio für dein Team rechnet. Zeitersparnis, weniger Überstunden, weniger Fehler und schneller Payroll."
- **Badge:** "ROI Rechner" badge

### Educational Content Sections

1. **ROI Basics**

   - Time savings explained
   - Cost savings explained
   - Payback period explained
   - ROI percentage explained

2. **Ordio Benefits**

   - Faster scheduling
   - Reduced overtime
   - Fewer errors
   - Faster payroll
   - Better compliance

3. **Calculation Methodology**
   - Six savings factors explained
   - Scaling with locations explained
   - Plan differences explained

### FAQ Section

- **SSOT:** `v2/data/tools-faqs/roi_rechner_schichtplanung.json` (gerendert via `render-faq-json.php`, JSON-LD post-footer)
- **Total FAQs:** 10 (Refresh 2026-04-08, datengetrieben: GSC-Queries, SISTRIX `keywords-sistrix`, manueller SERP-Reset nach Korrektur des früheren Keyword-Mismatches `personalkosten senken`)
- **Themen-Reihenfolge:** Zweck des Rechners → Hebel/Einsparungen → Eingaben & Standardwerte → ROI-Formel → Payback → Wann lohnt es sich → keine Garantie → Abgrenzung Kostenrechner → Datenschutz/Client-Berechnung → Ordio-Kostenmodell
- **Research:** [`docs/content/tools/roi-rechner-schichtplanung/DATA_DRIVEN_SYNTHESIS.md`](../../content/tools/roi-rechner-schichtplanung/DATA_DRIVEN_SYNTHESIS.md) · Intent-Filter: [`docs/content/tools/roi-rechner-schichtplanung/FAQ_INTENT_MATRIX.md`](../../content/tools/roi-rechner-schichtplanung/FAQ_INTENT_MATRIX.md) · Web-Snapshot: `docs/content/tools/roi-rechner-schichtplanung/data/WEB_COMPETITIVE_SNAPSHOT_2026-04-08.md`

**Aktuelle Fragen (Kurzliste):**

1. Was genau berechnet der ROI-Rechner für Schichtplanung?
2. Welche Hebel stecken hinter den geschätzten Einsparungen?
3. Welche Daten brauche ich – und wozu dienen die Standardwerte?
4. Wie wird der ROI im Rechner ermittelt?
5. Was bedeutet Payback bzw. Amortisation in den Ergebnissen?
6. Woran erkenne ich, ob sich digitale Dienstplanung für uns überhaupt lohnt?
7. Sind die Ergebnisse verbindlich oder eine Garantie?
8. Was ist der Unterschied zum Kostenrechner für Personalmanagement?
9. Werden meine Eingaben gespeichert oder an Ordio übermittelt?
10. Welche Ordio-Kosten werden im Modell berücksichtigt?

### Meta Tags

- **Title:** "ROI-Rechner Schichtplanung | Digitale Dienstplanung berechnen - Ordio"
- **Description:** "Berechne, ob sich Ordio für dein Team rechnet: Zeitersparnis, weniger Überstunden, weniger Fehler, schneller Payroll. In Minuten zum ROI."
- **Keywords:** ROI Rechner Schichtplanung, dienstplanung roi, roi rechner schichtplanung, digitale Dienstplanung lohnt sich, HR Software ROI, schichtplanung software kosten nutzen, Ordio ROI, zeiterfassung ROI

### Schema Markup

- **WebApplication schema:** Yes
- **FAQPage schema:** Yes
- **HowTo schema:** Yes
- **BreadcrumbList schema:** Yes

### Internal Linking

- Links to Ordio product pages
- Links to related tools (Kostenrechner)
- Link count: ~3-5 internal links

## 2026 Update Requirements

### Immediate Updates (Required for Jan 1, 2026)

**Constants/Values:**

- ✅ Ordio Pricing: Verify 2026 pricing (Starter €89, Plus €129, Pro €149)
- ✅ Payroll Plus Pricing: Verify 2026 pricing (€15 per payslip)
- ✅ Legal Metrics: Update legal information section (line 2634 shows "2025")
  - Mindestlohn: Update to 2026 value (currently shows €12.82/hour for 2026)
  - Minijob-Grenze: Update to 2026 value (currently shows €603/month for 2026)
  - BBG: Update to 2026 value (currently shows €8,050)
- ✅ Default reduction rates: Verify still accurate
- ✅ Update JavaScript comments from "2025" to "2026" (if any)

**Content:**

- ✅ Legal Information Section: Update "Rechtliche Grundlagen 2026" to "2026" (line 2634)
- ✅ FAQs: Datengetriebener Refresh 2026-04-08 (`roi_rechner_schichtplanung.json`, 10 Fragen)

**Priority:** 🟡 MEDIUM (Legal metrics need update, pricing verification needed)

### Throughout 2026 Updates

**Scheduled Updates:**

- None scheduled (pricing and rates typically stable)

### Monitoring Requirements

- **Ordio Pricing:** Check for pricing updates
- **Legal Metrics:** Monitor for 2026 updates:
  - Mindestlohn (Minimum Wage)
  - Minijob-Grenze (Minijob Limit)
  - BBG (Beitragsbemessungsgrenze)
- **Industry Averages:** Check for updated industry data
- **Frequency:** Annually (January) or when pricing/metrics change

## Testing

### Test Cases

**Normal Cases:**

- Test 1: 25 employees, 1 location, Starter plan → Expected: Calculated ROI and payback
- Test 2: 100 employees, 5 locations, Pro plan → Expected: Higher savings, higher ROI
- Test 3: High overtime → Expected: Higher overtime savings
- Test 4: Payroll Plus enabled → Expected: Higher error reduction, higher costs

**Edge Cases:**

- Edge case 1: Zero overtime → Expected: Zero overtime savings
- Edge case 2: Payroll Plus disabled → Expected: Lower error reduction (max 35%)
- Edge case 3: VAT enabled → Expected: Higher total costs
- Edge case 4: Attrition enabled → Expected: Additional savings
- Edge case 5: Very high savings → Expected: ROI capped at 1000%
- Edge case 6: Very low savings → Expected: Payback capped at 60 months

### Browser Testing

- Chrome: ✅ Tested, working
- Firefox: ✅ Tested, working
- Safari: ✅ Tested, working
- Mobile: ✅ Tested, working

### Export Testing

- Excel: ❌ Not implemented
- PDF: ❌ Not implemented
- CSV: ❌ Not implemented

## Maintenance Notes

### Known Issues

- Inline JavaScript makes updates more difficult (consider extraction)
- Legal information section updated to "2026"
- Legal metrics (Mindestlohn, Minijob-Grenze, BBG) show 2026 values (need 2026 verification)

### Future Improvements

- Extract JavaScript to separate file for better maintainability
- Add export functionality (PDF/CSV)
- Add comparison mode (before/after scenarios)
- Add industry-specific templates
- Add URL parameter sharing for results
- Add chart visualizations for savings breakdown

### Related Tools

- **Kostenrechner:** Related cost calculation
- **Arbeitszeitrechner:** Related working time calculation

## References

### Official Sources

- **Ordio Pricing:** Official Ordio pricing information
- **Industry Averages:** Typical industry ROI data
- **Legal Metrics:** Official German labor law sources

### Documentation Files

- `BROWSER_TESTING_FRAMEWORK.md`: Browser testing guidelines
- `CODE_ANALYSIS_FRAMEWORK.md`: Code analysis guidelines
- `TOOL_DOCUMENTATION_TEMPLATE.md`: Documentation template
