Comparateur Toyota Sienna 2026 — Outil de vente (QC)
Comparateur dynamique — Toyota Sienna 2026 (QC)
Outil (sans prix) : Sienna 2026 vs 5 concurrents, calculateur carburant (km/an, % ville, $/L) + score pondéré “priorités client”.
📌 Sienna 2026 (Canada) : hybride uniquement, FWD ou AWD, 7 ou 8 places.
1 fichier HTML
Responsive mobile/tablette/PC
Sans prix véhicule
Hybride uniquement
TSS 2.0 de série
Résumé rapide (client)
Les coûts d’usage se recalculent en direct selon tes sliders (carburant seulement, sans prix véhicule).
Conso calculée (selon % ville)
—
Basée sur ville/route si disponibles, sinon sur “combinée”.
Coût carburant (projection)
—
Carburant seulement (aucun prix véhicule).
Puissance (système)
—
245 hp (Toyota Canada).
Places
—
7 ou 8 selon version.
Rouage
—
FWD ou AWD selon version.
Score priorités client
— /100
Pondéré par les sliders ci-dessous.
Sliders (usage)
Priorités du client (pondération)
0–100. Le score compare la Sienna vs 5 concurrents (placeholders).
Arguments “flash” (à dire au client)
Ce que l’outil démontre
- Usage : coût carburant sur X ans (selon km/an, % ville, $/L).
- Hybride : efficacité + douceur en conduite.
- Espace : 7 ou 8 places + confort famille.
- Hiver QC : AWD dispo selon version.
Fiche comparative (sans prix)
Défilement horizontal sur mobile. Remplace les placeholders par des chiffres officiels si désiré.
| Modèle |
Motorisation |
Puissance (hp) |
0–100 km/h |
Rouage |
Ville (L/100) |
Route (L/100) |
Combinée (L/100) |
Places |
Espace (index) |
Sécurité |
${m.isToyota ? "Mise en avant" : "Concurrent (placeholder)"}
`;
const pill = m.isToyota ? `
${m.safetyTag}` : `
${m.safetyTag}`; tr.innerHTML = `
${modelCell} |
${m.powertrain || "—"} |
${m.hp ?? "—"} |
${m.zero100 ? fmt(m.zero100,1)+" s" : "—"} |
${m.drive ?? "—"} |
${isFinite(m.cityL) ? fmt(m.cityL,1) : "—"} |
${isFinite(m.hwyL) ? fmt(m.hwyL,1) : "—"} |
${isFinite(m.combL) ? fmt(m.combL,1) : "—"} |
${m.seats ?? "—"} |
${spaceIndex(m)} |
${pill} |
`;
tbody.appendChild(tr);
});
// charts
const labels = ms.map(m => (m.isToyota ? "★ " : "") + shortName(m));
const fuelBars = ms.map(m=>{
const mix2 = blendedL100(m.cityL,m.hwyL,cityPct);
if(isFinite(mix2)) return +mix2.toFixed(2);
if(isFinite(m.combL)) return m.combL;
return 9.9;
});
const scoreBars = ms.map(m => scores.find(s=>s.key===m.key)?.total ?? 0);
const spaceBars = ms.map(m => spaceIndex(m));
chartFuel = upsertBar(chartFuel, "chartFuel", {labels, label:"Conso (L/100) — plus bas = mieux", data:fuelBars}, {reverseY:true});
chartScore = upsertBar(chartScore, "chartScore", {labels, label:"Score priorités (0–100) — plus haut = mieux", data:scoreBars});
chartSpace = upsertBar(chartSpace, "chartSpace", {labels, label:"Espace / modularité (index 0–100)", data:spaceBars});
window.__STATE__ = {kmYear,fuelPrice,cityPct,years,weights,ms,l100,costHorizon,scoreCar};
}
[
"variant","kmYear","fuelPrice","cityPct","years",
"wFuel","wPerf","wSafety","wSpace","wAwd","wPeace"
].forEach(id => $(id).addEventListener("input", render));
$("resetBtn").addEventListener("click", ()=>{
$("variant").value = "le_awd";
$("kmYear").value = 22000;
$("fuelPrice").value = 1.75;
$("cityPct").value = 60;
$("years").value = 5;
$("wFuel").value = 75;
$("wPerf").value = 25;
$("wSafety").value = 80;
$("wSpace").value = 90;
$("wAwd").value = 70;
$("wPeace").value = 85;
render();
});
$("exportBtn").addEventListener("click", async ()=>{
const s = window.__STATE__;
const car = s.ms[0];
const l100Txt = isFinite(s.l100) ? s.l100.toFixed(1).replace(".",",") : "—";
const costTxt = isFinite(s.costHorizon) ? Math.round(s.costHorizon).toLocaleString("fr-CA") : "—";
const txt =
`Résumé client — ${car.brand} ${car.model}
• Usage: ${s.kmYear.toLocaleString("fr-CA")} km/an, ${s.cityPct}% ville, ${s.years} ans, essence ${s.fuelPrice.toFixed(2)} $/L
• Conso calculée: ${l100Txt} L/100 km
• Projection carburant: ~${costTxt} $ sur ${s.years} ans (carburant seulement)
• Puissance: ${car.hp} hp | Rouage: ${car.drive} | Places: ${car.seats}
• Sécurité: ${car.safetyTag}
• Score priorités: ${s.scoreCar}/100
Disclaimer: valeurs indicatives; varient selon version/conditions; vérifier données officielles.`;
try{
await navigator.clipboard.writeText(txt);
$("exportBtn").textContent = "Résumé copié ✓";
setTimeout(()=>$("exportBtn").textContent="Copier résumé", 1200);
}catch(e){
alert("Copie automatique impossible. Copiez manuellement.");
}
});
render();