{
  "id": "kpi-scorecard-sparklines",
  "schemaVersion": 2,
  "title": {
    "ja": "指標の成績表 — 目標・実績・差・8 四半期の推移・判定を 1 行に",
    "en": "KPI Scorecard — Target, Actual, Gap, Eight-Quarter Trend and Verdict on One Row"
  },
  "summary": {
    "ja": "経営指標を 1 行ずつ、通期目標・上期実績・目標との差・直近 8 四半期の小さな線・判定で並べる。色は判定にだけ使う",
    "en": "One row per KPI with target, actual, gap, a small eight-quarter line and a verdict; colour is spent on the verdict alone"
  },
  "capturedAt": "2026-10-19",
  "categories": [
    "presentation"
  ],
  "tags": [
    "data-viz",
    "minimal"
  ],
  "useCases": [
    "kpi"
  ],
  "format": "slide-16x9",
  "density": "high",
  "layout": {
    "kind": "table",
    "canvas": {
      "w": 1920,
      "h": 1080
    },
    "margin": {
      "top": 96,
      "right": 140,
      "bottom": 56,
      "left": 140
    }
  },
  "type": {
    "kicker": {
      "size": 22,
      "weight": 700,
      "tracking": "0.16em",
      "numeric": "tabular"
    },
    "title": {
      "size": 52,
      "weight": 700,
      "leading": 1.35,
      "numeric": "tabular"
    },
    "colHead": {
      "size": 22,
      "weight": 500,
      "numeric": "tabular"
    },
    "item": {
      "size": 30,
      "weight": 500,
      "numeric": "tabular"
    },
    "target": {
      "size": 30,
      "weight": 400,
      "numeric": "tabular"
    },
    "actual": {
      "size": 36,
      "weight": 700,
      "numeric": "tabular"
    },
    "gap": {
      "size": 30,
      "weight": 400,
      "numeric": "tabular"
    },
    "judge": {
      "size": 24,
      "weight": 700,
      "numeric": "tabular"
    },
    "note": {
      "size": 20,
      "weight": 400,
      "numeric": "tabular"
    },
    "folio": {
      "size": 16,
      "weight": 400,
      "numeric": "tabular"
    }
  },
  "colors": {
    "ground": "#FFFFFF",
    "surface": "#F2F4F8",
    "ink": "#0E1A2B",
    "muted": "#5B6879",
    "accent": "#1D3F72",
    "rule": "#D6DCE5",
    "series": []
  },
  "rules": [
    {
      "ja": "色は判定にだけ使う。推移の線まで色分けすると、どこを見ればよいか分からない",
      "en": "Use colour only for the verdict — colour the trend lines too and nothing stands out"
    },
    {
      "ja": "推移の線は指標ごとに目盛りが違う。形だけを読む図だと注記する",
      "en": "Each trend line has its own scale; note that only the shape is meant to be read"
    },
    {
      "ja": "差は pt で揃え、符号を必ず付ける",
      "en": "Express gaps in points, always with a sign"
    },
    {
      "ja": "判定は 2 値（達成・未達）にする。3 色の信号にすると、黄色の意味を毎回説明することになる",
      "en": "Two verdicts, met or not — a three-colour signal means explaining amber every time"
    }
  ],
  "cover": "https://design-vault.pages.dev/_astro/cover.Dn9IDEjh.png",
  "assets": [],
  "shortlist": false,
  "status": "published",
  "relations": {
    "similar": [
      "status-report-rag-rows",
      "kpi-grid-four-deltas",
      "pl-summary-yoy-table"
    ]
  },
  "license": "Original",
  "publishedAt": null,
  "reproduction": {
    "spec": {
      "format": "slide-16x9",
      "density": "high",
      "layout": {
        "kind": "table",
        "canvas": {
          "w": 1920,
          "h": 1080
        },
        "margin": {
          "top": 96,
          "right": 140,
          "bottom": 56,
          "left": 140
        }
      },
      "type": {
        "kicker": {
          "size": 22,
          "weight": 700,
          "tracking": "0.16em",
          "numeric": "tabular"
        },
        "title": {
          "size": 52,
          "weight": 700,
          "leading": 1.35,
          "numeric": "tabular"
        },
        "colHead": {
          "size": 22,
          "weight": 500,
          "numeric": "tabular"
        },
        "item": {
          "size": 30,
          "weight": 500,
          "numeric": "tabular"
        },
        "target": {
          "size": 30,
          "weight": 400,
          "numeric": "tabular"
        },
        "actual": {
          "size": 36,
          "weight": 700,
          "numeric": "tabular"
        },
        "gap": {
          "size": 30,
          "weight": 400,
          "numeric": "tabular"
        },
        "judge": {
          "size": 24,
          "weight": 700,
          "numeric": "tabular"
        },
        "note": {
          "size": 20,
          "weight": 400,
          "numeric": "tabular"
        },
        "folio": {
          "size": 16,
          "weight": 400,
          "numeric": "tabular"
        }
      },
      "colors": {
        "ground": "#FFFFFF",
        "surface": "#F2F4F8",
        "ink": "#0E1A2B",
        "muted": "#5B6879",
        "accent": "#1D3F72",
        "rule": "#D6DCE5"
      },
      "rules": [
        "Use colour only for the verdict — colour the trend lines too and nothing stands out",
        "Each trend line has its own scale; note that only the shape is meant to be read",
        "Express gaps in points, always with a sign",
        "Two verdicts, met or not — a three-colour signal means explaining amber every time"
      ]
    },
    "prompt": {
      "ja": "以下の仕様でスライドを 1 枚作ってください。\n\n- 版面 1920 × 1080\n- 余白 上 96 右 140 下 56 左 140\n\n## 文字（版面 1920px に対する px）\nkicker  22px / 700 / 字間 0.16em / 等幅数字\ntitle  52px / 700 / 行送り 1.35 / 等幅数字\ncolHead  22px / 500 / 等幅数字\nitem  30px / 500 / 等幅数字\ntarget  30px / 400 / 等幅数字\nactual  36px / 700 / 等幅数字\ngap  30px / 400 / 等幅数字\njudge  24px / 700 / 等幅数字\nnote  20px / 400 / 等幅数字\nfolio  16px / 400 / 等幅数字\n\n## 配色\n地 #FFFFFF / 面 #F2F4F8 / 文字 #0E1A2B / 補助 #5B6879 / 強調 #1D3F72 / 罫 #D6DCE5\n\n## 外すと崩れる点\n- 色は判定にだけ使う。推移の線まで色分けすると、どこを見ればよいか分からない\n- 推移の線は指標ごとに目盛りが違う。形だけを読む図だと注記する\n- 差は pt で揃え、符号を必ず付ける\n- 判定は 2 値（達成・未達）にする。3 色の信号にすると、黄色の意味を毎回説明することになる\n\n内容は［ここに自分の内容を書く］に置き換えてください。寸法と配色はそのまま守ってください。\n正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/kpi-scorecard-sparklines/pattern.html",
      "en": "Produce one slide to the following specification.\n\n- Canvas 1920 × 1080\n- Margin top 96 right 140 bottom 56 left 140\n\n## Type (px against a 1920px canvas)\nkicker  22px / 700 / tracking 0.16em / tabular numerals\ntitle  52px / 700 / leading 1.35 / tabular numerals\ncolHead  22px / 500 / tabular numerals\nitem  30px / 500 / tabular numerals\ntarget  30px / 400 / tabular numerals\nactual  36px / 700 / tabular numerals\ngap  30px / 400 / tabular numerals\njudge  24px / 700 / tabular numerals\nnote  20px / 400 / tabular numerals\nfolio  16px / 400 / tabular numerals\n\n## Colour\nGround #FFFFFF / Surface #F2F4F8 / Ink #0E1A2B / Muted #5B6879 / Accent #1D3F72 / Rule #D6DCE5\n\n## Constraints — dropping these breaks it\n- Use colour only for the verdict — colour the trend lines too and nothing stands out\n- Each trend line has its own scale; note that only the shape is meant to be read\n- Express gaps in points, always with a sign\n- Two verdicts, met or not — a three-colour signal means explaining amber every time\n\nReplace the content with [your content]. Keep the measurements and colours as given.\nFor an exact reproduction, use the verbatim HTML at https://design-vault.pages.dev/designs/kpi-scorecard-sparklines/pattern.html."
    },
    "code": {
      "html": "<!doctype html>\n<meta charset=\"utf-8\">\n<title>指標の成績表 — 目標・実績・差・8 四半期の推移・判定を 1 行に</title>\n<meta name=\"dv-font\" content=\"IBM Plex Sans JP:400;500;700\">\n<link rel=\"stylesheet\" href=\"./font.css\">\n<style>\n  /* この版そのもの。index.md の layout / type / colors は、この HTML を\n     scripts/render-pattern.mjs で実測した結果であって、別に書いた説明ではない。\n     会社・人物・数値はすべて説明用の架空のもの。 */\n  :root {\n    --ground: #FFFFFF;\n    --surface: #F2F4F8;\n    --ink: #0E1A2B;\n    --muted: #5B6879;\n    --accent: #1D3F72;\n    --rule: #D6DCE5;\n  }\n  * { box-sizing: border-box; margin: 0; }\n  html, body { width: 1920px; height: 1080px; }\n  body { font-family: \"IBM Plex Sans JP\", \"IPAGothic\", sans-serif; font-variant-numeric: tabular-nums; }\n\n  .artboard {\n    width: 1920px; height: 1080px;\n    background: var(--ground); color: var(--ink);\n    padding: 96px 140px 56px;             /* → layout.margin */\n  }\n  .content { height: 100%; display: grid; grid-template-rows: auto 1fr auto; row-gap: 40px; }\n\n  .kicker { font-size: 22px; font-weight: 700; letter-spacing: .16em; color: var(--accent); }\n  .title { font-size: 52px; font-weight: 700; line-height: 1.35; margin-top: 12px; }\n  /* 頁の足：社名・資料名・頁番号。どの頁でも同じ位置に置く */\n  .folio { display: flex; justify-content: space-between; font-size: 16px; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 16px; }\n\n  .wrap { align-self: center; }\n  table { width: 100%; border-collapse: collapse; }\n  thead th { font-size: 22px; font-weight: 500; color: var(--muted); text-align: right; padding: 0 24px 18px; border-bottom: 3px solid var(--ink); }\n  thead th:first-child { text-align: left; padding-left: 0; }\n  thead th.l { text-align: left; }\n  tbody tr { border-bottom: 1px solid var(--rule); }\n  tbody th { font-size: 30px; font-weight: 500; text-align: left; padding: 24px 0; }\n  tbody td { font-size: 30px; text-align: right; padding: 24px 24px; }\n  td.act { font-size: 36px; font-weight: 700; }\n  td.spark { text-align: left; padding-top: 12px; padding-bottom: 12px; }\n  td.spark svg { display: block; }\n  /* 判定だけに色を使う。推移の線は灰色のまま、達成した行の判定を紺で塗る */\n  td.judge { text-align: center; font-size: 24px; font-weight: 700; color: var(--muted); }\n  td.judge.ok { color: var(--ground); background: var(--accent); }\n  .note { font-size: 20px; color: var(--muted); margin-top: 16px; }\n\n</style>\n\n<div class=\"artboard\" data-artboard>\n  <div class=\"content\" data-content>\n    <div>\n      <p class=\"kicker\" data-type=\"kicker\">経営指標</p>\n      <h1 class=\"title\" data-type=\"title\">5 指標のうち 2 つが目標を上回った</h1>\n    </div>\n    <div class=\"wrap\">\n      <table>\n        <thead><tr><th data-type=\"colHead\">指標</th><th>通期目標</th><th>上期実績</th><th>目標との差</th><th class=\"l\">直近 8 四半期</th><th style=\"text-align: center\">判定</th></tr></thead>\n        <tbody>\n        <tr>\n          <th data-type=\"item\">受注高の前年比</th><td data-type=\"target\">+5.0%</td><td class=\"act\" data-type=\"actual\">+7.3%</td><td data-type=\"gap\">+2.3pt</td>\n          <td class=\"spark\"><svg width=\"240\" height=\"56\" viewBox=\"0 0 240 56\" aria-hidden=\"true\"><polyline points=\"8 42.3 40 48.0 72 34.9 104 38.2 136 25.1 168 28.4 200 17.8 232 8.0\" fill=\"none\" stroke=\"var(--muted)\" stroke-width=\"2.5\"/><circle cx=\"232\" cy=\"8.0\" r=\"5\" fill=\"var(--ink)\"/></svg></td>\n          <td class=\"judge ok\" data-type=\"judge\">達成</td>\n        </tr>\n        <tr>\n          <th>継続収入の比率</th><td>32.0%</td><td class=\"act\">31.4%</td><td>−0.6pt</td>\n          <td class=\"spark\"><svg width=\"240\" height=\"56\" viewBox=\"0 0 240 56\" aria-hidden=\"true\"><polyline points=\"8 48.0 40 40.7 72 34.4 104 28.9 136 21.6 168 17.1 200 12.5 232 8.0\" fill=\"none\" stroke=\"var(--muted)\" stroke-width=\"2.5\"/><circle cx=\"232\" cy=\"8.0\" r=\"5\" fill=\"var(--ink)\"/></svg></td>\n          <td class=\"judge\">未達</td>\n        </tr>\n        <tr>\n          <th>営業利益率</th><td>8.8%</td><td class=\"act\">8.5%</td><td>−0.3pt</td>\n          <td class=\"spark\"><svg width=\"240\" height=\"56\" viewBox=\"0 0 240 56\" aria-hidden=\"true\"><polyline points=\"8 48.0 40 35.7 72 41.8 104 26.5 136 20.3 168 29.5 200 14.2 232 8.0\" fill=\"none\" stroke=\"var(--muted)\" stroke-width=\"2.5\"/><circle cx=\"232\" cy=\"8.0\" r=\"5\" fill=\"var(--ink)\"/></svg></td>\n          <td class=\"judge\">未達</td>\n        </tr>\n        <tr>\n          <th>海外売上の比率</th><td>38.0%</td><td class=\"act\">39.2%</td><td>+1.2pt</td>\n          <td class=\"spark\"><svg width=\"240\" height=\"56\" viewBox=\"0 0 240 56\" aria-hidden=\"true\"><polyline points=\"8 48.0 40 43.1 72 37.5 104 31.9 136 27.6 168 19.9 200 14.3 232 8.0\" fill=\"none\" stroke=\"var(--muted)\" stroke-width=\"2.5\"/><circle cx=\"232\" cy=\"8.0\" r=\"5\" fill=\"var(--ink)\"/></svg></td>\n          <td class=\"judge ok\">達成</td>\n        </tr>\n        <tr>\n          <th>ROE（年換算）</th><td>9.0%</td><td class=\"act\">8.6%</td><td>−0.4pt</td>\n          <td class=\"spark\"><svg width=\"240\" height=\"56\" viewBox=\"0 0 240 56\" aria-hidden=\"true\"><polyline points=\"8 48.0 40 31.3 72 28.0 104 21.3 136 24.7 168 14.7 200 11.3 232 8.0\" fill=\"none\" stroke=\"var(--muted)\" stroke-width=\"2.5\"/><circle cx=\"232\" cy=\"8.0\" r=\"5\" fill=\"var(--ink)\"/></svg></td>\n          <td class=\"judge\">未達</td>\n        </tr>\n        </tbody>\n      </table>\n      <p class=\"note\" data-type=\"note\">推移の線は指標ごとに縦の目盛りが違う。形だけを見る</p>\n    </div>\n    <div class=\"folio\">\n      <p data-type=\"folio\">アオバ精工株式会社　2027 年 3 月期 第 2 四半期 決算説明資料</p>\n      <p>07</p>\n    </div>\n  </div>\n</div>\n",
      "url": "https://design-vault.pages.dev/designs/kpi-scorecard-sparklines/pattern.html",
      "fonts": [
        "https://design-vault.pages.dev/designs/kpi-scorecard-sparklines/font.css",
        "https://design-vault.pages.dev/designs/kpi-scorecard-sparklines/font-0.woff2",
        "https://design-vault.pages.dev/designs/kpi-scorecard-sparklines/font-1.woff2",
        "https://design-vault.pages.dev/designs/kpi-scorecard-sparklines/font-2.woff2"
      ]
    }
  },
  "urls": {
    "ja": "https://design-vault.pages.dev/designs/kpi-scorecard-sparklines",
    "en": "https://design-vault.pages.dev/en/designs/kpi-scorecard-sparklines"
  },
  "notesMarkdown": "## この構成について / About this pattern\n\n出典を持たない自作パターン。**`pattern.html` が版そのもの**で、`cover.png` と frontmatter の\n`layout` / `type` / `colors` はどちらもそこから機械的に測った結果。一式「決算・経営報告」の\n1 枚で、架空の会社「アオバ精工」の第 2 四半期決算説明として描いてある。会社・人物・数値はすべて架空。\n\nA self-authored pattern. `pattern.html` is the artboard itself; both `cover.png` and the\nmeasurements in the frontmatter are derived from it. One of the eight results-briefing slides, drawn\nas a fictional company's half-year results deck; every company, person and figure on it is invented.\n\n### Techniques\n\n- 推移は 240×56 の小さな SVG。最新の点だけ墨の丸\n- 達成の判定だけ紺の面に白抜き\n- 実績の列だけ太字・一回り大きく\n\n### Apply to\n\n- 決算説明・経営会議の指標一覧\n- 事業部の月次の成績表"
}