Charts / CH-TAB-03
CH-TAB-03 . family TAB

KPI TABLE

table rows: exact value, signed change, micro-trend. Needs: 3-8 metrics with a current value, a delta, a 4+ point history, and a declared good direction.

lookupstatustrend

DL-01 AGRAW
Two of five KPIs move the wrong way this week VALUE VS LAST WEEK 7-WEEK TREND Delivery OTD 87 % +2 Test pass rate 92 % 0 Docs on time 71 % -1 Open punch 213 items -8 Stock cover 41 days 0 Source: sample dataset v1, 2026-07-12

Use when

  • executive KPI panels: exact number, change, and shape in one row
  • metrics with different units that must live on one page

Do not use when

  • rows sharing one unit where bars would rank them (CH-RNK-06)
  • long histories (the trend cell is a shape, not a chart)

See instead

Alternatives

  • CH-TIM-06 (shape only, no exact lookup)
  • CH-RNK-06 (one comparable measure with bars)

Rules

  • values arrive formatted with their own units: this is a lookup table
  • delta colored by the row's DECLARED good direction, not by sign
  • trend cells scale per row: shape only
  • hairline rules, no zebra fills

Never do this

  • zebra striping
  • coloring deltas by sign when down is good
  • reading trend cells against each other
  • traffic-light cell fills

QA before delivering

  • good direction declared per row
  • values carry their units
  • >= 4 trend points per row
  • source present

Data shape

titleaction title with a number
sourcebottom-left always
value_headerCAPS
delta_headerCAPS
trend_headerCAPS
rows[{label, value: formatted string, delta, good: up|down, trend}]
Sample data (golden)
{
  "title": "Two of five KPIs move the wrong way this week",
  "eyebrow": "KPI TABLE . WEEK 28",
  "source": "Source: sample dataset v1, 2026-07-12",
  "value_header": "VALUE",
  "delta_header": "VS LAST WEEK",
  "trend_header": "7-WEEK TREND",
  "rows": [
    {
      "label": "Delivery OTD",
      "value": "87 %",
      "delta": 2,
      "good": "up",
      "trend": [
        78,
        80,
        79,
        82,
        84,
        85,
        87
      ]
    },
    {
      "label": "Test pass rate",
      "value": "92 %",
      "delta": 0,
      "good": "up",
      "trend": [
        88,
        90,
        89,
        91,
        91,
        92,
        92
      ]
    },
    {
      "label": "Docs on time",
      "value": "71 %",
      "delta": -1,
      "good": "up",
      "trend": [
        80,
        79,
        77,
        76,
        74,
        72,
        71
      ]
    },
    {
      "label": "Open punch",
      "value": "213 items",
      "delta": -8,
      "good": "down",
      "trend": [
        260,
        250,
        244,
        238,
        230,
        221,
        213
      ]
    },
    {
      "label": "Stock cover",
      "value": "41 days",
      "delta": 0,
      "good": "up",
      "trend": [
        64,
        64,
        58,
        58,
        49,
        41,
        41
      ]
    }
  ]
}