{ "helpCenter": { "title": "¿Cómo Podemos Ayudarte Hoy?", "subtitle": "Centro de Ayuda", "searchPlaceholder": "Buscar en la ayuda... (ej: ¿cómo importo datos?)", "description": "Encuentra respuestas rápidas, guías completas y contacto directo con nuestro equipo", "categoriesTitle": "Explora por Categoría", "categoriesSubtitle": "Encuentra lo que necesitas más rápido", "faqTitle": "Preguntas Frecuentes", "faqResultsCount_one": "{count} respuesta", "faqResultsCount_other": "{count} respuestas", "faqFound": "encontradas", "noResultsTitle": "No encontramos resultados para", "noResultsAction": "Contacta con soporte", "contactTitle": "¿No Encuentras lo Que Buscas?", "contactSubtitle": "Nuestro equipo está aquí para ayudarte", "contactHours": "Horario de Atención" }, "docs": { "title": "Guías Completas Para Dominar Panadería IA", "subtitle": "Documentación", "description": "Tutoriales paso a paso, mejores prácticas y trucos para aprovechar al máximo la plataforma", "getStarted": "Comenzar", "backToHelp": "Centro de Ayuda", "sectionsTitle": "Secciones", "videoTutorialsTitle": "Tutoriales en Vídeo", "videoTutorialsSubtitle": "Aprende viendo (próximamente)", "additionalResourcesTitle": "Recursos Adicionales", "ctaTitle": "¿Listo Para Empezar?", "ctaSubtitle": "Regístrate en el programa piloto y obtén 3 meses gratis", "ctaButton": "Crear Cuenta Gratis", "articlesCount": "artículos", "readTime": "min", "quickLinks": "Enlaces Rápidos", "downloadPdf": "Descargar PDF", "contactSupport": "Contactar Soporte", "glossary": "Glosario de Términos", "troubleshooting": "Solución de Problemas", "bestPractices": "Mejores Prácticas" }, "difficulty": { "beginner": "Principiante", "intermediate": "Intermedio", "advanced": "Avanzado" }, "categories": { "gettingStarted": { "title": "Primeros Pasos", "description": "Configura tu cuenta y aprende los conceptos básicos" }, "features": { "title": "Funcionalidades", "description": "Guías completas sobre todas las características" }, "analytics": { "title": "Análisis y Predicciones", "description": "Interpreta datos e insights de IA" }, "account": { "title": "Gestión de Cuenta", "description": "Administra tu perfil, equipo y configuración" }, "billing": { "title": "Facturación y Planes", "description": "Información sobre precios, pagos y suscripciones" }, "privacy": { "title": "Privacidad y Seguridad", "description": "RGPD, seguridad de datos y cumplimiento" } }, "articles": { "gettingStarted": { "quickStart": { "title": "Guía de Inicio Rápido", "description": "Configura tu cuenta de BakeWise en 15-20 minutos con nuestro asistente guiado paso a paso", "readTime": "8", "content": { "intro": "Bienvenido a BakeWise (Panadería IA). Nuestro asistente de configuración guiado te ayudará a poner en marcha el sistema en 15-20 minutos. El proceso incluye análisis automático de tus datos con IA para detectar productos y crear tu inventario inicial.", "steps": [ { "title": "1. Registro de Usuario", "description": "Crea tu cuenta con email y contraseña. El sistema te enviará un email de verificación. Puedes registrarte también a través de una sesión demo para probar sin compromiso." }, { "title": "2. Selección de Tipo de Negocio", "description": "Indica si eres: Panadería Tradicional (producción y venta en el mismo local), Obrador Central (produces para distribuir a otros puntos), Punto de Venta (recibes producto de un obrador central), o Modelo Mixto (producción propia + distribución). Esto personaliza el flujo de configuración." }, { "title": "3. Registro de tu Panadería", "description": "Completa la información: Nombre del negocio, Dirección completa (con autocompletado de Google Maps), Código postal y ciudad, Teléfono de contacto. El sistema detecta automáticamente tu ubicación y analiza el contexto de puntos de interés cercanos (escuelas, oficinas, estaciones) para mejorar las predicciones." }, { "title": "4. Subir Datos de Ventas Históricos", "description": "Sube un archivo Excel o CSV con tu historial de ventas (mínimo 3 meses recomendado). El sistema incluye IA que analiza automáticamente el archivo para: Detectar productos únicos, Identificar categorías (pan, bollería, pastelería), Extraer patrones de ventas. El análisis tarda 30-60 segundos." }, { "title": "5. Revisar Inventario Detectado", "description": "La IA te muestra todos los productos detectados agrupados por categoría. Puedes: Aprobar productos tal cual, Editar nombres o categorías, Eliminar duplicados, Añadir productos manualmente. El sistema crea automáticamente el inventario completo." }, { "title": "6. Configurar Stock Inicial (Opcional)", "description": "Para cada producto/ingrediente detectado, indica las cantidades actuales en stock. Esto es opcional pero recomendado para empezar con control de inventario desde el día 1." }, { "title": "7. Configurar Proveedores (Opcional)", "description": "Añade tus proveedores principales: nombre, contacto, productos que suministran. Puedes saltarte este paso e ir directamente al entrenamiento del modelo IA." }, { "title": "8. Entrenamiento del Modelo IA", "description": "El sistema entrena automáticamente tu modelo personalizado de predicción usando: Tus datos históricos de ventas, Contexto de ubicación (POIs detectados), Calendario de festivos español, Datos meteorológicos de AEMET. El entrenamiento tarda 2-5 minutos y muestra progreso en tiempo real vía WebSocket." }, { "title": "9. ¡Listo para Usar!", "description": "Una vez completado el entrenamiento, accedes al dashboard principal donde verás: Predicciones de demanda para los próximos 7 días, Plan de producción sugerido para hoy, Alertas de stock bajo, Métricas clave del negocio." } ], "tips": [ "IMPORTANTE: Sube al menos 3-6 meses de historial de ventas para que la IA pueda detectar patrones estacionales", "El archivo de ventas debe tener columnas: Fecha, Producto, Cantidad. El sistema detecta automáticamente el formato", "El análisis con IA te ahorra horas de trabajo manual creando el catálogo e inventario automáticamente", "Puedes saltar pasos opcionales (stock inicial, proveedores) y configurarlos después desde el dashboard", "La precisión de predicciones mejora con el tiempo: primeras 2 semanas ~70-75%, después del primer mes ~80-85%", "Usuarios Enterprise pueden registrar múltiples sucursales (puntos de venta) tras crear el obrador central" ], "conclusion": "El asistente guiado incluye validación en cada paso y guarda tu progreso automáticamente. Puedes pausar en cualquier momento y continuar después desde donde lo dejaste." } }, "importData": { "title": "Importar Datos Históricos de Ventas", "description": "Sube tu historial de ventas en Excel o CSV con validación automática y análisis IA", "readTime": "10", "content": { "intro": "El sistema de importación incluye validación automática inteligente y análisis con IA. Cuantos más datos históricos proporciones (recomendamos 3-12 meses), más precisas serán las predicciones de demanda y el sistema podrá detectar patrones estacionales.", "supportedFormats": [ { "format": "Excel (.xlsx, .xls)", "description": "Formato más común y recomendado. Soporta múltiples hojas (se usa la primera). Permite formato de fecha flexible." }, { "format": "CSV (.csv)", "description": "Texto plano separado por comas. Exportable desde cualquier TPV o sistema de caja. Codificación UTF-8 recomendada." }, { "format": "JSON", "description": "Para integraciones avanzadas. Formato estructurado para APIs o exportaciones programáticas." } ], "requiredColumns": { "title": "Columnas Requeridas en tu Archivo", "columns": [ { "name": "Fecha", "description": "Fecha de la venta. Formatos aceptados: DD/MM/AAAA, AAAA-MM-DD, DD-MM-AAAA. Ejemplo: 15/03/2024 o 2024-03-15", "required": true }, { "name": "Producto", "description": "Nombre del producto vendido. Puede ser cualquier texto. La IA detecta y agrupa productos similares automáticamente.", "required": true }, { "name": "Cantidad", "description": "Unidades vendidas. Número entero o decimal. Ejemplo: 12 (baguettes) o 2.5 (kg de pan integral)", "required": true }, { "name": "Precio (Opcional)", "description": "Precio de venta unitario o total. Útil para análisis de ingresos pero no obligatorio para predicciones.", "required": false } ] }, "steps": [ { "title": "1. Durante el Onboarding (Opción Recomendada)", "description": "El asistente de configuración inicial incluye un paso de 'Subir Datos de Ventas' donde puedes arrastrar y soltar tu archivo. El sistema: 1) Valida el formato automáticamente, 2) Extrae productos únicos, 3) Clasifica con IA en categorías (pan, bollería, pastelería), 4) Crea el inventario completo automáticamente. ¡Esto te ahorra horas de trabajo manual!" }, { "title": "2. Desde el Dashboard (Después del Onboarding)", "description": "Ve a Analítica > Ventas > Importar Datos. Selecciona el rango de fechas y sube tu archivo. El sistema detecta automáticamente productos nuevos y te pregunta si quieres añadirlos al catálogo." }, { "title": "3. Validación Automática", "description": "El sistema valida en tiempo real: Formato de archivo correcto (Excel/CSV), Formato de fechas válido, Columnas requeridas presentes, Datos numéricos en campos de cantidad. Si hay errores, muestra exactamente qué fila y qué problema." }, { "title": "4. Análisis con IA (Durante Onboarding)", "description": "La IA analiza tu archivo y: Detecta productos únicos (agrupa variaciones como 'Baguette', 'baguette', 'BAGUETTE'), Clasifica automáticamente en categorías basándose en nombres comunes de panadería, Identifica si son productos finales o ingredientes, Sugiere unidades de medida apropiadas. Esto tarda 30-60 segundos." }, { "title": "5. Revisión y Confirmación", "description": "El sistema muestra: Total de filas procesadas, Productos únicos detectados, Agrupados por categoría (pan: 12 productos, bollería: 8, etc.). Puedes editar, eliminar o añadir productos antes de confirmar." }, { "title": "6. Importación Final", "description": "Al confirmar, el sistema: Crea/actualiza productos en el inventario, Importa todas las ventas históricas a la base de datos, Asocia ventas con productos del catálogo, Prepara datos para entrenamiento del modelo IA. Archivos grandes (>50.000 filas) se procesan en segundo plano." } ], "tips": [ "IMPORTANTE: Durante el onboarding, la importación de datos crea automáticamente tu catálogo e inventario completo con IA", "Si importas después del onboarding, asegúrate de que los nombres de productos coincidan exactamente con los del catálogo", "Formatos de fecha flexibles: el sistema detecta automáticamente DD/MM/AAAA, AAAA-MM-DD, DD-MM-AAAA", "Puedes importar múltiples veces. El sistema detecta duplicados por fecha + producto y te pregunta si quieres sobrescribir", "Archivos >100.000 filas: se procesan en segundo plano, recibirás notificación cuando termine (5-10 min típicamente)", "Codificación CSV: usa UTF-8 para evitar problemas con acentos y caracteres españoles (ñ, á, é, etc.)" ], "commonIssues": [ { "issue": "Error: 'Columna Fecha no encontrada'", "solution": "Asegúrate de que tu archivo tiene una columna llamada 'Fecha', 'Date', 'Día' o similar. El sistema detecta variaciones comunes pero la columna debe existir." }, { "issue": "Error: 'Formato de fecha inválido en fila X'", "solution": "Usa formato DD/MM/AAAA (15/03/2024) o AAAA-MM-DD (2024-03-15). En Excel, formatea la columna como 'Fecha' o 'Texto' (no 'General')." }, { "issue": "Productos duplicados después de importar", "solution": "Normaliza nombres antes de importar: 'Baguette', 'baguette', 'BAGUETTE' se detectan como iguales durante onboarding, pero no en importaciones posteriores." }, { "issue": "El archivo se sube pero no muestra progreso", "solution": "Archivos >10 MB pueden tardar. Espera 30-60 segundos. Si no avanza, verifica que el archivo no esté corrupto (abrelo primero en Excel/LibreOffice)." }, { "issue": "Importación completa pero faltan productos en catálogo", "solution": "En importaciones posteriores al onboarding, productos nuevos requieren confirmación manual. Revisa la notificación 'X productos nuevos detectados' y apruébalos." } ], "advancedFeatures": [ { "feature": "Mapeo de Columnas Flexible", "description": "El sistema detecta automáticamente columnas aunque tengan nombres diferentes: 'Fecha', 'Date', 'Día'; 'Producto', 'Product', 'Item', 'Artículo'; 'Cantidad', 'Qty', 'Unidades', 'Vendido'." }, { "feature": "Detección de Duplicados", "description": "Si importas datos que ya existen (mismo producto + fecha), el sistema te pregunta: Sobrescribir valores existentes, Saltar duplicados, o Cancelar importación." }, { "feature": "Validación Pre-Import", "description": "Antes de importar, puedes validar el archivo. El sistema muestra: Filas válidas vs inválidas, Lista de errores específicos por fila, Productos únicos detectados. No se guarda nada hasta que confirmes." } ], "conclusion": "La importación durante el onboarding es mágica: subes un archivo y obtienes catálogo completo + inventario + clasificación IA en menos de 2 minutos. Importaciones posteriores son más manuales pero igualmente validadas automáticamente." } }, "productsCatalog": { "title": "Configurar Catálogo de Productos", "description": "Gestiona productos finales, ingredientes y recetas con creación automática vía IA o manual", "readTime": "12", "content": { "intro": "El catálogo de productos es el núcleo del sistema. BakeWise ofrece DOS formas de crearlo: AUTOMÁTICA (durante onboarding con IA) o MANUAL (paso a paso desde el dashboard). El inventario unifica productos finales e ingredientes en una sola vista jerárquica.", "twoApproaches": { "title": "Dos Formas de Crear tu Catálogo", "automatic": { "name": "AUTOMÁTICA - Durante Onboarding (Recomendado)", "description": "Subes archivo de ventas → IA detecta productos → Clasifica categorías → Crea inventario completo. Tarda 2-3 minutos y te ahorra horas de trabajo manual. Ver tutorial 'Importar Datos Históricos'.", "pros": ["Rapidísimo (2-3 min total)", "IA clasifica automáticamente", "Detecta duplicados", "Identifica productos vs ingredientes"] }, "manual": { "name": "MANUAL - Desde Dashboard", "description": "Añades productos/ingredientes uno por uno desde Mi Panadería > Inventario. Útil para: Añadir nuevos productos después del onboarding, Corregir clasificaciones de IA, Catálogos pequeños (<20 productos).", "pros": ["Control total sobre categorización", "Útil para añadir productos nuevos", "No requiere archivo de ventas"] } }, "inventoryStructure": { "title": "Estructura del Inventario (Unificado)", "description": "BakeWise usa un inventario UNIFICADO que incluye tanto productos finales como ingredientes en la misma tabla. Cada ítem tiene:", "fields": [ { "field": "Tipo de Producto", "values": "Producto Final (lo que vendes) o Ingrediente (materia prima)", "example": "Baguette = Producto Final, Harina T-55 = Ingrediente" }, { "field": "Categoría", "values": "Pan, Bollería, Pastelería, Especiales, Otros (para productos finales). Harinas, Lácteos, Levaduras, etc. (para ingredientes)", "example": "Croissant → Bollería, Mantequilla → Lácteos" }, { "field": "Unidad de Medida", "values": "unidades, kg, g, L, ml, docena", "example": "Baguette = unidades, Harina = kg, Leche = L" }, { "field": "Stock Actual", "values": "Cantidad disponible ahora (se actualiza automáticamente con entradas/salidas)", "example": "Baguettes: 45 unidades, Harina: 120 kg" }, { "field": "Punto de Reorden", "values": "Stock mínimo que dispara alerta de compra", "example": "Harina: 50 kg (si baja de 50, alerta automática)" }, { "field": "Proveedor Principal", "values": "Quién te suministra (solo para ingredientes)", "example": "Harina T-55 → Harinera La Espiga S.A." }, { "field": "Precio", "values": "Coste unitario (ingredientes) o precio de venta (productos finales)", "example": "Harina: 0.85€/kg, Baguette: 1.20€/unidad" } ] }, "steps": [ { "title": "1. Acceder al Inventario Unificado", "description": "Ve a Mi Panadería > Inventario en el menú lateral. Aquí ves TODOS los ítems: productos finales e ingredientes juntos. Usa las pestañas 'Productos Finales' e 'Ingredientes' para filtrar, o la vista 'Todos' para verlo completo." }, { "title": "2. Añadir Producto Final (Manual)", "description": "Click en '+ Nuevo Producto' → Selecciona tipo 'Producto Final' → Completa: Nombre (ej: Croissant de Mantequilla), Categoría (Bollería), Unidad (unidades), Precio de venta (ej: 1.50€), Stock inicial (opcional), Código de barras/SKU (opcional). El sistema crea el producto y lo añade al inventario." }, { "title": "3. Añadir Ingrediente (Manual)", "description": "Click en '+ Nuevo Ingrediente' → Completa: Nombre (ej: Harina de Fuerza T-65), Categoría (Harinas), Unidad (kg), Proveedor (selecciona de lista o añade nuevo), Precio por unidad (ej: 0.92€/kg), Stock inicial (ej: 150 kg), Punto de reorden (ej: 50 kg). Cuando stock baje de 50 kg, recibirás alerta automática." }, { "title": "4. Crear Recetas (Producción)", "description": "Ve a Mi Panadería > Recetas → '+ Nueva Receta' → Selecciona producto final (ej: Croissant) → Añade ingredientes con cantidades: Harina T-65: 500g, Mantequilla: 250g, Leche: 150ml, etc. → Indica rendimiento (cuántas unidades salen), tiempo de producción, pasos. Las recetas permiten: Calcular coste de producción automáticamente, Saber cuánto ingrediente necesitas para X unidades, Planificar compras basándose en producción prevista." }, { "title": "5. Gestionar Proveedores", "description": "Ve a Mi Panadería > Proveedores → '+ Nuevo Proveedor' → Completa: Nombre empresa, Contacto (email, teléfono), Dirección, Productos que suministra, Días de entrega, Monto mínimo de pedido. Luego asigna proveedores a ingredientes para: Generar órdenes de compra automáticas, Comparar precios entre proveedores, Rastrear rendimiento (entregas a tiempo, calidad)." }, { "title": "6. Configurar Alertas de Stock", "description": "Para cada ingrediente, define 'Punto de Reorden'. Cuando stock actual < punto de reorden, recibes: Alerta en dashboard (ícono rojo), Notificación por email/WhatsApp (si configurado), Sugerencia automática de orden de compra. Ejemplo: Harina con punto de reorden 50 kg → al llegar a 49 kg, alerta 'Hacer pedido de harina'." } ], "recipes": { "title": "Sistema de Recetas (Opcional pero Recomendado)", "description": "Las recetas conectan productos finales con ingredientes. Beneficios clave:", "benefits": [ "Cálculo automático de coste de producción por producto", "Planificación de compras: 'Para producir 200 baguettes necesito 100 kg harina'", "Consumo automático de stock al registrar producciones (FIFO)", "Análisis de rentabilidad: margen = precio venta - coste ingredientes", "Escalado de lotes: receta para 10 unidades → sistema calcula para 100" ], "recipeFields": [ "Producto final que produce", "Lista de ingredientes con cantidades exactas", "Rendimiento (cuántas unidades salen de esta receta)", "Tiempo de producción (preparación + horneado + enfriado)", "Pasos/instrucciones (opcional, para capacitación de equipo)", "Temperatura y equipo necesario (horno, batidora, etc.)" ] }, "tips": [ "CLAVE: Durante onboarding, usa importación IA para crear catálogo en 2 minutos. Luego refina manualmente si es necesario", "Estructura jerárquica: Categorías > Productos/Ingredientes. Usa categorías consistentes para mejores reportes", "Punto de reorden = (Consumo diario promedio × Días de entrega del proveedor) + Margen de seguridad 20%", "Recetas son OPCIONALES para predicciones, pero ESENCIALES para: planificación de compras, control de costes, producción automatizada", "El sistema soporta recetas multi-nivel: Croissant usa Masa Madre, y Masa Madre tiene su propia receta de ingredientes", "Puedes importar catálogo desde Excel: Plantilla disponible en Inventario > Importar > Descargar Plantilla" ], "advancedFeatures": [ { "feature": "Gestión de Lotes y Caducidades", "description": "Para ingredientes perecederos, registra lote y fecha de caducidad en cada entrada. Sistema usa FIFO automático (First-In-First-Out) y alerta 7 días antes de caducar." }, { "feature": "Códigos de Barras / SKU", "description": "Asigna códigos de barras a productos/ingredientes. Útil para: Escaneo rápido en recepción de pedidos, Integración con TPV, Trazabilidad HACCP." }, { "feature": "Variantes de Producto", "description": "Crea variantes (ej: Baguette Normal, Baguette Integral, Baguette Sin Sal) que comparten receta base pero con diferencias. Sistema predice demanda por variante." }, { "feature": "Imágenes de Productos", "description": "Sube fotos de productos finales. Útil para: Capacitación de equipo (cómo debe verse), Control de calidad visual, Catálogo para clientes." } ], "conclusion": "La forma más eficiente es: 1) Usar IA durante onboarding para crear inventario base (2 min), 2) Añadir recetas manualmente para productos principales (15-30 min), 3) Ir añadiendo nuevos productos/ingredientes según necesites. El inventario unificado simplifica la gestión vs. tener productos e ingredientes separados." } }, "firstPrediction": { "title": "Tu Primera Predicción de Demanda", "description": "Cómo funciona el sistema de predicción con Prophet, qué métricas ver y cómo interpretar resultados", "readTime": "12", "content": { "intro": "Las predicciones de demanda son el corazón de BakeWise. Utilizan Prophet (algoritmo de Facebook optimizado para series temporales) más datos contextuales de España (festivos, clima AEMET, puntos de interés cercanos) para predecir cuánto venderás de cada producto en los próximos 7-30 días.", "whenFirstPrediction": { "title": "¿Cuándo se Genera la Primera Predicción?", "description": "Tu primera predicción se genera AUTOMÁTICAMENTE al completar el paso 'Entrenamiento del Modelo IA' durante el onboarding. Este proceso:", "steps": [ "Toma tus datos históricos de ventas (mínimo 3 meses)", "Detecta patrones: tendencia general, estacionalidad semanal/anual, efectos de festivos", "Integra contexto de ubicación (POIs: escuelas, oficinas, estaciones cerca)", "Consulta calendario de festivos español (nacionales y locales de Madrid)", "Entrena modelo personalizado por producto (2-5 minutos vía WebSocket)", "Genera predicciones para los próximos 7 días automáticamente" ], "timing": "Después del onboarding, el sistema genera predicciones DIARIAMENTE a las 5:30 AM de forma automática. No necesitas hacer nada manual." }, "howProphetWorks": { "title": "Cómo Funciona Prophet (Simplificado)", "description": "Prophet descompone tus ventas históricas en componentes:", "components": [ { "component": "Tendencia (Trend)", "description": "¿Están subiendo o bajando las ventas con el tiempo? Ej: crecimiento 5% mensual desde apertura", "example": "Si vendes más cada mes, Prophet detecta esa curva ascendente" }, { "component": "Estacionalidad Semanal", "description": "Patrones que se repiten cada semana. Ej: Sábados vendes 50% más que Lunes", "example": "Lun: 80 baguettes, Sáb: 120 baguettes (patrón detectado automáticamente)" }, { "component": "Estacionalidad Anual", "description": "Patrones anuales. Ej: Diciembre (Navidad) vendes 200% más roscones", "example": "Requiere mínimo 12 meses de datos para detectar" }, { "component": "Efectos de Festivos", "description": "Impacto de festivos españoles: Reyes, Semana Santa, Navidad, etc. Prophet sabe que 6 de Enero (Reyes) dispara ventas de roscón", "example": "Sistema incluye calendario completo de festivos nacionales y Madrid" }, { "component": "Regresores Externos (BakeWise)", "description": "Variables adicionales que BakeWise añade: Clima (temperatura, lluvia de AEMET), Tráfico (datos de Madrid), POIs (cuántas escuelas/oficinas hay cerca)", "example": "Días de lluvia → -15% ventas de ciertos productos (detectado automáticamente)" } ] }, "readingPredictions": { "title": "Cómo Leer tus Predicciones (Dashboard)", "description": "Ve a Analítica > Predicciones. Para cada producto verás:", "metrics": [ { "metric": "yhat (Predicción Central)", "description": "Valor más probable de ventas. Esto es lo que el sistema 'espera' que vendas.", "example": "Baguette - Viernes 17/01: yhat = 145 unidades", "interpretation": "Planifica producir ~145 baguettes para ese día" }, { "metric": "yhat_lower (Mínimo Esperado)", "description": "Límite inferior del intervalo de confianza al 95%. Hay 95% probabilidad de vender MÁS que esto.", "example": "yhat_lower = 125 unidades", "interpretation": "Escenario conservador: produce mínimo 125 para cubrir demanda base" }, { "metric": "yhat_upper (Máximo Esperado)", "description": "Límite superior del intervalo de confianza al 95%. Hay 95% probabilidad de vender MENOS que esto.", "example": "yhat_upper = 165 unidades", "interpretation": "Escenario optimista: si produces 165, probablemente te sobre algo" }, { "metric": "Comparación vs Promedio", "description": "Porcentaje vs. promedio histórico de ese día de la semana.", "example": "+12% vs promedio Viernes", "interpretation": "Se espera un Viernes mejor de lo habitual (quizás festivo cercano)" }, { "metric": "Precisión Histórica (MAPE)", "description": "Qué tan acertadas han sido predicciones pasadas para este producto. MAPE = Mean Absolute Percentage Error.", "example": "MAPE = 15% significa que el error promedio es 15%", "interpretation": "MAPE <20% = bueno, <15% = excelente, >25% = revisar datos o modelo" } ] }, "visualizations": { "title": "Gráficos Disponibles", "charts": [ "Gráfico de Línea: predicción (yhat) + intervalo de confianza (zona sombreada)", "Comparativa vs Real: línea azul = predicción, puntos naranjas = ventas reales (para validar precisión)", "Componentes de Prophet: gráfico de tendencia, estacionalidad semanal, efectos festivos por separado", "Heatmap Semanal: qué días/horas vendes más (si tienes datos horarios)" ] }, "adjustingPredictions": { "title": "Ajustar Predicciones Manualmente", "description": "Si conoces información que Prophet no tiene (evento local, promoción, obra en la calle), puedes ajustar:", "howTo": [ "Ve a predicción de producto específico → Click en día futuro", "Selecciona 'Ajustar Manualmente'", "Indica nuevo valor (ej: aumentar 20% por feria local)", "Añade nota explicativa (ej: 'Feria del barrio este fin de semana')", "Sistema guarda ajuste y APRENDE: si feria se repite cada año, Prophet lo detectará" ], "learningNote": "El sistema valida predicciones vs ventas reales cada noche. Si tus ajustes manuales mejoran precisión, Prophet ajusta automáticamente sus parámetros." }, "tips": [ "PRIMERA SEMANA: Predicciones pueden tener 15-20% error (MAPE). Es normal, el modelo está aprendiendo", "PRIMER MES: Precisión mejora a ~10-15% MAPE conforme valida predicciones vs ventas reales diarias", "DESPUÉS DE 3 MESES: Precisión estabiliza en 8-12% MAPE (85-90% precisión) para productos con datos suficientes", "Productos con POCA rotación (vendes <5 unidades/día) tendrán mayor error que productos de ALTA rotación", "Si MAPE >25% después de 1 mes: revisa datos (¿duplicados? ¿productos mal nombrados?) o contacta soporte", "Intervalo de confianza AMPLIO (yhat_upper - yhat_lower > 50% del yhat) = alta incertidumbre, necesitas más datos", "Festivos ATÍPICOS (no oficiales): añádelos manualmente en Configuración > Festivos Personalizados para mejor precisión" ], "automaticRetraining": { "title": "Reentrenamiento Automático del Modelo", "description": "BakeWise re-entrena modelos automáticamente cuando:", "triggers": [ "MAPE sube >30% por 7 días consecutivos (señal de cambio de patrón)", "Cada 30 días (actualización programada para incorporar datos nuevos)", "Después de importar lote grande de datos históricos nuevos", "Cuando añades nuevos festivos personalizados o cambias ubicación" ], "process": "Reentrenamiento tarda 2-5 minutos, se hace en segundo plano (5:30 AM típicamente). Recibes notificación cuando termina con nuevo MAPE." }, "conclusion": "Tu primera predicción aparece automáticamente tras el onboarding. Usa yhat como guía principal, yhat_lower/upper para planificar escenarios. La precisión mejora dramáticamente en las primeras 2-4 semanas conforme el modelo valida y aprende de tus ventas reales. No te preocupes si los primeros días el error es alto, es completamente normal." } } }, "features": { "demandForecasting": { "title": "Predicción de Demanda con IA", "description": "Cómo funciona el algoritmo Prophet y cómo optimizar la precisión de las predicciones", "readTime": "18", "content": { "intro": "La predicción de demanda usa Prophet, un algoritmo de inteligencia artificial desarrollado por Facebook (Meta), específicamente optimizado para series temporales con patrones estacionales fuertes. BakeWise lo ha adaptado para panaderías españolas integrando datos externos (clima AEMET, POIs, calendario escolar) y reglas de negocio específicas del sector.", "algorithm": { "title": "Cómo Funciona el Algoritmo Prophet", "description": "Prophet descompone las ventas en componentes matemáticos independientes que se suman para generar la predicción final:", "components": [ { "component": "Tendencia (Trend)", "description": "Crecimiento o decrecimiento a largo plazo de tus ventas. ¿Estás ganando o perdiendo clientes? Prophet detecta cambios de tendencia (changepoints) automáticamente." }, { "component": "Estacionalidad Semanal (Weekly Seasonality)", "description": "Patrón que se repite cada semana. Ejemplo: lunes 20% menos ventas, viernes-sábado +30%. Prophet aprende cuánto vende cada producto cada día de la semana." }, { "component": "Estacionalidad Anual (Yearly Seasonality)", "description": "Patrones que se repiten cada año: verano +15% (turismo), enero -10% (post-Navidad), septiembre +20% (vuelta al cole). Requiere al menos 1 año de datos históricos." }, { "component": "Efectos de Festivos (Holidays)", "description": "Impacto de días especiales: Navidad +50%, Reyes +35%, Semana Santa +25%, festivos locales. El sistema incluye calendario completo español + autonómico + local (si detecta tu ciudad)." }, { "component": "Regresores Externos (External Regressors)", "description": "Variables externas que afectan ventas: Clima (temperatura, lluvia, viento), POIs cercanos (metro, colegios, oficinas), Tráfico (solo Madrid), Calendario escolar (vacaciones). Con estos datos, el modelo pasa de 10 features básicas a 60+ features mejoradas." } ], "formula": "yhat = tendencia + estacionalidad_semanal + estacionalidad_anual + festivos + regresores_externos + ruido" }, "technicalDetails": { "title": "Detalles Técnicos del Sistema", "implementation": [ { "aspect": "Automatización Diaria", "description": "Cada día a las 5:30 AM (hora servidor UTC+1), el sistema ejecuta automáticamente: 1) Fetch de nuevas ventas del día anterior, 2) Actualización de datos externos (clima AEMET, tráfico Madrid), 3) Generación de predicciones para próximos 7-30 días, 4) Cálculo de métricas de precisión (MAPE, RMSE, MAE), 5) Notificación si precisión baja del umbral aceptable. Proceso completo: 3-5 minutos para todo el catálogo." }, { "aspect": "Tiempos de Respuesta", "description": "Predicción individual: 500-1000ms (incluye fetch de datos externos + inferencia). Predicción multi-día: ~200ms por día adicional. Batch completo (todos los productos × 7 días): 2-3 minutos. Cache en Redis con TTL de 24 horas: después de primera consulta, respuesta <50ms." }, { "aspect": "Intervalos de Confianza", "description": "Prophet genera 3 valores para cada predicción: yhat_lower (límite inferior, percentil 2.5%), yhat (valor esperado, mediana), yhat_upper (límite superior, percentil 97.5%). Ejemplo: Baguettes mañana → yhat_lower: 95, yhat: 120, yhat_upper: 145. Interpretación: 95% de probabilidad de vender entre 95-145 unidades, valor más probable 120. En la UI (ForecastTable/DemandChart) se muestra como rango con banda sombreada." }, { "aspect": "Optimización y Hiperparámetros", "description": "El modelo base usa: changepoint_prior_scale=0.05 (flexibilidad para detectar cambios de tendencia), seasonality_prior_scale=10 (peso alto a estacionalidad, crítico en panaderías), seasonality_mode='multiplicative' (estacionalidad proporcional a nivel de ventas), interval_width=0.95 (intervalos de confianza 95%). Estos valores se ajustan automáticamente durante reentrenamiento si MAPE no mejora." } ] }, "features": [ { "name": "Predicciones Multi-Día y Multi-Producto", "description": "Genera predicciones hasta 30 días en adelante para todo tu catálogo. Útil para: Planificar compras de ingredientes con lead time largo, Organizar vacaciones del personal, Anticipar picos de demanda (eventos, festivos). Puedes consultar predicciones por: Producto individual, Categoría completa (todo el pan, toda la bollería), Día específico o rango de fechas. Endpoint: GET /api/v1/forecasting/tenants/{tenant_id}/predictions?product_id=X&start_date=Y&end_date=Z" }, { "name": "Integración con Clima AEMET", "description": "El sistema se conecta diariamente a la API de AEMET (Agencia Española de Meteorología) para obtener: Temperatura máxima/mínima, Probabilidad de precipitación, Velocidad del viento, Nivel de nubosidad. Impacto observado (reglas de negocio): Lluvia > 70% probabilidad → -30% ventas productos 'paseo' (croissants, napolitanas), Temperatura < 10°C → +15% pan tradicional, +20% productos de chocolate, Temperatura > 30°C → -10% bollería pesada, +25% productos ligeros. El sistema aprende qué productos TU vendes más/menos con cada patrón climático." }, { "name": "Detección de Puntos de Interés (POI)", "description": "Durante onboarding, el sistema detecta automáticamente POIs en radio de 500m alrededor de tu panadería usando Nominatim (OpenStreetMap): Estaciones de metro/tren (tráfico peatonal alto), Colegios/institutos (pico matutino + merienda, vacaciones -40%), Oficinas/polígonos industriales (almuerzo corporativo), Hospitales (24/7 estable), Zonas turísticas (verano +50%, invierno -20%). Estos POIs se convierten en features para el modelo: 'cerca_colegio' → ajuste +20% septiembre-junio, -40% julio-agosto." }, { "name": "Calendario de Festivos Multi-Nivel", "description": "El sistema incluye 3 capas de festivos: Nacional (15 festivos: Año Nuevo, Reyes, Semana Santa, Navidad...), Autonómico (2-4 festivos según comunidad), Local (1-2 festivos patronales de tu ciudad). Detecta automáticamente tu ubicación durante onboarding para aplicar el calendario correcto. Ajustes típicos: Festivo nacional → -50% (cerrado o media jornada), Día previo a festivo → +35% (compras anticipadas), Navidad (24-25 dic) → +80% productos especiales (roscón, turrones)." }, { "name": "Ajustes Manuales con Aprendizaje", "description": "Si conoces eventos locales que el sistema no sabe (feria del pueblo, concierto cercano, obras en la calle), puedes ajustar manualmente la predicción en la UI (ForecastTable → columna Acciones → 'Ajustar'). El sistema registra tu ajuste y la venta real resultante. En próximos eventos similares, usa estos ajustes para mejorar. Ejemplo: Ajustaste +50% por feria local → resultado real fue +55% → próximo año, el sistema ya sugiere +50% automáticamente para esas fechas." } ], "uiComponents": { "title": "Interfaz de Usuario (Frontend)", "components": [ { "component": "ForecastTable (Tabla de Predicciones)", "path": "/dashboard/forecasting", "description": "Tabla principal con todas las predicciones. Columnas: Producto, Fecha, Predicción (yhat), Min-Max (yhat_lower - yhat_upper), Precisión (MAPE %), Última Actualización. Features: Filtro por producto/categoría, Ordenar por cualquier columna, Búsqueda en tiempo real, Acciones rápidas (Ajustar, Ver Histórico, Ver Detalles). Paginación: 20 filas por página, lazy loading para catálogos grandes (500+ productos)." }, { "component": "DemandChart (Gráfico de Demanda)", "path": "/dashboard/forecasting/chart", "description": "Visualización con Chart.js. Muestra: Línea azul = predicción (yhat), Banda azul sombreada = intervalo de confianza (yhat_lower a yhat_upper), Puntos verdes = ventas reales históricas, Líneas verticales rojas = festivos. Interactivo: Hover muestra detalles, Click en punto abre modal con breakdown de componentes Prophet, Zoom temporal (7 días, 14 días, 30 días, 3 meses). Exportable a PNG/PDF." }, { "component": "Metrics Dashboard (Panel de Métricas)", "path": "/dashboard/forecasting/metrics", "description": "KPIs de precisión del sistema: MAPE global (todos los productos), MAPE por categoría (Pan: 12%, Bollería: 18%, Pastelería: 22%), MAPE por producto (top 10 mejores y peores), Trend de precisión (últimos 30 días). Color-coded: Verde <15% (excelente), Amarillo 15-25% (bueno), Rojo >25% (necesita atención)." } ] }, "optimization": [ { "tip": "Cantidad de Datos Históricos", "description": "Mínimo absoluto: 3 meses (detecta estacionalidad semanal). Recomendado: 6-12 meses (detecta estacionalidad anual + festivos). Ideal: 18-24 meses (aprende eventos atípicos, crisis, cambios de tendencia). Con 3 meses: MAPE inicial ~25-30%. Con 12 meses: MAPE inicial ~15-20%. Mejora continua: cada mes que pasa, el modelo re-entrena con más datos y mejora ~1-2% MAPE." }, { "tip": "Re-entrenamiento Automático", "description": "El sistema valida predicciones vs ventas reales cada noche. Si detecta degradación de precisión, activa re-entrenamiento automático. Triggers de re-entrenamiento: MAPE > 30% durante 7 días consecutivos (precisión inaceptable), Modelo antiguo > 30 días sin re-entrenar (datos obsoletos), Cambio estructural detectado (nueva tendencia, nuevo producto), Usuario solicita manualmente (Dashboard → Configuración → 'Forzar Re-entrenamiento'). Proceso de re-entrenamiento: 5-10 minutos, sin downtime (modelo antiguo sigue sirviendo durante entrenamiento), notificación por email cuando completa." }, { "tip": "Ajuste de Hiperparámetros por Producto", "description": "Productos con alta variabilidad (pastelería especial, productos estacionales) usan changepoint_prior_scale=0.08 (más flexible). Productos estables (baguette, pan de molde) usan changepoint_prior_scale=0.03 (menos flexible, menos ruido). El sistema clasifica automáticamente cada producto analizando su coeficiente de variación (CV = desviación estándar / media). CV < 0.3 → estable, CV > 0.5 → altamente variable." }, { "tip": "Corrección de Outliers y Datos Anómalos", "description": "El sistema detecta y filtra outliers antes de entrenar: Ventas = 0 en día laboral sin motivo (error de registro) → descartado. Ventas > 3× desviación estándar (pico anómalo: evento único, boda grande) → limitado a percentil 95. Días con festivo no registrado → marcado manualmente y re-etiquetado. Puedes revisar y validar outliers en: Dashboard → Forecasting → Data Quality → Outliers Detectados." } ], "metrics": { "title": "Métricas de Precisión y Validación", "description": "El sistema usa 3 métricas estándar de ML para medir precisión de predicciones:", "metricsDetail": [ { "metric": "MAPE (Mean Absolute Percentage Error)", "formula": "MAPE = (1/n) × Σ|Real - Predicción| / Real × 100", "interpretation": "Error porcentual promedio. Métrica principal usada en el sistema. Umbrales: <10% = Excelente (oro), 10-15% = Muy Bueno (verde), 15-25% = Aceptable (amarillo), 25-35% = Mejorable (naranja), >35% = Insuficiente (rojo, requiere intervención). Ejemplo: MAPE 12% → en promedio, predicción difiere ±12% del valor real." }, { "metric": "RMSE (Root Mean Squared Error)", "formula": "RMSE = √[(1/n) × Σ(Real - Predicción)²]", "interpretation": "Error promedio en unidades absolutas. Penaliza errores grandes más que MAPE. Ejemplo: RMSE = 15 unidades → en promedio, la predicción difiere ±15 unidades del valor real. Útil para entender magnitud del error en tu contexto específico." }, { "metric": "MAE (Mean Absolute Error)", "formula": "MAE = (1/n) × Σ|Real - Predicción|", "interpretation": "Error absoluto promedio, similar a RMSE pero sin penalización extra a errores grandes. Más robusto a outliers. Útil para comparar precisión entre productos con volúmenes muy diferentes." } ], "dashboardLocation": "Ve a Dashboard → Forecasting → Metrics para ver: MAPE por producto (tabla sorteable), MAPE por categoría (gráfico de barras), Evolución temporal de MAPE (gráfico de línea últimos 30 días), Distribución de errores (histograma: ¿errores simétricos o sesgados?), Productos con peor precisión (top 10 que necesitan atención)." }, "troubleshooting": [ { "problem": "MAPE > 35% (predicciones muy imprecisas)", "solutions": [ "Revisa calidad de datos: ¿hay ventas registradas correctamente cada día? ¿outliers sin marcar?", "Verifica que tienes al menos 3 meses de historial. Con menos, la precisión será mala", "Comprueba si hubo cambios de negocio recientes (nuevo producto, renovación de local, cambio de horario) que el modelo no sabe", "Fuerza re-entrenamiento manual en Dashboard → Forecasting → Configuración", "Si el problema persiste 14+ días, contacta soporte con detalles del producto afectado" ] }, { "problem": "Predicciones sistemáticamente altas (sobrestima ventas)", "solutions": [ "Revisa si hay tendencia decreciente en tus ventas que el modelo no ha capturado todavía (tarda ~2 semanas en detectar nuevas tendencias)", "Verifica si cambió algo en tu negocio: competencia nueva, obras en la calle, cambio de proveedor que afecta calidad", "Ajusta manualmente a la baja durante 1-2 semanas. El sistema aprenderá y corregirá automáticamente", "Revisa configuración de buffer en Producción → Configuración (podría estar añadiendo % extra innecesario)" ] }, { "problem": "Predicciones no reflejan festivos correctamente", "solutions": [ "Verifica que tu ubicación está correcta (Dashboard → Mi Panadería → Datos del Negocio). Si está mal, festivos locales no se aplican", "Revisa calendario de festivos personalizados (Dashboard → Configuración → Festivos). Añade patronales locales si faltan", "Algunos festivos dependen del año (Semana Santa cambia fechas). El sistema actualiza calendario automáticamente cada enero, pero confirma que está actualizado" ] } ], "advancedFeatures": [ { "feature": "Predicciones Condicionales (Escenarios What-If)", "description": "Próximamente: podrás simular escenarios hipotéticos. '¿Qué pasa si llueve mañana?' '¿Y si bajo el precio 10%?' '¿Y si hago promoción en Instagram?' El sistema generará predicciones alternativas para cada escenario." }, { "feature": "Aprendizaje Federado Multi-Tenant (Roadmap)", "description": "Futuro: el sistema aprenderá de patrones agregados de todas las panaderías (anónimamente, GDPR-compliant). Si 100 panaderías en Madrid venden +30% los viernes lluviosos de octubre, tu modelo también aprenderá ese patrón incluso sin tener muchos datos propios de esa condición." } ], "tips": [ "CLAVE: La precisión mejora exponencialmente con el tiempo. Primeras 2 semanas: ~65-70% precisión. Primer mes: ~75-80%. Después de 3 meses: ~85-90%. Después de 1 año: ~90-95% (mejor que humanos en promedio).", "No persigas 100% precisión: es imposible. Las ventas tienen componente aleatorio inevitable (cliente cancela pedido grande, evento imprevisto). MAPE 10-15% es excelente en la industria.", "Usa predicciones como GUÍA, no como LEY absoluta. Combina IA + tu experiencia para mejores resultados. Si intuyes que mañana venderás más, ajusta al alza.", "Re-entrenamiento automático suele ejecutar de madrugada (3-4 AM) para no interferir con operaciones. Recibirás email cuando complete.", "Intervalos de confianza (yhat_lower - yhat_upper) son tu amigo: si el rango es muy amplio (ej: 50-200), significa alta incertidumbre. Produce para el yhat (valor esperado) pero ten ingredientes extra por si acaso.", "Para productos nuevos sin historial, el sistema usa predicciones de productos similares (misma categoría, similar precio) como punto de partida. Precisión inicial será baja (~30-40% MAPE) pero mejora rápidamente tras 2-3 semanas de ventas reales." ], "conclusion": "El sistema de predicción de demanda es el corazón de BakeWise. Todas las demás funcionalidades (producción, inventario, compras) dependen de predicciones precisas. Invierte tiempo en: 1) Subir máximo historial posible (12+ meses ideal), 2) Registrar ventas diariamente sin fallos, 3) Marcar eventos/festivos especiales, 4) Revisar métricas semanalmente y actuar si MAPE sube. Con datos limpios y consistentes, el sistema alcanza 85-92% precisión en 90 días, reduciendo desperdicio 40-60% y aumentando ventas 15-25% (menos roturas de stock)." } }, "productionPlanning": { "title": "Planificación de Producción Automatizada", "description": "Optimiza tu horneado diario con planes de producción generados automáticamente desde predicciones", "readTime": "16", "content": { "intro": "La planificación de producción convierte predicciones de demanda en lotes de horneado concretos (batches), optimizando eficiencia operativa, reduciendo desperdicio y maximizando utilización de equipos. El sistema integra forecasting, recetas, inventario y capacidad de equipos en un solo flujo automatizado.", "architecture": { "title": "Arquitectura del Sistema", "description": "El sistema usa arquitectura event-driven (orientada a eventos) con coordinación entre microservicios:", "flow": [ { "step": "1. Servicio Orquestador (Orchestrator)", "description": "Coordina todo el flujo. Cada día (o bajo demanda), solicita predicciones al Forecasting Service y dispara generación de planes de producción. Actúa como cerebro central del sistema." }, { "step": "2. Servicio de Forecasting", "description": "Genera predicciones de demanda con Prophet. Devuelve array con: product_id, predicted_demand, confidence_score, historical_average, weather_impact. El Orchestrator pasa estos datos al Production Service." }, { "step": "3. Servicio de Producción (Production Service)", "description": "Recibe forecast → Consulta inventario actual → Calcula production_needed = max(0, predicted_demand - current_stock) → Genera ProductionSchedule + ProductionBatch para cada producto. Endpoint clave: POST /api/v1/tenants/{tenant_id}/production/operations/generate-schedule" }, { "step": "4. Integración con Inventario y Recetas", "description": "Production Service consulta RecipesServiceClient (ingredientes necesarios) e InventoryClient (disponibilidad actual) antes de crear lotes. Valida que hay suficientes ingredientes o emite alertas de stock bajo." } ] }, "technicalDetails": { "title": "Detalles Técnicos de Implementación", "components": [ { "component": "ProductionBatch (Lote de Producción)", "description": "Unidad básica de producción. Cada batch representa una hornada/lote concreto. Estructura: batch_number (formato BATCH-YYYYMMDD-NNN, ej: BATCH-20260113-001), product_id, recipe_id, planned_quantity (unidades a producir), planned_start_time / planned_end_time, planned_duration_minutes (calculado automáticamente), priority (LOW, MEDIUM, HIGH, URGENT), current_process_stage (MIXING, PROOFING, SHAPING, BAKING, COOLING, PACKAGING, FINISHING), status (PENDING, IN_PROGRESS, COMPLETED, ON_HOLD, QUALITY_CHECK, FAILED, CANCELLED). Tracking real: actual_start_time, actual_end_time, actual_quantity, actual_duration_minutes, actual_cost. Métricas de calidad: quality_score (0-100), yield_percentage (actual/planned × 100), waste_quantity, defect_quantity, waste_defect_type (burnt, misshapen, underproofed, temperature_issues)." }, { "component": "ProductionSchedule (Plan Diario)", "description": "Contenedor de todos los batches del día. Estructura: schedule_date (fecha objetivo), shift_start / shift_end (horario laboral), capacity_utilization (% de equipos ocupados), batches_planned (cantidad de lotes), status (DRAFT, FINALIZED, IN_PROGRESS, COMPLETED). Puedes tener múltiples schedules (turnos mañana/tarde/noche). Endpoint para crear: POST /api/v1/tenants/{tenant_id}/production/schedules" }, { "component": "ProductionCapacity (Capacidad de Recursos)", "description": "Tracking de disponibilidad de equipos y personal por día. Campos: resource_type ('equipment' o 'staff'), resource_id (UUID del horno, amasadora, equipo), capacity_date, total_capacity_units (capacidad máxima en horas), reserved_capacity_units (horas ya asignadas a batches), remaining_capacity_units (total - reserved), utilization_percentage ((reserved/total) × 100). Ejemplo: Horno Principal → total: 14 horas (06:00-20:00), reserved: 10.5 horas (3 batches), remaining: 3.5 horas, utilization: 75%." }, { "component": "ProcessStage (Etapas de Proceso)", "description": "Cada batch progresa por etapas secuenciales: MIXING (amasado), PROOFING (fermentación), SHAPING (formado), BAKING (horneado), COOLING (enfriado), PACKAGING (empaquetado), FINISHING (acabado final). Cada etapa puede tener quality checks heredados de la receta. Transición a siguiente etapa requiere completar checks obligatorios. Historial guardado en process_stage_history (JSON) con timestamps." } ] }, "features": [ { "name": "Generación Automática desde Forecast", "description": "El Orchestrator Service dispara generación automática (configuración típica: diaria a las 5:30 AM, sincronizado con forecast). Flujo completo: 1) Orchestrator solicita forecast para próximos 7 días, 2) Production Service recibe array de predicciones, 3) Para cada producto: calcula production_needed = predicted_demand - current_stock, 4) Si production_needed > 0, crea ProductionBatch con: planned_quantity = production_needed, planned_start_time = basado en horario operativo (ej: 06:00 AM), planned_end_time = start + duración calculada de receta, priority = basado en urgencia de forecast (HIGH si demand > stock×2, MEDIUM normal), recipe_id = receta asociada al producto, 5) Valida disponibilidad de ingredientes via InventoryClient, 6) Crea quality checks heredando configuración de la receta, 7) Devuelve schedule_id, batches_created, warnings (si falta stock). Tiempo de generación: 2-3 minutos para catálogo completo (100+ productos). Output: lista de batches en estado PENDING listos para ejecutar." }, { "name": "Creación Manual de Batches", "description": "Además de generación automática, puedes crear batches manualmente en UI. Casos de uso: Pedido especial de cliente (boda, evento corporativo), Reposición urgente de producto, Prueba de receta nueva, Producción extra por promoción. Formulario de creación incluye: Selector de producto, Selector de receta (auto-carga ingredientes), Cantidad planificada, Fecha y hora de inicio/fin, Duración estimada (auto-calcula si defines inicio/fin), Prioridad (LOW/MEDIUM/HIGH/URGENT), Flags especiales (is_rush_order, is_special_recipe), Asignación de recursos (equipos, personal, estación), Notas de producción (texto libre). Validaciones: Verifica disponibilidad de ingredientes antes de crear, Alerta si capacidad de equipos excedida en ese horario, Confirma que receta existe y está activa. Endpoint: POST /api/v1/tenants/{tenant_id}/production/batches" }, { "name": "Optimización por Capacidad de Equipos", "description": "El sistema rastrea capacidad de cada equipo (hornos, amasadoras, batidoras) por día. Configuración típica: Horno Principal: capacity = 4 bandejas, disponible 06:00-20:00 (14 horas), Horno Secundario: capacity = 2 bandejas, disponible 08:00-18:00 (10 horas), Amasadora Industrial: capacity = 6 lotes/hora, disponible 05:00-15:00 (10 horas). Cuando asignas batch a equipo: Sistema calcula reserved_capacity_units += planned_duration_minutes/60, Actualiza remaining_capacity_units = total - reserved, Calcula utilization_percentage = (reserved/total) × 100, Si utilization > 90%, emite alerta 'capacity_overload'. Dashboard muestra: Timeline visual con slots de tiempo, Barras de utilización por equipo (verde <70%, amarillo 70-90%, rojo >90%), Conflictos de horario (2 batches usando mismo equipo simultáneamente), Sugerencias de optimización (mover batch a otro horario/equipo). Endpoint clave: GET /api/v1/tenants/{tenant_id}/production/schedules?date=YYYY-MM-DD → incluye capacity_utilization por recurso." }, { "name": "Secuenciación y Priorización Inteligente", "description": "El sistema ordena batches por múltiples factores: 1) Priority explícito (URGENT > HIGH > MEDIUM > LOW), 2) Rush order flag (is_rush_order=true sube a URGENT automáticamente), 3) Forecast urgency (si predicted_demand > current_stock × 2 → urgente), 4) Order deadline (si linked a customer order con fecha entrega cercana), 5) Equipment availability (agrupa batches compatibles con mismo equipo). Lógica de agrupación: Productos con misma temperatura/tiempo de horneado se agrupan para minimizar cambios de configuración de horno. Ejemplo: Baguettes (230°C, 25 min) + Pan Rústico (230°C, 30 min) se hornean consecutivamente. Baguettes → Croissants (180°C, 18 min) requiere cambio de temperatura → menos eficiente. Dashboard muestra: Lista ordenada de batches con color-coded priority, Sugerencias de reordenamiento para optimizar equipos, Tiempo total estimado de producción (suma de duraciones), Critical path: secuencia mínima para cumplir todos los deadlines." }, { "name": "Integración Profunda con Recetas", "description": "Cada batch está vinculado a una receta que define: Ingredientes y cantidades (para 1 unidad o 1 lote base), Tiempo de preparación por etapa (mixing: 15 min, proofing: 60 min, baking: 25 min, etc.), Temperatura y equipo requerido (Horno a 230°C, Amasadora espiral), Quality checks por etapa (pesar masa post-mixing, temperatura post-baking), Rendimiento esperado (yield: 95% typical, 5% waste normal). Al crear batch: Sistema llama RecipesServiceClient.calculate_ingredients_for_quantity(recipe_id, planned_quantity) → devuelve ingredient_requirements array, Ejemplo: Batch de 200 baguettes → Harina: 100 kg, Agua: 65 L, Sal: 2 kg, Levadura: 0.8 kg. Sistema valida disponibilidad: InventoryClient.check_availability(ingredient_requirements) → devuelve is_available, missing_items. Si hay ingredientes insuficientes: Crea alerta de stock bajo, Sugiere ajustar planned_quantity a lo disponible, Bloquea batch (status = ON_HOLD) hasta reposición. Cálculo de coste: actual_cost = Σ(ingredient_quantity × ingredient_unit_cost) + labor_cost + energy_cost. Durante producción: Cuando batch = COMPLETED, sistema auto-consume ingredientes del inventario (FIFO), actualiza stock de producto final (+actual_quantity)." }, { "name": "Tracking en Tiempo Real y Alertas", "description": "El Production Scheduler ejecuta cada 5 minutos (APScheduler con leader election para deploys distribuidos). Checks automáticos: 1) Production Delays: Identifica batches donde actual_end_time > planned_end_time. Calcula delay_minutes. Emite alerta si delay > 15 minutos. Muestra batches afectados downstream. 2) Equipment Maintenance Due: Rastrea uso acumulado de equipos (horas de operación). Alerta cuando equipment_maintenance_due_date < today. Muestra days_overdue. 3) Batch Start Delays: Detecta batches en PENDING donde current_time > planned_start_time + 15 min. Previene efecto dominó de retrasos. 4) Quality Check Pending: Batches en QUALITY_CHECK > 30 minutos emiten alerta para manager. Deduplicación: Cache en memoria con TTL 1 hora para evitar spam de alertas. Endpoint alertas: GET /api/v1/tenants/{tenant_id}/production/alerts?active=true. Dashboard Live: Actualización cada 30s (polling), Muestra batches IN_PROGRESS con progreso real-time, Color-coded status (verde on-time, amarillo delayed <30min, rojo delayed >30min), Badges para rush orders y quality checks pendientes." }, { "name": "Control de Calidad Stage-Gated", "description": "Sistema de calidad multi-etapa heredado de recetas. Estructura: QualityTemplate (definido en receta): Especifica process_stage donde aplica check (MIXING, BAKING, COOLING, PACKAGING), check_type (weight, temperature, visual, texture, color, moisture, dimension), target_value y tolerance_percentage (ej: peso target 250g ±5%), required (obligatorio) vs optional, blocking_on_failure (bloquea progreso si falla). Al crear batch: Sistema copia quality templates de la receta a pending_quality_checks JSON del batch. Durante producción: Cuando batch entra en etapa con checks pendientes, UI muestra QualityCheckModal, Operador ingresa measured_value (ej: peso real 248g), Sistema calcula: deviation = |measured - target| / target × 100, pass_fail = deviation <= tolerance_percentage, quality_score = 100 - deviation (max 100), Si pass_fail = false y blocking_on_failure = true: Batch status = QUALITY_CHECK (bloqueado), Manager notificado para review, Puede aprobar excepción o rechazar batch (status = FAILED), Si todos los checks pasan: Batch progresa a siguiente etapa automáticamente, Check movido de pending a completed_quality_checks JSON. Trazabilidad: Cada check registra: operator_name, timestamp, measured_value, pass_fail, notes. Reportes históricos en Dashboard → Quality → Trends: Quality score promedio por producto (últimos 30 días), Defect rate (% batches con checks fallidos), Pass rate por tipo de check. Endpoint: POST /api/v1/tenants/{tenant_id}/production/batches/{batch_id}/quality-checks" } ], "iotIntegration": { "title": "Integración IoT con Equipos Inteligentes", "description": "BakeWise soporta conexión directa con hornos industriales modernos para automatización completa. Conectores disponibles:", "connectors": [ { "brand": "Rational iCombi", "description": "Integración con plataforma ConnectedCooking. Datos en tiempo real: Temperatura actual del horno (°C), Estado operativo (heating, cooking, cooling, idle), Ciclo de cocción activo (número de ciclo, tiempo restante), Consumo energético (kWh). Automatización: Sistema inicia ciclo de horneado automáticamente cuando batch pasa a BAKING stage, Horno reporta completion → batch auto-update a COOLING stage, Alertas de temperatura fuera de rango (target 230°C, actual 215°C → alerta)." }, { "brand": "Wachtel Ovens", "description": "Integración con sistema REMOTE monitoring. Funcionalidades: Monitoreo de múltiples cámaras independientes, Control de vapor y ventilación, Programas de horneado pre-configurados (baguette, croissant, rústico), Logs de operación detallados para auditoría. BakeWise sincroniza programas de horneado con recetas, auto-selecciona programa correcto por producto." }, { "brand": "Generic REST API", "description": "Conector genérico configurable para cualquier equipo con API REST. Configuración: Base URL del equipo, Authentication (API key, OAuth2, Basic Auth), Endpoints personalizados (start_cycle, get_status, get_temperature), Mapping de campos (tu campo 'temp' → campo API 'current_temperature'). Permite integrar equipos legacy o marcas no soportadas nativamente. Polling interval: 30 segundos (configurable)." } ], "benefits": [ "Auto-update de batch status sin intervención manual (actual_start_time, actual_end_time automáticos)", "Detección temprana de problemas (temperatura baja, fallo de equipo) antes de arruinar lote completo", "Trazabilidad completa: qué horno, a qué temperatura, cuánto tiempo exactamente para cada batch", "Optimización energética: reportes de consumo kWh por producto, identifica hornos menos eficientes", "Mantenimiento predictivo: detecta degradación de performance de equipos antes de fallo total" ] }, "workflow": [ { "step": "1. Generación del Plan (Automática o Manual)", "description": "AUTOMÁTICA: Orchestrator dispara generate-schedule → Production Service crea batches desde forecast. Revisa en Dashboard → Production → Daily Schedule. Ve lista de batches planificados con horarios, cantidades, equipos asignados. MANUAL: Click '+ Create Batch' → Selecciona producto, receta, cantidad → Asigna horario y equipos → Valida ingredientes → Confirma. Batch aparece en schedule con status PENDING." }, { "step": "2. Revisión y Ajustes Matinales", "description": "Cada mañana antes de iniciar producción (recomendado 30 min antes de shift): Revisa plan en ProductionSchedule (vista Timeline o Calendar), Verifica capacity utilization (barra verde = OK, amarilla/roja = sobrecargado), Ajusta cantidades si tienes info extra (clima, evento local, pedido urgente): Click en batch → 'Edit' → Modifica planned_quantity, Sistema recalcula ingredient_requirements automáticamente, Valida disponibilidad de ingredientes actualizada, Reordena batches (drag-and-drop) si necesario para optimizar secuencia, Finaliza schedule: Click 'Finalize' → status cambia de DRAFT a FINALIZED (ya no editable sin permisos admin). Tiempo típico: 5-10 minutos de revisión." }, { "step": "3. Ejecución de Producción (Tracking por Etapas)", "description": "Operador selecciona primer batch del día, Click 'Start Batch' → status cambia a IN_PROGRESS, Sistema registra actual_start_time automáticamente, Si IoT conectado: horno arranca ciclo automáticamente. Progresión por etapas: MIXING stage: Operador amasa ingredientes, Si hay quality check: QualityCheckModal aparece → pesar masa, ingresar peso real, Confirmar → avanza a PROOFING. PROOFING stage: Masa reposa (timer en UI), Auto-avanza a SHAPING tras tiempo configurado en receta. SHAPING stage: Operador forma piezas, Marca cantidad de piezas shaped (puede ser < planned si masa no rindió). BAKING stage: Batch asignado a horno, Si IoT: auto-start, Si manual: operador marca inicio, Horno reporta temperatura, tiempo restante en live view, Al completar: auto-avanza a COOLING. COOLING stage: Timer de enfriado (configurable por producto), Quality check: medir temperatura interna, Check visual. PACKAGING stage: Empaquetar productos finales, Registrar actual_quantity (cantidad final lista para venta), Puede ser < planned_quantity si hubo defectos/waste. FINISHING stage: Últimos detalles (etiquetado, almacenamiento), Click 'Complete Batch' → status = COMPLETED, Sistema registra actual_end_time, actual_quantity, yield_percentage. Automáticamente: Inventory actualizado (+actual_quantity producto final, -ingredientes consumidos FIFO), Batch agregado a historial de producción." }, { "step": "4. Control de Calidad y Resolución de Issues", "description": "Durante producción, si quality check falla: Batch bloqueado en status QUALITY_CHECK, Alerta enviada a manager (email + dashboard notification), Manager revisa: Ve measured_value vs target_value, Lee operator notes, Inspecciona batch físicamente si necesario. Decisión: APROBAR: Click 'Approve Exception' → Batch continúa con flag 'quality_exception', RECHAZAR: Click 'Reject Batch' → status = FAILED, Se registra defect_quantity y waste_defect_type, Batch eliminado del schedule activo, Ingredientes no se consumen de inventario (ya que no produjo output válido). Si hay retrasos (batch delayed): Sistema emite alert production_delay_detected, Manager puede: Reasignar recursos (equipo/personal adicional), Extender shift_end_time, Posponer batches no-urgentes, Alertar a ventas si habrá roturas de stock. Troubleshooting equipment: Si horno falla: IoT detecta error_code, Sistema marca batches afectados como ON_HOLD, Maintenance alert creada con days_overdue, Manager reasigna batches a horno alternativo." }, { "step": "5. Análisis Post-Producción", "description": "Al final del día, revisa métricas en Dashboard → Production → Analytics: On-Time Completion Rate: % batches completados dentro de planned_end_time (objetivo >90%), Yield Performance: Promedio yield_percentage (actual/planned), objetivo 95%+, Quality Score Trends: Promedio quality_score por producto, identifica productos problemáticos, Waste & Defect Tracker: Cantidad y tipo de defectos (burnt 10%, underproofed 5%, misshapen 3%), Capacity Utilization: % equipos utilizados, identifica sub-utilización o cuellos de botella, Cost Analysis: actual_cost por batch, compara con coste esperado, identifica desviaciones. Exportable a Excel/PDF para reportes gerenciales. Insights automáticos (AI-powered): 'Producto X tiene yield 10% menor que promedio → revisar receta o capacitación', 'Horno 2 tiene 15% más defectos burnt → calibrar temperatura', 'Batches de tarde tienen 20% más delays → considerar ajustar shift_start_time'." } ], "uiComponents": { "title": "Componentes de Interfaz (Frontend)", "components": [ { "component": "ProductionSchedule.tsx", "path": "/dashboard/production/schedule", "description": "Vista principal de planificación. Modos: Timeline (horizontal time-based), Calendar (día por día), Capacity (utilización de equipos). Features: Drag-and-drop para reordenar batches, Color-coded por status (PENDING=gris, IN_PROGRESS=azul, COMPLETED=verde, ON_HOLD=naranja, FAILED=rojo), Filtros por status, producto, categoría, prioridad, Equipment capacity bars (verde/amarillo/rojo según utilización), Click en batch abre detalle modal con full info + edit." }, { "component": "CreateProductionBatchModal.tsx", "description": "Modal para crear batch manualmente. Secciones: Product Information (producto, receta con auto-load de detalles), Production Schedule (start/end time, duration auto-calc, quantity), Resource Allocation (equipment multi-select, staff IDs, station), Order Context (order_id si es para pedido, forecast_id si auto-generado, flags: rush_order, special_recipe), Production Notes (texto libre para instrucciones especiales). Validations: End > Start time, Quantity > 0, Duration > 0, Ingredient availability check pre-save. API: POST /api/v1/tenants/{tenant_id}/production/batches" }, { "component": "ProcessStageTracker.tsx", "description": "Visual tracker de progreso del batch por etapas. Diseño: Stepper horizontal con 7 stages (MIXING → PROOFING → SHAPING → BAKING → COOLING → PACKAGING → FINISHING), Stage actual highlighted en azul, completados en verde, pendientes en gris, Si hay quality check pendiente en stage: ícono badge rojo con número de checks. Click en stage: Muestra detalles (start_time, duration, operator, quality_score si aplicable), Si stage actual: botones 'Complete Stage' o 'Quality Check'." }, { "component": "QualityCheckModal.tsx", "description": "Modal para ingresar resultados de quality checks. Campos dinámicos según check_type: WEIGHT: Input para peso medido (g/kg), target weight visible, tolerance %, TEMPERATURE: Input para temperatura (°C), target temp, tolerance, VISUAL: Radio buttons (Pass/Fail), text area para notas, TEXTURE: Scale 1-5, text area descripción, COLOR: Color picker + reference image. Auto-calcula: deviation %, quality_score, pass_fail boolean. Si fail + blocking: Alerta 'This check is blocking, batch will be put ON HOLD pending manager review'. Submit → API: POST /batches/{batch_id}/quality-checks → actualiza pending_quality_checks." }, { "component": "LiveBatchTrackerWidget.tsx", "path": "/dashboard (widget)", "description": "Widget en dashboard mostrando batches activos en tiempo real. Lista compacta: Product name, current_process_stage, time_remaining (ETA to completion), progress bar visual (% stages completados), Status badge (IN_PROGRESS verde, QUALITY_CHECK amarillo, delayed rojo). Actualización: Polling cada 30s. Click en batch: Navega a batch detail page. Muestra max 5 batches, link 'View All' para página completa." } ] }, "optimizationTips": [ { "tip": "Batch Sizing Strategy", "description": "Tamaño de lote óptimo depende de: Equipment capacity (no exceder capacidad de bandeja/horno), Demand forecast (producir lo necesario +5-10% buffer, no mucho más para evitar waste), Recipe scalability (algunas recetas no escalan linealmente: masa madre funciona mejor en lotes 50-100 kg, no 10 kg ni 500 kg). Recomendación: Si predicted_demand = 150 baguettes y bandeja = 40, opciones: Opción A: 4 lotes de 40 = 160 total (6.6% buffer, OK), Opción B: 3 lotes de 50 = 150 total (0% buffer, RISKY si hay defectos), Opción C: 2 lotes de 80 (si bandeja lo permite) = 160 total (menos cambios de horno, más eficiente). Sistema no optimiza automáticamente (futuro roadmap), tú decides basándote en experiencia." }, { "tip": "Equipment Utilization Optimization", "description": "Objetivo: 70-85% utilization (no 100%, necesitas slack para urgencias). Estrategias: Agrupar productos compatibles (misma temperatura): Baguettes 230°C + Pan Rústico 230°C consecutivos (sin cambio configuración), Evitar alternar caliente-frío-caliente: Pan 230°C → Croissant 180°C → Pan 230°C (desperdicia energía calentando/enfriando), Usar hornos secundarios para productos menores: Horno principal para pan (alto volumen), horno secundario para especiales/pruebas, Mantenimiento preventivo en low-demand days: Si martes históricamente -20% ventas, programa limpieza profunda de equipos ese día." }, { "tip": "Buffer Management", "description": "El sistema NO calcula buffer matemático 5-10% automáticamente (por diseño, te da control). Debes aplicar buffer manualmente: En batch creation, ajusta planned_quantity = predicted_demand × 1.05 (5% buffer) o × 1.10 (10%). Cuándo usar buffer alto (10%): Productos con alta variabilidad de yield (pastelería delicada), Días de alta incertidumbre (festivos, clima extremo), Productos con largo lead time de reposición (si se rompe stock, no hay tiempo de hacer más). Cuándo usar buffer bajo (5% o 0%): Productos muy perecederos (mejor quedarse corto que tirar mucho), Productos con yield muy estable (pan básico, >95% yield), Días con forecast alta confidence (>90%). Tracking: Dashboard → Production → Yield Performance muestra tu yield real promedio. Si sistemáticamente produces 102% (2% más de lo planificado), puedes reducir buffer." }, { "tip": "Process Stage Duration Optimization", "description": "Recetas definen duración por etapa, pero hay optimización posible: PROOFING: Varía con temperatura ambiente. Verano (25°C): -15% tiempo, Invierno (15°C): +20% tiempo. Sistema no ajusta automáticamente, pero puedes: Crear recipe_variants (recipe_summer, recipe_winter), Ajustar planned_duration_minutes manualmente en batch al crearlo. COOLING: Acortar usando racks de enfriamiento forzado, Permite pasar a PACKAGING más rápido, Aumenta throughput. BAKING: No acortar (afecta calidad), pero puedes: Optimizar carga del horno (llenar todas las bandejas disponibles), Usar funciones avanzadas de horno (convección, vapor) para cocción más uniforme y rápida." } ], "troubleshooting": [ { "problem": "Batches sistemáticamente delayed (>30 min retraso)", "solutions": [ "Revisa planned_duration_minutes en recetas: ¿es realista? Compara con actual_duration_minutes histórico (Dashboard → Production → Batch History)", "Identifica cuellos de botella: ¿siempre se atrasa en misma etapa? (ej: PROOFING tarda más de lo planificado → ajusta tiempo en receta)", "Verifica capacity: ¿hay conflictos de equipos? (2 batches usando mismo horno simultáneamente → sistema alertará pero no bloqueará)", "Considera añadir personal/equipos: Si utilization consistentemente >90%, necesitas más capacidad física", "Reordena batches: Productos urgentes (rush_order) deben ir primero en schedule" ] }, { "problem": "Yield bajo (<90%, mucho waste o defects)", "solutions": [ "Analiza defect_type en Dashboard → Waste Tracker: Si burnt/overcooked: Calibrar temperatura de horno (puede estar descalibrado +10-15°C), Si underproofed: Aumentar tiempo de PROOFING en receta, verificar temperatura ambiente, Si misshapen: Revisar SHAPING stage, capacitar equipo, mejorar técnica", "Revisa quality checks históricos: ¿en qué stage fallan más? Identifica etapa problemática", "Compara yield entre diferentes hornos/equipos: Si Horno 1 yield 95% vs Horno 2 yield 85% → problema de equipo, no de proceso", "Ingredientes: Verifica calidad de ingredientes (harina vieja, levadura débil → bajo yield)", "Sobrecarga de operador: ¿personal manejando demasiados batches simultáneos? → Reduce batches concurrentes" ] }, { "problem": "Ingredientes insuficientes para producción planificada", "solutions": [ "Alert ingredient_shortage aparece al generar schedule. Opciones: Ajustar planned_quantity de batches a lo disponible (sistema sugiere max_producible con stock actual), Postponer batches no-urgentes (LOW priority) para mañana, Crear orden de compra urgente (Dashboard → Procurement → Create Order) y poner batches ON_HOLD hasta recibir ingredientes", "Prevención: Configura reorder_point en inventario para cada ingrediente crítico. Fórmula: reorder_point = (consumo_diario_promedio × supplier_lead_time_days) × 1.2 (20% margen). Ejemplo: Harina consume 50 kg/día, proveedor entrega en 2 días → reorder_point = 50×2×1.2 = 120 kg. Alert cuando stock < 120 kg", "Usa Production → Ingredient Requirements report: Proyección de consumo próximos 7 días basada en batches planificados. Compara con inventory actual → identifica faltantes antes de que ocurran" ] } ], "advancedFeatures": [ { "feature": "Multi-Shift Planning", "description": "Si operas múltiples turnos (mañana/tarde/noche), crea ProductionSchedule separado por shift: Shift Mañana: 06:00-14:00 (pan fresco para desayuno/almuerzo), Shift Tarde: 14:00-22:00 (reposición + bollería para día siguiente), Shift Noche: 22:00-06:00 (pre-producción, fermentaciones largas). Cada schedule tiene su capacity_utilization y staff_assigned independiente. Beneficios: Claridad de qué equipo hace qué, Optimización de personal (chef experto en turno crítico), Planificación de mantenimiento (limpiar equipos entre shifts)." }, { "feature": "Batch Templates (Próximamente)", "description": "Roadmap: Crear templates de batches recurrentes. Ejemplo: Template 'Lunes Estándar' con 10 batches predefinidos (baguettes ×200, croissants ×80, etc.). Un click → crea todos los batches del template. Ahorra tiempo de configuración semanal." }, { "feature": "Predictive Maintenance (Roadmap ML)", "description": "Futuro: ML analiza historical equipment performance. Predice: 'Horno 1 tiene 85% probabilidad de fallar en próximos 7 días basado en degradación de performance'. Alerta proactiva antes de fallo → programa mantenimiento preventivo → evita downtime en medio de producción." } ], "tips": [ "CLAVE: Revisa el plan 30 min antes de iniciar producción cada día. Ajustes de último minuto son normales (clima, pedidos urgentes, staff ausente).", "Prioriza finalizar batches IN_PROGRESS antes de iniciar nuevos. Tener muchos batches parcialmente completados reduce eficiencia.", "Usa priority flags consistentemente: URGENT solo para verdaderas urgencias (rotura de stock inminente, pedido cliente con deadline hoy). Abusar de URGENT diluye su efecto.", "Quality checks son inversión, no overhead. Catch defectos en MIXING stage (coste: 5 min + ingredientes) vs descubrir en PACKAGING (coste: 2 horas + todos los ingredientes + energía de horneado).", "IoT integration paga su ROI en 6-12 meses típicamente: Ahorro de labor (no registrar manualmente), reducción de defectos (alertas tempranas), optimización energética (reportes consumo).", "Si produces <50 batches/semana: planificación manual es suficiente. Si produces >200 batches/semana: automatización es esencial para no perder tiempo en logística.", "El sistema aprende de tus ajustes: Si consistentemente editas planned_quantity al alza +10%, futuras generaciones automáticas aplicarán ese patrón." ], "conclusion": "La planificación de producción automatizada es el puente entre predicciones (qué vender) y realidad operativa (qué hornear, cuándo, cómo). Invierte en: 1) Recetas precisas (tiempos, ingredientes, quality checks bien definidos), 2) Capacidad de equipos actualizada (actualiza si compras horno nuevo, aumentas turnos), 3) Tracking disciplinado (marcar estados de batches consistentemente, registrar quality checks sin fallar), 4) Análisis semanal de métricas (yield, on-time completion, defects) para mejora continua. Con estos 4 pilares, reducirás waste 30-50%, aumentarás throughput 20-35% (mismo personal/equipos producen más), mejorarás calidad consistente (less variability = happier customers)." } }, "inventoryManagement": { "title": "Gestión de Inventario y Control de Stock", "description": "Control completo de ingredientes con FIFO, alertas de stock bajo y reducción de desperdicios", "readTime": "9", "content": { "intro": "El inventario rastrea todos tus ingredientes: stock actual, movimientos, proveedores, costos y fechas de caducidad.", "features": [ { "name": "Seguimiento en Tiempo Real", "description": "Stock actualizado automáticamente cuando registras producciones o entregas. Ve el stock actual de cada ingrediente en tiempo real" }, { "name": "FIFO Automático", "description": "First-In-First-Out (primero en entrar, primero en salir). El sistema consume automáticamente los lotes más antiguos para evitar caducidades" }, { "name": "Alertas de Stock Bajo", "description": "Cuando un ingrediente llega al punto de reorden, recibes alerta. Ejemplo: 'Harina T-55: stock 15kg, mínimo 50kg, hacer pedido'" }, { "name": "Gestión de Caducidades", "description": "Registra fechas de caducidad de cada lote. Alertas 7 días antes de caducar. Seguimiento de desperdicio por caducidad" } ], "stockEntry": [ { "title": "Recepción de Pedidos", "description": "Cuando llega un pedido del proveedor: 1) Registra la entrega en el sistema, 2) Escanea código de barras o introduce cantidad manualmente, 3) Registra lote y fecha de caducidad, 4) Stock se actualiza automáticamente" }, { "title": "Actualización Automática", "description": "Al completar un lote de producción, el sistema descuenta automáticamente los ingredientes usando FIFO. Si produces 100 baguettes (receta: 500g harina cada), descuenta 50kg de harina del lote más antiguo" } ], "compliance": [ { "name": "HACCP", "description": "Sistema cumple con normas HACCP de seguridad alimentaria. Trazabilidad completa de lotes, temperaturas de almacenaje" }, { "name": "Auditoría", "description": "Historial completo de movimientos de stock para auditorías. Exportable a PDF/Excel" } ], "metrics": [ "Valor total de inventario (€)", "Rotación de inventario (cuántas veces al año renuevas stock)", "Desperdicio por caducidad (kg y € al mes)", "Ingredientes con stock crítico" ] } }, "posIntegration": { "title": "Punto de Venta (TPV) y Registro de Ventas", "description": "Registra ventas manualmente o sincroniza con tu TPV existente para predicciones más precisas", "readTime": "8", "content": { "intro": "El módulo POS te permite registrar ventas diarias, ya sea manualmente o integrando con tu TPV actual.", "manualEntry": { "title": "Registro Manual", "description": "Si no tienes TPV o prefieres control manual: Al final del día, introduce ventas por producto (ej: Baguette: 145 unidades, Croissant: 67 unidades). Opcionalmente precio total para tracking de ingresos. Tarda 2-3 minutos al día" }, "integration": { "title": "Integración con TPV", "description": "Conecta tu TPV existente para sincronización automática. TPVs soportados: TPV genérico vía exportación Excel/CSV, API personalizada (contacta con soporte). Próximamente: integración directa con principales TPVs españoles" }, "benefits": [ { "benefit": "Predicciones Más Precisas", "description": "Cada venta registrada mejora las predicciones futuras. El sistema aprende patrones día a día" }, { "benefit": "Análisis de Ventas", "description": "Ve tendencias de ventas: productos más/menos vendidos, ingresos diarios/semanales/mensuales, comparativas año anterior" }, { "benefit": "Validación Automática", "description": "El sistema compara predicciones vs ventas reales cada noche. Si la precisión baja, ajusta modelos automáticamente" } ], "workflow": [ { "step": "Registro de Venta", "description": "Manual o automático (TPV). Datos: producto, cantidad, fecha/hora, precio (opcional)" }, { "step": "Validación Nocturna", "description": "5:30 AM: sistema compara predicción de ayer vs ventas reales. Calcula precisión (MAPE) por producto" }, { "step": "Mejora Continua", "description": "Si MAPE > 30% en un producto por 7 días, sistema re-entrena modelo automáticamente" } ] } }, "wasteTracking": { "title": "Seguimiento de Desperdicios y Sostenibilidad", "description": "Mide, analiza y reduce el desperdicio alimentario para cumplir objetivos de cero waste", "readTime": "7", "content": { "intro": "El seguimiento de desperdicios es clave para rentabilidad y sostenibilidad. El sistema mide exactamente qué se desperdicia, por qué, y sugiere acciones.", "types": [ { "type": "Producción Excesiva", "description": "Productos que horneaste pero no vendiste. Se quedan al final del día. Causas: predicción muy alta, evento cancelado, mal tiempo inesperado" }, { "type": "Ingredientes Caducados", "description": "Ingredientes que caducaron antes de usarse. Causas: compra excesiva, lote grande olvidado, FIFO no aplicado" }, { "type": "Defectos de Calidad", "description": "Productos que no cumplen estándares y no se pueden vender. Causas: problemas en producción, equipo defectuoso" }, { "type": "Merma de Producción", "description": "Diferencia entre ingredientes usados y producto final obtenido. Normal: 5-8%. Si es >10%, revisar proceso" } ], "tracking": [ { "step": "1. Registro Diario", "description": "Al final del día, registra productos no vendidos. Sistema calcula costo de desperdicio automáticamente" }, { "step": "2. Categorización", "description": "Indica razón: producción excesiva, defecto calidad, caducidad. Ayuda a identificar patrones" }, { "step": "3. Análisis Mensual", "description": "Dashboard muestra: kg/€ desperdiados al mes, % del total producido, principales productos desperdiados, tendencias" } ], "reduction": [ { "action": "Ajustar Predicciones", "description": "Si produces de más sistemáticamente, baja buffer de seguridad" }, { "action": "Ofertas de Última Hora", "description": "Integra con apps tipo Too Good To Go para vender excedentes" }, { "action": "Donaciones", "description": "Registra donaciones a bancos de alimentos (deducibles fiscalmente)" }, { "action": "FIFO Estricto", "description": "Sistema asegura consumo de ingredientes antiguos primero" } ], "sustainability": { "title": "Objetivos de Sostenibilidad", "metrics": [ "Reducción de desperdicio: objetivo 20-40% en 6 meses", "Certificación Zero Waste (posible con <5% desperdicio)", "Huella de carbono (calculada automáticamente)", "Cumplimiento ODS 12.3 (Objetivos de Desarrollo Sostenible ONU)" ] } } } }, "analytics": { "dashboardOverview": { "title": "Panel de Control y KPIs Principales", "description": "Entiende todas las métricas clave del negocio de un vistazo en el dashboard principal", "readTime": "8", "content": { "intro": "El dashboard es tu centro de comando. En una sola pantalla ves el estado actual de tu panadería: ventas, producción, inventario, predicciones.", "sections": [ { "section": "Resumen Hoy", "metrics": [ "Predicción de ventas del día vs real (se actualiza en tiempo real)", "Producción planificada vs completada", "Ingresos del día (€)", "Alerta de ingredientes con stock bajo" ] }, { "section": "Predicciones Próximos 7 Días", "metrics": [ "Gráfico de demanda esperada", "Comparación vs semana pasada (%)", "Alertas de picos de demanda (festivos, eventos)", "Productos con mayor demanda prevista" ] }, { "section": "Inventario", "metrics": [ "Valor total de stock (€)", "Ingredientes en alerta (< punto de reorden)", "Ingredientes próximos a caducar (<7 días)", "Pedidos a proveedores pendientes" ] }, { "section": "Rendimiento", "metrics": [ "Precisión de predicciones últimos 7 días (MAPE %)", "Desperdicio del mes (kg y €)", "Margen de beneficio por producto", "Productos más/menos rentables" ] } ], "customization": "Puedes personalizar el dashboard: Añade/quita widgets, Cambia periodo de análisis (hoy, 7 días, 30 días), Filtra por producto o categoría, Exporta a PDF/Excel" } }, "reports": { "title": "Informes y Reportes Personalizados", "description": "Genera informes detallados de ventas, producción, costos e inventario exportables a Excel/PDF", "readTime": "10", "content": { "intro": "Los informes te permiten analizar el negocio en profundidad y compartir datos con contables, inversores o equipo.", "types": [ { "name": "Informe de Ventas", "description": "Análisis completo de ventas por periodo: Ventas totales (€ y unidades), Desglose por producto/categoría, Comparación vs periodo anterior (%), Top 10 productos más vendidos, Tendencias de ventas (crecimiento/caída)" }, { "name": "Informe de Producción", "description": "Rendimiento de producción: Lotes producidos vs planificados, Yield real vs esperado (eficiencia), Tiempo de producción por lote, Defectos de calidad registrados, Utilización de equipos (%)" }, { "name": "Informe de Inventario", "description": "Estado y movimientos de inventario: Valor de stock (€) por categoría, Rotación de inventario (veces/año), Movimientos de entrada/salida, Desperdicio por caducidad (kg y €), Compras vs consumo" }, { "name": "Informe Financiero", "description": "Análisis de costos y márgenes: Costos de ingredientes por producto, Margen bruto por producto (%), Rentabilidad por categoría, Compras a proveedores (€), ROI de predicciones (ahorros vs desperdicio)" } ], "generation": [ { "step": "1. Selecciona Tipo de Informe", "description": "Ve a Informes > Nuevo Informe. Elige tipo: Ventas, Producción, Inventario, Financiero" }, { "step": "2. Configura Parámetros", "description": "Periodo (día, semana, mes, personalizado), Productos/categorías a incluir, Métricas específicas, Comparación (vs mes anterior, año anterior)" }, { "step": "3. Vista Previa", "description": "El sistema genera vista previa en pantalla. Revisa que incluye lo que necesitas" }, { "step": "4. Exporta", "description": "Descarga en Excel (.xlsx) para análisis avanzado, PDF para presentaciones/impresión, CSV para integración con contabilidad" } ], "automation": "Puedes programar informes automáticos: Frecuencia (diario, semanal, mensual), Envío por email automático, Destinatarios (tú, equipo, contable), Personaliza para cada destinatario" } }, "aiInsights": { "title": "Insights de IA y Recomendaciones Automáticas", "description": "El sistema analiza tus datos y te da recomendaciones accionables para mejorar rentabilidad", "readTime": "12", "content": { "intro": "Los Insights de IA son recomendaciones automáticas que el sistema genera analizando tus datos. Van más allá de mostrar números: te dicen QUÉ hacer.", "categories": [ { "category": "Optimización de Producción", "insights": [ "Productos con sobreproducción sistemática: 'Reduces 15% baguettes, desperdicias 8% cada día'", "Oportunidades de producción: 'Podrías vender 20% más croissants los sábados, siempre te quedas sin stock'", "Eficiencia de lotes: 'Cambia lote de 40 a 50 tartas, mejoras eficiencia de horno 12%'", "Horarios óptimos: 'Hornea bollos a las 7 AM en vez de 6 AM, vendes más frescos'" ] }, { "category": "Gestión de Inventario", "insights": [ "Puntos de reorden: 'Harina: cambiar punto de reorden de 50kg a 75kg, evitas stockouts'", "Optimización de compras: 'Compra azúcar cada 15 días en vez de semanalmente, ahorras €40/mes en envíos'", "Cambio de proveedor: 'Proveedor B ofrece mantequilla 8% más barata con misma calidad'", "Stock muerto: 'Ingrediente X no usado en 60 días, considera eliminar del inventario'" ] }, { "category": "Precios y Rentabilidad", "insights": [ "Margen bajo: 'Croissant margen 22%, objetivo 35%. Sube precio €0.15 o reduce costo ingredientes'", "Precio óptimo: 'Podrías subir pan integral €0.20 sin afectar demanda (análisis de elasticidad)'", "Productos no rentables: 'Tarta de manzana margen negativo -5%, revisar receta o precio'", "Oportunidades de upselling: 'Clientes que compran café +80% compran croissant, sugiérelo activamente'" ] }, { "category": "Reducción de Desperdicio", "insights": [ "Patrones de desperdicio: 'Lunes desperdicias 15% más que otros días, ajusta predicción'", "Caducidades evitables: 'Levadura caduca cada mes, compra lotes más pequeños'", "Donaciones: 'Sobrante diario promedio: 12 unidades, suficiente para banco de alimentos (deducible)'", "Ofertas dinámicas: '2 horas antes de cerrar, baja precio 30% para vender excedentes'" ] } ], "howToUse": [ { "step": "1. Revisa Insights Diarios", "description": "Cada mañana, el dashboard muestra 3-5 insights prioritarios. Ordenados por impacto económico (€/mes)" }, { "step": "2. Marca como Implementado", "description": "Cuando actúas sobre un insight, márcalo. Sistema seguirá si funcionó y aprenderá" }, { "step": "3. Mide Resultados", "description": "Después de 2-4 semanas, el sistema muestra impacto real: 'Insight: Reducir baguettes 10%. Resultado: desperdicio -25%, ventas -0%. Ahorro: €180/mes'" } ], "privacy": "Los insights son privados, solo tú los ves. Basados 100% en TUS datos, no en datos de otras panaderías." } }, "performanceMetrics": { "title": "Métricas de Rendimiento y KPIs del Negocio", "description": "Indicadores clave de rendimiento para medir salud del negocio y tomar decisiones estratégicas", "readTime": "15", "content": { "intro": "Los KPIs (Key Performance Indicators) son métricas que miden la salud de tu negocio. El sistema calcula automáticamente los KPIs más importantes para panaderías.", "production": { "title": "KPIs de Producción", "metrics": [ { "name": "Precisión de Predicción (MAPE)", "description": "Qué tan acertadas son las predicciones. Objetivo: <20% (80%+ precisión). Se muestra por producto y global", "formula": "MAPE = (|Real - Predicción| / Real) × 100%" }, { "name": "Yield de Producción", "description": "Eficiencia de conversión ingredientes → producto final. Objetivo: >95%. Si <90%, revisar proceso", "formula": "Yield = (Producto Final / Ingredientes Usados) × 100%" }, { "name": "Utilización de Capacidad", "description": "% de capacidad de horno/equipos usada. Objetivo: 75-85%. <60% infrautilizado, >90% cuello de botella", "formula": "Utilización = (Horas Usadas / Horas Disponibles) × 100%" }, { "name": "Tiempo Medio de Producción", "description": "Tiempo promedio para completar un lote. Compara vs estándar de receta. Detecta ineficiencias", "formula": "Tiempo Medio = Σ(Tiempo por Lote) / Número de Lotes" } ] }, "financial": { "title": "KPIs Financieros", "metrics": [ { "name": "Margen Bruto", "description": "Rentabilidad después de costos de ingredientes. Objetivo: 60-70% para panadería artesanal", "formula": "Margen Bruto = ((Precio - Costo Ingredientes) / Precio) × 100%" }, { "name": "Costo de Desperdicio", "description": "€ perdidos en productos/ingredientes desperdiados. Objetivo: <5% de ventas", "formula": "Costo Desperdicio = Σ(Unidades Desperdiadas × Costo Unitario)" }, { "name": "Valor de Inventario", "description": "€ inmovilizados en stock. Objetivo: 7-15 días de ventas. >30 días = exceso de capital bloqueado", "formula": "Días de Inventario = (Valor Stock / Costo Ventas Diario)" }, { "name": "ROI de Panadería IA", "description": "Retorno de inversión del sistema. Calcula ahorros vs costo de suscripción", "formula": "ROI = ((Ahorros Mensuales - €49) / €49) × 100%" } ] }, "inventory": { "title": "KPIs de Inventario", "metrics": [ { "name": "Rotación de Inventario", "description": "Cuántas veces renuevas stock al año. Objetivo: 12-24 (mensual/quincenal). >40 = poca eficiencia de compra", "formula": "Rotación = Costo Anual de Ventas / Valor Promedio de Inventario" }, { "name": "Tasa de Caducidad", "description": "% de ingredientes que caducan antes de usarse. Objetivo: <2%", "formula": "Tasa Caducidad = (kg Caducados / kg Comprados) × 100%" }, { "name": "Precisión de Inventario", "description": "Diferencia entre stock registrado vs físico. Objetivo: >98%", "formula": "Precisión = (1 - |Stock Físico - Stock Sistema| / Stock Físico) × 100%" } ] }, "waste": { "title": "KPIs de Sostenibilidad", "metrics": [ { "name": "Tasa de Desperdicio", "description": "% de producción que se desperdicia. Objetivo: <5%. Certificación Zero Waste: <3%", "formula": "Tasa Desperdicio = (Unidades Desperdiadas / Unidades Producidas) × 100%" }, { "name": "Huella de Carbono", "description": "kg CO2 equivalente por kg de producto. El sistema calcula automáticamente según ingredientes y energía", "formula": "CO2 = Σ(kg Ingrediente × Factor Emisión) + Energía Usada × Factor" } ] }, "howToTrack": "Dashboard > Métricas: Ve todos los KPIs actualizados en tiempo real. Configura alertas si un KPI sale de rango objetivo. Exporta histórico para ver evolución mensual" } } } }, "faqs": [ { "category": "general", "question": "¿Qué es Panadería IA y cómo funciona?", "answer": "Panadería IA es una plataforma de gestión inteligente para panaderías. Utiliza inteligencia artificial para predecir la demanda de tus productos, optimizar la producción, reducir desperdicios y aumentar la rentabilidad. Conectas tus datos de ventas históricas y el sistema aprende tus patrones para hacer predicciones precisas." }, { "category": "general", "question": "¿Cuánto tiempo toma configurar el sistema?", "answer": "La configuración inicial toma entre 10-15 minutos. Necesitas: 1) Crear tu cuenta, 2) Subir tu catálogo de productos, 3) Importar historial de ventas (opcional pero recomendado), 4) Configurar preferencias básicas. El sistema empieza a generar predicciones desde el primer día, mejorando su precisión con el tiempo." }, { "category": "general", "question": "¿Necesito conocimientos técnicos para usarlo?", "answer": "No. Panadería IA está diseñado para panaderos, no para ingenieros. La interfaz es intuitiva, con tutoriales paso a paso. Si sabes usar WhatsApp o un correo electrónico, puedes usar nuestra plataforma. Además, ofrecemos soporte 24/7 en español." }, { "category": "general", "question": "¿Funciona para obradores centrales con múltiples puntos de venta?", "answer": "SÍ. Nuestro sistema está diseñado para adaptarse a ambos modelos: producción local (un solo punto) y obrador central con distribución a múltiples puntos de venta. Para obradores centrales, ofrecemos predicción de demanda agregada y granular por cada POS, gestión de distribución multi-ubicación, y un dashboard centralizado con visibilidad por punto de venta." }, { "category": "pricing", "question": "¿Cuánto cuesta el programa piloto?", "answer": "El programa piloto es GRATIS durante los primeros 3 meses. Después, pagas solo €49/mes con un 20% de descuento de por vida (precio normal: €79/mes). Sin contratos de permanencia, cancela cuando quieras." }, { "category": "pricing", "question": "¿Necesito tarjeta de crédito para empezar el piloto?", "answer": "SÍ, necesitas registrar una tarjeta, pero NO se te cobrará durante los 3 meses de prueba gratuita. Puedes cancelar antes de que termine el periodo gratuito sin ningún cargo." }, { "category": "technical", "question": "¿Cómo importo mis datos históricos de ventas?", "answer": "Aceptamos varios formatos: Excel (.xlsx), CSV, o exportaciones directas de tu TPV si es compatible. Cuanto más historial proporciones (recomendamos mínimo 3 meses), más precisas serán las predicciones." }, { "category": "technical", "question": "¿Qué pasa si mis predicciones no son precisas?", "answer": "El sistema mejora con el tiempo. Las primeras semanas puede tener un margen de error del 15-20%. Después del primer mes, esto baja al 10%. Con 3+ meses de datos, alcanzamos >90% de precisión. Puedes ajustar manualmente las predicciones y el sistema aprende de tus correcciones." }, { "category": "privacy", "question": "¿Dónde se almacenan mis datos?", "answer": "TODOS tus datos se almacenan en servidores físicamente ubicados en España (Barcelona y Madrid), cumpliendo 100% con RGPD. Nunca compartimos, vendemos ni transferimos tus datos fuera de la UE." }, { "category": "support", "question": "¿Qué tipo de soporte ofrecen?", "answer": "Soporte 24/7 en español por: Email (respuesta en <4h), Videollamada (con cita previa). Durante el piloto, también tienes acceso directo a los fundadores por WhatsApp." } ], "contact": { "email": { "title": "Email", "description": "Respuesta en menos de 4 horas", "action": "Enviar Email", "address": "soporte@panaderia-ia.com" }, "documentation": { "title": "Documentación", "description": "Guías completas y tutoriales", "action": "Ver Docs" }, "hours": { "email": "24/7 (respuesta en 4 horas en horario laboral)", "phone": "Lunes a Viernes 10:00 - 19:00 (solo clientes activos)" } }, "resources": { "glossary": { "title": "Glosario de Términos", "description": "Definiciones de conceptos clave y terminología técnica", "action": "Ver Glosario" }, "troubleshooting": { "title": "Solución de Problemas", "description": "Errores comunes y cómo resolverlos rápidamente", "action": "Ver Soluciones" }, "bestPractices": { "title": "Mejores Prácticas", "description": "Tips y consejos de expertos para optimizar tu uso", "action": "Leer Tips" } } }