YTD · 1 Ene – 27 Abr
2026€1,130,377
31,929 ped · AOV €35.4 · 1,021,934 ses · CR 3.12%

2025€1,381,426
38,169 ped · AOV €36.19 · 1,199,341 ses · CR 3.18%

▼ -18.2% Rev.▼ -16.3% Ped.▼ -2.2% AOV
▼ -14.8% Ses.▼ -1.9% CR
Mes en Curso · Abril (1–27)
2026€283,196
7,298 ped · AOV €38.8 · 242,523 ses · CR 3.01%

2025€312,466
7,851 ped · AOV €39.8 · 279,988 ses · CR 2.8%

▼ -9.4% Rev.▼ -7.0% Ped.▼ -2.5% AOV
▼ -13.4% Ses.▲ +7.5% CR
Semana Actual · 27 Abr–27 Abr
2026€9,914
249 ped · AOV €39.82 · 8,401 ses · CR 2.96%

2025€7,799
208 ped · AOV €37.5 · 8,575 ses · CR 2.43%

▲ +27.1% Rev.▲ +19.7% Ped.▲ +6.2% AOV
▼ -2.0% Ses.▲ +21.8% CR
▼ -12.3% Rev.▼ -15.0% Ped.▲ +3.2% AOV
▼ -19.9% Ses.▲ +6.1% CR
↘ Ralentizando
Ayer · 27 Abril (vs 28 Abr 2025)
2026€9,914
249 ped · AOV €39.82 · 8,401 ses · CR 2.96%

2025€7,799
208 ped · AOV €37.5 · 8,575 ses · CR 2.43%

▲ +27.1% Rev.▲ +19.7% Ped.▲ +6.2% AOV
▼ -2.0% Ses.▲ +21.8% CR
Hoy · 28 Abr
2026€5,699
150 ped · AOV €37.99 · 5,135 ses · CR 2.92%

2025€15,666
387 ped · AOV €40.48 · 11,096 ses · CR 3.49%

▼ -63.6% Rev.▼ -61.2% Ped.▼ -6.2% AOV
▼ -53.7% Ses.▼ -16.3% CR
Semana Anterior · 20 Abr–26 Abr
2026€61,412
1,579 ped · AOV €38.89 · 60,771 ses · CR 2.6%

2025€98,557
2,402 ped · AOV €41.03 · 77,689 ses · CR 3.09%

▼ -37.7% Rev.▼ -34.3% Ped.▼ -5.2% AOV
▼ -21.8% Ses.▼ -15.9% CR
▼ -39.5% Rev.▼ -40.5% Ped.▲ +1.7% AOV
▼ -19.0% Ses.▼ -26.6% CR
▼ Cayendo
Facturación Acumulada Mensual 2026 vs 2025
<<<<<<< Updated upstream Gap actual (Abr): -284,966 (-20.1%) ======= Gap actual (Abr): -284,966 (-20.1%) >>>>>>> Stashed changes 2025 cruzó €940k en Mar · 2026 lo cruza en Abr
Clientes Nuevos YTD 26
9,583
35.4% del total · vs 36.7% en 2025
▼ -1.3pp
Clientes Recurrentes YTD 26
17,701
64.6% del total · vs 63.3% en 2025
▲ +1.3pp
AOV Nuevo YTD 26
€38.62
vs €32.84 recurrente
+17.6% vs recurrente
Rev. Recurrentes YTD 26
€581,312
61.8% de facturación total
Motor del negocio
Nuevos vs Recurrentes — Pedidos 2026 vs 2025
Revenue Nuevos vs Recurrentes 2026 vs 2025
Detalle por País
Detalle por Canal 2026 vs 2025
🚀

Ads — Meta + Google

Inversión, ROAS, CAC, CPC, CPM, CTR, Conversiones. Requiere integración con Meta Ads API y Google Ads API.

Mix de Categorías 2026 (por ingresos)
ProductoUds.StockIngresos
<<<<<<< Updated upstream
Stock Total (uds)
1,424,065
7,585 referencias visibles
Refs con Ventas (30d)
5,448
de 7,585 visibles
71.8%
Refs sin Ventas (30d)
2,137
SKUs dormidos
28.2%
=======
Stock Total (uds)
1,424,065
7,585 referencias visibles
Refs con Ventas (30d)
5,448
de 7,585 visibles
71.8%
Refs sin Ventas (30d)
2,137
SKUs dormidos
28.2%
>>>>>>> Stashed changes
Stock por Categoría unidades disponibles

📊 Cómo se calcula la rentabilidad

Todo parte de los pedidos válidos (no cancelados, no rechazados, no internos). Cada línea de cada pedido se descompone en ingresos y costes para calcular el margen real.

1 · Facturación (€ · con IVA)
Facturación = SUMA(total_a_cobrar) · pedidos válidos
Es el dinero que realmente entra en caja, IVA incluido y con portes cobrados al cliente.
2 · Ingresos netos (base del margen)
Los Ingresos Netos son la base sobre la que calculamos todos los márgenes. Se construyen partiendo de la Facturación y quitando lo que no es revenue para la empresa:
Paso Qué es
Facturación (total_a_cobrar) Cash bruto cobrado al cliente, IVA y portes incluidos
− IVA por país 21% ES · 20% AT/BG · 22% IT · 0% extra-UE/Canarias (app_zonas_envio_paises.impuesto)
− Revenue de líneas devueltas Reembolso € o tarjeta regalo (app_devoluciones_lineas tipos 1 y 3). Cambios no cuentan
(descuentos, cupones, puntos ya están restados en total_a_cobrar) Se reparten por línea vía factor proporcional
+ Portes cobrados al cliente Son revenue de la empresa. El coste que pagamos al transportista se resta en C. Transporte
= Ingresos Netos Base del cálculo de todos los márgenes
Implementación por línea de pedido: factor_pedido = (total_a_cobrar − portes) / Σ(precio · unidades) uds_netas = unidades − unidades_devueltas (tipos 1 y 3) iva_pais = app_zonas_envio_paises.impuesto (0.21 ES, 0.20 AT, 0 extra-UE...) Ing_línea = uds_netas · precio · factor_pedido / (1 + iva_pais) Ing_pedido += portes_cobrados / (1 + iva_pais)
El factor reparte proporcionalmente por línea los descuentos (cupones, puntos canjeados, códigos promo, packs) del pedido. El divisor (1+IVA_país) quita el impuesto real del país del cliente (antes se asumía 21% plano, que infra-estimaba ventas extra-UE y Canarias). Los portes cobrados se suman aparte (son revenue).
3 · Coste de producto (CP)
CP_línea = uds_netas × coste_unitario[categoría]
El coste unitario viene de la hoja CP del Excel analítico interno (cost_tables.json), indexado por id_aspectos_categoria. Ejemplos: Camiseta Unisex €2,64/ud, Sudadera Capucha €8,44/ud, Niño €6,15/ud.
⚠ Aviso: 7 categorías siguen sin coste asignado (se cuentan como 0 €), lo que infla el margen en ese subsegmento.
4 · Coste logístico (CL) y transporte (CT)
CL = uds_netas × 0,40 € (picking+embalaje, editable arriba) CT = coste_envío[país, transportista] (por pedido, tabla Tpe)
CL se cobra por unidad; CT una sola vez por pedido según el país y el transportista real (DHL, Correos, Colissimo, Envialia…). Tabla Tpe del Excel interno.
5 · Marketing (Mkt)
Mkt_fijo = Σ(coste_herramienta) / días_mes × días_semana Mkt_var = Ingresos × % variable (afiliados) Mkt_paid = €/semana editable (Meta, Google, TikTok…)
Los fijos (Klaviyo, Trustpilot, Doofinder, Agencia, …) se prorratean por días. El variable es un % sobre ingresos. El paid lo introduces manualmente por semana y se guarda en tu navegador. Ajustable en "Configurar Marketing".
🎯 Resultado final
Margen Bruto = Ingresos − CP
Bº Operativo = Ingresos − CP − CL − CT
Bº Neto = Bº Operativo − Mkt (fijo + variable + paid)
💡 Ojo
  • Los costes de categoría son coste estándar por tipo, no por SKU (dos camisetas del mismo tipo comparten coste aunque cambie el diseño o la tela).
  • Las devoluciones se consideran efectivas (reembolso € o tarjeta regalo); los cambios de talla/color no afectan al agregado.
  • La semana en curso es parcial (hasta ayer), así que el margen de esa fila no es comparable directamente con semanas cerradas.
  • El IVA se aplica plano al 21 %. Variaciones puntuales (Canarias, B2B sin IVA, etc.) no se están desagregando.

Configurar Costes de Marketing

Gastos fijos mensuales (se prorratean por días)

Concepto€/mes
Los afiliados se introducen manualmente por mes (mes cerrado o acumulado del mes en curso) en la columna Afiliados de la tabla, en la fila correspondiente al mes. El total se prorratea entre las semanas del mes automáticamente.
Desglose Semanal
Detalle por País
Detalle por Canal 2026 vs 2025
Mix de Categorías 2026 (por ingresos)
ProductoUds.StockIngresos

📊 Cómo se calcula la rentabilidad (Wituka · Shopify)

Todo parte de los pedidos válidos de Shopify (no voided, no pending, no canal mayorista cmz/cmz2, no clientes con tag ALLSTORE, no clientes citees/wituka, no tags de pedido TIENDA/MULTIMARCA). Cada línea de cada pedido se descompone en ingresos y costes para calcular el margen real.

1 · Facturación (€ · con IVA)
Facturación = SUMA(order.total_price) · pedidos válidos
Es el dinero que realmente entra en caja, IVA incluido y con portes cobrados al cliente. Equivalente al Total sales de Shopify Analytics.
2 · Ingresos netos (base del margen)
Los Ingresos Netos son la base sobre la que calculamos todos los márgenes. Se construyen línea a línea desde Shopify, quitando lo que no es revenue para la empresa:
Paso Qué es
Bruto línea (qty × price) Precio unitario con IVA × cantidad pedida
− IVA real por línea Suma de line_item.tax_lines[].price (IVA real del país aplicado por Shopify)
− Descuentos asignados line_item.discount_allocations[].amount (cupones, automáticos)
− Refunds de líneas refund_line_items.subtotal (devoluciones efectivas, no cambios de talla)
+ Portes cobrados al cliente shipping_lines[].price menos su IVA. El coste que pagamos al transportista se resta en C. Transporte
= Ingresos Netos Base del cálculo de todos los márgenes
Implementación por línea (vía Shopify REST): qty_net = quantity − refund_qty (refund_line_items) ing_línea = (qty·price) − Σ(tax_lines.price) − Σ(disc_alloc.amount) − refund_subtotal ing_pedido += Σ(shipping_lines.price) − Σ(shipping.tax_lines.price)
A diferencia del Excel, no usamos un factor proporcional sobre total_price: Shopify ya nos da los descuentos asignados a cada línea (discount_allocations) y el IVA exacto por línea (tax_lines). El IVA es el real de cada país (DE 19%, IT 22%, ES 21%, etc.), no plano.
3 · Coste de producto (CP)
CP_línea = qty_net × CP_estándar[product_type]
El coste unitario viene por categoría de la hoja CP del Excel financiero, persistida en wituka_cost_tables.jsoncp_fallback. Ejemplos: Camiseta €3,30 · Camiseta Oversize €7,27 · Sudadera Hoodie €7,76 · Sudadera Sin Capucha €8,37 · Calcetines €1,34 · Bañadores €8,56.
Nota: Aunque Shopify expone InventoryItem.cost por variante, Wituka no lo mantiene relleno, así que el dashboard usa siempre el CP por product_type del Excel. Si una categoría nueva no está en cp_fallback, el log del updater la reporta como aviso para añadirla.
4 · Coste logístico (CL) y transporte (CT)
CL = qty_net × 0,40 € (picking+embalaje, editable arriba) CT = Tpe[country_code, carrier_tag] (por pedido)
CL se aplica por unidad. CT se hace lookup en la tabla Tpe (estática, viene del Excel financiero) usando el código país de la dirección de envío y el primer carrier reconocido en order.tags o shipping_lines[].title (DHL, GLS EXPRESS, CORREOS, SPRING, ENVIALIA, MRW PORTUGAL, B2C, FACTURA). Si el pedido no trae carrier reconocible, CT = 0 para esa línea.
5 · Marketing (Mkt)
Mkt_fijo = Σ(coste_herramienta) / días_mes × días_semana Mkt_var = Ingresos × % variable Mkt_paid = €/semana editable (Meta, Google, TikTok…)
Los fijos se prorratean por días. El variable es un % sobre ingresos. El paid lo introduces manualmente por semana y se guarda en el servidor compartido (paidmedia.pampl.ing) bajo namespace w: para no chocar con Pampling. Ajustable en "Configurar Marketing".
🎯 Resultado final
Margen Bruto = Ingresos − CP
Bº Operativo = Ingresos − CP − CL − CT
Bº Neto = Bº Operativo − Mkt (fijo + variable + paid)
💡 Ojo
  • El CP por variante sale de Shopify (precisión real por SKU). Solo si falta, se cae al CP por product_type del Excel.
  • Las devoluciones efectivas (refund con subtotal) sí se restan; los cambios sin reembolso no afectan al agregado.
  • La semana en curso es parcial (hasta hoy), así que no es directamente comparable con semanas cerradas.
  • La tabla Tpe es estática: si Logística cambia tarifas con un transportista, hay que actualizar wituka_cost_tables.json.

Configurar Costes de Marketing (Wituka)

Gastos fijos mensuales (se prorratean por días)

Concepto€/mes
Los afiliados se introducen manualmente por mes (mes cerrado o acumulado del mes en curso) en la columna Afiliados de la tabla. El total se prorratea entre las semanas del mes automáticamente.
Desglose Semanal
Weekly Reports
Presentaciones semanales Pampling + Wituka
Cargando presentaciones...
📌 Novedades de Esta Semana
Productos a destacar en la slide opcional del weekly. Si dejas las dos listas vacías la slide no se genera.
PAMPLING
Sin productos seleccionados
WITUKA
Sin productos seleccionados
Cerrar
Datos desde BBDD Pampling · Pendiente: GA4, Meta Ads, Google Ads, Klaviyo
📊 Indicador de tendencia
Combina WoW (vs semana anterior) con YoY (vs 2025) para indicar si el ritmo se acelera, se mantiene o se ralentiza.
🔥 AcelerandoWoW > YoY, ambos positivos
▲ CreciendoWoW y YoY positivos
↗ RecuperandoYoY negativo · WoW positivo
↘ RalentizandoYoY positivo · WoW negativo
▼ CayendoAmbos negativos
❄ DesacelerandoAmbos negativos, WoW peor que YoY