diff --git a/src/components/Timeline.jsx b/src/components/Timeline.jsx index 89a30bd..6b3ef90 100644 --- a/src/components/Timeline.jsx +++ b/src/components/Timeline.jsx @@ -32,11 +32,22 @@ const REASONING = [ ['attribution_reason', 'Attribution'], ['eligibility_reason', 'Eligibility'], ['ai_recommendation_rationale', 'Cover advice'], - ['kyc_mismatch_notes', 'KYC'], + ['kyc_mismatch_notes', 'KYC mismatch'], + // A clean KYC leaves the mismatch note empty, so the step showed no chain at + // all. kyc_ref is what the KYC employee actually recorded — the document + // package it matched the identity against — so it stands in as the finding. + ['kyc_ref', 'KYC check'], ['referral_analysis', 'Referral analysis'], - ['uw_decision_notes', 'Underwriting'], + // Underwriting writes its reasoning into uw_referral_reason (the screen and + // prepare steps); uw_decision_notes is only the clear/decline note. The map + // knew the second and not the first, so the substantive UW decision — the + // one the reader most wants the reasoning for — showed as a bare heading. + ['uw_referral_reason', 'Underwriting'], + ['uw_decision_notes', 'Underwriting decision'], ['contact_notes', 'Call'], ['documents_notes', 'Documents'], + // The payment-nudge employee records why it chose to follow up now (or hold). + ['nudge_notes', 'Payment follow-up'], ['quoted_breakup', 'How the premium was reached'], ['lost_reason', 'Why it was dropped'], ['resume_note', 'Why now'],