id: sankey-flow
name:
  ja: "Sankeyフローマップ（多対多の流量）"
  en: "Sankey Flow Map (Many-to-Many Volume)"
purpose:
  ja: "複数の起点から複数の終点へ流れる量を、合計量比例の端点railと積層曲線として自動描画する。流路を辿ると対応する起点・終点・合計値が連動し、同じデータを流量図から流路ランキングへ切り替えられる"
  en: "Volume running from several sources to several destinations, drawn as end rails in proportion to their totals and stacked curves between them. Following a path lights its source, its destination and its total"
status: published
# 索引カードの図版。pnpm layout:render が原本から描く。
still: ./still.png
category: flow
catalogOrder: 120
jobs:
  - trace-flow
  - prioritize-diagnose
useCases:
  - process
layoutKinds:
  - flow
tags: [sankey, flow, allocation, routing, data-driven, interactive]
whenToUse:
  - ja: "システム間データ連携や問い合わせの流れを量つきで示す場合"
    en: "Showing data or enquiries moving between systems, with the volumes"
  - ja: "予算、人員、工数が複数の配分先へ流れる構造を説明する場合"
    en: "Explaining how budget, headcount or effort is distributed"
  - ja: "直列の業務手順ではなく、分岐・合流する多対多の流れを扱う場合"
    en: "Branching and merging flows rather than a serial procedure"
  - ja: "最大の流路、転記、滞留先を特定したい場合"
    en: "Finding the largest path, the largest transfer or where volume collects"
  - ja: "流路と左右の合計値を一つの記録として追いたい場合"
    en: "Following a path and both its end totals as one record"
avoidWhen:
  - ja: "分岐のない直列手順を説明したい場合"
    en: "Explaining a serial procedure with no branching"
  - ja: "同一母集団が段階ごとに減少する転換を示したい場合"
    en: "A single population narrowing stage by stage"
requiredInputs:
  - ja: "流れの起点"
    en: "Where the flow starts"
  - ja: "流れの終点"
    en: "Where it ends"
  - ja: "起点と終点ごとの流量"
    en: "The volume for each start-end pair"
relatedLayouts: [process-flow, conversion-funnel, logic-tree]
dataSchema:
  title: "string — スライドタイトル。最大流路を結論として書く"
  subtitle: "string（任意）— 対象期間、集計条件、出典など"
  unit: "string（任意）— 件/日、人月、百万円など"
  sources: "{ id, label }[] — 流れの起点（2〜5件）"
  targets: "{ id, label }[] — 流れの終点（2〜5件）"
  flows: "{ sourceId, targetId, value, note? }[] — 正の流量（2〜12件）。同じ起点・終点の組み合わせは1件"
sources: []
