Saltar al contenido principal

Quality Scores — origen y limitaciones

Cada producto enriquecido lleva cinco campos relacionados con la calidad:

  • durability_score — 1–10
  • quality_perception — 1–10
  • value_for_money — 1–10
  • price_positioningbudget / mid-range / premium / luxury
  • typical_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.

TL;DR

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_hints opcionales 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

  1. Los scores son opinión sintética — no hechos verificados.
  2. La reproducibilidad no está garantizada — el mismo producto puede dar scores distintos entre runs si la temperatura del modelo no es cero.
  3. Ú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.
  4. typical_competitors tiene 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:

BadgeSignificado
🟢 Data-groundedEvidencia externa respalda el score (futuro: reseñas, devoluciones, certificaciones)
🔵 AI + owner hintsEl Enrichment Wizard se rellenó para este producto
🟡 AI-inferredOpinió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:

  1. Disclaimer visual — ✅ shipped (el sistema de tres badges de arriba)
  2. Enrichment Wizard extendido con preguntas de evidencia — garantía, certificaciones, tasa de devoluciones, media de reseñas. En curso.
  3. typical_competitors provisto por el owner — una lista verificada reemplaza las inferencias del LLM.
  4. Fuentes de datos externas — Google Analytics, Google Search Console, ingesta de reseñas (scraper o API de tercero).
  5. 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.