{
  "version": "xarts.coordinate-marks/1",
  "family": "coordinate-marks",
  "operation": "provided-observations",
  "provenance": {
    "legacyId": "scatter"
  },
  "data": {
    "rows": [
      {
        "id": "1",
        "label": "Observación 1",
        "x": 68,
        "y": 104,
        "size": 120,
        "group": "Comp set"
      },
      {
        "id": "2",
        "label": "Observación 2",
        "x": 74,
        "y": 112,
        "size": 96,
        "group": "Comp set"
      },
      {
        "id": "3",
        "label": "Observación 3",
        "x": 63,
        "y": 88,
        "size": 150,
        "group": "Comp set"
      },
      {
        "id": "4",
        "label": "Observación 4",
        "x": 71,
        "y": 96,
        "size": 180,
        "group": "Comp set"
      },
      {
        "id": "5",
        "label": "Observación 5",
        "x": 81,
        "y": 96,
        "size": 140,
        "group": "Nuestro hotel"
      },
      {
        "id": "6",
        "label": "Observación 6",
        "x": 77,
        "y": 121,
        "size": 110,
        "group": "Comp set"
      },
      {
        "id": "7",
        "label": "Observación 7",
        "x": 66,
        "y": 132,
        "size": 74,
        "group": "Comp set"
      },
      {
        "id": "8",
        "label": "Observación 8",
        "x": 84,
        "y": 138,
        "size": 165,
        "group": "Los que cobran"
      },
      {
        "id": "9",
        "label": "Observación 9",
        "x": 80,
        "y": 129,
        "size": 90,
        "group": "Los que cobran"
      },
      {
        "id": "10",
        "label": "Observación 10",
        "x": 86,
        "y": 142,
        "size": 205,
        "group": "Los que cobran"
      },
      {
        "id": "11",
        "label": "Observación 11",
        "x": 70,
        "y": 79,
        "size": 220,
        "group": "Comp set"
      },
      {
        "id": "12",
        "label": "Observación 12",
        "x": 64,
        "y": 92,
        "size": 68,
        "group": "Comp set"
      },
      {
        "id": "13",
        "label": "Observación 13",
        "x": 75,
        "y": 108,
        "size": 130,
        "group": "Comp set"
      },
      {
        "id": "14",
        "label": "Observación 14",
        "x": 72,
        "y": 118,
        "size": 102,
        "group": "Comp set"
      }
    ]
  },
  "encoding": {
    "id": "id",
    "label": "label",
    "x": "x",
    "y": "y",
    "size": "size",
    "group": "group",
    "units": {
      "x": {
        "label": "Ocupación",
        "unit": "percentage-points"
      },
      "y": {
        "label": "ADR",
        "unit": "EUR"
      },
      "size": {
        "label": "Habitaciones",
        "unit": "rooms"
      }
    },
    "groups": [
      {
        "id": "Comp set",
        "label": "Comp set",
        "fill": "#4b8596",
        "stroke": "surface",
        "strokeWidth": 1,
        "labelWeight": 400
      },
      {
        "id": "Nuestro hotel",
        "label": "Nuestro hotel",
        "fill": "#9c1f1a",
        "stroke": "surface",
        "strokeWidth": 1,
        "labelWeight": 400
      },
      {
        "id": "Los que cobran",
        "label": "Los que cobran",
        "fill": "#112c47",
        "stroke": "surface",
        "strokeWidth": 1,
        "labelWeight": 400
      }
    ]
  },
  "calculation": {
    "xDomain": {
      "source": "extent",
      "paddingMode": "fraction",
      "minimumSpan": 1,
      "padding": [
        0.05,
        0.05
      ],
      "includeZero": false
    },
    "yDomain": {
      "source": "extent",
      "paddingMode": "fraction",
      "minimumSpan": 1,
      "padding": [
        0.05,
        0.05
      ],
      "includeZero": false
    },
    "niceX": true,
    "niceY": true,
    "size": {
      "mapping": "sqrt-interpolated",
      "domain": {
        "source": "extent",
        "padding": [
          0,
          0
        ],
        "includeZero": false
      },
      "radiusRange": [
        4,
        16
      ]
    },
    "quadrants": null
  },
  "profile": {
    "interaction": {
      "legend": true,
      "legendPosition": "right",
      "zoom": true,
      "reserveRadius": false,
      "radiusIterations": 4,
      "radiusTolerance": 0.5,
      "adaptiveXTicks": true,
      "insideLabels": false,
      "minimumLabelRadius": 18,
      "labelFontSize": 10
    },
    "margin": {
      "top": 40,
      "right": 56,
      "bottom": 96,
      "left": 96
    },
    "measureY": true,
    "axis": {
      "smart": true,
      "axisLines": false,
      "tickMarks": false,
      "baseline": true,
      "grid": true,
      "columns": true,
      "ticksX": 5,
      "ticksY": 5,
      "format": "number",
      "titleX": ""
    },
    "marks": {
      "fillOpacity": 0.7,
      "strokeOpacity": 1
    },
    "labels": {
      "fill": "textPrimary",
      "fontSize": 12,
      "fontWeight": 400,
      "position": "above-radius",
      "dx": 0,
      "dy": -6,
      "visible": false
    },
    "quadrants": {
      "visible": false,
      "labels": {
        "fill": "textMuted",
        "fontSize": 13,
        "fontWeight": 700
      },
      "opacity": 1,
      "opacityStyle": true,
      "backgroundOpacity": 0,
      "placement": "fractions",
      "fractions": [
        [
          0.82,
          0.18
        ],
        [
          0.82,
          0.82
        ],
        [
          0.18,
          0.82
        ],
        [
          0.18,
          0.18
        ]
      ],
      "dominantMiddle": false
    },
    "crosshair": {
      "visible": false,
      "stroke": "textMuted",
      "width": 1,
      "dash": "4 3",
      "opacity": 0.3,
      "opacityStyle": true
    },
    "endpoints": {
      "labels": {
        "fill": "textSecondary",
        "fontSize": 12,
        "fontWeight": 600
      },
      "padding": 6,
      "xLow": "Economy",
      "xHigh": "Premium",
      "yLow": "Traditional",
      "yHigh": "Innovative",
      "visible": false
    }
  },
  "annotations": [],
  "document": {
    "header": {
      "title": "Llenamos como los mejores del comp set y cobramos 40 € menos: el problema no es la ocupación, es la tarifa",
      "subtitle": "Comp set de 14 hoteles urbanos, cierre 2025 · eje X: ocupación media anual (%) · eje Y: ADR (€) · tamaño: habitaciones"
    },
    "footer": {
      "source": "Elaboración propia — datos ilustrativos (STR comp set urbano, cierre 2025)",
      "notes": "Ocupación media anual y ADR sin IVA. El tamaño de cada burbuja es el número de habitaciones. Los tres hoteles de «Los que cobran» son los del comp set con ocupación ≥ 80 %. Datos ilustrativos.",
      "alt": "Nube de 14 hoteles del comp set: ocupación en el eje X y ADR en el eje Y. Nuestro hotel ocupa 81 %, por encima de la media de 73,1 %, pero cobra 96 €, 16,2 € menos que la media de sus pares y unos 40 € menos que los tres hoteles que llenan lo mismo."
    },
    "spacing": {
      "horizontalPadding": 32,
      "topPadding": 24,
      "bottomPadding": 24,
      "minimumTextGap": 6
    }
  },
  "presentation": {
    "theme": "anlak",
    "dimensions": {
      "width": 1200,
      "height": 760
    },
    "locale": "es-ES",
    "fonts": "reference",
    "surface": "theme",
    "framePadding": 24
  },
  "output": {
    "filename": "scatter",
    "embedSpec": true,
    "geometryDecimals": 2
  }
}
