{
  "version": "xarts.ordered-series/1",
  "family": "ordered-series",
  "operation": "ordered-observations",
  "provenance": {
    "legacyId": "annotated-timeseries"
  },
  "data": {
    "rows": [
      {
        "id": "annotated-timeseries-1",
        "x": "2024-01-01",
        "values": {
          "Factura (miles €)": 148
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-2",
        "x": "2024-02-01",
        "values": {
          "Factura (miles €)": 152
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-3",
        "x": "2024-03-01",
        "values": {
          "Factura (miles €)": 159
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-4",
        "x": "2024-04-01",
        "values": {
          "Factura (miles €)": 163
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-5",
        "x": "2024-05-01",
        "values": {
          "Factura (miles €)": 171
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-6",
        "x": "2024-06-01",
        "values": {
          "Factura (miles €)": 178
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-7",
        "x": "2024-07-01",
        "values": {
          "Factura (miles €)": 184
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-8",
        "x": "2024-08-01",
        "values": {
          "Factura (miles €)": 181
        },
        "event": "Panel de coste por equipo",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-9",
        "x": "2024-09-01",
        "values": {
          "Factura (miles €)": 192
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-10",
        "x": "2024-10-01",
        "values": {
          "Factura (miles €)": 201
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-11",
        "x": "2024-11-01",
        "values": {
          "Factura (miles €)": 209
        },
        "event": "Congelación de nuevas instancias",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-12",
        "x": "2024-12-01",
        "values": {
          "Factura (miles €)": 214
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-13",
        "x": "2025-01-01",
        "values": {
          "Factura (miles €)": 208
        },
        "event": "",
        "stage": "Auditoría FinOps"
      },
      {
        "id": "annotated-timeseries-14",
        "x": "2025-02-01",
        "values": {
          "Factura (miles €)": 191
        },
        "event": "",
        "stage": "Auditoría FinOps"
      },
      {
        "id": "annotated-timeseries-15",
        "x": "2025-03-01",
        "values": {
          "Factura (miles €)": 172
        },
        "event": "",
        "stage": "Auditoría FinOps"
      },
      {
        "id": "annotated-timeseries-16",
        "x": "2025-04-01",
        "values": {
          "Factura (miles €)": 168
        },
        "event": "Renegociación del contrato marco",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-17",
        "x": "2025-05-01",
        "values": {
          "Factura (miles €)": 165
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-18",
        "x": "2025-06-01",
        "values": {
          "Factura (miles €)": 170
        },
        "event": "Entra el equipo de datos",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-19",
        "x": "2025-07-01",
        "values": {
          "Factura (miles €)": 179
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-20",
        "x": "2025-08-01",
        "values": {
          "Factura (miles €)": 186
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-21",
        "x": "2025-09-01",
        "values": {
          "Factura (miles €)": 181
        },
        "event": "",
        "stage": "Segunda auditoría"
      },
      {
        "id": "annotated-timeseries-22",
        "x": "2025-10-01",
        "values": {
          "Factura (miles €)": 168
        },
        "event": "",
        "stage": "Segunda auditoría"
      },
      {
        "id": "annotated-timeseries-23",
        "x": "2025-11-01",
        "values": {
          "Factura (miles €)": 154
        },
        "event": "",
        "stage": "Segunda auditoría"
      },
      {
        "id": "annotated-timeseries-24",
        "x": "2025-12-01",
        "values": {
          "Factura (miles €)": 146
        },
        "event": "",
        "stage": "Segunda auditoría"
      },
      {
        "id": "annotated-timeseries-25",
        "x": "2026-01-01",
        "values": {
          "Factura (miles €)": 143
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-26",
        "x": "2026-02-01",
        "values": {
          "Factura (miles €)": 138
        },
        "event": "Apagado nocturno de preproducción",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-27",
        "x": "2026-03-01",
        "values": {
          "Factura (miles €)": 134
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-28",
        "x": "2026-04-01",
        "values": {
          "Factura (miles €)": 136
        },
        "event": "",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-29",
        "x": "2026-05-01",
        "values": {
          "Factura (miles €)": 131
        },
        "event": "Almacén migrado a columnar",
        "stage": ""
      },
      {
        "id": "annotated-timeseries-30",
        "x": "2026-06-01",
        "values": {
          "Factura (miles €)": 126
        },
        "event": "",
        "stage": ""
      }
    ]
  },
  "encoding": {
    "x": "x",
    "values": "values",
    "event": "event",
    "stage": "stage",
    "series": [
      {
        "id": "Factura (miles €)",
        "label": "Factura (miles €)",
        "unit": "miles €/mes",
        "format": {
          "prefix": "",
          "suffix": "",
          "divisor": 1,
          "decimals": 0,
          "style": "auto"
        }
      }
    ]
  },
  "calculation": {
    "coordinate": {
      "type": "utc",
      "format": "day",
      "unit": "UTC"
    },
    "order": "coordinate-asc",
    "duplicates": "reject",
    "missing": "reject",
    "domain": {
      "base": "zero",
      "padding": 0.08
    }
  },
  "layout": {
    "view": "annotated",
    "profile": {
      "margin": {
        "top": 24,
        "right": 20,
        "bottom": 56,
        "left": 48
      },
      "axis": {
        "stroke": "transparent",
        "tickStroke": "transparent",
        "tickLength": 0,
        "labelColor": "#2a2a2a",
        "tickLabelColor": "#3d3d3d",
        "labelFontSize": 14,
        "tickLabelFontSize": 13,
        "labelFontFamily": "'Inter', system-ui, -apple-system, sans-serif",
        "tickLabelFontFamily": "'Inter', system-ui, -apple-system, sans-serif",
        "baselineStroke": "#3d3d3d",
        "baselineWidth": 1.5,
        "titleColor": "#2a2a2a",
        "titleFontSize": 13,
        "titleFontWeight": 700
      },
      "grid": {
        "stroke": "#d6cfbc",
        "strokeOpacity": 1,
        "strokeDasharray": ""
      },
      "serieAnotada": {
        "grosorLinea": 2,
        "tintaLinea": "#112c47",
        "radioMarcador": 4,
        "haloMarcador": 2,
        "tintaGuia": "#6a6458",
        "grosorGuia": 1,
        "anchoLlamada": 136,
        "lineasLlamada": 2,
        "aireLlamada": 5,
        "huecoLlamadas": 6,
        "holguraCurva": 10,
        "cuerpoLlamada": 11,
        "cuerpoFecha": 10,
        "tintaLlamada": "#0d0d0d",
        "tintaFecha": "#6a6458",
        "papelLlamada": "#ffffff",
        "bordeLlamada": "#c7bfae",
        "radioLlamada": 2,
        "tintaBanda": "#0d0d0d",
        "opacidadBanda": 0.06,
        "bordeBanda": "#c7bfae",
        "cuerpoEtapa": 10,
        "tintaEtapa": "#2a2a2a",
        "cuerpoNota": 10,
        "tintaNota": "#6a6458",
        "cifraFinalMaxima": 96
      }
    },
    "stages": "shaded",
    "callouts": "balanced"
  },
  "measurement": {
    "exportText": "glyph-advances",
    "interactiveText": "shaped"
  },
  "marks": {
    "opacity": 1,
    "points": true
  },
  "annotations": [],
  "document": {
    "header": {
      "title": "El ahorro no lo trajo la renegociación, lo trajeron las auditorías",
      "subtitle": "Factura mensual de infraestructura en la nube · ene 2024 – jun 2026 · miles de € al mes"
    },
    "footer": {
      "source": "Facturación del proveedor de nube, ene 2024 – jun 2026 (cifras ilustrativas con la forma de un FinOps real)",
      "notes": "Los tramos sombreados son las RACHAS de meses etiquetados con la misma etapa en el fichero: no se dibujan sobre meses de los que no hay dato. Cada hito va anclado a la observación del mes en el que se le imputa el efecto, así que el marcador está sobre un número medido y no sobre una altura interpolada. El eje arranca en cero: con la base recortada, la meseta de abril a junio de 2025 se vería como una caída y la renegociación se llevaría un mérito que el dato no le da.",
      "alt": "La factura sube de 148 a 214 mil € al mes entre enero y diciembre de 2024, cae a 172 durante los tres meses de auditoría FinOps, se queda plana en torno a 168 los tres meses siguientes —los que rodean la renegociación del contrato marco—, vuelve a 186 cuando entra el equipo de datos y cae a 146 durante los cuatro meses de la segunda auditoría, hasta cerrar en 126 en junio de 2026."
    },
    "spacing": {
      "horizontalPadding": 24,
      "topPadding": 22,
      "bottomPadding": 24,
      "minimumTextGap": 6
    }
  },
  "output": {
    "filename": "annotated-timeseries",
    "embedSpec": true,
    "geometryDecimals": 2
  },
  "presentation": {
    "theme": "anlak",
    "dimensions": {
      "width": 940,
      "height": 587
    },
    "locale": "es-ES",
    "fonts": "reference",
    "surface": "theme",
    "framePadding": 24
  }
}
