Xolib Score -- Spezifikation v1¶
Format: DOCX
Datei: docs/input/xolib_score_spezifikation.docx
Abgeloest durch v2: Xolib Score v2 Spezifikation
Ueberblick¶
Der Xolib Score ist ein objektiver, datengetriebener Gebaeude-Bewertungsindex von 0 bis 100. Er aggregiert Echtzeit-Daten aus der gesamten Plattform und berechnet taeglich (02:00 Uhr via Background Job) einen aktualisierten Score pro Property. Strategisch ist er das wichtigste Feature -- nicht als UI-Element, sondern als Daten-Asset und zukuenftiger B2B-Umsatzstrom fuer Banken, Versicherungen und Investoren.
Die fuenf Kategorien¶
| Kategorie | Gewicht | Was gemessen wird | Datenquellen v1 |
|---|---|---|---|
| Substanz | 25% | Bauqualitaet, Alter, Sanierungsstand | Baujahr, Renovierungshistorie, Heizungsalter (manuell) |
| Technologie | 25% | Energieeffizienz, Smart-Ausstattung | Energiezertifikat (A-G), Heizungstyp, Glasfaser ja/nein |
| Ertrag | 25% | Belegung, Zahlungsverhalten, Mietperformance | Belegungsquote, Zahlungshistorie, Leerstandstage |
| Compliance | 15% | Rechtsstatus, Zertifikate, Fristen | Freistellungsbescheinigungen, Versicherungsstatus, offene Fristen |
| Instandhaltung | 15% | Wartungsqualitaet, Ticket-Performance | Ticket-Loesung (Rate + Zeit), Wartungshistorie, Handwerker-Rating |
Datenbankschema¶
Drei Kern-Tabellen mit Row-Level-Security via tenantId:
- PropertyScore -- aktueller Score je Objekt (1:1 mit Property). Enthaelt totalScore, scoreGrade (A+ bis F), alle fuenf Kategorie-Scores, potentialScore/potentialGap, Trend-Deltas (30d/90d), riskFlags als JSON, dataCompleteness und confidenceScore.
- PropertyScoreHistory -- jede Berechnung wird versioniert gespeichert (Append-Only, Loeschen verboten). Enthaelt Snapshot aller Scores, changedFactors, changeReason und triggeredBy fuer vollstaendigen Audit-Trail.
- ScoreFactor -- einzelne Eingangsdaten je Berechnung. Pro Faktor: category, factorKey, rawValue, normalizedValue, weight, contribution, dataSource. Wichtig fuer Erklaerbarkeit und Bank-API-Transparenz.
Architektur-Grundprinzipien¶
- Score NIE manuell ueberschreibbar -- er ist berechnet, nicht gesetzt
- Jede Score-Aenderung wird versioniert mit Begruendung gespeichert
- Berechnung laeuft IMMER im Hintergrund -- nie synchron im API-Request
- Alle v1-Eingangsdaten kommen aus bestehenden Prisma-Modellen
- Mandanten-isoliert via tenantId -- kein Cross-Tenant ohne Pseudonymisierung
- Jede Kategorie unabhaengig berechenbar -- Teilscores auch ohne vollstaendige Daten sinnvoll
- Potenzialscore parallel zum Ist-Score: Was waere moeglich bei optimaler Verwaltung?
Grading-Skala¶
| Score | Grade |
|---|---|
| 90-100 | A+ |
| 80-89 | A |
| 65-79 | B |
| 50-64 | C |
| 35-49 | D |
| 0-34 | F |
Konfidenz-Dimension¶
Fehlende Daten senken nicht den Score, sondern die Konfidenz. Score und Konfidenz sind zwei unabhaengige Dimensionen. Unter 50% Konfidenz wird der Score als "Schaetzung" markiert.