Update HR KPI and finance dashboard docs
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,31 @@
|
||||
# Finance Dashboard Todo
|
||||
|
||||
Stand: 2026-05-15
|
||||
|
||||
Ziel: Aufbau eines modernen, uebersichtlichen Intranet-Dashboards fuer das Group Sales Reporting, zugaenglich fuer alle freigegebenen Benutzer.
|
||||
|
||||
## Todo
|
||||
|
||||
| Prio | Aufgabe | Status |
|
||||
| --- | --- | --- |
|
||||
| 1 | Fuehrendes CFO-Dokument verwenden: `FINANCE_CHEF_SUMMARY_2026-05-15.docx` | Offen |
|
||||
| 1 | Offene Finance-Entscheide mit Andreas/Finance durchgehen | Offen |
|
||||
| 1 | Italien-Abweichung klaeren: Berechnungsart, Deduplizierung, Intercompany | Offen |
|
||||
| 1 | Deutschland: finalen Jahresfile 2025 beschaffen | Offen |
|
||||
| 2 | UK/England: Jahresvollstaendigkeit und Restdifferenz pruefen | Offen |
|
||||
| 2 | CH/AT: Sollzuordnung und Trennung final bestaetigen | Offen |
|
||||
| 2 | Spanien und Oesterreich: kleinere Differenzen klaeren | Offen |
|
||||
| 2 | Intercompany-/2nd-party-Kundenliste final definieren | Offen |
|
||||
| 3 | Budgetkurse je Jahr als Quelle festlegen | Offen |
|
||||
| 3 | Dashboard-Sicht fuer CFO: nur Laender mit Abweichung und Handlungsbedarf anzeigen | In Arbeit |
|
||||
| 3 | Detailansicht je Land mit Berechnungsart und Pruefspur behalten | In Arbeit |
|
||||
| 3 | Freigabe-/Berechtigungskonzept fuer Intranet-Dashboard klaeren | Offen |
|
||||
|
||||
## Naechster Termin
|
||||
|
||||
Ziel im Termin:
|
||||
- Deutschland und Spanien muss finales Excel schicken (Rohali 2 mal nachgehakt warte auf finales File)
|
||||
- Grundlogik bestaetigen: Hauswaehrung, Nettofakturawert, Buchungsdatum, Berechnung pro Belegposition.
|
||||
- Offene Laenderabweichungen priorisieren.
|
||||
- Pro Land festlegen, welche Datenquelle und Berechnungslogik final gilt.
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# Email an Spanien: Abweichung Net Sales 2025
|
||||
|
||||
**Asunto:** Revision diferencia Net Sales 2025 - Espana
|
||||
|
||||
Hola,
|
||||
|
||||
En la reconciliacion de Net Sales 2025 para Espana hemos identificado una diferencia pendiente de aclarar contra el valor de referencia de Rhino / `check.xlsx`.
|
||||
|
||||
Resumen:
|
||||
|
||||
- Actual Espana: `3.082.320,18 EUR`
|
||||
- Referencia Rhino: `3.102.333,61 EUR`
|
||||
- Diferencia: `-20.013,43 EUR`
|
||||
|
||||
La diferencia no parece muy grande, pero antes de cerrar el dato necesitamos confirmar la causa.
|
||||
|
||||
Por favor, podeis revisar los siguientes puntos?
|
||||
|
||||
1. Periodo incluido en el fichero
|
||||
Confirmar que el fichero `Spain_Sales_2025.csv` contiene todo el ano 2025 completo.
|
||||
|
||||
2. Series incluidas
|
||||
Confirmar que las series `REG`, `LAT`, `PRO` y `REC` deben incluirse en el calculo de Net Sales 2025.
|
||||
|
||||
3. Abonos / Credit Notes
|
||||
Confirmar que los abonos estan incluidos correctamente y con signo negativo.
|
||||
|
||||
4. Criterio de fecha
|
||||
Confirmar que fecha debe utilizarse para la delimitacion del ano 2025: fecha de factura, fecha contable u otra fecha.
|
||||
|
||||
5. Importe correcto
|
||||
Confirmar si el campo utilizado como importe neto de ventas es el correcto para comparar contra Rhino / `check.xlsx`.
|
||||
|
||||
Objetivo: aclarar si la diferencia de `-20.013,43 EUR` se explica por periodo, series, abonos o por el campo de importe utilizado.
|
||||
|
||||
Gracias y saludos,
|
||||
@@ -0,0 +1,39 @@
|
||||
# Email an Italien: Abweichung Net Sales 2025
|
||||
|
||||
**Oggetto:** Verifica differenza Net Sales 2025 - Italia
|
||||
|
||||
Ciao,
|
||||
|
||||
nella riconciliazione dei Net Sales 2025 per l'Italia abbiamo identificato una differenza significativa rispetto al valore di riferimento Rhino / `check.xlsx`.
|
||||
|
||||
Riepilogo:
|
||||
|
||||
- Actual Italia: `14.704.336,29 EUR`
|
||||
- Riferimento Rhino: `7.669.840,00 EUR`
|
||||
- Differenza: `+7.034.496,29 EUR`
|
||||
|
||||
La differenza e molto rilevante. Prima di chiudere il dato dobbiamo confermare quale logica di calcolo e corretta per l'Italia.
|
||||
|
||||
Potete per favore verificare i seguenti punti?
|
||||
|
||||
1. Base di calcolo corretta
|
||||
Confermare quale valore deve essere usato per i Net Sales 2025: valore netto per riga/posizione, totale documento deduplicato oppure un'altra logica.
|
||||
|
||||
2. Totali documento vs. posizioni
|
||||
Verificare se i totali documento sono ripetuti su piu righe e quindi devono essere conteggiati una sola volta per documento.
|
||||
|
||||
3. Intercompany / 2nd-party
|
||||
Confermare quali clienti o transazioni devono essere esclusi come Intercompany o 2nd-party.
|
||||
|
||||
4. Note di credito / Credit Notes
|
||||
Confermare che le note di credito sono incluse correttamente e con segno negativo.
|
||||
|
||||
5. Criterio data
|
||||
Confermare quale data deve essere utilizzata per delimitare il 2025: data registrazione, data fattura o altra data.
|
||||
|
||||
6. Valuta
|
||||
Confermare che la valuta di confronto per l'Italia e `EUR`.
|
||||
|
||||
Obiettivo: capire se la differenza di `+7.034.496,29 EUR` deriva da doppio conteggio dei documenti, trattamento Intercompany, criteri data o dal campo importo utilizzato.
|
||||
|
||||
Grazie e saluti,
|
||||
@@ -0,0 +1,42 @@
|
||||
# Email an UK / England: Abweichung Net Sales 2025
|
||||
|
||||
**Subject:** Review difference Net Sales 2025 - UK
|
||||
|
||||
Hi,
|
||||
|
||||
In the Net Sales 2025 reconciliation for UK / England, we identified a difference against the Rhino / `check.xlsx` reference value.
|
||||
|
||||
Summary:
|
||||
|
||||
- Actual UK: `3,533,710.09 GBP`
|
||||
- Rhino reference: `3,749,865.00 GBP`
|
||||
- Difference: `-216,154.91 GBP`
|
||||
|
||||
The mapping has already been reviewed technically, but we still need to clarify the remaining difference before closing the 2025 value.
|
||||
|
||||
Could you please check the following points?
|
||||
|
||||
1. Full-year completeness
|
||||
Confirm that the UK source file/import contains the full year 2025 and not only a partial period.
|
||||
|
||||
2. Period included
|
||||
We currently see data from approximately `03.01.2025` to `22.12.2025`. Please confirm whether this is complete for 2025 or if transactions outside this range are missing.
|
||||
|
||||
3. Credit notes
|
||||
Confirm that credit notes are included correctly and with the correct negative sign.
|
||||
|
||||
4. Net sales field
|
||||
Confirm which column should be used as the net sales amount for comparison with Rhino / `check.xlsx`.
|
||||
|
||||
5. Discounts, freight or additional charges
|
||||
Please check whether discounts, freight, additional charges or other adjustments are included in the Rhino reference but not in the current import value, or vice versa.
|
||||
|
||||
6. 2nd-party / 3rd-party / Intercompany
|
||||
Confirm whether any customers or transactions should be excluded from the Net Sales 2025 value.
|
||||
|
||||
7. Currency
|
||||
Confirm that the correct comparison currency for UK is `GBP`.
|
||||
|
||||
Goal: clarify whether the difference of `-216,154.91 GBP` is caused by an incomplete period, credit notes, a different net sales field, adjustments, or 2nd-party/3rd-party handling.
|
||||
|
||||
Thanks and best regards,
|
||||
@@ -0,0 +1,57 @@
|
||||
# Finance: Welches Dokument gilt?
|
||||
|
||||
Stand: 2026-05-15
|
||||
|
||||
## Fuehrendes Dokument
|
||||
|
||||
Fuer den CFO-/Finance-Termin gilt:
|
||||
|
||||
```text
|
||||
docs/FINANCE_CHEF_SUMMARY_2026-05-15.docx
|
||||
```
|
||||
|
||||
Dieses Dokument ist die aktuellste CFO-Kurzfassung mit Ampel, Laendertabelle, Pruefquellen, Prioritaeten und empfohlenen Massnahmen.
|
||||
|
||||
## Geloeschte alte Fassung
|
||||
|
||||
Die alte Fassung `docs/FINANCE_CHEF_SUMMARY_2026-05-13.docx` wurde entfernt, weil sie durch die Version vom 2026-05-15 ersetzt ist.
|
||||
|
||||
## Entscheidbasis
|
||||
|
||||
Die fachlichen Entscheide stehen separat hier:
|
||||
|
||||
```text
|
||||
entscheide.md
|
||||
docs/FINANCE_ENTSCHEIDE.md
|
||||
```
|
||||
|
||||
Kurzfassung der wichtigsten Entscheide:
|
||||
|
||||
| Thema | Entscheid |
|
||||
| --- | --- |
|
||||
| Fuehrende Waehrung | Hauswaehrung je Land |
|
||||
| CHF-Sicht | Nur separat mit Budgetkursen |
|
||||
| Aggregation | Pro Artikel bzw. Belegposition |
|
||||
| Wertbasis | Nettofakturawert |
|
||||
| Jahresabgrenzung 2025 | Buchungsdatum |
|
||||
| Gutschriften / Storno | Separat ausweisen, positionsbasiert behandeln |
|
||||
| Intercompany / 2nd-party | Separat klassifizieren und als Auswahl/Sicht fuehren |
|
||||
| Indien | INR ist fuehrend |
|
||||
| Italien | Hauswaehrung, Intercompany separat pruefen |
|
||||
|
||||
## Wichtig fuer Rueckfragen
|
||||
|
||||
Falls im Termin gefragt wird, ob die Berechnungslogik schon entschieden ist:
|
||||
|
||||
> Ja. Die Grundlogik ist entschieden: Hauswaehrung, Nettofakturawert, Buchungsdatum und Berechnung pro Belegposition. Offen sind vor allem Datenvollstaendigkeit, Intercompany-Abgrenzung, Budgetkursquelle und die fachliche Freigabe einzelner Laenderabweichungen.
|
||||
|
||||
## Was noch nicht final ist
|
||||
|
||||
| Thema | Status |
|
||||
| --- | --- |
|
||||
| IT | Kritisch; grosse Abweichung, Berechnungsart/IC/Deduplizierung pruefen |
|
||||
| UK / EN | Hoch; Restdifferenz und Jahresvollstaendigkeit pruefen |
|
||||
| DE | Hoch; finaler Jahresfile fehlt, Sample nicht verwenden |
|
||||
| CH / AT | Hoch; Sollzuordnung und Trennung finalisieren |
|
||||
| ES / AT | Mittel; kleinere Differenzen klaeren |
|
||||
| FR / IN / US | Rechnerisch freigabefaehig |
|
||||
@@ -0,0 +1,239 @@
|
||||
# HR KPI Nachdokumentation 2026-05-13
|
||||
|
||||
## Ziel
|
||||
|
||||
Das HR KPI Cockpit wurde als separater, fachlich entkoppelter Reiter umgesetzt. Es nutzt PowerBI-M-/DAX-Logik nicht als generischen Interpreter, sondern als fachliche Vorlage, die in nachvollziehbare C#-Logik uebertragen wurde.
|
||||
|
||||
Der Reiter ist vom Finance-/Management-Cockpit getrennt. Er nutzt nur gemeinsame technische Infrastruktur wie Blazor, MudBlazor, DI, ClosedXML und bestehende Programmstruktur.
|
||||
|
||||
## Eingebaute HR KPI Funktion
|
||||
|
||||
Neue Navigation:
|
||||
|
||||
- `HR KPI` im Hauptmenue.
|
||||
- Route: `/hr-kpi`.
|
||||
|
||||
Neue zentrale Dateien:
|
||||
|
||||
- `Components/Pages/HrKpi.razor`
|
||||
- `Components/HrKpi/HrKpiDashboardTabs.razor`
|
||||
- `Models/HrKpiModels.cs`
|
||||
- `Services/HrKpiService.cs`
|
||||
- `Services/HrKpi/HrKpiDashboardBuilder.cs`
|
||||
- `TrafagSalesExporter.Tests/HrKpiServiceTests.cs`
|
||||
|
||||
## Datenquellen
|
||||
|
||||
Standard-Datenordner:
|
||||
|
||||
```text
|
||||
C:\temp
|
||||
```
|
||||
|
||||
Konfigurierbar ueber `appsettings.json`:
|
||||
|
||||
```json
|
||||
"HrKpi": {
|
||||
"DataFolder": "C:\\temp",
|
||||
"MainFile": "Saldiperstichdatum.xlsx",
|
||||
"TimeFile": "Exportkommengehen.xlsx",
|
||||
"SapFile": "HR_KPI_Export.xlsx",
|
||||
"AbsenceFile": "Abwesenheitinstunden.xlsx",
|
||||
"LeaverFile": "Personalausgeschieden.xlsx"
|
||||
}
|
||||
```
|
||||
|
||||
Verarbeitete Dateien:
|
||||
|
||||
- `Saldiperstichdatum.xlsx`: aktive Mitarbeitende, Saldi, Ferien, Organisation, Kostenstelle.
|
||||
- `Exportkommengehen.xlsx`: Arbeitszeitmodell, Sollzeit, Geburtsdatum.
|
||||
- `HR_KPI_Export.xlsx`: SAP-HR-Felder wie Beschaeftigungsgrad, Geschlecht, BU/NBU, Planstelle.
|
||||
- `Abwesenheitinstunden.xlsx`: Krankheit kurz/lang in Stunden.
|
||||
- `Personalausgeschieden.xlsx`: Austritte, Austrittsart, Austrittsdatum.
|
||||
|
||||
## Dashboard-Reiter
|
||||
|
||||
Das Cockpit zeigt folgende Tabs:
|
||||
|
||||
- `Ueberblick`
|
||||
- `Fluktuation`
|
||||
- `Absenzen`
|
||||
- `Zeit / Ferien`
|
||||
- `Mitarbeitende`
|
||||
- `Datenstatus`
|
||||
|
||||
Im Fluktuationsbereich wurden zusaetzliche Visualisierungen ergaenzt:
|
||||
|
||||
- Jahres-Fluktuations-Gauge
|
||||
- Austritts-Funnel
|
||||
- Donut nach Ausschlussgruenden
|
||||
- relevante Austritte nach Organisation
|
||||
- relevante Austritte pro Monat
|
||||
|
||||
## Filter
|
||||
|
||||
Aktuell vorhandene Filter:
|
||||
|
||||
- Datenordner
|
||||
- Austrittsjahr
|
||||
- Von Austritt
|
||||
- Bis Austritt
|
||||
- Organisation
|
||||
- Eintrittsjahr
|
||||
- Suche Name / Personalnummer
|
||||
- Kostenstelle
|
||||
- Mitarbeitertyp
|
||||
- Fluktuation
|
||||
- GLZ-Ampel
|
||||
- Restferien-Ampel
|
||||
|
||||
## Korrektur Austrittsjahr / Von-Bis
|
||||
|
||||
Problem:
|
||||
|
||||
- `Austrittsjahr` war als `int` modelliert.
|
||||
- Dadurch war immer ein Jahr gesetzt.
|
||||
- Leeren bzw. "alle Austrittsjahre" war nicht moeglich.
|
||||
- Aus Sicht UI wirkte es so, als ob leere Auswahl nicht uebernommen wird.
|
||||
|
||||
Umsetzung:
|
||||
|
||||
- `HrKpiOptions.Year` wurde von `int` auf `int?` geaendert.
|
||||
- `Austrittsjahr` ist in der UI jetzt ein `MudSelect<int?>` mit `Clearable`.
|
||||
- Die Jahresauswahl wird aus den vorhandenen Austrittsdaten gebaut.
|
||||
- Neues Result-Feld: `ExitYearOptions`.
|
||||
- Wenn `Austrittsjahr` leer ist, werden alle Austrittsjahre geladen.
|
||||
- Wenn `Von Austritt` oder `Bis Austritt` gesetzt ist, hat dieser Zeitraum Vorrang vor `Austrittsjahr`.
|
||||
|
||||
Regel:
|
||||
|
||||
```text
|
||||
Von/Bis gesetzt -> Austrittsdatum muss im Zeitraum liegen
|
||||
Von/Bis leer und Austrittsjahr gesetzt -> Austrittsjahr muss passen
|
||||
Von/Bis leer und Austrittsjahr leer -> alle Austritte
|
||||
```
|
||||
|
||||
Nach der Architektur-/Formelpruefung wurde zusaetzlich korrigiert:
|
||||
|
||||
- `Austrittsjahr` ist auch beim Start leer und wird nicht mehr automatisch mit dem aktuellen Kalenderjahr vorbelegt.
|
||||
- Bei leerem Austrittsjahr werden keine Jahres-/Quartals-/Monats-Fluktuationskennzahlen als Jahreswerte vorgetaeuscht; die Anzeige wird als `Fluktuation Auswahl` gefuehrt.
|
||||
- Bei Von/Bis oder Mehrjahresauswahl zeigt die Timeline Jahresgruppen, wenn kein eindeutiges einzelnes Auswertungsjahr vorliegt.
|
||||
- Die Fluktuationsberechnung nutzt fuer Mitarbeitendenfilter nur Felder, die in Mitarbeitendenbestand und Austrittsdaten vergleichbar sind: Organisation, Mitarbeitertyp, Eintrittsjahr und Suche.
|
||||
- Kostenstelle, GLZ und Restferien filtern aktive Mitarbeitende/Absenzen, aber nicht Fluktuation, weil die Austrittsdatei diese Felder nicht stabil enthaelt. Das Cockpit weist darauf hin.
|
||||
- Fluktuationsvisuals zaehlen Austritte distinct nach Personalnummer statt Zeilen.
|
||||
- Fluktuationsraten nutzen Headcount, nicht FTE.
|
||||
- `Headcount Monat` wird als Durchschnitt aus Monatsanfang und Monatsende berechnet.
|
||||
- `Avg Headcount Quartal` ist der Durchschnitt der Monats-Headcounts im Quartal.
|
||||
- `Avg Headcount Jahr` ist der Durchschnitt der Monats-Headcounts im Jahr.
|
||||
- `Headcount nach Organisation` zaehlt Personalnummern distinct und ignoriert leere Personalnummern.
|
||||
- Krankenquote nutzt neu `Krankheitstage / (FTE * 21 Tage)` statt `Krankheitstage / (Headcount * 21 Tage)`.
|
||||
|
||||
## Fluktuationslogik
|
||||
|
||||
Die Fluktuation wird aus den ausgeschiedenen Personen berechnet.
|
||||
|
||||
Grundlage gemaess `formeln.docx`:
|
||||
|
||||
- Monat: Arbeitnehmerkuendigungen des jeweiligen Monats / Headcount des Monats.
|
||||
- Quartal: Arbeitnehmerkuendigungen des aktuellen Quartals / durchschnittlicher Headcount des Quartals.
|
||||
- Hochrechnung Jahr: aktuelle Quartals-Fluktuation x 4.
|
||||
- Effektiv Jahr: Arbeitnehmerkuendigungen des gesamten Jahres / durchschnittlicher Headcount des Jahres.
|
||||
- Nenner ist Headcount der Festangestellten, nicht FTE.
|
||||
|
||||
Relevant ist ein Austritt, wenn:
|
||||
|
||||
- Austrittsart als Arbeitnehmer-/Mitarbeiterkuendigung erkannt wird.
|
||||
- Mitarbeitertyp nicht ausgeschlossen ist.
|
||||
- Austrittsgrund nicht als befristet, Pensionierung, Arbeitgeberkuendigung oder anderer Ausschlussgrund erkannt wird.
|
||||
|
||||
Ausgeschlossen werden unter anderem:
|
||||
|
||||
- Praktikant
|
||||
- Werkstudent
|
||||
- Aushilfe
|
||||
- Lehrling
|
||||
- befristeter Vertrag
|
||||
- Pensionierung/Rente
|
||||
- Kuendigung durch Trafag/Arbeitgeber
|
||||
|
||||
Zusaetzlich korrigiert:
|
||||
|
||||
- Rexx-Werte mit Umlaut wie `Kuendigung AN` werden trotz Originalschreibweise `Kündigung AN` als Arbeitnehmerkuendigung erkannt.
|
||||
- `Kuendigung AG` bleibt als Arbeitgeberkuendigung ausgeschlossen.
|
||||
- `Ruhestand` wird als Pensionierung ausgeschlossen.
|
||||
|
||||
## Architektur-Cleanup
|
||||
|
||||
Vorher:
|
||||
|
||||
- `HrKpiService` enthielt Import, Mapping, Filter, KPI-Berechnung, Visual-Daten und Excel-Parsing in einer grossen Klasse.
|
||||
- `HrKpi.razor` enthielt Route, Filter, alle Tabs, Tabellen, Visualisierungen und CSS.
|
||||
|
||||
Nachher:
|
||||
|
||||
- `HrKpiService.cs` ist nur noch DI-/Service-Fassade.
|
||||
- `HrKpiDashboardBuilder.cs` enthaelt die Build-Pipeline fuer Import, Mapping, Filter und KPI-Berechnung.
|
||||
- `HrKpi.razor` bleibt fuer Route, Filter und Laden zustaendig.
|
||||
- `HrKpiDashboardTabs.razor` enthaelt die Tabs, Tabellen, Fluktuationsvisuals und Styles.
|
||||
- HR-Datenquellen sind ueber `HrKpiDataSourceOptions` konfigurierbar.
|
||||
|
||||
## Tests
|
||||
|
||||
Neue HR-KPI-Regressionstests:
|
||||
|
||||
- Organisation-Filter wirkt auch auf Absenzen.
|
||||
- Von/Bis-Austrittsdatum hat Vorrang vor Austrittsjahr.
|
||||
- Leeres Austrittsjahr liefert Austritte aus allen Jahren.
|
||||
- Austrittsjahr ist standardmaessig leer.
|
||||
- Employee-only Filter verzerren die Fluktuationsbasis nicht.
|
||||
- Fluktuationsvisuals zaehlen distinct nach Personalnummer.
|
||||
- Rexx-Austrittsarten `Kündigung AN`, `Kündigung AG` und `Ruhestand` werden korrekt klassifiziert.
|
||||
- Fluktuationsraten verwenden durchschnittlichen Headcount statt aktuellen Stichtagsbestand.
|
||||
- Mitarbeitende ohne Personalnummer werden nicht im Distinct-Headcount gezaehlt.
|
||||
- FTE-Fallback aus Arbeitszeitmodell/Sollzeit wird verwendet, wenn SAP-Beschaeftigungsgrad fehlt.
|
||||
- Fluktuationsrelevanz und Visual-Daten werden klassifiziert.
|
||||
|
||||
Aktueller Teststand nach der Korrektur:
|
||||
|
||||
```text
|
||||
dotnet build .\TrafagSalesExporter.csproj --no-restore -p:UseAppHost=false --verbosity minimal
|
||||
dotnet test .\TrafagSalesExporter.Tests\TrafagSalesExporter.Tests.csproj --no-restore -p:UseAppHost=false --verbosity minimal
|
||||
```
|
||||
|
||||
Ergebnis:
|
||||
|
||||
- Build erfolgreich.
|
||||
- Tests erfolgreich: `69/69`.
|
||||
|
||||
Kontrollwert aus `C:\temp\Personalausgeschieden.xlsx`:
|
||||
|
||||
- Austritte total: `104`
|
||||
- `Kündigung AN`: `42`
|
||||
- `Kündigung AG`: `34`
|
||||
- Fluktuationsrelevant nach aktueller HR-Logik: `33`
|
||||
- Avg Headcount 2025 nach Intervalllogik: `211.3`
|
||||
- Fluktuation Jahr effektiv 2025: `15.6%`
|
||||
|
||||
## Offene fachliche Pruefpunkte
|
||||
|
||||
Diese Punkte sind nicht automatisch geloest und muessen fachlich von HR bestaetigt werden:
|
||||
|
||||
- Ob die Abgrenzung "fluktuationsrelevant" exakt der Trafag-HR-Definition entspricht.
|
||||
- Ob Arbeitnehmerkuendigungen anhand der vorhandenen Austrittsart-Texte vollstaendig erkannt werden.
|
||||
- Ob Praktikanten, Werkstudenten, Aushilfen und Lehrlinge immer aus der Fluktuation ausgeschlossen werden sollen.
|
||||
- Ob FTE-Fallback bei fehlendem SAP-Beschaeftigungsgrad fachlich akzeptiert ist.
|
||||
- Ob `8.4 Stunden = 1 Krankheitstag` als Standardumrechnung fuer alle relevanten Gruppen korrekt ist.
|
||||
- Ob GLZ- und Restferien-Ampeln mit den internen HR-Grenzwerten uebereinstimmen.
|
||||
|
||||
## Commit-Stand
|
||||
|
||||
Bereits erstellt:
|
||||
|
||||
- `20be752 Add HR KPI cockpit`
|
||||
- `1cd0ad9 Refactor HR KPI cockpit architecture`
|
||||
- `001e2a7 Commit pending finance and Power BI work`
|
||||
|
||||
Noch nicht committed zum Zeitpunkt dieser Nachdoku:
|
||||
|
||||
- Korrektur `Austrittsjahr` optional / Von-Bis Vorrang.
|
||||
- Diese Nachdokumentation.
|
||||
@@ -38,29 +38,29 @@ Die Power-Query-/DAX-Logik wurde nicht als Interpreter umgesetzt, sondern als C#
|
||||
|
||||
## Pruefpunkte mit moeglicher Abweichung
|
||||
|
||||
### 1. Fluktuationsnenner: Stichtags-Headcount statt Durchschnitt
|
||||
### 1. Fluktuationsnenner: Durchschnittlicher Headcount
|
||||
|
||||
Aktueller Reiter:
|
||||
|
||||
- `Headcount Festangestellt` wird aus dem aktuell geladenen Stichtagsbestand gerechnet.
|
||||
- `Avg Headcount Quartal` und `Avg Headcount Jahr` entsprechen aktuell faktisch ebenfalls diesem Stichtagswert.
|
||||
- `Headcount Monat` wird als Durchschnitt aus Monatsanfang und Monatsende gerechnet.
|
||||
- `Avg Headcount Quartal` ist der Durchschnitt der Monats-Headcounts im Quartal.
|
||||
- `Avg Headcount Jahr` ist der Durchschnitt der Monats-Headcounts im Jahr.
|
||||
- Die Berechnung nutzt Headcount, nicht FTE, und zaehlt nur Festangestellte.
|
||||
|
||||
Best Practice:
|
||||
|
||||
- Fluktuation sollte fuer Monat, Quartal und Jahr mit durchschnittlichem Headcount des jeweiligen Zeitraums gerechnet werden.
|
||||
- Bei stabiler Belegschaft ist der Unterschied klein.
|
||||
- Bei Wachstum, Abbau oder saisonalen Schwankungen kann der Unterschied relevant sein.
|
||||
- Das entspricht der Vorgabe aus `formeln.docx`.
|
||||
|
||||
Pruefen:
|
||||
|
||||
- Liefert Rexx/SAP monatliche Headcount-Snapshots?
|
||||
- Falls ja: Monatsdurchschnitt fuer Quartal/Jahr berechnen.
|
||||
- Falls nein: UI klar als `Stichtagsnahe Fluktuation` oder `Naeherung` beschriften.
|
||||
- Die aktuelle Berechnung rekonstruiert Monats-Headcounts aus Eintritts-/Austrittsdatum der aktiven Mitarbeitenden und der Austrittsdatei.
|
||||
- Echte historische Monats-Snapshots waeren fuer ein auditierbares Reporting noch genauer.
|
||||
|
||||
Status:
|
||||
|
||||
- fachlich akzeptabel als erste Naeherung
|
||||
- fuer offizielles HR-Reporting noch zu bestaetigen
|
||||
- fachlich deutlich naeher an `formeln.docx`
|
||||
- als Reporting-Definition mit HR bestaetigen, falls HR echte Monats-Snapshots verlangt
|
||||
|
||||
### 2. Freiwillige vs. unfreiwillige Austritte
|
||||
|
||||
@@ -85,25 +85,25 @@ Status:
|
||||
- HR-gepruefte Grundlogik vorhanden
|
||||
- Mappingliste muss bei neuen Austrittsarten gepflegt/validiert werden
|
||||
|
||||
### 3. Fluktuation Quartal/Jahr bei nur einem aktuellen Bestand
|
||||
### 3. Fluktuation Quartal/Jahr ohne echte Monats-Snapshots
|
||||
|
||||
Aktueller Reiter:
|
||||
|
||||
- Quartals-/Jahresraten werden ueber Austrittsdatum gefiltert.
|
||||
- Headcount bleibt aktueller Stichtagsbestand.
|
||||
- Headcount wird aus Eintritts-/Austrittsintervallen pro Monat rekonstruiert.
|
||||
|
||||
Risiko:
|
||||
|
||||
- Wenn der aktuelle Bestand z. B. Ende Jahr niedriger/hoeher ist als im Quartal, verzerrt das die historische Rate.
|
||||
- Wenn historische Korrekturen oder Rueckdatierungen nicht in den Dateien enthalten sind, koennen rekonstruierte Monatswerte von offiziellen HR-Snapshots abweichen.
|
||||
|
||||
Pruefen:
|
||||
|
||||
- Fuer Quartal/Jahr entweder echte historische Headcounts laden oder die Kennzahl explizit als operative Naeherung fuehren.
|
||||
- Falls HR monatliche Headcount-Snapshots liefert, diese spaeter als bevorzugte Quelle fuer den Nenner verwenden.
|
||||
|
||||
Status:
|
||||
|
||||
- Darstellung gut fuer operatives Cockpit
|
||||
- nicht automatisch als auditierbare Jahreskennzahl verwenden
|
||||
- operativ passend zur Formel in `formeln.docx`
|
||||
- fuer Audit/Abschluss mit HR-Snapshot abgleichen
|
||||
|
||||
### 4. Absenzenquote: 21 Arbeitstage pauschal
|
||||
|
||||
@@ -304,12 +304,11 @@ Status:
|
||||
|
||||
## Empfehlung fuer die naechste Umsetzung
|
||||
|
||||
Noch keine Formel aendern, bevor die Kontrollwerte protokolliert sind.
|
||||
Die Fluktuationsformel wurde gemaess `formeln.docx` auf durchschnittlichen Headcount umgestellt. Vor produktiver Nutzung bleiben die Kontrollwerte mit HR/Power BI zu protokollieren.
|
||||
|
||||
Sinnvolle naechste technische Erweiterungen:
|
||||
|
||||
- Tab `Datenstatus` um Join-Trefferquoten erweitern.
|
||||
- Tab `Fluktuation` mit Kontrollwerten Power BI/HR anzeigen.
|
||||
- Absenzenquote optional auf vertragliche Sollzeit/FTE umstellen.
|
||||
- Kennzahlen mit `Naeherung` markieren, solange nur ein Stichtagsbestand statt historischer Monats-Snapshots vorhanden ist.
|
||||
|
||||
- Falls HR echte historische Monats-Snapshots liefert, diese als bevorzugte Quelle fuer den durchschnittlichen Headcount nutzen.
|
||||
|
||||
Reference in New Issue
Block a user