Reporte de Métricas GEO — Crisis Nestlé Fórmula Infantil
Fecha: Febrero 2026
Project ID: 53a04a4c-db6a-4308-b8a3-c59ad8dd06ed
Engines / Runs:
- GPT-4o-mini ("Efficient model for most tasks") → d0e337d2-64f2-4671-a694-851749cbd740
- Gemini ("Fast, low-cost, high-performance Gemini 2.5") → ada78f46-455f-453c-9012-279bd86cf8fb
Respuestas analizadas: 28,865 (GPT-4o-mini: 19,587; Gemini: 9,278)
Resumen Ejecutivo (métricas clave)
Nota metodológica: todos los números y promedios provienen de queries SQL ejecutadas con
radar analytics query --sql "..."sobre tablas analíticas (responses,entity_mentions,attribute_mentions,response_sources).
Tabla 0. Volumen de respuestas por engine
| Engine | run_id | Respuestas |
|---|---|---|
| Gemini | ada78f46-455f-453c-9012-279bd86cf8fb | 9,278 |
| GPT-4o-mini | d0e337d2-64f2-4671-a694-851749cbd740 | 19,587 |
Tabla 0B. Volumen de menciones por marca (set Nestlé+competidores)
| Engine | entity_identifier | menciones (filas) | respuestas con mención |
|---|---|---|---|
| Gemini | nan | 6,281 | 2,903 |
| Gemini | aptamil | 3,331 | 1,465 |
| Gemini | enfamil | 3,206 | 1,827 |
| Gemini | almiron | 2,793 | 1,430 |
| Gemini | nestle | 2,709 | 2,001 |
| Gemini | blemil | 2,607 | 1,289 |
| Gemini | hero-baby | 1,666 | 1,012 |
| Gemini | nidina | 819 | 608 |
| Gemini | nativa | 309 | 233 |
| GPT-4o-mini | nan | 4,029 | 3,123 |
| GPT-4o-mini | enfamil | 3,826 | 2,838 |
| GPT-4o-mini | nestle | 2,532 | 1,964 |
| GPT-4o-mini | almiron | 2,390 | 2,032 |
| GPT-4o-mini | blemil | 1,893 | 1,598 |
| GPT-4o-mini | hero-baby | 1,107 | 951 |
| GPT-4o-mini | nidina | 414 | 379 |
| GPT-4o-mini | nativa | 330 | 293 |
| GPT-4o-mini | aptamil | 48 | 39 |
Tabla 0C. Volumen “macro” de detecciones Safety/Security (todas las entidades)
| Engine | atributo | detecciones | respuestas con detección | avg sentiment (todas las entidades) |
|---|---|---|---|---|
| Gemini | safety | 5,935 | 2,983 | 3.471 |
| Gemini | security | 4 | 4 | 2.500 |
| GPT-4o-mini | safety | 9,884 | 4,810 | 3.203 |
| GPT-4o-mini | security | 927 | 620 | 3.269 |
Tabla 1. Citación / grounding (volumen)
| Engine | Total citas (response_sources) | Respuestas con citas | Citas promedio por respuesta |
|---|---|---|---|
| Gemini | 60,515 | 5,718 | 10.583 |
| GPT-4o-mini | 45,834 | 11,306 | 4.054 |
Tabla 2. Contaminación “Brasil/ANVISA” (presencia en respuestas)
| Engine | Total respuestas | % con “ANVISA” | % con “Brasil/Brazil” | % con (ANVISA o Brasil) | Mezcla ANVISA + (España/Portugal) |
|---|---|---|---|---|---|
| Gemini | 9,278 | 3.07% (285) | 3.45% (320) | 4.15% (385) | 29 |
| GPT-4o-mini | 19,649* | 2.78% (546) | 4.69% (922) | 5.86% (1,152) | 48 |
*En esta tabla el total de responses para GPT-4o-mini sale como 19,649 por query de contaminación; la tabla de volumen por engine (Tabla 0) contabiliza 19,587. Esta diferencia suele ocurrir cuando hay respuestas duplicadas/adjuntas en particiones o diferencias de filtro temporal. En el anexo incluyo ambas queries exactas para auditoría.
Tabla 3. Safety Sentiment (Nestlé vs Competidores) — lectura rápida
| Engine | Nestlé (NAN+NIDINA+NATIVA+NESTLE) avg safety | Competidores avg safety | Delta |
|---|---|---|---|
| Gemini | 3.157 | 3.376 | -0.219 |
| GPT-4o-mini | 2.900 | 3.449 | -0.549 |
(Detalle por marca y ranking en Sección 1.)
Tabla 4. Fuentes “sensibles” (citas a dominios específicos)
| Dominio | Gemini citas | GPT-4o-mini citas |
|---|---|---|
| www.nestlebebe.es | 1,040 | 568 |
| www.nestlebebe.pt | 304 | 460 |
| nocomasmasmentiras.org | 447 | 49 |
| www.gov.br | 137 | 561 |
| (anvisa*) | 10 (antigo.anvisa.gov.br) | 1 (bibliotecadigital.anvisa.gov.br) |
| www.aesan.gob.es | 551 | 121 |
1. Safety Sentiment Index
1.1 Global: Safety + Security (por marca/competidor)
Definición operativa (para este reporte):
- Usamos attribute_mentions con attribute_identifier IN ('safety','security').
- Medimos avg(sentiment) (escala entera en la tabla) y volumen de detecciones.
- Filtramos por entity_identifier dentro del set: Nestlé (nan, nidina, nativa, nestle) + competidores (enfamil, almiron, aptamil, blemil, hero-baby).
Tabla 1.1A — Safety (avg sentiment + volumen)
| Engine | entity_identifier | avg safety sentiment | detecciones | respuestas con detección |
|---|---|---|---|---|
| Gemini | nan | 3.260 | 258 | 233 |
| Gemini | nestle | 3.190 | 247 | 234 |
| Gemini | aptamil | 3.327 | 165 | 153 |
| Gemini | almiron | 2.979 | 144 | 130 |
| Gemini | enfamil | 3.915 | 59 | 58 |
| Gemini | nidina | 2.643 | 56 | 53 |
| Gemini | blemil | 3.744 | 39 | 37 |
| Gemini | hero-baby | 3.914 | 35 | 35 |
| Gemini | nativa | 2.842 | 19 | 19 |
| GPT-4o-mini | nestle | 2.720 | 404 | 378 |
| GPT-4o-mini | nan | 3.130 | 353 | 324 |
| GPT-4o-mini | almiron | 2.951 | 163 | 159 |
| GPT-4o-mini | enfamil | 3.807 | 145 | 138 |
| GPT-4o-mini | nidina | 2.617 | 47 | 44 |
| GPT-4o-mini | blemil | 3.778 | 45 | 44 |
| GPT-4o-mini | hero-baby | 3.976 | 42 | 41 |
| GPT-4o-mini | nativa | 3.150 | 20 | 18 |
| GPT-4o-mini | aptamil | 2.846 | 13 | 10 |
Tabla 1.1B — Security (avg sentiment + volumen)
| Engine | entity_identifier | avg security sentiment | detecciones | respuestas con detección |
|---|---|---|---|---|
| GPT-4o-mini | nan | 3.121 | 33 | 32 |
| GPT-4o-mini | almiron | 3.450 | 20 | 20 |
| GPT-4o-mini | enfamil | 3.929 | 14 | 12 |
| GPT-4o-mini | blemil | 4.000 | 12 | 11 |
| GPT-4o-mini | hero-baby | 3.917 | 12 | 12 |
| GPT-4o-mini | nestle | 3.000 | 7 | 6 |
| GPT-4o-mini | nativa | 4.000 | 7 | 6 |
| GPT-4o-mini | nidina | 2.667 | 6 | 6 |
Observación: en Gemini aparecen detecciones de
securitymuy bajas a nivel global (4 detecciones en el esquema), y además no necesariamente asociadas al set deentity_identifierfiltrado. Por eso, en el corte “por marca” la tabla de Geminisecurityno devuelve filas significativas.
1.2 Por marca Nestlé (NAN, NIDINA, NATIVA, NESTLE)
Tabla 1.2A — Nestlé Safety (solo 4 marcas Nestlé)
| Engine | Marca (entity_identifier) | avg safety | detecciones |
|---|---|---|---|
| Gemini | nan | 3.260 | 258 |
| Gemini | nestle | 3.190 | 247 |
| Gemini | nidina | 2.643 | 56 |
| Gemini | nativa | 2.842 | 19 |
| GPT-4o-mini | nan | 3.130 | 353 |
| GPT-4o-mini | nestle | 2.720 | 404 |
| GPT-4o-mini | nidina | 2.617 | 47 |
| GPT-4o-mini | nativa | 3.150 | 20 |
1.3 Comparativa vs competidores + ranking (Safety)
Tabla 1.3A — Ranking por Safety Sentiment (incluye Nestlé + competidores)
| Engine | Rank | entity_identifier | avg safety | detecciones |
|---|---|---|---|---|
| Gemini | 1 | enfamil | 3.915 | 59 |
| Gemini | 2 | hero-baby | 3.914 | 35 |
| Gemini | 3 | blemil | 3.744 | 39 |
| Gemini | 4 | aptamil | 3.327 | 165 |
| Gemini | 5 | nan | 3.260 | 258 |
| Gemini | 6 | nestle | 3.190 | 247 |
| Gemini | 7 | almiron | 2.979 | 144 |
| Gemini | 8 | nativa | 2.842 | 19 |
| Gemini | 9 | nidina | 2.643 | 56 |
| GPT-4o-mini | 1 | hero-baby | 3.976 | 42 |
| GPT-4o-mini | 2 | enfamil | 3.807 | 145 |
| GPT-4o-mini | 3 | blemil | 3.778 | 45 |
| GPT-4o-mini | 4 | nativa | 3.150 | 20 |
| GPT-4o-mini | 5 | nan | 3.130 | 353 |
| GPT-4o-mini | 6 | almiron | 2.951 | 163 |
| GPT-4o-mini | 7 | aptamil | 2.846 | 13 |
| GPT-4o-mini | 8 | nestle | 2.720 | 404 |
| GPT-4o-mini | 9 | nidina | 2.617 | 47 |
1.4 Queries ejecutadas (Sección 1)
-- Tabla 0 (respuestas por run)
SELECT run_id, engine_name, countDistinct(id) AS responses
FROM responses
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
GROUP BY run_id, engine_name;
-- Tabla 1.1A/1.1B (avg sentiment + detecciones por entidad y atributo)
WITH ['nan','nidina','nativa','nestle','enfamil','almiron','aptamil','blemil','hero-baby'] AS brands
SELECT run_id, attribute_identifier, entity_identifier,
round(avg(sentiment),3) AS avg_sentiment,
count() AS detections,
countDistinct(response_id) AS responses_with_detection
FROM attribute_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND attribute_identifier IN ('safety','security')
AND entity_identifier IN brands
GROUP BY run_id, attribute_identifier, entity_identifier
ORDER BY run_id, attribute_identifier, detections DESC;
-- Tabla 1.3A (ranking safety)
WITH ['nan','nidina','nativa','nestle','enfamil','almiron','aptamil','blemil','hero-baby'] AS brands,
'safety' AS attr
SELECT run_id,
entity_identifier,
round(avg(sentiment),3) AS avg_safety_sentiment,
count() AS detections,
dense_rank() OVER (PARTITION BY run_id ORDER BY avg(sentiment) DESC) AS rank_safety
FROM attribute_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND attribute_identifier=attr
AND entity_identifier IN brands
GROUP BY run_id, entity_identifier
ORDER BY run_id, rank_safety, detections DESC;
2. Share of Narrative (Fuentes)
2.1 Top dominios citados (Top 50 por engine)
Interpretación: el campo
source_domainproviene deresponse_sources. Se cuenta cada cita como una fila. La métricapct_citationsse calcula como % sobre el total de citas del run.
Tabla 2.1A — Top 50 dominios (Gemini)
| Dominio | Citas | % del total |
|---|---|---|
| vertexaisearch.cloud.google.com | 17,569 | 29.032 |
| www.primor.eu | 1,093 | 1.806 |
| www.youtube.com | 1,056 | 1.745 |
| www.nestlebebe.es | 1,040 | 1.719 |
| www.healthychildren.org | 897 | 1.482 |
| www.nestlefamilynes.com.mx | 793 | 1.310 |
| www.elconfidencialdigital.com | 765 | 1.264 |
| www.atida.com | 750 | 1.239 |
| www.enfamil.com | 679 | 1.122 |
| www.promofarma.com | 668 | 1.104 |
| www.fda.gov | 639 | 1.056 |
| elpais.com | 591 | 0.977 |
| www.elconfidencial.com | 580 | 0.958 |
| www.aesan.gob.es | 551 | 0.911 |
| scielo.isciii.es | 507 | 0.838 |
| blog.marvimundo.com | 474 | 0.783 |
| www.nestlenutritionmedicallatam.com | 452 | 0.747 |
| nocomasmasmentiras.org | 447 | 0.739 |
| www.enfamil.es | 438 | 0.724 |
| www.summerhealth.com | 434 | 0.717 |
| medlineplus.gov | 426 | 0.704 |
| www.familynescam.com | 394 | 0.651 |
| www.actapediatrica.com | 393 | 0.649 |
| nutriben.es | 392 | 0.648 |
| go-food.es | 339 | 0.560 |
| maspanales.com | 329 | 0.544 |
| pedia-gess.com | 329 | 0.544 |
| www.nestlebebe.pt | 304 | 0.502 |
| www.lechepuleva.es | 288 | 0.476 |
| www.elmundo.es | 285 | 0.471 |
| www.cun.es | 274 | 0.453 |
| www.redaccionmedica.com | 255 | 0.421 |
| happymami.com | 253 | 0.418 |
| www.nutritienda.com | 251 | 0.415 |
| www.aeped.es | 249 | 0.411 |
| www.carrefour.es | 247 | 0.408 |
| babybio.es | 246 | 0.407 |
| www.publico.es | 242 | 0.400 |
| novalacprofesionales.es | 230 | 0.380 |
| www.familynes.cl | 218 | 0.360 |
| www.recetasparamibebe.com | 216 | 0.357 |
| farma2go.com | 211 | 0.349 |
| alergiaalalechedevaca.es | 208 | 0.344 |
| www.elespanol.com | 204 | 0.337 |
| novalac.es | 198 | 0.327 |
| www.farmaciamarket.es | 198 | 0.327 |
| www.dsm-firmenich.com | 198 | 0.327 |
| www.infobae.com | 196 | 0.324 |
| pequeayuda.com | 195 | 0.322 |
| espanol.babycenter.com | 192 | 0.317 |
Tabla 2.1B — Top 50 dominios (GPT-4o-mini)
| Dominio | Citas | % del total |
|---|---|---|
| www.fda.gov | 2,085 | 4.549 |
| elpais.com | 1,372 | 2.993 |
| www.elconfidencialdigital.com | 938 | 2.047 |
| www.atida.com | 850 | 1.855 |
| www.enfamil.com | 830 | 1.811 |
| cadenaser.com | 687 | 1.499 |
| mibebeyyo.elmundo.es | 617 | 1.346 |
| www.huffingtonpost.es | 583 | 1.272 |
| www.nestlebebe.es | 568 | 1.239 |
| www.gov.br | 561 | 1.224 |
| pt.wikipedia.org | 551 | 1.202 |
| www.eleconomista.es | 489 | 1.067 |
| www.nestlebebe.pt | 460 | 1.004 |
| www.enfamil.es | 457 | 0.997 |
| www.elindependiente.com | 450 | 0.982 |
| formula-leche.com | 421 | 0.919 |
| www.nestlefamilynes.com.mx | 394 | 0.860 |
| www.nestlenutritionmedicallatam.com | 361 | 0.788 |
| www.medical.momandme.nestle.com | 351 | 0.766 |
| medlineplus.gov | 344 | 0.751 |
| es.wikipedia.org | 334 | 0.729 |
| www.cun.es | 314 | 0.685 |
| www.periodistadigital.com | 307 | 0.670 |
| www.healthychildren.org | 274 | 0.598 |
| www.enfamil.pt | 270 | 0.589 |
| www.aptababy.com.pt | 270 | 0.589 |
| www.elsevier.es | 265 | 0.578 |
| www.danonehealthacademy.com.br | 257 | 0.561 |
| www.consumerreports.org | 249 | 0.543 |
| cincodias.elpais.com | 240 | 0.524 |
| enfantsmilk.com | 238 | 0.519 |
| www.elespanol.com | 237 | 0.517 |
| farmacialarosaleda.es | 230 | 0.502 |
| osreviews.com.br | 229 | 0.500 |
| www.consumer.es | 227 | 0.495 |
| www.aeped.es | 223 | 0.487 |
| www.pediatriaintegral.es | 222 | 0.484 |
| www.telecinco.es | 222 | 0.484 |
| www.blemil.com | 210 | 0.458 |
| farmacia-frias.com | 210 | 0.458 |
| www.docmorris.pt | 207 | 0.452 |
| mundolacteo.es | 206 | 0.449 |
| qualeamelhor.com.br | 206 | 0.449 |
| babyporbaby.com.br | 203 | 0.443 |
| www.lechepuleva.es | 203 | 0.443 |
| unabonitasonrisa.es | 200 | 0.436 |
| www.fraca.com.mx | 196 | 0.428 |
| miparafarmaciaencasa.es | 195 | 0.425 |
| maximavelocidad.com.ar | 180 | 0.393 |
| www.farmaciabarata.pt | 173 | 0.377 |
2.2 Dominios solicitados (conteo exacto)
Tabla 2.2A — Conteos de citas para dominios “clave”
| Engine | nestlebebe.es | nestlebebe.pt | nocomasmasmentiras.org | gov.br | aesan.gob.es | anvisa* |
|---|---|---|---|---|---|---|
| Gemini | 1,040 | 304 | 447 | 137 | 551 | 10 |
| GPT-4o-mini | 568 | 460 | 49 | 561 | 121 | 1 |
anvisa*: en el dataset aparece como
antigo.anvisa.gov.br(Gemini, 10) ybibliotecadigital.anvisa.gov.br(GPT-4o-mini, 1).
2.3 Clasificación (oficial Nestlé / crítica / neutral / competidor)
En analítica pura, la clasificación es una capa editorial. Para mantener trazabilidad, el reporte usa reglas simples por dominio (ver Anexo de queries: CASE WHEN source_domain LIKE ...). Ejemplos:
- Oficial Nestlé: dominios nestle*, nestlebebe.*, nestlenutrition*, familynes*, momandme.nestle.com.
- Crítica: nocomasmasmentiras.org.
- Competidor: dominios de marca competidora (ej. enfamil.com, blemil.com, nutricia.com, aptababy.com.pt, etc.).
- Neutral/autoridad: fda.gov, aesan.gob.es, gov.br, wikipedia.org, medios.
(Se puede refinar con un diccionario más completo por país y por “propiedad de marca”.)
Tabla 2.3A — Mix de narrativa por categoría (heurística por dominio)
| Engine | Categoría | Citas | % |
|---|---|---|---|
| Gemini | neutral_other | 51,900 | 85.76 |
| Gemini | official_nestle | 3,977 | 6.57 |
| Gemini | competitor | 2,835 | 4.68 |
| Gemini | authority | 1,356 | 2.24 |
| Gemini | critical | 447 | 0.74 |
| GPT-4o-mini | neutral_other | 36,407 | 79.43 |
| GPT-4o-mini | competitor | 3,151 | 6.87 |
| GPT-4o-mini | authority | 3,139 | 6.85 |
| GPT-4o-mini | official_nestle | 3,088 | 6.74 |
| GPT-4o-mini | critical | 49 | 0.11 |
2.4 Queries ejecutadas (Sección 2)
-- Top 50 dominios por run con % del total
WITH totals AS (
SELECT run_id, count() AS total_citations
FROM response_sources
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
GROUP BY run_id
)
SELECT rs.run_id,
any(rs.engine_name) AS engine_name,
rs.source_domain,
count() AS citations,
round(100.0*citations/t.total_citations,3) AS pct_citations
FROM response_sources rs
JOIN totals t ON rs.run_id=t.run_id
WHERE rs.project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND rs.run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
GROUP BY rs.run_id, rs.source_domain, t.total_citations
ORDER BY rs.run_id, citations DESC
LIMIT 50 BY rs.run_id;
-- Conteos exactos para dominios específicos
SELECT run_id, source_domain, count() AS citations
FROM response_sources
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND source_domain IN (
'www.nestlebebe.es','www.nestlebebe.pt',
'nocomasmasmentiras.org','www.gov.br','www.aesan.gob.es'
)
GROUP BY run_id, source_domain;
-- Buscar dominios que contengan 'anvisa'
SELECT run_id, source_domain, count() AS citations
FROM response_sources
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND lower(source_domain) LIKE '%anvisa%'
GROUP BY run_id, source_domain;
-- Mix por categoría (heurística por dominio)
WITH (
CASE
WHEN match(lower(source_domain),'nestle|nestlebebe|familynes|momandme') THEN 'official_nestle'
WHEN source_domain='nocomasmasmentiras.org' THEN 'critical'
WHEN match(lower(source_domain),'enfamil|blemil|nutricia|aptababy|kendamil|capricare|novalac|nutriben') THEN 'competitor'
WHEN match(lower(source_domain),'fda.gov|aesan.gob.es|gov.br|anvisa') THEN 'authority'
ELSE 'neutral_other'
END
) AS category
SELECT run_id,
category,
count() AS citations,
round(100.0*citations/sum(citations) OVER (PARTITION BY run_id),2) AS pct
FROM response_sources
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
GROUP BY run_id, category
ORDER BY run_id, citations DESC;
3. Brand Mention Position
3.1 Position score promedio (proxy: “best position” por respuesta)
Definición operativa:
- Sobre entity_mentions, para cada (run, response_id, entity_identifier) calculamos min(position).
- Luego promediamos ese mínimo (mejor aparición) a nivel de entidad.
Tabla 3.1A — Avg best position + mediana (por entidad)
| Engine | entity_identifier | avg best position | mediana best position | respuestas con mención |
|---|---|---|---|---|
| Gemini | nan | 6.934 | 5 | 2,903 |
| Gemini | aptamil | 7.352 | 5 | 1,465 |
| Gemini | nestle | 7.481 | 5 | 2,001 |
| Gemini | nativa | 8.094 | 6 | 233 |
| Gemini | blemil | 8.604 | 7 | 1,289 |
| Gemini | enfamil | 8.666 | 7 | 1,827 |
| Gemini | almiron | 8.676 | 7 | 1,430 |
| Gemini | nidina | 9.089 | 6 | 608 |
| Gemini | hero-baby | 10.790 | 9 | 1,012 |
| GPT-4o-mini | nativa | 3.024 | 2 | 293 |
| GPT-4o-mini | almiron | 3.293 | 3 | 2,032 |
| GPT-4o-mini | enfamil | 3.355 | 2 | 2,838 |
| GPT-4o-mini | nan | 3.423 | 3 | 3,123 |
| GPT-4o-mini | blemil | 3.558 | 3 | 1,598 |
| GPT-4o-mini | nidina | 3.702 | 3 | 379 |
| GPT-4o-mini | hero-baby | 4.115 | 4 | 951 |
| GPT-4o-mini | nestle | 4.307 | 3 | 1,964 |
| GPT-4o-mini | aptamil | 6.487 | 6 | 39 |
3.2 Distribución de posiciones (1–3 / 4–7 / 8+)
Tabla 3.2A — Distribución por entidad (counts y %)
| Engine | entity_identifier | pos 1–3 | pos 4–7 | pos 8+ | resp con mención | %1–3 | %4–7 | %8+ |
|---|---|---|---|---|---|---|---|---|
| Gemini | nan | 923 | 1,032 | 835 | 2,903 | 31.79 | 35.55 | 28.76 |
| Gemini | nestle | 557 | 692 | 631 | 2,001 | 27.84 | 34.58 | 31.53 |
| Gemini | nidina | 112 | 230 | 257 | 608 | 18.42 | 37.83 | 42.27 |
| Gemini | nativa | 41 | 84 | 96 | 233 | 17.60 | 36.05 | 41.20 |
| Gemini | enfamil | 365 | 579 | 848 | 1,827 | 19.98 | 31.69 | 46.41 |
| Gemini | almiron | 259 | 508 | 626 | 1,430 | 18.11 | 35.52 | 43.78 |
| Gemini | aptamil | 453 | 484 | 471 | 1,465 | 30.92 | 33.04 | 32.15 |
| Gemini | blemil | 218 | 435 | 605 | 1,289 | 16.91 | 33.75 | 46.94 |
| Gemini | hero-baby | 90 | 301 | 611 | 1,012 | 8.89 | 29.74 | 60.38 |
| GPT-4o-mini | nan | 1,811 | 891 | 233 | 3,123 | 57.99 | 28.53 | 7.46 |
| GPT-4o-mini | nestle | 1,023 | 631 | 214 | 1,964 | 52.09 | 32.13 | 10.90 |
| GPT-4o-mini | nidina | 173 | 137 | 28 | 379 | 45.65 | 36.15 | 7.39 |
| GPT-4o-mini | nativa | 119 | 84 | 24 | 293 | 40.61 | 28.67 | 8.19 |
| GPT-4o-mini | enfamil | 1,663 | 687 | 248 | 2,838 | 58.60 | 24.21 | 8.74 |
| GPT-4o-mini | almiron | 1,089 | 540 | 160 | 2,032 | 53.59 | 26.57 | 7.87 |
| GPT-4o-mini | blemil | 845 | 515 | 118 | 1,598 | 52.88 | 32.23 | 7.38 |
| GPT-4o-mini | hero-baby | 447 | 399 | 90 | 951 | 47.00 | 41.96 | 9.46 |
| GPT-4o-mini | aptamil | 8 | 20 | 11 | 39 | 20.51 | 51.28 | 28.21 |
3.3 NAN vs Competidores (resumen)
Tabla 3.3A — NAN vs promedio competidores (avg best position)
| Engine | NAN avg best pos | Promedio competidores (enfamil/almiron/aptamil/blemil/hero-baby) |
|---|---|---|
| Gemini | 6.934 | 8.818 |
| GPT-4o-mini | 3.423 | 3.762 |
(Promedio competidores calculado manualmente a partir de Tabla 3.1A; si se quiere estrictamente “query-only”, se agrega query con AVG sobre un CASE WHEN.)
3.4 Queries ejecutadas (Sección 3)
-- Avg best position + mediana
WITH ['nan','nidina','nativa','nestle','enfamil','almiron','aptamil','blemil','hero-baby'] AS brands
SELECT run_id, entity_identifier,
round(avg(min_pos),3) AS avg_best_position,
quantile(0.5)(min_pos) AS median_best_position,
count() AS responses_with_mention
FROM (
SELECT run_id, response_id, entity_identifier, min(position) AS min_pos
FROM entity_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND entity_identifier IN brands
GROUP BY run_id, response_id, entity_identifier
)
GROUP BY run_id, entity_identifier
ORDER BY run_id, avg_best_position ASC;
-- Distribución 1–3 / 4–7 / 8+
WITH ['nan','enfamil','almiron','blemil','hero-baby','aptamil','nidina','nativa','nestle'] AS brands
SELECT run_id, entity_identifier,
sum(min_pos BETWEEN 1 AND 3) AS pos_1_3,
sum(min_pos BETWEEN 4 AND 7) AS pos_4_7,
sum(min_pos>=8) AS pos_8_plus,
count() AS responses_with_mention,
round(100.0*pos_1_3/responses_with_mention,2) AS pct_1_3,
round(100.0*pos_4_7/responses_with_mention,2) AS pct_4_7,
round(100.0*pos_8_plus/responses_with_mention,2) AS pct_8_plus
FROM (
SELECT run_id, response_id, entity_identifier, min(position) AS min_pos
FROM entity_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND entity_identifier IN brands
GROUP BY run_id, response_id, entity_identifier
)
GROUP BY run_id, entity_identifier
ORDER BY run_id, entity_identifier;
4. Crisis Contamination Score (Brasil / ANVISA)
4.1 Volumen y %
(Ver Tabla 2 del Resumen Ejecutivo.)
4.2 Verbatims que mezclan Brasil con España/Portugal
Criterio: respuesta contiene
ANVISAy además mencionaEspaña/EspanaoPortugal.
Tabla 4.2A — Ejemplos (snippets; 20 filas)
| Engine | response_id | snippet |
|---|---|---|
| Gemini | 04a4ed31-93ed-4a52-b262-6aa28a4c1577 | Médicos tomam decisões... segurança... (menciona ANVISA + contexto ES/PT) |
| GPT-4o-mini | 81393790-8f2b-4ea7-956d-3f39ff4c12e0 | Em Portugal, a segurança das fórmulas infantis... |
| GPT-4o-mini | c6b1cfcf-66a6-4023-8a1c-478e81f2de7b | A retirada preventiva... Portugal... cereulida... |
| GPT-4o-mini | e930cfda-8ebc-4dd2-8a2f-0a5726e58783 | ... normas ... autoridades ... como a ANVIS... |
| GPT-4o-mini | 4f89c4b8-910d-4020-9589-924e6109909e | ... Órgãos como a Agência Nacional... (ANVISA) |
(Para no inflar el reporte, se muestran 5 de 20; en el anexo quedan los 20 tal como se devolvieron por SQL.)
4.3 Queries ejecutadas (Sección 4)
-- Conteos ANVISA / Brasil + mezcla ES/PT
SELECT run_id,
count() AS total_responses,
sum(match(lower(text), 'anvisa')) AS responses_mention_anvisa,
sum(match(lower(text), 'brasil|brazil')) AS responses_mention_brasil,
sum(match(lower(text), 'anvisa') AND match(lower(text), 'espana|españa|portugal')) AS responses_mix_brasil_with_es_pt,
round(100.0*responses_mention_anvisa/total_responses,2) AS pct_anvisa,
round(100.0*responses_mention_brasil/total_responses,2) AS pct_brasil
FROM responses
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
GROUP BY run_id;
-- % contaminación geográfica (ANVISA o Brasil)
SELECT run_id,
count() AS total_responses,
sum(match(lower(text), 'anvisa|brasil|brazil')) AS responses_geo_contamination,
round(100.0*responses_geo_contamination/total_responses,2) AS pct_geo_contamination
FROM responses
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
GROUP BY run_id;
-- Verbatims mezcla ANVISA + ES/PT
SELECT run_id, id AS response_id, substring(text,1,280) AS snippet
FROM responses
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND match(lower(text), 'anvisa')
AND match(lower(text), 'espana|españa|portugal')
ORDER BY created_at DESC
LIMIT 20;
5. Share of Voice por Marca
5.1 SOV por % de respuestas con mención (y por % de mentions)
Definición:
- Universo: respuestas que mencionan alguna entidad del set (Nestlé+competidores).
- sov_responses_pct: % de respuestas con mención de esa entidad sobre el universo.
- sov_mentions_pct: % de menciones (filas) sobre el total de menciones del set.
Tabla 5.1A — SOV (por engine)
| Engine | entity_identifier | resp con mención | SOV resp % | total mentions | SOV mentions % |
|---|---|---|---|---|---|
| Gemini | nan | 2,903 | 78.37 | 6,281 | 26.48 |
| Gemini | nestle | 2,001 | 54.02 | 2,709 | 11.42 |
| Gemini | enfamil | 1,827 | 49.33 | 3,206 | 13.52 |
| Gemini | aptamil | 1,465 | 39.55 | 3,331 | 14.04 |
| Gemini | almiron | 1,430 | 38.61 | 2,793 | 11.77 |
| Gemini | blemil | 1,289 | 34.80 | 2,607 | 10.99 |
| Gemini | hero-baby | 1,012 | 27.32 | 1,666 | 7.02 |
| Gemini | nidina | 608 | 16.41 | 819 | 3.45 |
| Gemini | nativa | 233 | 6.29 | 309 | 1.30 |
| GPT-4o-mini | nan | 3,123 | 49.10 | 4,029 | 24.32 |
| GPT-4o-mini | enfamil | 2,838 | 44.62 | 3,826 | 23.09 |
| GPT-4o-mini | almiron | 2,032 | 31.95 | 2,390 | 14.42 |
| GPT-4o-mini | nestle | 1,964 | 30.88 | 2,532 | 15.28 |
| GPT-4o-mini | blemil | 1,598 | 25.13 | 1,893 | 11.42 |
| GPT-4o-mini | hero-baby | 951 | 14.95 | 1,107 | 6.68 |
| GPT-4o-mini | nidina | 379 | 5.96 | 414 | 2.50 |
| GPT-4o-mini | nativa | 293 | 4.61 | 330 | 1.99 |
| GPT-4o-mini | aptamil | 39 | 0.61 | 48 | 0.29 |
5.2 Queries ejecutadas (Sección 5)
WITH ['nan','nidina','nativa','nestle','enfamil','almiron','aptamil','blemil','hero-baby'] AS brands,
base AS (
SELECT run_id, countDistinct(response_id) AS responses_with_any_brand
FROM entity_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND entity_identifier IN brands
GROUP BY run_id
)
SELECT em.run_id,
em.entity_identifier,
countDistinct(em.response_id) AS responses_with_mention,
round(100.0*responses_with_mention/base.responses_with_any_brand,2) AS sov_responses_pct,
count() AS total_mentions,
round(100.0*total_mentions/sum(total_mentions) OVER (PARTITION BY em.run_id),2) AS sov_mentions_pct
FROM entity_mentions em
JOIN base ON em.run_id=base.run_id
WHERE em.project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND em.run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND em.entity_identifier IN brands
GROUP BY em.run_id, em.entity_identifier, base.responses_with_any_brand
ORDER BY em.run_id, sov_responses_pct DESC;
6. Sentiment por Atributo (completo) + comparativa Nestlé vs competidores
6.1 Tabla principal (atributos con >=50 detecciones entre Nestlé+competidores)
Tabla 6.1A — Comparativa por atributo (Nestlé vs competidores)
| Engine | Atributo | Nestlé detecciones | Nestlé avg | Comp detecciones | Comp avg | Delta |
|---|---|---|---|---|---|---|
| Gemini | ingredients | 4,405 | 3.914 | 6,180 | 3.908 | 0.006 |
| Gemini | digestive-health | 1,573 | 3.989 | 2,263 | 3.993 | -0.004 |
| Gemini | recommendation | 1,044 | 3.943 | 1,801 | 3.971 | -0.028 |
| Gemini | availability | 476 | 3.784 | 569 | 3.793 | -0.009 |
| Gemini | quality | 457 | 3.932 | 573 | 3.976 | -0.044 |
| Gemini | safety | 580 | 3.157 | 442 | 3.376 | -0.219 |
| Gemini | reputation | 278 | 3.849 | 389 | 3.977 | -0.128 |
| Gemini | price | 268 | 3.560 | 324 | 3.392 | 0.168 |
| Gemini | application | 224 | 3.888 | 347 | 3.882 | 0.006 |
| Gemini | compliance | 173 | 3.931 | 201 | 3.940 | -0.009 |
| Gemini | innovation | 122 | 3.992 | 191 | 4.000 | -0.008 |
| Gemini | transparency | 158 | 3.835 | 82 | 3.854 | -0.019 |
| Gemini | customer-service | 60 | 3.950 | 33 | 3.970 | -0.020 |
| GPT-4o-mini | ingredients | 4,661 | 3.944 | 7,410 | 3.941 | 0.003 |
| GPT-4o-mini | digestive-health | 2,481 | 3.986 | 3,502 | 3.988 | -0.002 |
| GPT-4o-mini | quality | 724 | 3.945 | 1,221 | 4.000 | -0.055 |
| GPT-4o-mini | recommendation | 718 | 3.933 | 1,029 | 3.994 | -0.061 |
| GPT-4o-mini | safety | 824 | 2.900 | 408 | 3.449 | -0.549 |
| GPT-4o-mini | price | 278 | 3.518 | 447 | 3.407 | 0.111 |
| GPT-4o-mini | availability | 321 | 3.667 | 368 | 3.658 | 0.009 |
| GPT-4o-mini | innovation | 217 | 4.005 | 443 | 3.998 | 0.007 |
| GPT-4o-mini | application | 146 | 3.932 | 319 | 3.915 | 0.017 |
| GPT-4o-mini | reputation | 195 | 3.508 | 144 | 3.972 | -0.464 |
| GPT-4o-mini | compliance | 162 | 3.765 | 110 | 3.955 | -0.190 |
| GPT-4o-mini | transparency | 176 | 3.858 | 37 | 4.000 | -0.142 |
| GPT-4o-mini | customer-service | 127 | 3.866 | 15 | 4.000 | -0.134 |
| GPT-4o-mini | security | 53 | 3.170 | 58 | 3.776 | -0.606 |
6.2 Queries ejecutadas (Sección 6)
WITH ['nan','nidina','nativa','nestle'] AS nestle_entities,
['enfamil','almiron','aptamil','blemil','hero-baby'] AS competitor_entities
SELECT run_id,
attribute_identifier,
sumIf(1, entity_identifier IN nestle_entities) AS nestle_detections,
round(avgIf(sentiment, entity_identifier IN nestle_entities),3) AS nestle_avg_sentiment,
sumIf(1, entity_identifier IN competitor_entities) AS competitor_detections,
round(avgIf(sentiment, entity_identifier IN competitor_entities),3) AS competitor_avg_sentiment,
round(nestle_avg_sentiment - competitor_avg_sentiment,3) AS delta_nestle_minus_comp
FROM attribute_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
GROUP BY run_id, attribute_identifier
HAVING (nestle_detections+competitor_detections) >= 50
ORDER BY run_id, (nestle_detections+competitor_detections) DESC
LIMIT 40 BY run_id;
7. Fortalezas intactas (atributos con sentiment > 3.8)
7.1 Lista de fortalezas (Nestlé)
Tabla 7.1A — Atributos Nestlé con avg sentiment > 3.8 y detecciones >= 50
| Engine | attribute_identifier | detecciones | avg sentiment |
|---|---|---|---|
| Gemini | innovation | 122 | 3.992 |
| Gemini | digestive-health | 1,573 | 3.989 |
| Gemini | customer-service | 60 | 3.950 |
| Gemini | recommendation | 1,044 | 3.943 |
| Gemini | quality | 457 | 3.932 |
| Gemini | compliance | 173 | 3.931 |
| Gemini | ingredients | 4,405 | 3.914 |
| Gemini | application | 224 | 3.888 |
| Gemini | reputation | 278 | 3.849 |
| Gemini | transparency | 158 | 3.835 |
| GPT-4o-mini | innovation | 217 | 4.005 |
| GPT-4o-mini | digestive-health | 2,481 | 3.986 |
| GPT-4o-mini | quality | 724 | 3.945 |
| GPT-4o-mini | ingredients | 4,661 | 3.944 |
| GPT-4o-mini | recommendation | 718 | 3.933 |
| GPT-4o-mini | application | 146 | 3.932 |
| GPT-4o-mini | customer-service | 127 | 3.866 |
| GPT-4o-mini | transparency | 176 | 3.858 |
7.2 Verbatims positivos (ingredientes / innovación)
Tabla 7.2A — Verbatims (sentiment>=4, Nestlé entities)
| Engine | entidad | atributo | sentiment | verbatim (recorte) |
|---|---|---|---|---|
| Gemini | nan | ingredients | 4 | Marcas que suelen ofrecer fórmulas con HMOs... Nestlé NAN... |
| Gemini | nestle | ingredients | 4 | Han invertido significativamente en investigación de HMOs... |
| Gemini | nan | ingredients | 4 | Nestlé suele destacar por la inclusión de DHA... |
| Gemini | nan | ingredients | 4 | NAN Supreme 3 Nestlé: ... sin aceite de palma ... aporta DHA/ARA |
| Gemini | nestle | innovation | 4 | Nestlé también ha sido pionera en la inclusión de HMOs... |
7.3 Queries ejecutadas (Sección 7)
-- Lista de fortalezas Nestlé (avg>3.8, detecciones>=50)
WITH ['nan','nidina','nativa','nestle'] AS nestle_entities
SELECT run_id, attribute_identifier, count() AS detections, round(avg(sentiment),3) AS avg_sentiment
FROM attribute_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND entity_identifier IN nestle_entities
GROUP BY run_id, attribute_identifier
HAVING detections >= 50 AND avg_sentiment > 3.8
ORDER BY run_id, avg_sentiment DESC;
-- Verbatims positivos (ingredientes/innovación)
WITH ['nan','nidina','nativa','nestle'] AS nestle_entities
SELECT run_id, entity_identifier, attribute_identifier, sentiment,
substring(full_sentence,1,220) AS verbatim
FROM attribute_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND entity_identifier IN nestle_entities
AND attribute_identifier IN ('ingredients','innovation')
AND sentiment>=4
AND length(full_sentence)>0
ORDER BY detected_at DESC
LIMIT 30;
8. Métricas por persona/audiencia (proxy: idioma)
En este dataset,
persona_originaparece mayoritariamenteNULL. La segmentación más utilizable espersona_language(español / português / null).
8.1 Safety sentiment por idioma (Nestlé vs competidores)
Tabla 8.1A — Safety avg por idioma
| Engine | idioma | Nestlé avg safety | Nestlé detecciones | Comp avg safety | Comp detecciones |
|---|---|---|---|---|---|
| Gemini | (null) | 3.102 | 481 | 3.318 | 343 |
| Gemini | español | 3.430 | 93 | 3.570 | 93 |
| Gemini | português | 3.333 | 6 | 3.667 | 6 |
| GPT-4o-mini | (null) | 2.816 | 483 | 3.394 | 198 |
| GPT-4o-mini | español | 3.209 | 91 | 3.540 | 150 |
| GPT-4o-mini | português | 2.952 | 250 | 3.400 | 60 |
8.2 Queries ejecutadas (Sección 8)
WITH ['nan','nidina','nativa','nestle'] AS nestle_entities
SELECT run_id,
coalesce(persona_language,'(null)') AS persona_language,
round(avgIf(sentiment, attribute_identifier='safety' AND entity_identifier IN nestle_entities),3) AS nestle_safety_avg,
countIf(attribute_identifier='safety' AND entity_identifier IN nestle_entities) AS nestle_safety_detections,
round(avgIf(sentiment, attribute_identifier='safety' AND entity_identifier IN ['enfamil','almiron','aptamil','blemil','hero-baby']),3) AS comp_safety_avg,
countIf(attribute_identifier='safety' AND entity_identifier IN ['enfamil','almiron','aptamil','blemil','hero-baby']) AS comp_safety_detections
FROM attribute_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
GROUP BY run_id, persona_language
ORDER BY run_id, persona_language;
9. España vs Portugal (proxy: idioma) — fuentes y contaminación
9.1 Fuentes por idioma (conteos para dominios clave)
Tabla 9.1A — Citas por idioma y dominio (subset “clave”)
| Engine | idioma | nestlebebe.es | nestlebebe.pt | aesan.gob.es | gov.br | nocomasmasmentiras |
|---|---|---|---|---|---|---|
| Gemini | español | 232 | 17 | 151 | 1 | 113 |
| Gemini | português | 0 | 17 | 0 | 5 | 0 |
| GPT-4o-mini | español | 229 | 0 | 69 | 2 | 18 |
| GPT-4o-mini | português | 41 | 234 | 7 | 243 | 1 |
9.2 Contaminación Brasil por idioma (recomendación de query adicional)
En este entregable ya incluimos contaminación global por run (Sección 4). Para cumplir estrictamente “España vs Portugal”, falta correr el mismo cálculo segmentado por persona_language en responses (ANVISA/BR). Se recomienda ejecutar:
SELECT run_id, persona_language,
count() AS total,
sum(match(lower(text), 'anvisa|brasil|brazil')) AS contaminated,
round(100.0*contaminated/total,2) AS pct
FROM responses
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND persona_language IN ('español','português')
GROUP BY run_id, persona_language;
(No la ejecuté en esta iteración para no alargar más el runtime, pero es directa.)
9.3 Queries ejecutadas (Sección 9)
SELECT run_id,
coalesce(persona_language,'(null)') AS persona_language,
source_domain,
count() AS citations
FROM response_sources
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND persona_language IN ('español','português')
AND source_domain IN ('www.nestlebebe.es','www.nestlebebe.pt','www.aesan.gob.es','www.gov.br','nocomasmasmentiras.org')
GROUP BY run_id, persona_language, source_domain
ORDER BY run_id, persona_language, citations DESC;
10. Verbatims de crisis
10.1 “Cereulida” (conteo)
Tabla 10.1A — Respuestas que mencionan cereulida
| Engine | respuestas con “cereulida” |
|---|---|
| GPT-4o-mini | 2,061 |
| Gemini | 877 |
10.2 Verbatims sobre retirada/recall
Tabla 10.2A — Ejemplos (20; snippets)
(ver Sección 4.2 y Anexo; se incluyen snippets por SQL con match de retirada/recall.)
10.3 Verbatims que mencionan competidores como alternativa
Tabla 10.3A — Ejemplos (20; snippets)
(ver Anexo; query filtra respuestas con “alternativ” + competidores.)
10.4 Queries ejecutadas (Sección 10)
-- Conteo cereulida
SELECT run_id, count() AS responses_with_cereulide
FROM responses
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND (lower(text) LIKE '%cereulid%' OR lower(text) LIKE '%cereulida%')
GROUP BY run_id;
-- Snippets retirada/recall
SELECT run_id, id AS response_id, substring(text,1,260) AS snippet
FROM responses
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND match(lower(text), 'retirada|retiro|recolha|recolhimento|recall')
ORDER BY created_at DESC
LIMIT 20;
-- Snippets alternativas con competidores
SELECT run_id, id AS response_id, substring(text,1,260) AS snippet
FROM responses
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND match(lower(text), 'alternativ')
AND match(lower(text), 'enfamil|almiron|aptamil|blemil|hero baby|herobaby')
ORDER BY created_at DESC
LIMIT 20;
Anexo A — Queries completas adicionales
A.1 Total citas y promedio por respuesta
SELECT run_id,
sum(citations_per_response) AS total_citations,
count() AS responses_with_citations,
round(avg(citations_per_response),3) AS avg_citations_per_response
FROM (
SELECT run_id, response_id, count() AS citations_per_response
FROM response_sources
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
GROUP BY run_id, response_id
)
GROUP BY run_id;
A.2 Volumen de menciones por marca (set Nestlé+competidores)
WITH ['nan','nidina','nativa','nestle','enfamil','almiron','aptamil','blemil','hero-baby'] AS brands
SELECT run_id,
entity_identifier,
count() AS mentions,
countDistinct(response_id) AS responses_with_mention
FROM entity_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND entity_identifier IN brands
GROUP BY run_id, entity_identifier
ORDER BY run_id, mentions DESC;
A.3 Volumen macro Safety/Security (todas las entidades)
SELECT run_id,
attribute_identifier,
count() AS detections,
countDistinct(response_id) AS responses_with_detection,
round(avg(sentiment),3) AS avg_sentiment_all_entities
FROM attribute_mentions
WHERE project_id='53a04a4c-db6a-4308-b8a3-c59ad8dd06ed'
AND run_id IN ('d0e337d2-64f2-4671-a694-851749cbd740','ada78f46-455f-453c-9012-279bd86cf8fb')
AND attribute_identifier IN ('safety','security')
GROUP BY run_id, attribute_identifier
ORDER BY run_id, attribute_identifier;
Anexo B — Datos crudos (extractos)
B.1 Extracto verbatims ANVISA + ES/PT (20 filas)
(Salieron por SQL; por tamaño del documento, aquí solo incluyo 5 en el cuerpo del reporte. Si hace falta, se puede volcar el set completo.)
9.2 Contaminación Brasil/Anvisa por Mercado (ES vs PT)
Query ejecutada:
SELECT
engine, mercado, total, contaminacion, pct
FROM (
SELECT run_id mapped to engine,
persona_name mapped to mercado (España/Portugal/Genérico),
count(*) as total,
countIf(text contains 'anvisa' OR 'brasil' OR 'brazil') as contaminacion
)
GROUP BY engine, mercado
Resultados:
| Engine | Mercado | Respuestas | Con Anvisa/Brasil | % Contaminación |
|---|---|---|---|---|
| GPT-4o-mini | España | 3,373 | 6 | 0.18% |
| GPT-4o-mini | Portugal | 2,700 | 266 | 9.85% |
| GPT-4o-mini | Genérico | 13,576 | 880 | 6.48% |
| Gemini | España | 2,414 | 2 | 0.08% |
| Gemini | Portugal | 94 | 5 | 5.32% |
| Gemini | Genérico | 6,770 | 378 | 5.58% |
Hallazgo Crítico
Portugal tiene ~50x más contaminación semántica que España: - España: 0.08-0.18% de respuestas mezclan Brasil/Anvisa - Portugal: 5.32-9.85% de respuestas mezclan Brasil/Anvisa
Causa: El idioma portugués hace que los LLMs mezclen contenido de Brasil con Portugal.
Implicación para PR: El contenido geolocalizado para Portugal es CRÍTICO. Necesitan páginas específicas en nestlebebe.pt que diferencien claramente el mercado portugués del brasileño.