YTD · 1 Ene – 27 Abr
2026€1,130,429
31,931 ped · AOV €35.4 · 1,022,269 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,248
7,300 ped · AOV €38.8 · 242,858 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.3% Ses.▲ +7.5% CR
Semana Actual · 27 Abr–27 Abr
2026€9,935
250 ped · AOV €39.74 · 8,736 ses · CR 2.86%

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

▲ +27.4% Rev.▲ +20.2% Ped.▲ +6.0% AOV
▲ +1.9% Ses.▲ +17.7% CR
▼ -12.1% Rev.▼ -14.7% Ped.▲ +3.0% AOV
▼ -16.7% Ses.▲ +2.5% CR
↘ Ralentizando
Ayer · 27 Abril (vs 28 Abr 2025)
2026€9,935
250 ped · AOV €39.74 · 8,736 ses · CR 2.86%

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

▲ +27.4% Rev.▲ +20.2% Ped.▲ +6.0% AOV
▲ +1.9% Ses.▲ +17.7% CR
Hoy · 28 Abr
2026€2,096
46 ped · AOV €45.56 · 1,865 ses · CR 2.47%

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

▼ -86.6% Rev.▼ -88.1% Ped.▲ +12.5% AOV
▼ -83.2% Ses.▼ -29.2% CR
Semana Anterior · 20 Abr–26 Abr
2026€61,443
1,580 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.2% 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): -288,517 (-20.3%) ======= Gap actual (Abr): -288,517 (-20.3%) >>>>>>> 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,430,328
7,597 referencias visibles
Refs con Ventas (30d)
5,421
de 7,597 visibles
71.4%
Refs sin Ventas (30d)
2,176
SKUs dormidos
28.6%
=======
Stock Total (uds)
1,430,328
7,597 referencias visibles
Refs con Ventas (30d)
5,421
de 7,597 visibles
71.4%
Refs sin Ventas (30d)
2,176
SKUs dormidos
28.6%
>>>>>>> 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
% s/ingresos netos
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 × inventory_item.cost (Shopify)
El coste unitario viene por variante directamente de Shopify (campo InventoryItem.cost). Si una variante no tiene cost declarado, se usa como fallback el CP por categoría del Excel financiero (camiseta €3,30, sudadera capucha €10,11, calcetines €1,34…).
⚠ Aviso: El número de variantes sin cost se reporta en el log del updater.
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
% s/ingresos netos
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