Charts / CH-COR-01
CH-COR-01 . family COR

SCATTER

scatter plot, labeled points. Needs: entities with two numeric measures; under ~20 points if labeled.

correlationoutlier-detection

DL-01 AGRAW
System D pairs 41% progress with 63 open punch items 0 20 40 60 80 0 20 40 60 80 100% A B C D E F G H Source: sample dataset v1, 2026-07-12

Use when

  • how two measures relate across entities
  • finding the outlier (the point the title talks about)
  • up to ~20 labeled points

Do not use when

  • time is one of the axes (use CH-TIM-01)
  • hundreds of points (labels collapse; use CH-COR-03)
  • one measure only (use CH-RNK-01)

See instead

Alternatives

  • CH-COR-02 (bubble, adds a size measure)
  • CH-COR-03 (XY heatmap for dense grids)

Rules

  • both axes start at zero; both use the FN-05 tick algorithm
  • every point labeled directly (this entry caps at ~20 points, so labels fit)
  • one highlight maximum: role primary with ink label; the rest muted
  • gridlines both directions, hairline zero lines
  • units once per axis, on the max tick

Never do this

  • trend lines without stating the fit (no silent regressions)
  • color-coded groups without direct labels
  • log scales without declaring them
  • point clouds too dense to label (wrong entry)

QA before delivering

  • both axes at zero with algorithmic ticks
  • every point labeled
  • highlight count <= 1
  • units once per axis
  • title names the outlier or relationship with numbers
  • source line present bottom-left

Data shape

titlestring, action title naming the outlier or the relationship with numbers
eyebrowstring caps, rendered only when the DL chrome asks for it
sourcestring, rendered bottom-left, always
unit_xstring appended to the max x tick
unit_ystring appended to the max y tick
pointsarray of {label, x >= 0, y >= 0, highlight?}, one highlight max
Sample data (golden)
{
  "title": "System D pairs 41% progress with 63 open punch items",
  "eyebrow": "READINESS . WEEK 28",
  "source": "Source: sample dataset v1, 2026-07-12",
  "unit_x": "%",
  "unit_y": "",
  "points": [
    {
      "label": "A",
      "x": 92,
      "y": 12
    },
    {
      "label": "B",
      "x": 88,
      "y": 18
    },
    {
      "label": "C",
      "x": 74,
      "y": 25
    },
    {
      "label": "D",
      "x": 41,
      "y": 63,
      "highlight": true
    },
    {
      "label": "E",
      "x": 66,
      "y": 31
    },
    {
      "label": "F",
      "x": 80,
      "y": 22
    },
    {
      "label": "G",
      "x": 58,
      "y": 38
    },
    {
      "label": "H",
      "x": 70,
      "y": 26
    }
  ]
}