{
  "version": "xarts.variable-width/1",
  "family": "variable-width",
  "operation": "unit-area",
  "provenance": {
    "legacyId": "cost-curve"
  },
  "document": {
    "textOverflow": "preserve",
    "header": {
      "title": "El canal barato ya está lleno: el 62% de las noches se capta a 17,6 € o más, el doble que la web directa",
      "subtitle": "Curva de coste de captación 2025 — ancho = volumen (miles de noches), alto = coste unitario (€/noche), ordenado de barato a caro"
    },
    "footer": {
      "source": "Elaboración propia — datos ilustrativos (benchmark Anlak Hospitality, 2025)",
      "notes": "Coste unitario = coste directo de intermediación + marketing del canal, por noche vendida. Volúmenes 2025 (294k noches). Datos ilustrativos.",
      "alt": "La curva de coste de captación muestra que los canales baratos (CRM, web directa, corporate) solo aportan un tercio del volumen; el resto se compra a coste creciente hasta 33,5 €/noche en OTA internacional."
    },
    "spacing": {
      "horizontalPadding": 24,
      "topPadding": 22,
      "bottomPadding": 16,
      "minimumTextGap": 4
    }
  },
  "presentation": {
    "theme": "anlak",
    "dimensions": {
      "width": 800,
      "height": 760
    },
    "locale": "es-ES",
    "fonts": "reference",
    "surface": "theme",
    "framePadding": 24
  },
  "output": {
    "filename": "cost-curve-quality",
    "embedSpec": true,
    "geometryDecimals": 2
  },
  "data": {
    "rows": [
      {
        "id": "row-1",
        "category": "Repetidores / CRM",
        "width": 26,
        "value": 3.8,
        "order": null
      },
      {
        "id": "row-2",
        "category": "Web directa",
        "width": 52,
        "value": 7.9,
        "order": null
      },
      {
        "id": "row-3",
        "category": "Empresas / convenios",
        "width": 18,
        "value": 10.5,
        "order": null
      },
      {
        "id": "row-4",
        "category": "Agencias locales",
        "width": 15,
        "value": 14.2,
        "order": null
      },
      {
        "id": "row-5",
        "category": "Turoperador contratado",
        "width": 88,
        "value": 17.6,
        "order": null
      },
      {
        "id": "row-6",
        "category": "Metabuscadores",
        "width": 14,
        "value": 21.4,
        "order": null
      },
      {
        "id": "row-7",
        "category": "OTA nacional",
        "width": 27,
        "value": 26.8,
        "order": null
      },
      {
        "id": "row-8",
        "category": "OTA internacional",
        "width": 54,
        "value": 33.5,
        "order": null
      }
    ]
  },
  "source": {
    "kind": "unit-cost",
    "widthUnit": "miles de noches",
    "valueUnit": "€/noche",
    "areaUnit": "miles de €"
  },
  "calculation": {
    "order": "value-asc",
    "areaMultiplier": 1,
    "domainPadding": 0.08,
    "nice": true
  },
  "layout": {
    "orientation": "vertical",
    "margin": {
      "top": 52,
      "right": 36,
      "bottom": 80,
      "left": 100
    },
    "labelInset": 6,
    "insideMinimumHeight": 34,
    "exportMeasurement": "shaped"
  },
  "marks": {
    "positive": "series.blue",
    "negative": "series.emerald",
    "stroke": "surface",
    "strokeWidth": 1,
    "opacity": 0.92
  },
  "labels": {
    "category": {
      "size": 14,
      "weight": 500,
      "inside": "surface",
      "outside": "textPrimary",
      "overflow": "reject"
    },
    "value": {
      "placement": "category",
      "decimals": 1,
      "suffix": "",
      "separator": " · "
    }
  },
  "axes": {
    "exportMeasurement": "shaped",
    "measurementNumbers": "proportional-nums",
    "xTitle": "Volumen acumulado (miles de noches)",
    "yTitle": "Coste unitario (€/noche)",
    "widthTicks": 5,
    "valueTicks": 5,
    "tickLabelFontSize": 14
  },
  "referenceLabels": {
    "placement": "above-plot",
    "size": 14,
    "gap": 20,
    "color": "#014d64"
  },
  "interaction": {
    "tooltip": true,
    "widthLabel": "Volumen",
    "areaLabel": "Área"
  },
  "annotations": [
    {
      "id": "coste-medio",
      "type": "line",
      "orientation": "horizontal",
      "value": 18,
      "label": "Coste medio: 18,0 €/noche",
      "strokeDasharray": "4 3"
    }
  ]
}
