{
  "id": "estimate-breakdown-by-phase",
  "schemaVersion": 2,
  "title": {
    "ja": "見積の内訳 — 総額より先に構成比を読ませる",
    "en": "Estimate Breakdown — Share of Cost Before the Total"
  },
  "summary": {
    "ja": "工程別の金額を幅比例の帯で積み、その下に人月・単価・金額・構成比の表。前提と変動要因を同じ面に置く",
    "en": "Phases stacked in proportion, then a table of effort, rate, amount and share — with the assumptions on the same page"
  },
  "capturedAt": "2026-09-15",
  "categories": [
    "presentation"
  ],
  "tags": [
    "minimal",
    "data-viz"
  ],
  "useCases": [
    "pricing",
    "summary"
  ],
  "format": "slide-16x9",
  "density": "high",
  "layout": {
    "kind": "waterfall",
    "canvas": {
      "w": 1920,
      "h": 1080
    },
    "margin": {
      "top": 92,
      "right": 140,
      "bottom": 92,
      "left": 140
    },
    "columns": {
      "count": 5,
      "gap": 3
    },
    "emphasis": {
      "column": 3,
      "via": [
        "fill"
      ]
    }
  },
  "type": {
    "title": {
      "size": 44,
      "weight": 700,
      "tracking": "0.01em",
      "leading": 1.3
    },
    "total": {
      "size": 17,
      "weight": 500,
      "numeric": "tabular"
    },
    "segName": {
      "size": 16,
      "weight": 500
    },
    "segPct": {
      "size": 20,
      "weight": 700,
      "numeric": "tabular"
    },
    "col": {
      "size": 15,
      "weight": 500,
      "tracking": "0.12em"
    },
    "pname": {
      "size": 20,
      "weight": 700,
      "leading": 1.4
    },
    "num": {
      "size": 19,
      "weight": 500,
      "numeric": "tabular"
    },
    "fkey": {
      "size": 14,
      "weight": 500,
      "tracking": "0.14em"
    },
    "fval": {
      "size": 16,
      "weight": 400,
      "leading": 1.75,
      "numeric": "tabular"
    }
  },
  "colors": {
    "ground": "#FFFFFF",
    "surface": "#F4F6F9",
    "ink": "#131820",
    "muted": "#667183",
    "accent": "#1F5FA8",
    "rule": "#DBE1E9",
    "series": []
  },
  "rules": [
    {
      "ja": "積み上げの帯を表より上に置く。総額から読ませると「高い／安い」の話になり、どこに費用が乗っているかの話にならない",
      "en": "Put the proportional bar above the table — read from the total first, the conversation is about the price, not about where the cost sits"
    },
    {
      "ja": "単価は工程ごとに出す。平均単価 1 つだと、工程を削ったときの再計算が合わず、値引き交渉が算数の話になる",
      "en": "Give every phase its own rate: with a single blended rate, removing a phase does not recompute, and the negotiation turns into arithmetic"
    },
    {
      "ja": "発注側の工数は金額に入れず、行としては残す。消すと「こちらは何もしなくてよい」と読まれる",
      "en": "Keep the client's own effort as a row with no amount — deleted, it reads as \"nothing is asked of us\""
    },
    {
      "ja": "前提と変動要因を同じ面に置く。別紙に送ると総額だけが独り歩きし、範囲が変わっても金額は据え置きだと思われる",
      "en": "Assumptions and swing factors belong on this page; on an annex the total travels alone and is taken as fixed whatever the scope does"
    },
    {
      "ja": "有効期限を書く。要員の確保が前提の金額なので、期限の無い見積は約束として扱われる",
      "en": "State the expiry — the figure assumes people are held, and an estimate with no expiry is read as a commitment"
    },
    {
      "ja": "塗るのはいちばん重い工程 1 つだけ。2 つ塗ると「重い」が意味を失う",
      "en": "Fill one segment, the heaviest. Fill two and \"heaviest\" stops meaning anything"
    }
  ],
  "cover": "https://design-vault.pages.dev/_astro/cover.FF_VkIjz.png",
  "assets": [],
  "shortlist": true,
  "status": "published",
  "relations": {
    "similar": [
      "pricing-3col-center-emphasis",
      "wbs-gantt-six-phases",
      "scope-in-out-two-fields"
    ]
  },
  "license": "Original",
  "publishedAt": null,
  "reproduction": {
    "spec": {
      "format": "slide-16x9",
      "density": "high",
      "layout": {
        "kind": "waterfall",
        "canvas": {
          "w": 1920,
          "h": 1080
        },
        "margin": {
          "top": 92,
          "right": 140,
          "bottom": 92,
          "left": 140
        },
        "columns": {
          "count": 5,
          "gap": 3
        },
        "emphasis": {
          "column": 3,
          "via": [
            "fill"
          ]
        }
      },
      "type": {
        "title": {
          "size": 44,
          "weight": 700,
          "tracking": "0.01em",
          "leading": 1.3
        },
        "total": {
          "size": 17,
          "weight": 500,
          "numeric": "tabular"
        },
        "segName": {
          "size": 16,
          "weight": 500
        },
        "segPct": {
          "size": 20,
          "weight": 700,
          "numeric": "tabular"
        },
        "col": {
          "size": 15,
          "weight": 500,
          "tracking": "0.12em"
        },
        "pname": {
          "size": 20,
          "weight": 700,
          "leading": 1.4
        },
        "num": {
          "size": 19,
          "weight": 500,
          "numeric": "tabular"
        },
        "fkey": {
          "size": 14,
          "weight": 500,
          "tracking": "0.14em"
        },
        "fval": {
          "size": 16,
          "weight": 400,
          "leading": 1.75,
          "numeric": "tabular"
        }
      },
      "colors": {
        "ground": "#FFFFFF",
        "surface": "#F4F6F9",
        "ink": "#131820",
        "muted": "#667183",
        "accent": "#1F5FA8",
        "rule": "#DBE1E9"
      },
      "rules": [
        "Put the proportional bar above the table — read from the total first, the conversation is about the price, not about where the cost sits",
        "Give every phase its own rate: with a single blended rate, removing a phase does not recompute, and the negotiation turns into arithmetic",
        "Keep the client's own effort as a row with no amount — deleted, it reads as \"nothing is asked of us\"",
        "Assumptions and swing factors belong on this page; on an annex the total travels alone and is taken as fixed whatever the scope does",
        "State the expiry — the figure assumes people are held, and an estimate with no expiry is read as a commitment",
        "Fill one segment, the heaviest. Fill two and \"heaviest\" stops meaning anything"
      ]
    },
    "prompt": {
      "ja": "以下の仕様でスライドを 1 枚作ってください。\n\n- 版面 1920 × 1080\n- 余白 上 92 右 140 下 92 左 140\n- 5 カラム（等分）、間隔 3\n\n## 強調\n3 列目のみ。手段は 塗り だけ。ほかは変えない\n\n## 文字（版面 1920px に対する px）\ntitle  44px / 700 / 字間 0.01em / 行送り 1.3\ntotal  17px / 500 / 等幅数字\nsegName  16px / 500\nsegPct  20px / 700 / 等幅数字\ncol  15px / 500 / 字間 0.12em\npname  20px / 700 / 行送り 1.4\nnum  19px / 500 / 等幅数字\nfkey  14px / 500 / 字間 0.14em\nfval  16px / 400 / 行送り 1.75 / 等幅数字\n\n## 配色\n地 #FFFFFF / 面 #F4F6F9 / 文字 #131820 / 補助 #667183 / 強調 #1F5FA8 / 罫 #DBE1E9\n\n## 外すと崩れる点\n- 積み上げの帯を表より上に置く。総額から読ませると「高い／安い」の話になり、どこに費用が乗っているかの話にならない\n- 単価は工程ごとに出す。平均単価 1 つだと、工程を削ったときの再計算が合わず、値引き交渉が算数の話になる\n- 発注側の工数は金額に入れず、行としては残す。消すと「こちらは何もしなくてよい」と読まれる\n- 前提と変動要因を同じ面に置く。別紙に送ると総額だけが独り歩きし、範囲が変わっても金額は据え置きだと思われる\n- 有効期限を書く。要員の確保が前提の金額なので、期限の無い見積は約束として扱われる\n- 塗るのはいちばん重い工程 1 つだけ。2 つ塗ると「重い」が意味を失う\n\n内容は［ここに自分の内容を書く］に置き換えてください。寸法と配色はそのまま守ってください。\n正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/estimate-breakdown-by-phase/pattern.html",
      "en": "Produce one slide to the following specification.\n\n- Canvas 1920 × 1080\n- Margin top 92 right 140 bottom 92 left 140\n- 5 equal columns, gap 3\n\n## Emphasis\ncolumn 3 only, by fill and nothing else\n\n## Type (px against a 1920px canvas)\ntitle  44px / 700 / tracking 0.01em / leading 1.3\ntotal  17px / 500 / tabular numerals\nsegName  16px / 500\nsegPct  20px / 700 / tabular numerals\ncol  15px / 500 / tracking 0.12em\npname  20px / 700 / leading 1.4\nnum  19px / 500 / tabular numerals\nfkey  14px / 500 / tracking 0.14em\nfval  16px / 400 / leading 1.75 / tabular numerals\n\n## Colour\nGround #FFFFFF / Surface #F4F6F9 / Ink #131820 / Muted #667183 / Accent #1F5FA8 / Rule #DBE1E9\n\n## Constraints — dropping these breaks it\n- Put the proportional bar above the table — read from the total first, the conversation is about the price, not about where the cost sits\n- Give every phase its own rate: with a single blended rate, removing a phase does not recompute, and the negotiation turns into arithmetic\n- Keep the client's own effort as a row with no amount — deleted, it reads as \"nothing is asked of us\"\n- Assumptions and swing factors belong on this page; on an annex the total travels alone and is taken as fixed whatever the scope does\n- State the expiry — the figure assumes people are held, and an estimate with no expiry is read as a commitment\n- Fill one segment, the heaviest. Fill two and \"heaviest\" stops meaning anything\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/estimate-breakdown-by-phase/pattern.html."
    },
    "code": {
      "html": "<!doctype html>\n<meta charset=\"utf-8\">\n<title>見積の内訳 — 総額より先に構成比を読ませる</title>\n<meta name=\"dv-font\" content=\"Zen Kaku Gothic New: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  :root {\n    --ground: #FFFFFF;\n    --surface: #F4F6F9;\n    --ink: #131820;\n    --muted: #667183;\n    --accent: #1F5FA8;\n    --rule: #DBE1E9;\n  }\n  * { box-sizing: border-box; margin: 0; }\n  html, body { width: 1920px; height: 1080px; }\n  body { font-family: \"Zen Kaku Gothic New\", \"IPAGothic\", sans-serif; }\n\n  .artboard {\n    width: 1920px; height: 1080px;\n    background: var(--ground); color: var(--ink);\n    padding: 92px 140px;                  /* → layout.margin */\n  }\n  .content { height: 100%; display: grid; grid-template-rows: auto 1fr auto; }\n\n  .head { display: flex; align-items: baseline; justify-content: space-between; gap: 40px; }\n  .title { font-size: 44px; font-weight: 700; line-height: 1.3; letter-spacing: .01em; }\n  .total { font-size: 17px; font-weight: 500; font-variant-numeric: tabular-nums; }\n  .total b { font-size: 30px; font-weight: 700; letter-spacing: .01em; }\n\n  .body { align-self: center; display: grid; gap: 40px; }\n\n  /* 積み上げの帯を表より先に置く。総額だけを読む紙にしないための順序で、\n     どの工程が重いかが数字を追う前に決まる。 */\n  .stack { display: grid; grid-template-columns: 12.33fr 19.38fr 40.46fr 18.14fr 9.69fr; gap: 3px; }\n  .seg { height: 76px; background: color-mix(in srgb, var(--ink) 12%, transparent); display: grid; align-content: center; padding: 0 20px; }\n  /* 塗るのはいちばん重い工程 1 つだけ。2 つ塗ると「重い」の意味が薄まる。 */\n  .seg[data-emphasis] { background: var(--accent); }\n  .segName { font-size: 16px; font-weight: 500; }\n  .segPct { font-size: 20px; font-weight: 700; margin-top: 4px; font-variant-numeric: tabular-nums; }\n  .seg[data-emphasis] .segName,\n  .seg[data-emphasis] .segPct { color: var(--ground); }\n\n  .table { width: 100%; }\n  /* 工程・人月・単価・金額・構成比。単価は工程ごとに出す —— 平均単価 1 つだと\n     工程を削ったときの再計算が合わない。 */\n  .row { display: grid; grid-template-columns: 1fr 130px 200px 240px 150px; align-items: baseline; gap: 34px; padding: 19px 22px; border-bottom: 1px solid var(--rule); }\n  .row:first-child { border-top: 1px solid var(--rule); }\n  .row.head-row { padding: 14px 22px; border-bottom-color: var(--ink); }\n  .col { font-size: 15px; font-weight: 500; letter-spacing: .12em; color: var(--muted); text-align: right; }\n  .col:first-child { text-align: left; }\n\n  .pname { font-size: 20px; font-weight: 700; line-height: 1.4; }\n  .num { font-size: 19px; font-weight: 500; text-align: right; font-variant-numeric: tabular-nums; }\n  .num[data-soft] { color: var(--muted); font-weight: 400; }\n  /* 御社側の工数は金額に入れないが、行としては残す。\n     消すと「こちらは何もしなくてよい」と読まれる。 */\n  .row[data-client] .pname { color: var(--muted); font-weight: 500; }\n  .row.sum { border-bottom: 2px solid var(--ink); background: var(--surface); }\n  .row.sum .pname,\n  .row.sum .num { font-weight: 700; }\n\n  .foot { display: grid; grid-template-columns: 1.25fr 1.25fr .9fr; gap: 56px; border-top: 1px solid var(--rule); padding-top: 24px; }\n  .fkey { font-size: 14px; font-weight: 500; letter-spacing: .14em; color: var(--muted); }\n  .fval { font-size: 16px; font-weight: 400; line-height: 1.75; color: var(--ink); margin-top: 10px; font-variant-numeric: tabular-nums; }\n</style>\n\n<div class=\"artboard\" data-artboard>\n  <div class=\"content\" data-content>\n    <div class=\"head\">\n      <h1 class=\"title\" data-type=\"title\">見積の内訳（第 1 期）</h1>\n      <p class=\"total\" data-type=\"total\">弊社分 合計 <b>136,200</b> 千円（税別）／ 132 人月</p>\n    </div>\n\n    <div class=\"body\">\n      <div class=\"stack\">\n        <div class=\"seg\" data-col=\"1\">\n          <p class=\"segName\" data-type=\"segName\">要件定義</p>\n          <p class=\"segPct\" data-type=\"segPct\">12.3%</p>\n        </div>\n        <div class=\"seg\" data-col=\"2\">\n          <p class=\"segName\">基本設計</p>\n          <p class=\"segPct\">19.4%</p>\n        </div>\n        <div class=\"seg\" data-col=\"3\" data-emphasis=\"fill\">\n          <p class=\"segName\">詳細設計・実装</p>\n          <p class=\"segPct\">40.5%</p>\n        </div>\n        <div class=\"seg\" data-col=\"4\">\n          <p class=\"segName\">結合・総合テスト</p>\n          <p class=\"segPct\">18.1%</p>\n        </div>\n        <div class=\"seg\" data-col=\"5\">\n          <p class=\"segName\">移行・切替</p>\n          <p class=\"segPct\">9.7%</p>\n        </div>\n      </div>\n\n      <div class=\"table\">\n        <div class=\"row head-row\">\n          <p class=\"col\" data-type=\"col\">工程</p>\n          <p class=\"col\">人月</p>\n          <p class=\"col\">単価（千円／人月）</p>\n          <p class=\"col\">金額（千円）</p>\n          <p class=\"col\">構成比</p>\n        </div>\n\n        <div class=\"row\">\n          <p class=\"pname\" data-type=\"pname\">要件定義</p>\n          <p class=\"num\" data-type=\"num\">14</p>\n          <p class=\"num\">1,200</p>\n          <p class=\"num\">16,800</p>\n          <p class=\"num\" data-soft>12.3%</p>\n        </div>\n        <div class=\"row\">\n          <p class=\"pname\">基本設計</p>\n          <p class=\"num\">22</p>\n          <p class=\"num\">1,200</p>\n          <p class=\"num\">26,400</p>\n          <p class=\"num\" data-soft>19.4%</p>\n        </div>\n        <div class=\"row\">\n          <p class=\"pname\">詳細設計・実装</p>\n          <p class=\"num\">58</p>\n          <p class=\"num\">950</p>\n          <p class=\"num\">55,100</p>\n          <p class=\"num\" data-soft>40.5%</p>\n        </div>\n        <div class=\"row\">\n          <p class=\"pname\">結合・総合テスト</p>\n          <p class=\"num\">26</p>\n          <p class=\"num\">950</p>\n          <p class=\"num\">24,700</p>\n          <p class=\"num\" data-soft>18.1%</p>\n        </div>\n        <div class=\"row\">\n          <p class=\"pname\">移行・切替</p>\n          <p class=\"num\">12</p>\n          <p class=\"num\">1,100</p>\n          <p class=\"num\">13,200</p>\n          <p class=\"num\" data-soft>9.7%</p>\n        </div>\n        <div class=\"row sum\">\n          <p class=\"pname\">弊社分 合計</p>\n          <p class=\"num\">132</p>\n          <p class=\"num\" data-soft>—</p>\n          <p class=\"num\">136,200</p>\n          <p class=\"num\" data-soft>100.0%</p>\n        </div>\n        <div class=\"row\" data-client>\n          <p class=\"pname\">受入テスト（御社ご担当）</p>\n          <p class=\"num\" data-soft>8</p>\n          <p class=\"num\" data-soft>—</p>\n          <p class=\"num\" data-soft>見積外</p>\n          <p class=\"num\" data-soft>—</p>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"foot\">\n      <div>\n        <p class=\"fkey\" data-type=\"fkey\">前提</p>\n        <p class=\"fval\" data-type=\"fval\">対象範囲は 2 章の「第 1 期で作るもの」5 項目。帳票は主要 9 本、連携は在庫・会計の 2 系統。</p>\n      </div>\n      <div>\n        <p class=\"fkey\">この金額が動く要因</p>\n        <p class=\"fval\">統合対象 4 帳票を個別に残す判断（＋約 6,800 千円）／ 在庫連携を非同期に変更（△ 約 3,200 千円）。</p>\n      </div>\n      <div>\n        <p class=\"fkey\">有効期限</p>\n        <p class=\"fval\">2026.11.30 まで。要員の確保を前提とするため。</p>\n      </div>\n    </div>\n  </div>\n</div>\n",
      "url": "https://design-vault.pages.dev/designs/estimate-breakdown-by-phase/pattern.html",
      "fonts": [
        "https://design-vault.pages.dev/designs/estimate-breakdown-by-phase/font.css",
        "https://design-vault.pages.dev/designs/estimate-breakdown-by-phase/font-0.woff2",
        "https://design-vault.pages.dev/designs/estimate-breakdown-by-phase/font-1.woff2",
        "https://design-vault.pages.dev/designs/estimate-breakdown-by-phase/font-2.woff2"
      ]
    }
  },
  "urls": {
    "ja": "https://design-vault.pages.dev/designs/estimate-breakdown-by-phase",
    "en": "https://design-vault.pages.dev/en/designs/estimate-breakdown-by-phase"
  },
  "notesMarkdown": "## この構成について / About this pattern\n\n「なぜこの金額か」を 1 枚で説明する版。**`pattern.html` が版そのもの**で、`cover.png` と\nfrontmatter の寸法はどちらもそこから機械的に出している。編集するのは `pattern.html` だけ。\n\nThe page that explains why the number is the number. `pattern.html` is the artboard itself; both\n`cover.png` and the measurements come from it, so the three cannot drift apart.\n\n### Techniques\n\n- 帯の各区画の幅は `12.33fr 19.38fr 40.46fr 18.14fr 9.69fr`。表の構成比と同じ値を `fr` に\n  そのまま置くので、絵と数字がずれようがない\n- 合計行だけ `--surface` を敷き、下端を `--ink` の 2px で締める。塗りと罫の 2 手段を使うのは\n  この 1 行だけ\n- 金額は千円単位で右揃え・等幅数字。桁区切りを入れても縦の桁位置が動かない\n\n### Apply to\n\n- 提案書の見積内訳、変更要求に伴う再見積の説明\n- 実績報告（「金額」を「実績」に、「構成比」を「予算比」に読み替える）"
}