Charts / CH-DEV-03
CH-DEV-03 . family DEV

SPINE

one bar per category split into two parts around a center axis. Needs: categories with two complementary parts (done/remaining, yes/no).

part-to-wholecomparison

DL-01 AGRAW
Two of six systems clear 60% completion Complete Remaining 68% 32% Utilities 61 39 Power 57 43 Control 52 48 Fire & gas 44 56 Telecom 31 69 Buildings Source: completion database, wk 28

Use when

  • two-part splits compared across categories
  • reading which side of a balance each category falls on

Do not use when

  • more than two parts (CH-PTW-02)
  • parts that do not sum to a meaningful whole

See instead

Alternatives

  • CH-PTW-02 (100% stacked for 3-4 parts)
  • CH-DEV-05 (agreement scales with 4 levels)

Rules

  • the split point sits on the center axis; bar width is constant
  • left part muted, right part primary
  • values printed at both outer ends
  • sides named above the first row, never a legend

Never do this

  • three or more segments
  • legends
  • rows normalized to different totals without saying so

QA before delivering

  • two parts per row
  • center axis drawn
  • sides named once
  • unit once
  • source present

Data shape

titleaction title with a number
sourcebottom-left always
unitappended to first-row values (%, usually)
series_labels[left_name, right_name], printed above the first row
categoriesarray of {label, a, b}; a+b normalized per row
Sample data (golden)
{
  "title": "Two of six systems clear 60% completion",
  "eyebrow": "SYSTEM COMPLETION",
  "source": "Source: completion database, wk 28",
  "unit": "%",
  "series_labels": [
    "Complete",
    "Remaining"
  ],
  "categories": [
    {
      "label": "Utilities",
      "a": 68,
      "b": 32
    },
    {
      "label": "Power",
      "a": 61,
      "b": 39
    },
    {
      "label": "Control",
      "a": 57,
      "b": 43
    },
    {
      "label": "Fire & gas",
      "a": 52,
      "b": 48
    },
    {
      "label": "Telecom",
      "a": 44,
      "b": 56
    },
    {
      "label": "Buildings",
      "a": 31,
      "b": 69
    }
  ]
}