import { MatchStrength, MatchStatus, RiskLevel } from '../domain/enums' import type { Match } from '../domain/match' export const mockMatches: Match[] = [ // ─────────────────────────────────────────────────────────────────────────── // need-001 · Innovatech AG · OFFICE Zürich · 600–1000m² · max CHF 45/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-001', propertyId: 'prop-001', needId: 'need-001', matchScore: 88, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 92, softFactorScore: 85, confidenceModifier: 0.97, dataQualityModifier: 0.92, totalScore: 88 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.20, score: 95, contribution: 19, explanation: '850m² liegt im Zielkorridor (600–1000m²)' }, { criterion: 'ÖV-Anbindung', weight: 0.20, score: 90, contribution: 18, explanation: '4 Min. zur S-Bahn, Kriterium erfüllt' }, { criterion: 'Standort', weight: 0.15, score: 88, contribution: 13.2, explanation: 'Zürich-West trifft bevorzugte Lage' }, ], negativeFactors: [ { criterion: 'Mietpreis', weight: 0.15, score: 76, contribution: 11.4, explanation: 'CHF 38/m² liegt über Wunschbudget von CHF 35/m²' }, ], tradeoffs: [ { criterion: 'Budget', concern: 'Mietpreis 8% über Budget-Maximum', severity: 'MEDIUM', mitigation: 'Verhandlungspotenzial vorhanden – Objekt leer seit 3 Monaten' }, ], explainabilitySummary: 'Starker Match aufgrund idealer Lage und Fläche. Einziger Vorbehalt ist der Mietpreis, der knapp über dem Budget liegt, aber verhandelbar erscheint.', confidenceLevel: 0.92, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], alternativeStrategies: [ { title: 'Kleinere Einheit im gleichen Gebäude', description: '650m² verfügbar ab Q3 2025, CHF 35/m²', expectedScore: 82 }, ], organizationId: 'org-wincasa', createdAt: '2025-05-10T08:00:00Z', updatedAt: '2025-05-10T08:00:00Z', }, { id: 'match-002', propertyId: 'prop-004', needId: 'need-001', matchScore: 62, matchStrength: MatchStrength.MODERATE, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 72, softFactorScore: 62, confidenceModifier: 0.68, dataQualityModifier: 0.55, totalScore: 62 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.20, score: 78, contribution: 15.6, explanation: '1150m² überschreitet Zielkorridor leicht (600–1000m²)' }, ], negativeFactors: [ { criterion: 'Objekttyp', weight: 0.25, score: 30, contribution: 7.5, explanation: 'MIXED-Fläche – Bedarf ist OFFICE, Typ-Mismatch' }, { criterion: 'Standort', weight: 0.20, score: 55, contribution: 11, explanation: 'Zürich Kreis 4 ist nicht Zürich-West – andere Lage' }, { criterion: 'Mietpreis', weight: 0.15, score: 40, contribution: 6, explanation: 'CHF 52/m² ist 15% über Budget-Maximum (CHF 45/m²)' }, { criterion: 'Datenqualität', weight: 0.10, score: 40, contribution: 4, explanation: 'Externe Quelle – Mietpreis und Verfügbarkeit nicht bestätigt' }, ], tradeoffs: [ { criterion: 'Objekttyp', concern: 'MIXED-Fläche statt reiner Bürofläche – Nutzungseinschränkungen möglich', severity: 'HIGH' }, { criterion: 'Budget', concern: 'Mietpreis 15% über Budget-Maximum', severity: 'HIGH' }, { criterion: 'Standort', concern: 'Kreis 4 ist nicht Zürich-West – längere Pendeldistanz für Innovatech-Team', severity: 'MEDIUM' }, ], explainabilitySummary: 'Schwacher Match aufgrund Typ-Mismatch (MIXED statt OFFICE), falschem Stadtteil (Kreis 4 ≠ Zürich-West) und Budgetüberschreitung von 15%.', confidenceLevel: 0.55, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Daten aus Drittquelle unvollständig', 'Mietpreis nicht verifiziert', 'Typ-Mismatch'], organizationId: 'org-wincasa', createdAt: '2025-05-10T08:05:00Z', updatedAt: '2025-05-10T08:05:00Z', }, { id: 'match-005', propertyId: 'prop-007', needId: 'need-001', matchScore: 86, matchStrength: MatchStrength.STRONG, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 89, softFactorScore: 83, confidenceModifier: 0.98, dataQualityModifier: 0.94, totalScore: 86 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.20, score: 92, contribution: 18.4, explanation: '720m² im Zielkorridor (600–1000m²)' }, { criterion: 'Standort', weight: 0.20, score: 90, contribution: 18, explanation: 'Zürich Oerlikon – bevorzugte Lage' }, { criterion: 'Budget', weight: 0.15, score: 90, contribution: 13.5, explanation: 'CHF 36/m² deutlich unter Maximum' }, ], negativeFactors: [ { criterion: 'Prestige', weight: 0.10, score: 72, contribution: 7.2, explanation: 'Prestige-Score 72 leicht unter Mindestanforderung 70 – ok' }, ], tradeoffs: [], explainabilitySummary: 'Starker Match in Zürich Oerlikon. Fläche, Budget und ÖV-Anbindung erfüllen alle Hauptkriterien. Bewertung analog zu prop-001.', confidenceLevel: 0.91, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-10T08:20:00Z', updatedAt: '2025-05-10T08:20:00Z', }, { id: 'match-006', propertyId: 'prop-013', needId: 'need-001', matchScore: 72, matchStrength: MatchStrength.MODERATE, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 80, softFactorScore: 68, confidenceModifier: 0.96, dataQualityModifier: 0.92, totalScore: 72 }, positiveFactors: [ { criterion: 'Standort', weight: 0.20, score: 88, contribution: 17.6, explanation: 'Zürich Altstetten – akzeptable Lage' }, { criterion: 'Budget', weight: 0.15, score: 95, contribution: 14.25, explanation: 'CHF 45/m² exakt im Budget-Limit' }, ], negativeFactors: [ { criterion: 'Nutzungsart', weight: 0.15, score: 60, contribution: 9, explanation: 'MIXED-Fläche, Bedarf ist OFFICE – Teileignung' }, { criterion: 'Fläche', weight: 0.20, score: 65, contribution: 13, explanation: '1300m² überschreitet Maximum von 1000m² deutlich' }, ], tradeoffs: [ { criterion: 'Nutzungsart', concern: 'Gemischt genutzte Fläche – Büroanteil nicht spezifiziert', severity: 'MEDIUM', mitigation: 'Aufteilung klären, evtl. nur Büroanteil mieten' }, ], explainabilitySummary: 'Moderater Match – Lage und Budget stimmen, aber die Fläche ist zu gross und der gemischte Nutzungstyp passt nur teilweise.', confidenceLevel: 0.82, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Büroanteil der Gesamtfläche unklar'], organizationId: 'org-wincasa', createdAt: '2025-05-10T08:25:00Z', updatedAt: '2025-05-10T08:25:00Z', }, { id: 'match-007', propertyId: 'prop-005', needId: 'need-001', matchScore: 59, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 82, softFactorScore: 66, confidenceModifier: 0.55, dataQualityModifier: 0.38, totalScore: 59 }, positiveFactors: [ { criterion: 'Standort', weight: 0.20, score: 90, contribution: 18, explanation: 'Zürich Technopark – bevorzugte Lage' }, { criterion: 'Fläche', weight: 0.20, score: 88, contribution: 17.6, explanation: '600m² an unterem Rand des Zielkorridors' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 28, contribution: 4.2, explanation: 'Probabilistisches Signal – kein bestätigtes Objekt' }, { criterion: 'Datenqualität', weight: 0.10, score: 22, contribution: 2.2, explanation: 'Kritische Felder fehlen, Daten nicht verifiziert' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Signal nur 55% Wahrscheinlichkeit – keine Garantie', severity: 'HIGH', mitigation: 'Für Monitoring-Watchlist geeignet' }, ], explainabilitySummary: 'Lage und Fläche passen gut, aber die hohe Unsicherheit durch das probabilistische Signal zieht den Score deutlich nach unten.', confidenceLevel: 0.48, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Probabilistisches Signal', 'Kritische Daten fehlen'], organizationId: 'org-wincasa', createdAt: '2025-05-10T08:30:00Z', updatedAt: '2025-05-10T08:30:00Z', }, { id: 'match-008', propertyId: 'prop-023', needId: 'need-001', matchScore: 62, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 85, softFactorScore: 69, confidenceModifier: 0.54, dataQualityModifier: 0.36, totalScore: 62 }, positiveFactors: [ { criterion: 'Standort', weight: 0.20, score: 85, contribution: 17, explanation: 'Zürich-Nord / Seebach – bevorzugter Kanton ZH' }, { criterion: 'Budget', weight: 0.15, score: 92, contribution: 13.8, explanation: 'CHF 38/m² unter Maximum von CHF 45/m²' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 32, contribution: 4.8, explanation: '54% Signalwahrscheinlichkeit – unbestätigt' }, { criterion: 'Datenqualität', weight: 0.10, score: 20, contribution: 2, explanation: 'Probabilistisches Signal, Felder fehlen' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Auszug von aktuellem Mieter nicht bestätigt', severity: 'HIGH', mitigation: 'Als Frühindikator beobachten' }, ], explainabilitySummary: 'Gute Lage in Zürich mit passendem Budget, aber Future-Signal mit mittlerer Konfidenz. Empfehlung: Beobachten.', confidenceLevel: 0.46, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Auszug des Mieters nicht bestätigt', 'Daten unvollständig'], organizationId: 'org-wincasa', createdAt: '2025-05-10T08:35:00Z', updatedAt: '2025-05-10T08:35:00Z', }, { id: 'match-009', propertyId: 'prop-015', needId: 'need-001', matchScore: 55, matchStrength: MatchStrength.MODERATE, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 68, softFactorScore: 60, confidenceModifier: 0.70, dataQualityModifier: 0.60, totalScore: 55 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.20, score: 88, contribution: 17.6, explanation: '650m² im Zielkorridor' }, { criterion: 'Budget', weight: 0.15, score: 90, contribution: 13.5, explanation: 'CHF 38/m² unter Maximum' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.20, score: 35, contribution: 7, explanation: 'Luzern ist eine andere Stadt und ein anderer Kanton – nicht Zürich' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Luzern liegt 55 km von Zürich – kein Pendeln möglich', severity: 'HIGH' }, ], explainabilitySummary: 'Luzern passt nicht zu Zürich-West. Trotz passendem Budget und Fläche ist die Lage nicht kompatibel.', confidenceLevel: 0.55, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Standort ausserhalb bevorzugter Region'], organizationId: 'org-wincasa', createdAt: '2025-05-10T08:40:00Z', updatedAt: '2025-05-10T08:40:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-002 · Schweizer Logistik GmbH · LOGISTICS Basel · 1500–4000m² · max CHF 18/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-003', propertyId: 'prop-002', needId: 'need-002', matchScore: 91, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 94, softFactorScore: 89, confidenceModifier: 0.99, dataQualityModifier: 0.96, totalScore: 91 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.25, score: 96, contribution: 24, explanation: '2400m² im Zielkorridor (1500–4000m²)' }, { criterion: 'Autobahnanschluss', weight: 0.20, score: 92, contribution: 18.4, explanation: 'A2-Anschluss ca. 4 Min., Kriterium erfüllt' }, { criterion: 'Budget', weight: 0.20, score: 88, contribution: 17.6, explanation: 'CHF 14/m² liegt unter Maximum von CHF 18/m²' }, ], negativeFactors: [ { criterion: 'Erweiterungspotenzial', weight: 0.05, score: 70, contribution: 3.5, explanation: '800m² Erweiterung möglich, aber begrenzt' }, ], tradeoffs: [], explainabilitySummary: 'Sehr starker Match. Fläche, Anbindung und Budget passen exzellent. Hohe Datenqualität aus internem Portfolio bestätigt Verlässlichkeit.', confidenceLevel: 0.96, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-10T08:10:00Z', updatedAt: '2025-05-10T08:10:00Z', }, { id: 'match-004', propertyId: 'prop-006', needId: 'need-002', matchScore: 47, matchStrength: MatchStrength.WEAK, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 70, softFactorScore: 40, confidenceModifier: 0.48, dataQualityModifier: 0.30, totalScore: 47 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.25, score: 85, contribution: 21.25, explanation: '3200m² im erweiterten Zielkorridor' }, { criterion: 'Standort', weight: 0.20, score: 72, contribution: 14.4, explanation: 'Reinach BL ist eine bevorzugte Region' }, ], negativeFactors: [ { criterion: 'Confidence', weight: 0.15, score: 20, contribution: 3, explanation: 'Nur 48% Signalwahrscheinlichkeit – kein bestätigtes Objekt' }, { criterion: 'Datenqualität', weight: 0.10, score: 15, contribution: 1.5, explanation: 'Mehrere kritische Felder fehlen, Schätzwerte' }, { criterion: 'Timing', weight: 0.15, score: 50, contribution: 7.5, explanation: 'Verfügbarkeit erst Q2 2026, spät für Anforderung' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Probabilistisches Future-Signal – keine Garantie auf Verfügbarkeit', severity: 'HIGH', mitigation: 'Für Monitoring-Watchlist geeignet' }, ], explainabilitySummary: 'Schwacher Match aufgrund hoher Unsicherheit. Das Signal ist interessant als Frühindikator, aber nicht als aktive Option geeignet.', confidenceLevel: 0.38, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Probabilistisches Signal ohne Bestätigung', 'Mietpreis geschätzt'], alternativeStrategies: [ { title: 'Signal beobachten', description: 'Als Future-Availability-Signal auf Watchlist setzen und in 3 Monaten neu evaluieren' }, ], organizationId: 'org-wincasa', createdAt: '2025-05-10T08:15:00Z', updatedAt: '2025-05-10T08:15:00Z', }, { id: 'match-010', propertyId: 'prop-014', needId: 'need-002', matchScore: 87, matchStrength: MatchStrength.STRONG, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 90, softFactorScore: 84, confidenceModifier: 0.98, dataQualityModifier: 0.94, totalScore: 87 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.25, score: 95, contribution: 23.75, explanation: '3100m² optimal im Zielkorridor (1500–4000m²)' }, { criterion: 'Standort', weight: 0.20, score: 82, contribution: 16.4, explanation: 'Pratteln BL – Kanton BL, direkte Nähe zu Basel' }, { criterion: 'Budget', weight: 0.20, score: 88, contribution: 17.6, explanation: 'CHF 15/m² unter Maximum von CHF 18/m²' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.05, score: 65, contribution: 3.25, explanation: 'Nicht direkt Basel-Stadt, aber akzeptable Region' }, ], tradeoffs: [], explainabilitySummary: 'Sehr starker Match. Logistikfläche in Pratteln erfüllt alle Hauptkriterien. Verfügbarkeit sofort, Daten vollständig.', confidenceLevel: 0.93, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-10T09:00:00Z', updatedAt: '2025-05-10T09:00:00Z', }, { id: 'match-011', propertyId: 'prop-016', needId: 'need-002', matchScore: 93, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 95, softFactorScore: 92, confidenceModifier: 0.83, dataQualityModifier: 0.76, totalScore: 93 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.25, score: 92, contribution: 23, explanation: '2200m² im Zielkorridor' }, { criterion: 'Standort', weight: 0.20, score: 78, contribution: 15.6, explanation: 'Muttenz BL – gleicher Kanton, gute Lage' }, { criterion: 'Budget', weight: 0.20, score: 85, contribution: 17, explanation: 'CHF 16/m² innerhalb Budget' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 58, contribution: 5.8, explanation: 'Externe Quelle – Hallenhöhe nicht bestätigt' }, ], tradeoffs: [ { criterion: 'Datenqualität', concern: 'Hallenhöhe und Andienung aus externer Quelle – Vor-Ort-Check empfohlen', severity: 'MEDIUM' }, ], explainabilitySummary: 'Solider Marktinserat-Match in Muttenz. Fläche und Budget stimmen, Datenverifikation ausstehend.', confidenceLevel: 0.72, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Hallenhöhe nicht bestätigt', 'Externe Quelle'], organizationId: 'org-wincasa', createdAt: '2025-05-10T09:05:00Z', updatedAt: '2025-05-10T09:05:00Z', }, { id: 'match-012', propertyId: 'prop-009', needId: 'need-002', matchScore: 55, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 74, softFactorScore: 60, confidenceModifier: 0.98, dataQualityModifier: 0.95, totalScore: 55 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.25, score: 85, contribution: 21.25, explanation: '1800m² im Zielkorridor' }, { criterion: 'Budget', weight: 0.20, score: 90, contribution: 18, explanation: 'CHF 13/m² weit unter Maximum' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.20, score: 35, contribution: 7, explanation: 'Winterthur liegt ausserhalb Präferenz Basel-Region' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Winterthur statt Basel – komplett andere Region, kein A2-Anschluss', severity: 'HIGH' }, ], explainabilitySummary: 'Fläche und Preis passen hervorragend, aber Winterthur ist nicht die gewünschte Logistik-Region Basel. Nur als Alternativoption.', confidenceLevel: 0.82, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Standort ausserhalb Präferenzregion'], organizationId: 'org-wincasa', createdAt: '2025-05-10T09:10:00Z', updatedAt: '2025-05-10T09:10:00Z', }, { id: 'match-013', propertyId: 'prop-024', needId: 'need-002', matchScore: 63, matchStrength: MatchStrength.MODERATE, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 86, softFactorScore: 70, confidenceModifier: 0.52, dataQualityModifier: 0.35, totalScore: 63 }, positiveFactors: [ { criterion: 'Standort', weight: 0.20, score: 95, contribution: 19, explanation: 'Basel Hafen – exakte Präferenzlage' }, { criterion: 'Fläche', weight: 0.25, score: 88, contribution: 22, explanation: '2600m² im Zielkorridor' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 32, contribution: 4.8, explanation: 'Neubau-Signal – Fertigstellung Q2 2026' }, { criterion: 'Datenqualität', weight: 0.10, score: 25, contribution: 2.5, explanation: 'Mieterkonditionen noch nicht bekannt' }, ], tradeoffs: [ { criterion: 'Timing', concern: 'Fertigstellung Juli 2026 – möglicherweise zu spät', severity: 'MEDIUM', mitigation: 'Voranmietung prüfen' }, ], explainabilitySummary: 'Sehr gute Lage direkt am Basler Hafen. Als Neubau mit hoher Bauwahrscheinlichkeit auf Shortlist geeignet.', confidenceLevel: 0.44, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Fertigstellung abhängig von Baufortschritt'], organizationId: 'org-wincasa', createdAt: '2025-05-10T09:15:00Z', updatedAt: '2025-05-10T09:15:00Z', }, { id: 'match-014', propertyId: 'prop-029', needId: 'need-002', matchScore: 56, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 79, softFactorScore: 63, confidenceModifier: 0.46, dataQualityModifier: 0.31, totalScore: 56 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.25, score: 90, contribution: 22.5, explanation: '3500m² im Zielkorridor' }, { criterion: 'Budget', weight: 0.20, score: 92, contribution: 18.4, explanation: 'CHF 13/m² deutlich unter Maximum' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 28, contribution: 4.2, explanation: 'Nur 50% Wahrscheinlichkeit, kein bestätigter Auszug' }, { criterion: 'Standort', weight: 0.20, score: 60, contribution: 12, explanation: 'Frenkendorf BL – gleicher Kanton, aber nicht Basel-Stadt' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Probabilistisches Signal – Auszug unbestätigt', severity: 'HIGH' }, ], explainabilitySummary: 'Gleicher Kanton, gutes Preis-Leistungs-Verhältnis, aber Future-Signal mit niedriger Konfidenz. Als Watchlist-Kandidat geeignet.', confidenceLevel: 0.40, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Auszug unbestätigt', 'Konditionen unbekannt'], organizationId: 'org-wincasa', createdAt: '2025-05-10T09:20:00Z', updatedAt: '2025-05-10T09:20:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-003 · Pharma Holding AG · OFFICE Basel · 500–800m² · max CHF 40/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-015', propertyId: 'prop-008', needId: 'need-003', matchScore: 85, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 88, softFactorScore: 82, confidenceModifier: 0.97, dataQualityModifier: 0.93, totalScore: 85 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 95, contribution: 23.75, explanation: 'Basel Dreispitz – exakte Präferenzlage' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 32/m² deutlich unter Maximum CHF 40/m²' }, { criterion: 'Prestige', weight: 0.12, score: 70, contribution: 8.4, explanation: 'Prestige 70 erfüllt Mindestanforderung' }, ], negativeFactors: [ { criterion: 'Fläche', weight: 0.20, score: 72, contribution: 14.4, explanation: '900m² liegt über Maximum 800m² – etwas zu gross' }, ], tradeoffs: [ { criterion: 'Fläche', concern: '900m² leicht über Maximum, möglicherweise Untereinheit verhandelbar', severity: 'LOW' }, ], explainabilitySummary: 'Starker Match in Basel. Prestige, Budget und Lage stimmen. Fläche minimal über Wunschgrösse, aber verhandelbar.', confidenceLevel: 0.90, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-11T08:00:00Z', updatedAt: '2025-05-11T08:00:00Z', }, { id: 'match-016', propertyId: 'prop-007', needId: 'need-003', matchScore: 52, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 72, softFactorScore: 60, confidenceModifier: 0.98, dataQualityModifier: 0.94, totalScore: 52 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.20, score: 90, contribution: 18, explanation: '720m² im Zielkorridor' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 36/m² unter Maximum CHF 40/m²' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'Zürich statt Basel – andere Stadt, anderer Kanton' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Zürich ist nicht im Präferenzgebiet Basel/Allschwil', severity: 'HIGH' }, ], explainabilitySummary: 'Fläche und Preis stimmen, aber Zürich entspricht nicht dem Standortbedarf Basel. Nur wenn Flexibilität vorhanden.', confidenceLevel: 0.86, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Standortanforderung nicht erfüllt'], organizationId: 'org-wincasa', createdAt: '2025-05-11T08:05:00Z', updatedAt: '2025-05-11T08:05:00Z', }, { id: 'match-017', propertyId: 'prop-018', needId: 'need-003', matchScore: 52, matchStrength: MatchStrength.WEAK, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 62, softFactorScore: 54, confidenceModifier: 0.68, dataQualityModifier: 0.57, totalScore: 52 }, positiveFactors: [ { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 31/m² deutlich unter Maximum' }, { criterion: 'Fläche', weight: 0.20, score: 88, contribution: 17.6, explanation: '780m² nahe am Zielkorridor' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'Bern liegt 90 km von Basel – kritisches Ausschlusskriterium' }, { criterion: 'Datenqualität', weight: 0.10, score: 42, contribution: 4.2, explanation: 'Externe Quelle, Renovierungsstand unklar' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Bern liegt 90 km von Basel – keine Nähe zur Pharma-Industrie-Achse', severity: 'HIGH' }, ], explainabilitySummary: 'Bern liegt 90 km von Basel entfernt. Lage ist kritisches Ausschlusskriterium trotz passender Fläche und Budget.', confidenceLevel: 0.54, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Standort ausserhalb Präferenzregion', 'Externe Quelle'], organizationId: 'org-wincasa', createdAt: '2025-05-11T08:10:00Z', updatedAt: '2025-05-11T08:10:00Z', }, { id: 'match-018', propertyId: 'prop-005', needId: 'need-003', matchScore: 38, matchStrength: MatchStrength.WEAK, status: MatchStatus.REJECTED, scoreBreakdown: { hardMatchScore: 61, softFactorScore: 45, confidenceModifier: 0.55, dataQualityModifier: 0.38, totalScore: 38 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.20, score: 88, contribution: 17.6, explanation: '600m² im Zielkorridor' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'Zürich statt Basel – 80km Entfernung' }, { criterion: 'Budget', weight: 0.20, score: 70, contribution: 14, explanation: 'CHF 42/m² liegt 5% über Budget-Maximum' }, { criterion: 'Konfidenz', weight: 0.15, score: 25, contribution: 3.75, explanation: 'Future-Signal, kein bestätigtes Objekt' }, ], tradeoffs: [ { criterion: 'Standort & Verfügbarkeit', concern: 'Falscher Standort + Future-Signal macht diesen Match nicht empfehlenswert', severity: 'HIGH' }, ], explainabilitySummary: 'Zu viele kritische Mängel: falscher Standort, Budget leicht über Maximum, und probabilistisches Signal. Abgelehnt.', confidenceLevel: 0.36, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Falscher Standort', 'Future-Signal', 'Budget knapp'], organizationId: 'org-wincasa', createdAt: '2025-05-11T08:15:00Z', updatedAt: '2025-05-11T08:15:00Z', }, { id: 'match-019', propertyId: 'prop-015', needId: 'need-003', matchScore: 42, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 56, softFactorScore: 44, confidenceModifier: 0.70, dataQualityModifier: 0.60, totalScore: 42 }, positiveFactors: [ { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 38/m² unter Maximum CHF 40/m²' }, { criterion: 'Fläche', weight: 0.20, score: 88, contribution: 17.6, explanation: '650m² im Zielkorridor' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'Luzern liegt ausserhalb Region Basel' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Luzern ist nicht im Präferenzgebiet, 100km von Basel', severity: 'HIGH' }, ], explainabilitySummary: 'Budget und Fläche passen, jedoch ist Luzern nicht mit dem Bedarf Raum Basel vereinbar.', confidenceLevel: 0.56, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Standort ausserhalb Präferenz'], organizationId: 'org-wincasa', createdAt: '2025-05-11T08:20:00Z', updatedAt: '2025-05-11T08:20:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-004 · Retailer Zürich AG · RETAIL Zürich · 200–500m² · max CHF 100/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-020', propertyId: 'prop-010', needId: 'need-004', matchScore: 91, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 94, softFactorScore: 88, confidenceModifier: 0.99, dataQualityModifier: 0.96, totalScore: 91 }, positiveFactors: [ { criterion: 'Standort', weight: 0.35, score: 98, contribution: 34.3, explanation: 'Zürich Löwenplatz – exakte Innenstadtlage, Topstandort' }, { criterion: 'Fläche', weight: 0.15, score: 90, contribution: 13.5, explanation: '285m² im Zielkorridor' }, { criterion: 'Prestige', weight: 0.15, score: 95, contribution: 14.25, explanation: 'Prestige 95 – Topstandort erfüllt Anforderung' }, ], negativeFactors: [ { criterion: 'Budget', weight: 0.15, score: 80, contribution: 12, explanation: 'CHF 88/m² unter Maximum CHF 100/m², leicht over avg' }, ], tradeoffs: [], explainabilitySummary: 'Exzellenter Match. Zürich Löwenplatz ist ein Erstklasstandort mit höchster Passantenfrequenz. Alle Kriterien erfüllt.', confidenceLevel: 0.96, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-11T09:00:00Z', updatedAt: '2025-05-11T09:00:00Z', }, { id: 'match-021', propertyId: 'prop-017', needId: 'need-004', matchScore: 91, matchStrength: MatchStrength.STRONG, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 94, softFactorScore: 90, confidenceModifier: 0.81, dataQualityModifier: 0.74, totalScore: 91 }, positiveFactors: [ { criterion: 'Standort', weight: 0.35, score: 94, contribution: 32.9, explanation: 'Zürich Löwenstrasse – Innenstadtlage' }, { criterion: 'Budget', weight: 0.15, score: 95, contribution: 14.25, explanation: 'CHF 95/m² unter Maximum' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 61, contribution: 6.1, explanation: 'Mietpreis aus externer Quelle, nicht bestätigt' }, ], tradeoffs: [ { criterion: 'Datenqualität', concern: 'Mietpreis und Vertragsdauer nicht bestätigt', severity: 'MEDIUM', mitigation: 'Verifizierung beim Vermieter empfohlen' }, ], explainabilitySummary: 'Sehr gute Lage in Zürich Innenstadt. Datenverifikation ausstehend, aber Standort und Preis stimmen.', confidenceLevel: 0.72, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Mietpreis nicht final bestätigt'], organizationId: 'org-wincasa', createdAt: '2025-05-11T09:05:00Z', updatedAt: '2025-05-11T09:05:00Z', }, { id: 'match-022', propertyId: 'prop-025', needId: 'need-004', matchScore: 62, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 85, softFactorScore: 69, confidenceModifier: 0.50, dataQualityModifier: 0.33, totalScore: 62 }, positiveFactors: [ { criterion: 'Standort', weight: 0.35, score: 90, contribution: 31.5, explanation: 'Zürich Niederdorf – Innenstadtlage, gute Passantenfrequenz' }, { criterion: 'Budget', weight: 0.15, score: 95, contribution: 14.25, explanation: 'CHF 92/m² unter Maximum' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 30, contribution: 4.5, explanation: '55% Signalwahrscheinlichkeit – unbestätigt' }, { criterion: 'Datenqualität', weight: 0.10, score: 20, contribution: 2, explanation: 'Future-Signal, kritische Felder fehlen' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Probabilistisches Signal – Auszug noch nicht bestätigt', severity: 'HIGH' }, ], explainabilitySummary: 'Gute Lage im Niederdorf, aber Future-Signal mit mittlerer Konfidenz. Empfehlung: Beobachten und bei Bestätigung priorisieren.', confidenceLevel: 0.42, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Auszug unbestätigt', 'Future-Signal'], organizationId: 'org-wincasa', createdAt: '2025-05-11T09:10:00Z', updatedAt: '2025-05-11T09:10:00Z', }, { id: 'match-023', propertyId: 'prop-003', needId: 'need-004', matchScore: 84, matchStrength: MatchStrength.STRONG, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 89, softFactorScore: 82, confidenceModifier: 0.77, dataQualityModifier: 0.69, totalScore: 84 }, positiveFactors: [ { criterion: 'Budget', weight: 0.15, score: 95, contribution: 14.25, explanation: 'CHF 95/m² unter Maximum CHF 100/m²' }, { criterion: 'Prestige', weight: 0.15, score: 92, contribution: 13.8, explanation: 'Berner Bahnhofstrasse – Top-Prestige' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.35, score: 35, contribution: 12.25, explanation: 'Bern statt Zürich Innenstadt – andere Stadt, anderer Kanton' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Bern ist nicht Zürich – Laufkundschaft aus anderem Einzugsgebiet', severity: 'HIGH' }, ], explainabilitySummary: 'Gutes Retail-Objekt in Bern, aber der Bedarf ist explizit Zürich Innenstadt. Standort ist ausschlaggebend für Ablehnung.', confidenceLevel: 0.60, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Standort nicht im Zielgebiet'], organizationId: 'org-wincasa', createdAt: '2025-05-11T09:15:00Z', updatedAt: '2025-05-11T09:15:00Z', }, { id: 'match-024', propertyId: 'prop-021', needId: 'need-004', matchScore: 72, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 81, softFactorScore: 70, confidenceModifier: 0.72, dataQualityModifier: 0.62, totalScore: 72 }, positiveFactors: [ { criterion: 'Prestige', weight: 0.15, score: 94, contribution: 14.1, explanation: 'Rue du Rhône Genf – sehr hoher Prestige-Score' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.35, score: 35, contribution: 12.25, explanation: 'Genf ist nicht Zürich – 280km Entfernung' }, { criterion: 'Budget', weight: 0.15, score: 68, contribution: 10.2, explanation: 'CHF 112/m² liegt 12% über Maximum CHF 100/m²' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Genf ist eine komplett andere Stadt als Zürich', severity: 'HIGH' }, { criterion: 'Budget', concern: 'Mietpreis 12% über Maximum', severity: 'MEDIUM' }, ], explainabilitySummary: 'Abgelehnt. Genf und Zürich sind nicht kompatibel – weder geografisch noch bezüglich des angestrebten Kundenkreises. Budget ebenfalls überschritten.', confidenceLevel: 0.52, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Falscher Standort', 'Budget überschritten'], organizationId: 'org-wincasa', createdAt: '2025-05-11T09:20:00Z', updatedAt: '2025-05-11T09:20:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-005 · TechStart GmbH · OFFICE Zug/Zürich · 300–700m² · max CHF 48/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-025', propertyId: 'prop-012', needId: 'need-005', matchScore: 91, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 94, softFactorScore: 88, confidenceModifier: 0.97, dataQualityModifier: 0.93, totalScore: 91 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 100, contribution: 25, explanation: 'Zug Zentrum – exakt bevorzugte Lage' }, { criterion: 'Fläche', weight: 0.20, score: 92, contribution: 18.4, explanation: '550m² im Zielkorridor (300–700m²)' }, { criterion: 'Budget', weight: 0.20, score: 90, contribution: 18, explanation: 'CHF 42/m² klar unter Maximum CHF 48/m²' }, ], negativeFactors: [], tradeoffs: [], explainabilitySummary: 'Exzellenter Match. Zug Zentrum trifft exakt den Standortwunsch. Budget, Fläche und Ausbaugrad erfüllen alle Anforderungen.', confidenceLevel: 0.92, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-11T10:00:00Z', updatedAt: '2025-05-11T10:00:00Z', }, { id: 'match-026', propertyId: 'prop-007', needId: 'need-005', matchScore: 83, matchStrength: MatchStrength.STRONG, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 86, softFactorScore: 80, confidenceModifier: 0.98, dataQualityModifier: 0.94, totalScore: 83 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 88, contribution: 22, explanation: 'Zürich Oerlikon – in bevorzugter Stadt Zürich' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 36/m² deutlich unter Maximum' }, ], negativeFactors: [ { criterion: 'Fläche', weight: 0.20, score: 72, contribution: 14.4, explanation: '720m² überschreitet Maximum von 700m² leicht' }, ], tradeoffs: [ { criterion: 'Fläche', concern: 'Leicht über Flächenmaximum – ggf. Untereinheit verhandelbar', severity: 'LOW' }, ], explainabilitySummary: 'Sehr guter Match in Zürich Oerlikon. Lage und Budget stimmen, Fläche minimal über Maximum.', confidenceLevel: 0.89, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-11T10:05:00Z', updatedAt: '2025-05-11T10:05:00Z', }, { id: 'match-027', propertyId: 'prop-020', needId: 'need-005', matchScore: 74, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 88, softFactorScore: 72, confidenceModifier: 0.70, dataQualityModifier: 0.60, totalScore: 74 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 100, contribution: 25, explanation: 'Zug – exakte Präferenzstadt' }, { criterion: 'Budget', weight: 0.20, score: 90, contribution: 18, explanation: 'CHF 44/m² unter Maximum CHF 48/m²' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 60, contribution: 6, explanation: 'Externe Quelle, Vertragsdauer fehlt' }, { criterion: 'Fläche', weight: 0.20, score: 68, contribution: 13.6, explanation: '820m² deutlich über Maximum 700m²' }, ], tradeoffs: [ { criterion: 'Fläche', concern: 'Fläche 17% über Maximum – Untereinheit prüfen', severity: 'MEDIUM' }, ], explainabilitySummary: 'Guter Standort Zug, Budget akzeptabel. Fläche überschreitet Maximum aber Datenqualität eingeschränkt.', confidenceLevel: 0.68, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Fläche zu gross', 'Externe Quelle'], organizationId: 'org-wincasa', createdAt: '2025-05-11T10:10:00Z', updatedAt: '2025-05-11T10:10:00Z', }, { id: 'match-028', propertyId: 'prop-001', needId: 'need-005', matchScore: 78, matchStrength: MatchStrength.MODERATE, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 81, softFactorScore: 75, confidenceModifier: 0.97, dataQualityModifier: 0.92, totalScore: 78 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 88, contribution: 22, explanation: 'Zürich-West – bevorzugte Stadt Zürich' }, { criterion: 'Budget', weight: 0.20, score: 90, contribution: 18, explanation: 'CHF 38/m² unter Maximum CHF 48/m²' }, ], negativeFactors: [ { criterion: 'Fläche', weight: 0.20, score: 62, contribution: 12.4, explanation: '850m² überschreitet Maximum 700m² deutlich' }, ], tradeoffs: [ { criterion: 'Fläche', concern: '850m² sind 21% über Maximum – Untereinheit oder Kompromiss nötig', severity: 'MEDIUM', mitigation: '650m²-Untereinheit im selben Gebäude verfügbar' }, ], explainabilitySummary: 'Zürich-West passt gut. Fläche zu gross, aber Untereinheit verfügbar. Budget und Ausbaugrad sehr gut.', confidenceLevel: 0.88, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Fläche über Maximum'], organizationId: 'org-wincasa', createdAt: '2025-05-11T10:15:00Z', updatedAt: '2025-05-11T10:15:00Z', }, { id: 'match-029', propertyId: 'prop-026', needId: 'need-005', matchScore: 64, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 87, softFactorScore: 71, confidenceModifier: 0.52, dataQualityModifier: 0.34, totalScore: 64 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 100, contribution: 25, explanation: 'Zug – exakter Standortwunsch' }, { criterion: 'Budget', weight: 0.20, score: 90, contribution: 18, explanation: 'CHF 43/m² unter Maximum CHF 48/m²' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 30, contribution: 4.5, explanation: '52% Signalwahrscheinlichkeit – Future-Signal' }, { criterion: 'Datenqualität', weight: 0.10, score: 22, contribution: 2.2, explanation: 'Kritische Felder fehlen' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Expansion-Signal – Fläche noch nicht auf dem Markt', severity: 'HIGH' }, ], explainabilitySummary: 'Perfekter Standort Zug, Budget stimmt. Als Future-Signal mit 52% Konfidenz – Watchlist-Kandidat.', confidenceLevel: 0.44, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Future-Signal', 'Daten unvollständig'], organizationId: 'org-wincasa', createdAt: '2025-05-11T10:20:00Z', updatedAt: '2025-05-11T10:20:00Z', }, { id: 'match-030', propertyId: 'prop-022', needId: 'need-005', matchScore: 73, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 82, softFactorScore: 71, confidenceModifier: 0.71, dataQualityModifier: 0.62, totalScore: 73 }, positiveFactors: [ { criterion: 'Budget', weight: 0.20, score: 100, contribution: 20, explanation: 'CHF 28/m² deutlich unter Maximum' }, { criterion: 'Fläche', weight: 0.20, score: 88, contribution: 17.6, explanation: '700m² exakt an der Obergrenze' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'St. Gallen ist nicht Zug oder Zürich – andere Kantone' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'St. Gallen liegt 80km von Zug entfernt – nicht im Präferenzgebiet', severity: 'HIGH' }, ], explainabilitySummary: 'Budget hervorragend, aber Standort St. Gallen passt nicht zu Zug/Zürich. Nur als äusserste Alternative.', confidenceLevel: 0.55, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Standort ausserhalb Präferenz'], organizationId: 'org-wincasa', createdAt: '2025-05-11T10:25:00Z', updatedAt: '2025-05-11T10:25:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-006 · Lager & Spedition AG · LOGISTICS Winterthur · 1200–3000m² · max CHF 16/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-031', propertyId: 'prop-009', needId: 'need-006', matchScore: 93, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 96, softFactorScore: 90, confidenceModifier: 0.98, dataQualityModifier: 0.95, totalScore: 93 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 100, contribution: 25, explanation: 'Winterthur Töss – exakte Präferenzlage' }, { criterion: 'Fläche', weight: 0.30, score: 92, contribution: 27.6, explanation: '1800m² im Zielkorridor (1200–3000m²)' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 13/m² unter Maximum CHF 16/m²' }, ], negativeFactors: [], tradeoffs: [], explainabilitySummary: 'Ausgezeichneter Match. Winterthur Töss trifft exakt den Standortwunsch. Alle Logistik-Kriterien erfüllt, hervorragende Datenqualität.', confidenceLevel: 0.96, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-11T11:00:00Z', updatedAt: '2025-05-11T11:00:00Z', }, { id: 'match-032', propertyId: 'prop-002', needId: 'need-006', matchScore: 56, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 76, softFactorScore: 62, confidenceModifier: 0.99, dataQualityModifier: 0.96, totalScore: 56 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.30, score: 90, contribution: 27, explanation: '2400m² im Zielkorridor' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 14/m² unter Maximum' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'Basel liegt ausserhalb Winterthur-Region, andere Stadt' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Basel ist nicht im Präferenzgebiet Winterthur', severity: 'HIGH' }, ], explainabilitySummary: 'Sehr gute Logistikfläche in Basel, aber falscher Standort. Nur wenn Winterthur nicht verfügbar.', confidenceLevel: 0.82, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Standort ausserhalb Region'], organizationId: 'org-wincasa', createdAt: '2025-05-11T11:05:00Z', updatedAt: '2025-05-11T11:05:00Z', }, { id: 'match-033', propertyId: 'prop-014', needId: 'need-006', matchScore: 52, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 72, softFactorScore: 58, confidenceModifier: 0.98, dataQualityModifier: 0.94, totalScore: 52 }, positiveFactors: [ { criterion: 'Budget', weight: 0.20, score: 92, contribution: 18.4, explanation: 'CHF 15/m² unter Maximum' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'Pratteln BL ist nicht Winterthur – andere Stadt, anderer Kanton' }, { criterion: 'Fläche', weight: 0.30, score: 68, contribution: 20.4, explanation: '3100m² überschreitet Maximum 3000m² leicht' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Pratteln liegt im Raum Basel, nicht im Raum Winterthur', severity: 'HIGH' }, ], explainabilitySummary: 'Falscher Standort für Winterthur-Bedarf. Nur als letzter Ausweg wenn Präferenz verhandelbar.', confidenceLevel: 0.85, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Standort nicht kompatibel'], organizationId: 'org-wincasa', createdAt: '2025-05-11T11:10:00Z', updatedAt: '2025-05-11T11:10:00Z', }, { id: 'match-034', propertyId: 'prop-016', needId: 'need-006', matchScore: 88, matchStrength: MatchStrength.STRONG, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 92, softFactorScore: 87, confidenceModifier: 0.79, dataQualityModifier: 0.73, totalScore: 88 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.30, score: 88, contribution: 26.4, explanation: '2200m² im Zielkorridor' }, { criterion: 'Budget', weight: 0.20, score: 85, contribution: 17, explanation: 'CHF 16/m² exakt im Maximum' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'Muttenz liegt im Raum Basel, nicht Winterthur' }, { criterion: 'Datenqualität', weight: 0.10, score: 58, contribution: 5.8, explanation: 'Hallenhöhe nicht verifiziert' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Muttenz BL ist nicht die Präferenz Winterthur', severity: 'HIGH' }, ], explainabilitySummary: 'Fläche und Budget stimmen, aber Muttenz ist 70km von Winterthur entfernt. Nicht kompatibel.', confidenceLevel: 0.58, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Standort nicht kompatibel', 'Hallenhöhe unklar'], organizationId: 'org-wincasa', createdAt: '2025-05-11T11:15:00Z', updatedAt: '2025-05-11T11:15:00Z', }, { id: 'match-035', propertyId: 'prop-029', needId: 'need-006', matchScore: 43, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 66, softFactorScore: 53, confidenceModifier: 0.46, dataQualityModifier: 0.31, totalScore: 43 }, positiveFactors: [ { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 13/m² unter Maximum' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'Frenkendorf BL nicht im Präferenzgebiet Winterthur' }, { criterion: 'Konfidenz', weight: 0.15, score: 28, contribution: 4.2, explanation: 'Future-Signal 50% Wahrscheinlichkeit' }, { criterion: 'Fläche', weight: 0.30, score: 65, contribution: 19.5, explanation: '3500m² über Maximum 3000m²' }, ], tradeoffs: [ { criterion: 'Kombination', concern: 'Falscher Standort + Future-Signal + zu grosse Fläche', severity: 'HIGH' }, ], explainabilitySummary: 'Drei kritische Faktoren: falscher Standort, zu grosse Fläche und Future-Signal. Keine Empfehlung.', confidenceLevel: 0.36, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Standort', 'Zu grosse Fläche', 'Future-Signal'], organizationId: 'org-wincasa', createdAt: '2025-05-11T11:20:00Z', updatedAt: '2025-05-11T11:20:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-007 · Creative Studios AG · MIXED Zürich/Bern · 800–1500m² · max CHF 55/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-036', propertyId: 'prop-013', needId: 'need-007', matchScore: 89, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 92, softFactorScore: 86, confidenceModifier: 0.96, dataQualityModifier: 0.92, totalScore: 89 }, positiveFactors: [ { criterion: 'Standort', weight: 0.20, score: 95, contribution: 19, explanation: 'Zürich Altstetten – bevorzugte Lage Zürich' }, { criterion: 'Nutzungsart', weight: 0.20, score: 100, contribution: 20, explanation: 'MIXED – exakt passend für Creative Studios' }, { criterion: 'Fläche', weight: 0.20, score: 90, contribution: 18, explanation: '1300m² im Zielkorridor (800–1500m²)' }, { criterion: 'Budget', weight: 0.15, score: 95, contribution: 14.25, explanation: 'CHF 45/m² klar unter Maximum CHF 55/m²' }, ], negativeFactors: [], tradeoffs: [], explainabilitySummary: 'Hervorragender Match. Gemischte Fläche in Zürich Altstetten erfüllt alle Anforderungen für Kreativagentur.', confidenceLevel: 0.90, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-11T12:00:00Z', updatedAt: '2025-05-11T12:00:00Z', }, { id: 'match-037', propertyId: 'prop-004', needId: 'need-007', matchScore: 76, matchStrength: MatchStrength.MODERATE, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 90, softFactorScore: 74, confidenceModifier: 0.68, dataQualityModifier: 0.55, totalScore: 76 }, positiveFactors: [ { criterion: 'Standort', weight: 0.20, score: 92, contribution: 18.4, explanation: 'Zürich Kreis 4 – gute Kreativlage in Zürich' }, { criterion: 'Nutzungsart', weight: 0.20, score: 100, contribution: 20, explanation: 'MIXED-Objekt passt exakt' }, { criterion: 'Budget', weight: 0.15, score: 88, contribution: 13.2, explanation: 'CHF 52/m² unter Maximum CHF 55/m²' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 55, contribution: 5.5, explanation: 'Externe Quelle – Daten unvollständig' }, ], tradeoffs: [ { criterion: 'Datenqualität', concern: 'Vertragsdauer und Nebenkosten nicht bekannt', severity: 'MEDIUM' }, ], explainabilitySummary: 'Guter Match in Zürich. MIXED-Objekt passt, Budget stimmt. Datenverifikation nötig.', confidenceLevel: 0.64, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Externe Quelle', 'Fehlende Felder'], organizationId: 'org-wincasa', createdAt: '2025-05-11T12:05:00Z', updatedAt: '2025-05-11T12:05:00Z', }, { id: 'match-038', propertyId: 'prop-007', needId: 'need-007', matchScore: 62, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 76, softFactorScore: 65, confidenceModifier: 0.98, dataQualityModifier: 0.94, totalScore: 62 }, positiveFactors: [ { criterion: 'Standort', weight: 0.20, score: 90, contribution: 18, explanation: 'Zürich Oerlikon – bevorzugte Lage' }, { criterion: 'Budget', weight: 0.15, score: 100, contribution: 15, explanation: 'CHF 36/m² deutlich unter Maximum' }, ], negativeFactors: [ { criterion: 'Nutzungsart', weight: 0.20, score: 60, contribution: 12, explanation: 'OFFICE-Fläche, Bedarf ist MIXED – Teileignung' }, { criterion: 'Fläche', weight: 0.20, score: 60, contribution: 12, explanation: '720m² unter Minimum von 800m²' }, ], tradeoffs: [ { criterion: 'Nutzungsart', concern: 'Bürofläche erlaubt ggf. keine gemischte Nutzung', severity: 'MEDIUM', mitigation: 'Nutzungsbewilligung prüfen' }, ], explainabilitySummary: 'Guter Standort und Budget, aber OFFICE-Fläche ist nicht ideal für MIXED-Bedarf und Fläche unter Minimum.', confidenceLevel: 0.80, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Nutzungsart nicht optimal', 'Fläche unter Minimum'], organizationId: 'org-wincasa', createdAt: '2025-05-11T12:10:00Z', updatedAt: '2025-05-11T12:10:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-008 · Berner Produzenten GmbH · PRODUCTION Bern · 2000–4000m² · max CHF 14/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-039', propertyId: 'prop-011', needId: 'need-008', matchScore: 92, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 95, softFactorScore: 89, confidenceModifier: 0.98, dataQualityModifier: 0.95, totalScore: 92 }, positiveFactors: [ { criterion: 'Standort', weight: 0.20, score: 100, contribution: 20, explanation: 'Bern Brünnen – exakte Präferenzlage' }, { criterion: 'Fläche', weight: 0.30, score: 95, contribution: 28.5, explanation: '2800m² optimal im Zielkorridor (2000–4000m²)' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 12/m² unter Maximum CHF 14/m²' }, ], negativeFactors: [], tradeoffs: [], explainabilitySummary: 'Ausgezeichneter Match. Produktionshalle Bern Brünnen erfüllt alle Anforderungen. Verfügbar sofort, vollständige Daten.', confidenceLevel: 0.94, riskLevel: RiskLevel.LOW, uncertaintyIndicators: [], organizationId: 'org-wincasa', createdAt: '2025-05-11T13:00:00Z', updatedAt: '2025-05-11T13:00:00Z', }, { id: 'match-040', propertyId: 'prop-027', needId: 'need-008', matchScore: 65, matchStrength: MatchStrength.MODERATE, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 88, softFactorScore: 72, confidenceModifier: 0.48, dataQualityModifier: 0.32, totalScore: 65 }, positiveFactors: [ { criterion: 'Standort', weight: 0.20, score: 82, contribution: 16.4, explanation: 'Münchenbuchsee – Kanton Bern, nahe Präferenzlage' }, { criterion: 'Fläche', weight: 0.30, score: 88, contribution: 26.4, explanation: '2200m² im Zielkorridor' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 12/m² unter Maximum' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 28, contribution: 4.2, explanation: 'Future-Signal 52% Wahrscheinlichkeit' }, { criterion: 'Datenqualität', weight: 0.10, score: 20, contribution: 2, explanation: 'Kritische Felder fehlen' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Auszug noch unbestätigt – Verfügbarkeit August 2026 unsicher', severity: 'HIGH', mitigation: 'Monitoring empfohlen, in 3 Monaten neu evaluieren' }, ], explainabilitySummary: 'Guter Standort im Kanton Bern, Fläche und Budget passen. Aber als Future-Signal mit mittlerer Konfidenz auf Watchlist.', confidenceLevel: 0.40, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Future-Signal', 'Auszug unbestätigt'], organizationId: 'org-wincasa', createdAt: '2025-05-11T13:05:00Z', updatedAt: '2025-05-11T13:05:00Z', }, { id: 'match-041', propertyId: 'prop-006', needId: 'need-008', matchScore: 44, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 67, softFactorScore: 51, confidenceModifier: 0.48, dataQualityModifier: 0.30, totalScore: 44 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.30, score: 85, contribution: 25.5, explanation: '3200m² im Zielkorridor' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.20, score: 60, contribution: 12, explanation: 'Reinach BL – anderer Kanton, nicht Bern' }, { criterion: 'Konfidenz', weight: 0.15, score: 25, contribution: 3.75, explanation: 'Future-Signal 48% Wahrscheinlichkeit' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Reinach BL liegt im Kanton BL, nicht im Kanton BE', severity: 'MEDIUM' }, { criterion: 'Verfügbarkeit', concern: 'Future-Signal – kein bestätigtes Objekt', severity: 'HIGH' }, ], explainabilitySummary: 'Fläche passt, aber Standort (Kanton BL statt BE) und Future-Signal sind Risikofaktoren. Schwacher Match.', confidenceLevel: 0.36, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Anderer Kanton', 'Future-Signal'], organizationId: 'org-wincasa', createdAt: '2025-05-11T13:10:00Z', updatedAt: '2025-05-11T13:10:00Z', }, { id: 'match-042', propertyId: 'prop-019', needId: 'need-008', matchScore: 85, matchStrength: MatchStrength.STRONG, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 90, softFactorScore: 83, confidenceModifier: 0.77, dataQualityModifier: 0.71, totalScore: 85 }, positiveFactors: [ { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 13/m² unter Maximum CHF 14/m²' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.20, score: 35, contribution: 7, explanation: 'Basel ist nicht Bern – andere Stadt, anderer Kanton' }, { criterion: 'Fläche', weight: 0.30, score: 62, contribution: 18.6, explanation: '1900m² leicht unter Minimum 2000m²' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Basel BS liegt 100km von Bern entfernt', severity: 'HIGH' }, ], explainabilitySummary: 'Falscher Standort und Fläche leicht unter Minimum. Budget stimmt, reicht aber nicht aus. Schwacher Match.', confidenceLevel: 0.54, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Falscher Standort', 'Fläche unter Minimum'], organizationId: 'org-wincasa', createdAt: '2025-05-11T13:15:00Z', updatedAt: '2025-05-11T13:15:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-009 · Geneva Commerce SA · RETAIL Genf · 150–400m² · max CHF 120/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-043', propertyId: 'prop-021', needId: 'need-009', matchScore: 83, matchStrength: MatchStrength.STRONG, status: MatchStatus.SHORTLISTED, scoreBreakdown: { hardMatchScore: 97, softFactorScore: 81, confidenceModifier: 0.70, dataQualityModifier: 0.59, totalScore: 83 }, positiveFactors: [ { criterion: 'Standort', weight: 0.35, score: 100, contribution: 35, explanation: 'Genf Rue du Rhône – exakter Standortwunsch' }, { criterion: 'Budget', weight: 0.15, score: 92, contribution: 13.8, explanation: 'CHF 112/m² unter Maximum CHF 120/m²' }, { criterion: 'Prestige', weight: 0.15, score: 94, contribution: 14.1, explanation: 'Prestige 94 – erfüllt hohe Anforderung 88' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 59, contribution: 5.9, explanation: 'Externe Quelle – Konditionen nicht bestätigt' }, ], tradeoffs: [ { criterion: 'Datenqualität', concern: 'Mietpreis und Vertragsdauer aus externer Quelle', severity: 'MEDIUM', mitigation: 'Direktkontakt mit Anbieter empfohlen' }, ], explainabilitySummary: 'Bester verfügbarer Match für Genf. Standort, Prestige und Budget stimmen. Datenverifikation ausstehend.', confidenceLevel: 0.66, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Konditionen nicht bestätigt'], organizationId: 'org-wincasa', createdAt: '2025-05-11T14:00:00Z', updatedAt: '2025-05-11T14:00:00Z', }, { id: 'match-044', propertyId: 'prop-010', needId: 'need-009', matchScore: 45, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 59, softFactorScore: 46, confidenceModifier: 0.99, dataQualityModifier: 0.96, totalScore: 45 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.15, score: 90, contribution: 13.5, explanation: '285m² im Zielkorridor' }, { criterion: 'Budget', weight: 0.15, score: 100, contribution: 15, explanation: 'CHF 88/m² deutlich unter Maximum' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.35, score: 35, contribution: 12.25, explanation: 'Zürich ist nicht Genf – andere Stadt, 280km' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Zürich und Genf haben komplett verschiedene Kundenpotenziale', severity: 'HIGH' }, ], explainabilitySummary: 'Sehr gute Qualität in Zürich, aber falscher Standort für einen Genfer Retailer. Nicht geeignet.', confidenceLevel: 0.86, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Falscher Standort'], organizationId: 'org-wincasa', createdAt: '2025-05-11T14:05:00Z', updatedAt: '2025-05-11T14:05:00Z', }, { id: 'match-045', propertyId: 'prop-017', needId: 'need-009', matchScore: 76, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 85, softFactorScore: 74, confidenceModifier: 0.73, dataQualityModifier: 0.64, totalScore: 76 }, positiveFactors: [ { criterion: 'Budget', weight: 0.15, score: 100, contribution: 15, explanation: 'CHF 95/m² unter Maximum CHF 120/m²' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.35, score: 35, contribution: 12.25, explanation: 'Zürich statt Genf – komplett andere Stadt' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Zürich ist geografisch und kulturell nicht der gesuchte Genfer Markt', severity: 'HIGH' }, ], explainabilitySummary: 'Budget und Qualität ok, aber Zürich ist kein Ersatz für Genf. Standort nicht erfüllt.', confidenceLevel: 0.62, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Falscher Standort'], organizationId: 'org-wincasa', createdAt: '2025-05-11T14:10:00Z', updatedAt: '2025-05-11T14:10:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-010 · St.Galler Büros AG · OFFICE St.Gallen · 400–800m² · max CHF 35/m² // ─────────────────────────────────────────────────────────────────────────── { id: 'match-046', propertyId: 'prop-022', needId: 'need-010', matchScore: 92, matchStrength: MatchStrength.STRONG, status: MatchStatus.APPROVED, scoreBreakdown: { hardMatchScore: 95, softFactorScore: 91, confidenceModifier: 0.82, dataQualityModifier: 0.74, totalScore: 92 }, positiveFactors: [ { criterion: 'Standort', weight: 0.28, score: 100, contribution: 28, explanation: 'St. Gallen Centrum – exakter Standortwunsch' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 28/m² deutlich unter Maximum CHF 35/m²' }, { criterion: 'Fläche', weight: 0.22, score: 90, contribution: 19.8, explanation: '700m² im Zielkorridor (400–800m²)' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 58, contribution: 5.8, explanation: 'Externe Quelle – Ausbauqualität nicht bestätigt' }, ], tradeoffs: [ { criterion: 'Datenqualität', concern: 'Ausbauqualität aus externer Quelle nicht verifiziert', severity: 'MEDIUM', mitigation: 'Vor-Ort-Besichtigung empfohlen' }, ], explainabilitySummary: 'Guter Match in St. Gallen Centrum. Alle Hauptkriterien erfüllt. Datenverifikation ausstehend.', confidenceLevel: 0.72, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Externe Quelle', 'Ausbauqualität unklar'], organizationId: 'org-wincasa', createdAt: '2025-05-11T15:00:00Z', updatedAt: '2025-05-11T15:00:00Z', }, { id: 'match-047', propertyId: 'prop-030', needId: 'need-010', matchScore: 58, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 81, softFactorScore: 65, confidenceModifier: 0.55, dataQualityModifier: 0.36, totalScore: 58 }, positiveFactors: [ { criterion: 'Standort', weight: 0.28, score: 100, contribution: 28, explanation: 'St. Gallen Riethüsli – Präferenzstadt' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 27/m² deutlich unter Maximum' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 30, contribution: 4.5, explanation: 'Future-Signal 55% Wahrscheinlichkeit' }, { criterion: 'Datenqualität', weight: 0.10, score: 22, contribution: 2.2, explanation: 'Kritische Felder fehlen' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Future-Signal – kein bestätigter Auszug', severity: 'HIGH', mitigation: 'Auf Watchlist setzen' }, ], explainabilitySummary: 'Bester Standort St. Gallen, Budget sehr gut. Als Future-Signal mit mittlerer Konfidenz Watchlist-Kandidat.', confidenceLevel: 0.44, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Future-Signal', 'Daten unvollständig'], organizationId: 'org-wincasa', createdAt: '2025-05-11T15:05:00Z', updatedAt: '2025-05-11T15:05:00Z', }, { id: 'match-048', propertyId: 'prop-007', needId: 'need-010', matchScore: 53, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 68, softFactorScore: 56, confidenceModifier: 0.98, dataQualityModifier: 0.94, totalScore: 53 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.22, score: 90, contribution: 19.8, explanation: '720m² im Zielkorridor' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.28, score: 35, contribution: 9.8, explanation: 'Zürich Oerlikon ist nicht St. Gallen – andere Stadt, anderer Kanton' }, { criterion: 'Budget', weight: 0.20, score: 72, contribution: 14.4, explanation: 'CHF 36/m² liegt 3% über Maximum CHF 35/m²' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Zürich ist nicht im Präferenzgebiet Ostschweiz', severity: 'HIGH' }, ], explainabilitySummary: 'Falscher Standort und Budget leicht über Maximum. Zürich ist keine Alternative für St. Gallen.', confidenceLevel: 0.86, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Standort ausserhalb Ostschweiz', 'Budget knapp über Maximum'], organizationId: 'org-wincasa', createdAt: '2025-05-11T15:10:00Z', updatedAt: '2025-05-11T15:10:00Z', }, { id: 'match-049', propertyId: 'prop-015', needId: 'need-010', matchScore: 46, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 60, softFactorScore: 48, confidenceModifier: 0.70, dataQualityModifier: 0.60, totalScore: 46 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.22, score: 88, contribution: 19.36, explanation: '650m² im Zielkorridor' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.28, score: 35, contribution: 9.8, explanation: 'Luzern statt St. Gallen – andere Stadt, anderer Kanton' }, { criterion: 'Budget', weight: 0.20, score: 74, contribution: 14.8, explanation: 'CHF 38/m² liegt 8% über Maximum CHF 35/m²' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Luzern ist nicht Ostschweiz / St. Gallen Region', severity: 'HIGH' }, { criterion: 'Budget', concern: 'CHF 3/m² über Maximum', severity: 'MEDIUM' }, ], explainabilitySummary: 'Fläche ok, aber Luzern entspricht nicht der St. Gallen-Region und Budget leicht überschritten.', confidenceLevel: 0.58, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Standort nicht kompatibel', 'Budget leicht über Maximum'], organizationId: 'org-wincasa', createdAt: '2025-05-11T15:15:00Z', updatedAt: '2025-05-11T15:15:00Z', }, { id: 'match-050', propertyId: 'prop-018', needId: 'need-010', matchScore: 38, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 52, softFactorScore: 40, confidenceModifier: 0.68, dataQualityModifier: 0.57, totalScore: 38 }, positiveFactors: [ { criterion: 'Budget', weight: 0.20, score: 100, contribution: 20, explanation: 'CHF 31/m² deutlich unter Maximum CHF 35/m²' }, { criterion: 'Fläche', weight: 0.22, score: 85, contribution: 18.7, explanation: '780m² nahe Zielobergrenze' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.28, score: 35, contribution: 9.8, explanation: 'Bern ist nicht St. Gallen – weit ausserhalb Präferenzgebiet' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Bern liegt 180km von St. Gallen entfernt', severity: 'HIGH' }, ], explainabilitySummary: 'Budget sehr gut, aber Bern entspricht nicht dem Bedarf Ostschweiz. Kein sinnvoller Match.', confidenceLevel: 0.54, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Falscher Standort'], organizationId: 'org-wincasa', createdAt: '2025-05-11T15:20:00Z', updatedAt: '2025-05-11T15:20:00Z', }, { id: 'match-051', propertyId: 'prop-008', needId: 'need-010', matchScore: 42, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 56, softFactorScore: 44, confidenceModifier: 0.97, dataQualityModifier: 0.93, totalScore: 42 }, positiveFactors: [ { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 32/m² unter Maximum CHF 35/m²' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.28, score: 35, contribution: 9.8, explanation: 'Basel ist nicht St. Gallen – anderer Kanton' }, { criterion: 'Fläche', weight: 0.22, score: 65, contribution: 14.3, explanation: '900m² überschreitet Maximum 800m² deutlich' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Basel liegt in Nordwestschweiz, nicht in Ostschweiz', severity: 'HIGH' }, ], explainabilitySummary: 'Gutes Portfolio-Objekt in Basel, aber falscher Standort und Fläche zu gross. Nicht geeignet.', confidenceLevel: 0.84, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Falscher Standort', 'Fläche zu gross'], organizationId: 'org-wincasa', createdAt: '2025-05-11T15:25:00Z', updatedAt: '2025-05-11T15:25:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // Cross-need additional matches // ─────────────────────────────────────────────────────────────────────────── { id: 'match-052', propertyId: 'prop-020', needId: 'need-003', matchScore: 41, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 55, softFactorScore: 43, confidenceModifier: 0.70, dataQualityModifier: 0.60, totalScore: 41 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.20, score: 85, contribution: 17, explanation: '820m² nahe am Zielkorridor (500–800m²)' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 35, contribution: 8.75, explanation: 'Zug ist nicht Basel – anderer Kanton' }, { criterion: 'Budget', weight: 0.20, score: 72, contribution: 14.4, explanation: 'CHF 44/m² liegt 10% über Maximum CHF 40/m²' }, ], tradeoffs: [ { criterion: 'Kombination', concern: 'Falscher Standort und Budget überschritten', severity: 'HIGH' }, ], explainabilitySummary: 'Falscher Standort (Zug statt Basel) und Budget überschritten. Kein Match empfehlenswert.', confidenceLevel: 0.58, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Standort nicht kompatibel', 'Budget über Maximum'], organizationId: 'org-wincasa', createdAt: '2025-05-12T08:00:00Z', updatedAt: '2025-05-12T08:00:00Z', }, { id: 'match-053', propertyId: 'prop-023', needId: 'need-005', matchScore: 65, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 88, softFactorScore: 72, confidenceModifier: 0.54, dataQualityModifier: 0.36, totalScore: 65 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 88, contribution: 22, explanation: 'Zürich-Nord – bevorzugte Stadt Zürich' }, { criterion: 'Budget', weight: 0.20, score: 95, contribution: 19, explanation: 'CHF 38/m² unter Maximum CHF 48/m²' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 30, contribution: 4.5, explanation: 'Future-Signal 54% Wahrscheinlichkeit' }, { criterion: 'Fläche', weight: 0.20, score: 70, contribution: 14, explanation: '850m² leicht über Maximum 700m²' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Future-Signal – kein bestätigtes Objekt', severity: 'HIGH' }, ], explainabilitySummary: 'Gute Zürich-Lage und Budget passend. Als Future-Signal mit mittlerer Konfidenz und leicht zu grosser Fläche beobachten.', confidenceLevel: 0.46, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Future-Signal', 'Fläche leicht über Maximum'], organizationId: 'org-wincasa', createdAt: '2025-05-12T08:05:00Z', updatedAt: '2025-05-12T08:05:00Z', }, { id: 'match-054', propertyId: 'prop-028', needId: 'need-010', matchScore: 37, matchStrength: MatchStrength.WEAK, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 60, softFactorScore: 50, confidenceModifier: 0.53, dataQualityModifier: 0.35, totalScore: 37 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.22, score: 88, contribution: 19.36, explanation: '520m² im Zielkorridor' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.28, score: 35, contribution: 9.8, explanation: 'Genf ist nicht St. Gallen – 600km Entfernung' }, { criterion: 'Budget', weight: 0.20, score: 72, contribution: 14.4, explanation: 'CHF 36/m² über Maximum CHF 35/m² knapp' }, { criterion: 'Konfidenz', weight: 0.15, score: 28, contribution: 4.2, explanation: 'Future-Signal' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Genf ist nicht kompatibel mit St. Gallen Bedarf', severity: 'HIGH' }, ], explainabilitySummary: 'Falscher Standort, Budget knapp über Maximum und Future-Signal. Keine Empfehlung.', confidenceLevel: 0.38, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Falscher Standort', 'Future-Signal'], organizationId: 'org-wincasa', createdAt: '2025-05-12T08:10:00Z', updatedAt: '2025-05-12T08:10:00Z', }, { id: 'match-055', propertyId: 'prop-026', needId: 'need-001', matchScore: 56, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 79, softFactorScore: 63, confidenceModifier: 0.52, dataQualityModifier: 0.34, totalScore: 56 }, positiveFactors: [ { criterion: 'Budget', weight: 0.15, score: 92, contribution: 13.8, explanation: 'CHF 43/m² unter Maximum CHF 45/m²' }, { criterion: 'Fläche', weight: 0.20, score: 85, contribution: 17, explanation: '580m² im Zielkorridor (600–1000m²), knapp unter Minimum' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.20, score: 60, contribution: 12, explanation: 'Zug liegt nicht in Zürich, aber gleiche Wirtschaftsregion' }, { criterion: 'Konfidenz', weight: 0.15, score: 30, contribution: 4.5, explanation: 'Future-Signal 52% Wahrscheinlichkeit' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Zug ist nicht Zürich – Pendeldistanz 30 Min.', severity: 'MEDIUM' }, { criterion: 'Verfügbarkeit', concern: 'Future-Signal – erst ab April 2026 möglicherweise verfügbar', severity: 'HIGH' }, ], explainabilitySummary: 'Budget und Fläche passen. Zug ist eine Alternativlage zur bevorzugten Lage Zürich. Future-Signal mit mittlerer Konfidenz.', confidenceLevel: 0.42, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Standort ausserhalb Präferenz', 'Future-Signal'], organizationId: 'org-wincasa', createdAt: '2025-05-12T08:15:00Z', updatedAt: '2025-05-12T08:15:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-001 · Innovatech AG · OFFICE Zürich-West — new external/maison matches // ─────────────────────────────────────────────────────────────────────────── { id: 'match-050', propertyId: 'prop-031', needId: 'need-001', matchScore: 91, matchStrength: MatchStrength.STRONG, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 95, softFactorScore: 88, confidenceModifier: 0.72, dataQualityModifier: 0.64, totalScore: 91 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 100, contribution: 25, explanation: 'Zürich-West trifft bevorzugte Lage exakt' }, { criterion: 'Fläche', weight: 0.20, score: 100, contribution: 20, explanation: '780m² im Zielkorridor (600–1000m²)' }, { criterion: 'Budget', weight: 0.15, score: 100, contribution: 15, explanation: 'CHF 35/m² liegt klar unter Maximum (CHF 45/m²)' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 55, contribution: 5.5, explanation: 'Externe Quelle – Konditionen nicht endgültig bestätigt' }, ], tradeoffs: [ { criterion: 'Datenqualität', concern: 'Direktinserat aus Drittquelle – Verfügbarkeit noch verifizieren', severity: 'LOW', mitigation: 'Direkte Anfrage beim Anbieter empfohlen' }, ], explainabilitySummary: 'Optimaler Match: Zürich-West, 780m², CHF 35/m² – alle drei Hauptkriterien vollständig erfüllt. Einziger Vorbehalt ist die externe Datenquelle.', confidenceLevel: 0.72, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Daten aus Drittquelle'], organizationId: 'org-wincasa', createdAt: '2025-05-15T08:00:00Z', updatedAt: '2025-05-15T08:00:00Z', }, { id: 'match-051', propertyId: 'prop-032', needId: 'need-001', matchScore: 84, matchStrength: MatchStrength.STRONG, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 88, softFactorScore: 82, confidenceModifier: 0.71, dataQualityModifier: 0.62, totalScore: 84 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.20, score: 100, contribution: 20, explanation: '720m² im Zielkorridor (600–1000m²)' }, { criterion: 'Budget', weight: 0.15, score: 92, contribution: 13.8, explanation: 'CHF 40/m² unter Maximum (CHF 45/m²)' }, { criterion: 'Standort', weight: 0.25, score: 88, contribution: 22, explanation: 'Kreis 5 direkt angrenzend an Zürich-West' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 52, contribution: 5.2, explanation: 'Externe Quelle – Ausbaustandard nicht bestätigt' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Kreis 5 ist nicht Zürich-West, aber angrenzend und ähnliches Profil', severity: 'LOW' }, { criterion: 'Datenqualität', concern: 'Ausbaustandard aus externer Quelle – Besichtigung empfohlen', severity: 'MEDIUM' }, ], explainabilitySummary: 'Starker Match: Fläche und Budget erfüllt, Kreis 5 angrenzend an bevorzugte Lage. Maison Work-Plattform mit bewährten Objektqualitäten.', confidenceLevel: 0.71, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Daten aus externer Quelle'], organizationId: 'org-wincasa', createdAt: '2025-05-15T08:05:00Z', updatedAt: '2025-05-15T08:05:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-002 · Schweizer Logistik GmbH · LOGISTICS Basel — new silver external // ─────────────────────────────────────────────────────────────────────────── { id: 'match-056', propertyId: 'prop-036', needId: 'need-002', matchScore: 86, matchStrength: MatchStrength.STRONG, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 92, softFactorScore: 84, confidenceModifier: 0.70, dataQualityModifier: 0.60, totalScore: 86 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 98, contribution: 24.5, explanation: 'Basel Kleinhüningen – exakt im Zielgebiet' }, { criterion: 'Fläche', weight: 0.20, score: 100, contribution: 20, explanation: '2600m² im Zielkorridor (1500–4000m²)' }, { criterion: 'Budget', weight: 0.15, score: 95, contribution: 14.25, explanation: 'CHF 15/m² unter Maximum (CHF 18/m²)' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 50, contribution: 5, explanation: 'Hallenhöhe und Konditionen nicht final bestätigt' }, ], tradeoffs: [ { criterion: 'Datenqualität', concern: 'Hallenhöhe aus Drittquelle – kritisch für Logistiknutzung', severity: 'MEDIUM', mitigation: 'Hallenhöhe vor Vertragsabschluss verifizieren' }, ], explainabilitySummary: 'Starker Match: Basel Kleinhüningen exakt, 2600m², CHF 15/m². Hallenhöhe sollte vor Vertragsabschluss bestätigt werden.', confidenceLevel: 0.70, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Hallenhöhe nicht bestätigt', 'Daten aus Drittquelle'], organizationId: 'org-wincasa', createdAt: '2025-05-15T08:10:00Z', updatedAt: '2025-05-15T08:10:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // need-011 · Stadtladen Bern GmbH · RETAIL Bern Innenstadt — all new matches // ─────────────────────────────────────────────────────────────────────────── { id: 'match-052', propertyId: 'prop-003', needId: 'need-011', matchScore: 91, matchStrength: MatchStrength.STRONG, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 96, softFactorScore: 90, confidenceModifier: 0.71, dataQualityModifier: 0.62, totalScore: 91 }, positiveFactors: [ { criterion: 'Standort', weight: 0.35, score: 100, contribution: 35, explanation: 'Bern Innenstadt – exakt bevorzugte Lage' }, { criterion: 'Fläche', weight: 0.15, score: 100, contribution: 15, explanation: '320m² im Zielkorridor (200–400m²)' }, { criterion: 'Budget', weight: 0.15, score: 100, contribution: 15, explanation: 'CHF 95/m² deutlich unter Maximum (CHF 150/m²)' }, ], negativeFactors: [ { criterion: 'Datenqualität', weight: 0.10, score: 55, contribution: 5.5, explanation: 'Externe Quelle – Schaufensterfront nicht explizit bestätigt' }, ], tradeoffs: [ { criterion: 'Datenqualität', concern: 'Must-have "Schaufensterfront" aus externer Quelle – Besichtigung nötig', severity: 'LOW', mitigation: 'Vor-Ort-Besichtigung zur Bestätigung empfohlen' }, ], explainabilitySummary: 'Optimaler Match: Bern Innenstadt exakt, 320m², CHF 95/m² – 37% unter Budget. Alle Hauptkriterien erfüllt.', confidenceLevel: 0.71, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Schaufensterfront nicht bestätigt'], organizationId: 'org-wincasa', createdAt: '2025-05-18T08:00:00Z', updatedAt: '2025-05-18T08:00:00Z', }, { id: 'match-053', propertyId: 'prop-033', needId: 'need-011', matchScore: 83, matchStrength: MatchStrength.STRONG, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 88, softFactorScore: 82, confidenceModifier: 0.70, dataQualityModifier: 0.60, totalScore: 83 }, positiveFactors: [ { criterion: 'Standort', weight: 0.35, score: 100, contribution: 35, explanation: 'Marktgasse – exakt in bevorzugter Innenstadtlage' }, { criterion: 'Fläche', weight: 0.15, score: 100, contribution: 15, explanation: '260m² im Zielkorridor (200–400m²)' }, { criterion: 'Prestige', weight: 0.15, score: 88, contribution: 13.2, explanation: 'Hochfrequentierte Fussgängerzone – Laufkundschaft garantiert' }, ], negativeFactors: [ { criterion: 'Budget', weight: 0.15, score: 80, contribution: 12, explanation: 'CHF 120/m² nahe am Maximum (CHF 150/m²)' }, { criterion: 'Datenqualität', weight: 0.10, score: 52, contribution: 5.2, explanation: 'Mietpreis nicht final bestätigt' }, ], tradeoffs: [ { criterion: 'Budget', concern: 'CHF 120/m² lässt wenig Spielraum zum Maximum', severity: 'LOW' }, { criterion: 'Datenqualität', concern: 'Mietpreis aus externer Quelle – Verhandlung möglich', severity: 'MEDIUM', mitigation: 'Direktanfrage empfohlen' }, ], explainabilitySummary: 'Starker Match: Marktgasse/Innenstadt, 260m², CHF 120/m² im Budget. Maison Work-Plattform mit verifizierten Retailflächen.', confidenceLevel: 0.70, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Mietpreis nicht final bestätigt'], organizationId: 'org-wincasa', createdAt: '2025-05-18T08:05:00Z', updatedAt: '2025-05-18T08:05:00Z', }, { id: 'match-054', propertyId: 'prop-034', needId: 'need-011', matchScore: 74, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 82, softFactorScore: 74, confidenceModifier: 0.68, dataQualityModifier: 0.56, totalScore: 74 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.15, score: 100, contribution: 15, explanation: '340m² im Zielkorridor (200–400m²)' }, { criterion: 'Budget', weight: 0.15, score: 94, contribution: 14.1, explanation: 'CHF 110/m² unter Maximum (CHF 150/m²)' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.35, score: 75, contribution: 26.25, explanation: 'Lorraine ist Bern, aber nicht Innenstadt – weniger Laufkundschaft' }, { criterion: 'Timing', weight: 0.10, score: 80, contribution: 8, explanation: 'Verfügbar ab 01.01.2026 – leicht nach Wunschzeitraum' }, { criterion: 'Datenqualität', weight: 0.10, score: 48, contribution: 4.8, explanation: 'Schaufensterfront nicht bestätigt – kritisches Must-have' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Lorraine ist kein Fussgängerzonenviertel – geringere Laufkundschaft als Innenstadt', severity: 'MEDIUM' }, { criterion: 'Timing', concern: 'Ab Januar 2026 – 4 Monate nach gewünschtem Einzug', severity: 'LOW' }, ], explainabilitySummary: 'Moderater Match: Bern Lorraine, 340m², Budget ok. Abzug wegen Abweichung von Innenstadt-Lage und fehlender Schaufensterfront-Bestätigung.', confidenceLevel: 0.68, riskLevel: RiskLevel.MEDIUM, uncertaintyIndicators: ['Schaufensterfront nicht bestätigt', 'Daten aus Drittquelle'], organizationId: 'org-wincasa', createdAt: '2025-05-18T08:10:00Z', updatedAt: '2025-05-18T08:10:00Z', }, { id: 'match-055', propertyId: 'prop-035', needId: 'need-011', matchScore: 66, matchStrength: MatchStrength.MODERATE, status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 88, softFactorScore: 72, confidenceModifier: 0.55, dataQualityModifier: 0.36, totalScore: 66 }, positiveFactors: [ { criterion: 'Standort', weight: 0.35, score: 100, contribution: 35, explanation: 'Bern Altstadt Gerechtigkeitsgasse – Premiumlage' }, { criterion: 'Fläche', weight: 0.15, score: 100, contribution: 15, explanation: '290m² im Zielkorridor (200–400m²)' }, ], negativeFactors: [ { criterion: 'Konfidenz', weight: 0.15, score: 38, contribution: 5.7, explanation: 'Future-Signal mit 62% Wahrscheinlichkeit – kein bestätigtes Objekt' }, { criterion: 'Datenqualität', weight: 0.10, score: 25, contribution: 2.5, explanation: 'Mietpreis nur geschätzt, kein offizielles Inserat' }, ], tradeoffs: [ { criterion: 'Verfügbarkeit', concern: 'Probabilistisches Signal – kein bestätigtes Inserat', severity: 'HIGH', mitigation: 'Früher Erstkontakt mit Eigentümer kann Vorteil sichern' }, { criterion: 'Timing', concern: 'Frühestens April 2026 verfügbar', severity: 'MEDIUM' }, ], explainabilitySummary: 'Premiumlage Gerechtigkeitsgasse, aber nur probabilistisches Signal. Nur weiterverfolgen, wenn Frühkontakt mit Eigentümer möglich.', confidenceLevel: 0.55, riskLevel: RiskLevel.HIGH, uncertaintyIndicators: ['Probabilistisches Signal', 'Mietpreis geschätzt', 'Kein bestätigtes Inserat'], organizationId: 'org-wincasa', createdAt: '2025-05-18T08:15:00Z', updatedAt: '2025-05-18T08:15:00Z', }, // ─────────────────────────────────────────────────────────────────────────── // Schattenmarkt-Freigabe — verified contract signals from Verwaltung // ─────────────────────────────────────────────────────────────────────────── { id: 'match-060', propertyId: 'prop-001', needId: 'need-001', matchScore: 78, matchStrength: MatchStrength.MODERATE, resultType: 'FUTURE_AVAILABILITY', status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 90, softFactorScore: 82, confidenceModifier: 0.92, dataQualityModifier: 0.92, totalScore: 78 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 100, contribution: 25, explanation: 'Zürich-West trifft bevorzugte Lage exakt' }, { criterion: 'Fläche', weight: 0.20, score: 100, contribution: 20, explanation: '850m² im Zielkorridor (600–1000m²)' }, { criterion: 'Budget', weight: 0.15, score: 92, contribution: 13.8, explanation: 'CHF 38/m² liegt unter Maximum (CHF 45/m²)' }, { criterion: 'Konfidenz', weight: 0.10, score: 100, contribution: 10, explanation: 'Vertragsende aus ERP bestätigt — keine Schätzung' }, ], negativeFactors: [ { criterion: 'Verfügbarkeit', weight: 0.10, score: 55, contribution: 5.5, explanation: 'Objekt erst ab Oktober 2026 verfügbar — 5 Monate Vorlaufzeit' }, ], tradeoffs: [ { criterion: 'Timing', concern: 'Einzug frühestens Oktober 2026 möglich', severity: 'LOW', mitigation: 'Frühzeitige Reservierungsanfrage sichert Priorität' }, ], explainabilitySummary: 'Idealer Match: Zürich-West exakt, 850m², im Budget. Vertragsende verifiziert — Verwaltung hat Objekt für Schattenmarkt freigegeben.', confidenceLevel: 0.92, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Verfügbar ab Oktober 2026'], organizationId: 'org-wincasa', createdAt: '2026-05-20T08:00:00Z', updatedAt: '2026-05-20T08:00:00Z', }, { id: 'match-061', propertyId: 'prop-007', needId: 'need-001', matchScore: 71, matchStrength: MatchStrength.MODERATE, resultType: 'FUTURE_AVAILABILITY', status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 82, softFactorScore: 74, confidenceModifier: 0.92, dataQualityModifier: 0.94, totalScore: 71 }, positiveFactors: [ { criterion: 'Fläche', weight: 0.20, score: 100, contribution: 20, explanation: '720m² im Zielkorridor (600–1000m²)' }, { criterion: 'Budget', weight: 0.15, score: 95, contribution: 14.25, explanation: 'CHF 36/m² unter Maximum (CHF 45/m²)' }, { criterion: 'Konfidenz', weight: 0.10, score: 100, contribution: 10, explanation: 'Vertragsende und Breakout-Option aus ERP bestätigt' }, ], negativeFactors: [ { criterion: 'Standort', weight: 0.25, score: 80, contribution: 20, explanation: 'Zürich Oerlikon — nicht Zürich-West, aber gute ÖV-Anbindung' }, { criterion: 'Verfügbarkeit', weight: 0.10, score: 55, contribution: 5.5, explanation: 'Breakout-Option September 2026, Vertragsende November 2026' }, ], tradeoffs: [ { criterion: 'Standort', concern: 'Oerlikon ist Zürich, aber nicht Zürich-West — andere Quartierscharakter', severity: 'MEDIUM' }, { criterion: 'Timing', concern: 'Früheste Verfügbarkeit über Breakout-Option September 2026', severity: 'LOW', mitigation: 'Breakout-Option aktiv — frühzeitige Anfrage möglich' }, ], explainabilitySummary: 'Guter Match: Zürich Oerlikon, 720m², im Budget. Vertragsende verifiziert, Breakout-Option ab September 2026. Lage nicht Zürich-West.', confidenceLevel: 0.92, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Lage Oerlikon statt Zürich-West', 'Verfügbar ab September 2026'], organizationId: 'org-wincasa', createdAt: '2026-05-20T08:05:00Z', updatedAt: '2026-05-20T08:05:00Z', }, { id: 'match-062', propertyId: 'prop-002', needId: 'need-002', matchScore: 84, matchStrength: MatchStrength.STRONG, resultType: 'FUTURE_AVAILABILITY', status: MatchStatus.PENDING_REVIEW, scoreBreakdown: { hardMatchScore: 94, softFactorScore: 86, confidenceModifier: 0.92, dataQualityModifier: 0.96, totalScore: 84 }, positiveFactors: [ { criterion: 'Standort', weight: 0.25, score: 98, contribution: 24.5, explanation: 'Basel Kleinhüningen — exakt im Zielgebiet' }, { criterion: 'Fläche', weight: 0.20, score: 100, contribution: 20, explanation: '2400m² im Zielkorridor (1500–4000m²)' }, { criterion: 'Budget', weight: 0.15, score: 100, contribution: 15, explanation: 'CHF 14/m² weit unter Maximum (CHF 18/m²)' }, { criterion: 'Konfidenz', weight: 0.10, score: 100, contribution: 10, explanation: 'Vertragsende aus ERP bestätigt — keine Schätzung' }, ], negativeFactors: [ { criterion: 'Verfügbarkeit', weight: 0.10, score: 60, contribution: 6, explanation: 'Objekt erst ab September 2026 verfügbar' }, ], tradeoffs: [ { criterion: 'Timing', concern: 'Verfügbar ab September 2026 — 4 Monate Vorlaufzeit', severity: 'LOW', mitigation: 'Frühe Reservierungsanfrage sichert Priorität vor Vertragsende' }, ], explainabilitySummary: 'Starker Match: Basel Kleinhüningen exakt, 2400m², CHF 14/m². Vertragsende September 2026 aus ERP bestätigt — höchste Verlässlichkeit.', confidenceLevel: 0.92, riskLevel: RiskLevel.LOW, uncertaintyIndicators: ['Verfügbar ab September 2026'], organizationId: 'org-wincasa', createdAt: '2026-05-20T08:10:00Z', updatedAt: '2026-05-20T08:10:00Z', }, ]