{
  "version": "xarts.graph-relations/1",
  "family": "graph-relations",
  "operation": "metric-tree",
  "provenance": {
    "legacyId": "dupont"
  },
  "data": {
    "nodes": [
      {
        "id": "roe",
        "parentId": null,
        "label": "ROE",
        "role": "return-on-equity",
        "level": 0,
        "value": 22.5,
        "unit": "percent",
        "caption": "—"
      },
      {
        "id": "roa",
        "parentId": "roe",
        "label": "ROA",
        "role": "return-on-assets",
        "level": 1,
        "value": 9,
        "unit": "percent",
        "caption": "Margin × Turnover"
      },
      {
        "id": "multiplier",
        "parentId": "roe",
        "label": "Equity Multiplier",
        "role": "equity-multiplier",
        "level": 1,
        "value": 2.5,
        "unit": "ratio",
        "caption": "Assets / Equity"
      },
      {
        "id": "margin",
        "parentId": "roa",
        "label": "Net Margin",
        "role": "net-margin",
        "level": 2,
        "value": 6,
        "unit": "percent",
        "caption": "Net Income / Revenue"
      },
      {
        "id": "turnover",
        "parentId": "roa",
        "label": "Asset Turnover",
        "role": "asset-turnover",
        "level": 2,
        "value": 1.5,
        "unit": "ratio",
        "caption": "Revenue / Assets"
      }
    ]
  },
  "calculation": {
    "hierarchy": "single-parent-leaf-lanes",
    "roots": "single",
    "levels": "validate-depth",
    "order": "input",
    "values": "verify-declared",
    "relativeTolerance": 1e-12,
    "percentUnit": "percentage-points",
    "products": [
      {
        "id": "roe-product",
        "result": "roe",
        "operands": [
          "roa",
          "multiplier"
        ]
      },
      {
        "id": "roa-product",
        "result": "roa",
        "operands": [
          "margin",
          "turnover"
        ]
      }
    ]
  },
  "layout": {
    "margin": {
      "top": 24,
      "right": 24,
      "bottom": 24,
      "left": 24
    },
    "xRange": [
      0.05,
      0.72
    ],
    "yRange": [
      0.1,
      0.72
    ],
    "maximumNodeWidth": 140,
    "maximumNodeHeight": 56,
    "nodeWidthFraction": 0.22,
    "nodeHeightFraction": 0.18,
    "capacity": "reject",
    "minimumTextGap": 4,
    "nodePadding": 4,
    "minimumCanvas": 40
  },
  "marks": {
    "nodes": {
      "colors": [
        "series.blue",
        "series.teal",
        "series.emerald"
      ],
      "radius": 2,
      "opacity": 0.9,
      "hoverOpacity": 1
    },
    "edges": {
      "color": "series.cyan",
      "width": 1.5,
      "opacity": 0.6,
      "curve": "horizontal-cubic"
    }
  },
  "labels": {
    "fontFamily": "'Inter', system-ui, -apple-system, sans-serif",
    "name": {
      "color": "surface",
      "fontSize": 11,
      "fontWeight": 600
    },
    "value": {
      "color": "surface",
      "fontSize": 16,
      "fontWeight": 700
    },
    "caption": {
      "color": "textMuted",
      "fontSize": 9,
      "fontWeight": 400
    },
    "nameY": 18,
    "valueY": 42,
    "captionGap": 14,
    "locale": null,
    "decimals": 1,
    "ratioSuffix": "x",
    "percentSuffix": "%",
    "valueTooltip": "Value"
  },
  "annotations": [],
  "document": {
    "textOverflow": "preserve",
    "header": {
      "title": "DuPont ROE Decomposition",
      "subtitle": "Return on equity broken down into margin, turnover and leverage"
    },
    "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": 480
    },
    "locale": "en-US",
    "fonts": "reference",
    "surface": "theme",
    "framePadding": 24
  },
  "output": {
    "filename": "dupont",
    "embedSpec": true,
    "geometryDecimals": 2
  }
}
