// ----------------------------------------------------------------------------- // Auto-Ka — Agrégateur de voitures usagées à vendre (province de Québec) // Auteur : Simon-Pierre Boucher — contact@spboucher.ai // fiche/ScoreCard.tsx : carte « KA Score » — anneau 0-100 animé, libellé, // composantes en barres (prix vs marché, kilométrage vs âge, qualité de la // fiche, fraîcheur), méthodologie en accordéon. Le score est calculé côté // API (autoka/web.py _ka_score) ; la carte ne l'invente jamais. // ----------------------------------------------------------------------------- import { useEffect, useState } from "react"; import { KaScore } from "../api"; import { Ico } from "../components/Icons"; import { Accordion, SectionCard } from "./ui"; export const kaLabel = (s: number) => (s >= 85 ? "Exceptionnel" : s >= 70 ? "Excellent" : s >= 55 ? "Très bon" : s >= 40 ? "Moyen" : "Faible"); export function ScoreRing({ value, size = 88 }: { value: number | null; size?: number }) { const [v, setV] = useState(0); useEffect(() => { const t = requestAnimationFrame(() => setV(value ?? 0)); return () => cancelAnimationFrame(t); }, [value]); const r = 40, c = 2 * Math.PI * r; return (
Indice composite Auto-Ka (0-100) calculé côté serveur : prix face à la médiane des comparables, kilométrage selon l'âge (référence ≈ 20 000 km/an), qualité de la fiche — photos, description, NIV, équipements — et fraîcheur de l'annonce. Les poids affichés à côté de chaque composante sont renormalisés quand une composante manque (par exemple sans comparables pour le prix). Il ne remplace ni l'inspection mécanique ni l'historique du véhicule.