5.4 Pseudocode for UX Score

5.4 Pseudocode for UX Score Calculation

// def calculate_ux_score(site: SiteProfile) -> float:
    """Calculates the Pillar III (User Experience) score out of 10."""
    
    raw_score = 0
    max_score = 25

    # Design & Navigation (Max 10)
    # Assessed via a heuristic evaluation model (e.g., Nielsen's heuristics)
    raw_score += site.get_design_clarity_score() # 0-5
    raw_score += site.get_navigation_logic_score() # 0-5

    # Mobile Performance (Max 10)
    cwv_results = site.get_core_web_vitals()
    if cwv_results.passes_lcp and cwv_results.passes_inp and cwv_results.passes_cls:
        raw_score += 10
    elif cwv_results.passes_lcp: # Partial credit
        raw_score += 5

    # Search & Filtering (Max 5)
    if site.has_advanced_filtering():
        raw_score += 5

    # Normalize score
    normalized_score = (raw_score / max_score) * 10
    return round(normalized_score, 2)

Last updated