Quality Scores — origen y limitaciones
Cada producto enriquecido lleva cinco campos relacionados con la calidad:
durability_score— 1–10quality_perception— 1–10value_for_money— 1–10price_positioning—budget/mid-range/premium/luxurytypical_competitors— array de strings
Esta página documenta de dónde salen esos números, qué te pueden decir y qué no, y la roadmap para mejorarlos.
Son opiniones inferidas por el LLM basadas en el texto de tu catálogo. Todavía no están respaldadas por reseñas, devoluciones, certificaciones, datos de ventas ni ninguna evidencia externa.
Origen
Los valores se producen en una única llamada al LLM por producto, usando este prompt (simplificado — fuente: apps/products-api/src/lib/promptTemplates.ts):
You are a product analyst. Analyze the product below and return a single JSON object.
Product
-------
Title: {{title}}
Description: {{description}}
Price: {{price}} {{currency}}
Vendor: {{vendor}}
Categories: {{categories}}
Enrichment hints: {{enrichment_hints}} # del Enrichment Wizard, si está relleno
Return ONLY valid JSON:
{
"durability_score": <number 1-10>,
"quality_perception": <number 1-10>,
"value_for_money": <number 1-10>,
"typical_competitors": ["<competitor 1>", "<competitor 2>"],
"price_positioning": "<budget|mid-range|premium|luxury>"
}
Qué usa el LLM
- Título
- Descripción
- Precio + moneda
- Vendor
- Categorías
enrichment_hintsopcionales del Enrichment Wizard
Qué NO usa el LLM
- Reseñas reales (Google / Trustpilot / internas)
- Tasa de devoluciones
- Datos de ventas / conversión
- Comparativas externas de catálogos
- Certificaciones de fabricante (ISO, CE, GOTS, OEKO-TEX, MIL-STD, etc.)
- Resultados de tests de ciclo de vida
- Bases de datos de sostenibilidad
Consecuencias
- Los scores son opinión sintética — no hechos verificados.
- La reproducibilidad no está garantizada — el mismo producto puede dar scores distintos entre runs si la temperatura del modelo no es cero.
- Útiles relativamente, no absolutamente — el LLM tiene sentido común sobre tiers de mercado (Hermès → lujo, Primark → budget) así que los scores diferencian productos dentro de tu propio catálogo. No son un benchmark contra competidores.
typical_competitorstiene la misma limitación — inferidos, no verificados.
Cómo se comunica en la UI
El dashboard muestra un badge sobre cada bloque de Quality Scores indicando el nivel de evidencia:
| Badge | Significado |
|---|---|
| 🟢 Data-grounded | Evidencia externa respalda el score (futuro: reseñas, devoluciones, certificaciones) |
| 🔵 AI + owner hints | El Enrichment Wizard se rellenó para este producto |
| 🟡 AI-inferred | Opinión pura del LLM (por defecto — sintética) |
El nivel se almacena en metadata.scores_evidence_level y se mantiene a través de los re-enriquecimientos.
Roadmap hacia el grounding
Trackeado como tareas de MVP, no Phase 2:
- Disclaimer visual — ✅ shipped (el sistema de tres badges de arriba)
- Enrichment Wizard extendido con preguntas de evidencia — garantía, certificaciones, tasa de devoluciones, media de reseñas. En curso.
typical_competitorsprovisto por el owner — una lista verificada reemplaza las inferencias del LLM.- Fuentes de datos externas — Google Analytics, Google Search Console, ingesta de reseñas (scraper o API de tercero).
- Procedencia por score — cada score lleva su propio
source(owner/reviews/llm_synthetic/ga_data) con enlaces de evidencia. Cuando varias fuentes discrepan, la UI muestra ambas y deja al merchant decidir cuál creer.
Hasta que lleguen, trata los scores como la lectura del LLM del texto de tu catálogo — útiles para el ranking del dashboard y la diferenciación interna, no para reclamaciones externas.