{
  "version": "xarts.ordered-series/1",
  "family": "ordered-series",
  "operation": "layered-series",
  "provenance": {
    "legacyId": "ndr"
  },
  "data": {
    "rows": [
      {
        "date": "2025-01-01",
        "period": "Jan",
        "gross": 92,
        "expansion": 28,
        "contraction": 5,
        "net": 115
      },
      {
        "date": "2025-02-01",
        "period": "Feb",
        "gross": 91,
        "expansion": 27,
        "contraction": 4,
        "net": 114
      },
      {
        "date": "2025-03-01",
        "period": "Mar",
        "gross": 93,
        "expansion": 30,
        "contraction": 6,
        "net": 117
      },
      {
        "date": "2025-04-01",
        "period": "Apr",
        "gross": 92,
        "expansion": 29,
        "contraction": 5,
        "net": 116
      },
      {
        "date": "2025-05-01",
        "period": "May",
        "gross": 94,
        "expansion": 31,
        "contraction": 4,
        "net": 121
      },
      {
        "date": "2025-06-01",
        "period": "Jun",
        "gross": 93,
        "expansion": 32,
        "contraction": 5,
        "net": 120
      },
      {
        "date": "2025-07-01",
        "period": "Jul",
        "gross": 94,
        "expansion": 30,
        "contraction": 4,
        "net": 120
      },
      {
        "date": "2025-08-01",
        "period": "Aug",
        "gross": 93,
        "expansion": 33,
        "contraction": 6,
        "net": 120
      },
      {
        "date": "2025-09-01",
        "period": "Sep",
        "gross": 95,
        "expansion": 31,
        "contraction": 4,
        "net": 122
      },
      {
        "date": "2025-10-01",
        "period": "Oct",
        "gross": 94,
        "expansion": 34,
        "contraction": 5,
        "net": 123
      },
      {
        "date": "2025-11-01",
        "period": "Nov",
        "gross": 95,
        "expansion": 32,
        "contraction": 4,
        "net": 123
      },
      {
        "date": "2025-12-01",
        "period": "Dec",
        "gross": 94,
        "expansion": 35,
        "contraction": 5,
        "net": 124
      }
    ]
  },
  "encoding": {
    "x": "date",
    "label": "period",
    "components": [
      {
        "id": "gross",
        "field": "gross",
        "label": "Gross Retention",
        "unit": "%",
        "polarity": 1,
        "color": "blue",
        "opacity": 0.6
      },
      {
        "id": "expansion",
        "field": "expansion",
        "label": "Expansion",
        "unit": "%",
        "polarity": 1,
        "color": "teal",
        "opacity": 0.6
      },
      {
        "id": "contraction",
        "field": "contraction",
        "label": "Contraction",
        "unit": "%",
        "polarity": -1,
        "color": "red",
        "opacity": 0.5
      }
    ],
    "result": {
      "id": "net",
      "field": "net",
      "label": "NDR",
      "unit": "%",
      "color": "emerald"
    }
  },
  "calculation": {
    "kind": "reconciliation",
    "coordinate": "utc-date",
    "order": "coordinate-ascending",
    "result": "verify-or-compute",
    "tolerance": 1e-9,
    "missing": "reject",
    "normalization": "none"
  },
  "profile": {
    "view": "signed-layers-and-net",
    "margin": {
      "top": 24,
      "right": 76,
      "bottom": 72,
      "left": 72
    },
    "measurementNumbers": "proportional-nums",
    "axisInkPadding": 12,
    "leftLabelOverflow": 0,
    "xInset": 10,
    "interpolation": "monotone-x",
    "areaBaseline": "zero",
    "clip": false,
    "domain": {
      "lowerFactor": 1.3,
      "upperFactor": 1.15,
      "nice": true
    },
    "legend": {
      "visible": true,
      "position": "bottom",
      "height": 64
    },
    "axes": {
      "xTicks": 6,
      "yTicks": 6,
      "suffix": "%",
      "decimals": 0
    },
    "line": {
      "width": 2.5,
      "join": "round",
      "radius": 3,
      "pointStroke": "surface",
      "pointStrokeWidth": 1.5
    },
    "reference": {
      "value": 100,
      "color": "textMuted",
      "width": 1,
      "dash": "4,4",
      "labelSize": 14,
      "labelDx": 10,
      "labelDy": 4
    },
    "latest": {
      "visible": true,
      "prefix": "NDR: ",
      "size": 22,
      "weight": 700,
      "color": "emerald",
      "dx": -8,
      "dy": -30,
      "decimals": 0
    },
    "zoom": true,
    "exportMeasurement": "glyph-advances"
  },
  "annotations": [],
  "document": {
    "textOverflow": "preserve",
    "header": {
      "title": "Net Dollar Retention",
      "subtitle": "Revenue retention and expansion trends over time"
    },
    "footer": {
      "source": "xarts · demo data",
      "notes": "Illustrative data to explore the chart and replace with your own."
    },
    "spacing": {
      "horizontalPadding": 24,
      "topPadding": 22,
      "bottomPadding": 16,
      "minimumTextGap": 4
    }
  },
  "presentation": {
    "theme": "anlak",
    "dimensions": {
      "width": 800,
      "height": 620
    },
    "locale": "en-US",
    "fonts": "reference",
    "surface": "theme",
    "framePadding": 24
  },
  "output": {
    "filename": "ndr",
    "embedSpec": true,
    "geometryDecimals": 2
  }
}
