---
title: 収益シミュレーション（1店あたりに割り戻した版）制作メモ
layer: 知識層
tags: [収益シミュレーション, 見せ方, 検算, ハーネス, M-45]
updated: 260915
---

# 収益シミュレーション（1店あたりに割り戻した版）制作メモ 260915

ToDo **M-45**。9/11に三宅さんからいただいた「AIの売上見込みを、多治見の関係者に伝わる形に整えたい」への回答。
監査の経緯と数値の検算は `02_分析/受領資料分析_260914.md`。

## 成果物

| ファイル | 中身 |
|---|---|
| `収益シミュレーション_販売店版_260915.pdf` | **本体 A4横5ページ・A版**（原本。P2〜P5の正本はこのファイル） |
| `収益シミュレーション_協賛版_260915.pdf` | **B版**（A版から生成） |
| `収益シミュレーション_金融機関版_260915.pdf` | **C版**（A版から生成・ページ順を入れ替え） |
| `../_make_variants.py` | A版からB版・C版を生成する |
| `別紙_三宅さん限り_260915.pdf` | **A4縦2ページ**。訂正2点・確認表記6点・決めごと3点・次世代キャッシュポイントの相談・p12差し替えデータ。**本体に綴じない** |
| `sim_numbers.json` | **数値の正本**。この資料のすべての数字はここから出る |
| `../_build_sim.py` | 検算＋突合＋組版＋体裁検査の一式 |
| `_panels/*.jpg` | 面ごとの確認画像（目視用） |

## 設計の背骨 ―「1億500万円」は捨てない

3つの案を独立に作って採点した結果、どの案も見落としていた一手を採った。

```
① 協賛金                  5,500,000
② EC・ネットスーパー配達    15,600,000
③ まごころチケット         24,000,000
④ 地元事業者に渡る仕事      60,000,000  ← 販売店の売上ではなく、施主が地元事業者へ払う工事代金
――――――――――――――――――――――――――
                         105,100,000  ＝ 1億500万円（完全一致）
```

**1億500万円は「新聞販売店の売上」というラベルが違っていただけで、「地域で動くお金」としては正しい。**
だから三宅さんには「半分に減らしてください」ではなく「**置き場所が違っていました**」と言える。
これが依頼の否定にならない唯一の伝え方で、しかも協賛営業にはこちらの方が効く。

これを4段の入れ子にして、P1の主役の図にした（帯の長さは金額の比そのまま。上と下で約40倍）。

| 段 | 何のお金か | 年額 | 1店・月 |
|---|---|---:|---:|
| 第1段 | 地域で動くお金 | 105,100,000 | — |
| 第2段 | 新聞販売店を通るお金（売上） | 51,100,000 | 1,064,583 |
| 第3段 | 分配のあと販売店に残るお金 | 10,882,000 | — |
| 第4段 | **1店に残るお金** | 2,720,500 | **226,708** |

## ページ構成

| P | 内容 | 狙い |
|---|---|---|
| 1 | 結論＋4段の入れ子図＋自店への読み替え欄＋「④ゼロでも月181,875円」「1年目は月63,875円」 | **版ごとに差し替える唯一のページ** |
| 2 | 4本の収入を確かな順（契約で決まる／稼働で決まる／件数しだい）に並べ、4店年間→1店年間→1店月間→1店に残る月額へ割り戻す＋満期までの3年の階段 | 三宅さんの「販売店の方にはこの数字が理解できない」への直接の回答 |
| 3 | 前提の全開示（出どころと確かさを列に持たせる）＋感度3シナリオ＋数字が動く決めごと3点 | 金融機関・医師会に出しても崩れない |
| 4 | 1日のタイムライン（朝刊配達と新規業務が**時間帯として重ならない**）＋必要人手＋配達1回の時給換算＋「チケットは儲けではなく入口」 | 「遊休時間の活用」が本当かを数字で確かめる |
| 5 | 住民のお困りごと→販売店が見極めてつなぐ→**「地元に落ちる仕事（大）」と「販売店の紹介手数料（小）」を別の箱に**＋協賛1社あたりの受注機会＋お困りごとの例 | 協賛営業の主役ページ |

### 3つの版（P2〜P5は完全共通・P1だけ差し替え）

| 版 | P1の結論行 | 主役 | 渡す相手 | 状態 |
|---|---|---|---|---|
| **A 販売店版** | 1店あたり月 226,708円が残ります | P2・P4 | 森井・水野・西尾／恵那・他地区の販売店会 | ✅ 260915 |
| **B 協賛版** | 地元の事業者さんに年 6,000万円の仕事が回ります | P1・P5 | バロー／商工会議所／協賛事業者40社 | ✅ 260915 |
| **C 金融機関版** | 地域で動くお金 年 1億500万円。前提はすべて開示しています | P1・P2（前提を繰り上げ） | 東濃信用金庫／多治見市医師会 | ✅ 260915 |

**B版・C版はA版から生成する**（`python3 _make_variants.py 260915`）。P2〜P5を3ファイルに手で複製しないための措置で、
A版のP2〜P5を直せば次の生成でB・Cにも反映される。生成後は必ず `_build_sim.py` に通すこと。

- **B版のP1** ＝「いただくもの（年会費550万円の行き先）」と「お返しするもの（地元に落ちる仕事）」を左右に並べた。
  **新聞販売店に残るのは165万円＝30.0％で、残り7割は地域の支援活動へ**という一行が、協賛側のいちばんの疑問に答える。
  下段に4段の入れ子を小さく置き「新聞販売店が1億円を稼ぐ話ではありません」と先に断る。
- **C版のP1** ＝ 販売店を通る5,110万円を**確定（協賛金550万）／仮置き（配達・チケット3,960万）／未決（紹介手数料600万）**に
  三分し、「確定しているのは協賛金だけです」と先に言い切る。ページ順は前提のページを2枚目へ繰り上げる。
  相互参照（P5の「前提は◯ページに全て開示」）は生成時に自動で書き換える。

## ページ文法（全ページ厳守）

- **黒** ＝ 出どころのある確定値
- **グレー** `#6b6560` ＝ セナオが置いた仮置き
- **結びの赤 `#B33A2B` の細い下線** ＝ まだ決まっていない値

色分けはこの3種だけ。記号・絵文字は使わない。
アクセントは `#B33A2B` 1色で、使ってよいのは「数字の下線」「表の1列の地（不透明度6%）」「図の細い輪郭線」「基準線」のみ。
色付き border-left のアクセントバー・絵文字箇条書き・紫系グラデーションは使わない（CLAUDE.md デザイン方針）。

## ハーネス ― `_build_sim.py`

今回の10倍の誤りは「**合計行を人間の目でしか見ていなかった**」ことで起きた。だから検証を機械に持たせた。

```
python3 _build_sim.py 260915/sim_numbers.json 260915/収益シミュレーション_販売店版_260915.html
```

| 門 | 何を見るか |
|---|---|
| **門1 検算** | `sim_numbers.json` の中で、積算・分配・割り戻し・稼働・感度・立ち上がりが全部閉じているか（約110本）。型・必須キー・正の分母も先に見る |
| **門1b 検算もれ** | **正本の値を1つずつ壊して、門1が本当に反応するか確かめる**（変異テスト）。反応しない値＝どの検算にも使われていない値なので、そこに誤りを書いても止まらない。実際に4件見つかって埋めた |
| **門2 突合** | 1,000以上の数字は `data-k` で**どの項目のつもりで書いたかを宣言**させ、正本の値と突き合わせる。宣言のない数字、正本に無い項目、値の食い違い、**行の見出しと宣言の食い違い**、本体に出せない項目（訂正前）を止める |
| **門3 体裁** | 上下余白8mm未満／45mm超の空白帯を実測 |

門1・門1b・門2 を通らないと PDF を作らない。

### ⚠️ 最初に作った門2 には穴があった（Codex のレビューで判明）

最初の門2は「**正本のどこかに載っている値か**」しか見ていなかった。これでは足りない。
`60,000,000` は「地元事業者に渡る仕事」として正本に載っているので、**④の行に 60,000,000 と書いても素通りする**
＝**今回とまったく同じ誤りを止められない**。実際に再現して確認した。

CLAUDE.md の Maker-Checker（Claude が直接実装したものは別モデルで検証する）に従って
GPT-6 Astra にレビューさせ、15件の指摘を受けた。主要なものと対応:

| 指摘 | 対応 |
|---|---|
| 値の集合を見ているだけで、用途を区別していない | **`data-k` による項目パスの宣言**を導入。値ではなく「宣言した項目の値」と突き合わせる |
| 「売上」表と「残る」表が合計だけ一致していればよい（②を+100万・③を−100万で通る） | ①〜④それぞれの売上を両表で突合 |
| 検算していない値まで許可集合に入る（3年目の月額を10倍にしても通った） | **門1b（変異テスト）**を新設。検算もれをゼロにした |
| 符号・単位・小数を見ていない。万／億の換算が雑 | `data-unit`（万・億・和）と `data-approx`（概数は1%まで）を導入。住所のハイフンを符号と誤読しない正規化も |
| タグを空白に置換するだけなので `<span>987</span><span>654</span>` が分断される／全角数字が抜ける | タグを外してから全角を正規化して読む |
| 4桁未満は対象外＝率や件数の誤りを見逃す | 100以上を検査対象に。1,000以上は宣言必須 |
| HTML未指定でも終了コード0／未知オプションを黙って捨てる | 引数を厳密に見て、対象欠落・未知オプションは非ゼロ終了 |
| 分配率 110万・440万 がコードにベタ書き。便益側の社数が売上側と無関係 | 社数×単価から導出し、便益側の社数・年会費も売上側と一致を検査 |
| 既定の許容誤差±1で 80,000枚→80,001枚 が通る | 既定を完全一致にし、丸めが要る箇所だけ明示 |

### いま止められること（再現テスト済み）

| 攻撃 | 結果 |
|---|---|
| ④の行に 60,000,000 と書く（**今回と同じ誤り**） | 止まる（値が正本と違う） |
| 宣言を「地元事業者に渡る仕事」にすり替えて誤魔化す | 止まる（行の見出しと宣言の食い違い） |
| 宣言を外して素の数字で書く | 止まる（宣言のない数字） |
| 別紙でしか使えない訂正前の値を本体に持ち込む | 止まる（本体に出せない項目） |
| 桁を1つ増やす（226,708→2,267,080） | 止まる（値が正本と違う） |
| 正本側で②を+100万・③を−100万（合計は変わらない） | 止まる（売上−原価＝純利益） |
| 検算していないつもりの値を10倍にする | 止まる（門1b で検算もれを潰したため） |

### 残っている限界（正直に書いておく）

- **行の見出しと宣言の突合は `<tr>` と `<li>` にだけ効く。**本文中の「積算根拠」のような地の文で
  番号と値を取り違えて宣言した場合は止まらない。
- **前提そのものの正しさ（紹介手数料10%・平均案件単価5万円・高齢者世帯2万）は算術では検証できない。**
  だから3ページで全部開示し、「未決」を赤い下線で示している。
- 門3は画素の行単位判定なので、枠線が全行にあると中央の空白を見落とす。

## 数字を直すときの順番

1. `sim_numbers.json` を直す
2. `python3 _build_sim.py --numbers-only 260915/sim_numbers.json` で門1・門1b を通す
3. HTML を直す（新しい数字には `data-k` を付ける。`python3 _annotate.py` が下書きする）
4. B版・C版を作り直す（`python3 _make_variants.py 260915` → `_annotate.py`）
5. フルで走らせて門2・門3を通す

**逆をやらない**（HTMLを先に直すと門2で止まる。それが正しい挙動）。

## 残っていること

- 三宅さんへの送付（LINE 2通＝数字の件／大義の件。文面は `02_分析/受領資料分析_260914.md` §6）
- 「高齢者世帯 20,000」を国勢調査の「高齢単身・高齢夫婦のみ世帯」で置き換える
  → 1万〜1.2万世帯まで下がる可能性があり、そのとき1店月額は14万円前後になる。**この資料で最も効く変数**
- 紹介手数料の料率・平均案件単価を両藤舎が決める → ④が確定する
- 4店への配分ルール（本部管理費55万円は両藤舎に入るため等分にならない）

## 注意

- **P5の「年会費の2.7〜13.6倍」は受注の約束ではない。**協賛営業の現場で「120万円もらえる」と伝わると後で必ず揉めるので、注記を小さくしない
- **本体は必ず転送される**前提で作ってある。訂正・確認事項は別紙に分離した（NotebookLM透かし・50社/40社の矛盾の前例＝`02_分析/受領資料分析_260729.md` §7）
- チケット前受金2,400万円と資金決済法（C-3）は本資料の範囲外だが、東濃信用金庫に「年2,400万円の前受け」と書いた紙を出すと向こうから先にこの話が出る。ToDo 8「安心の仕組み（お金編）」A4を同時期に用意しておくのが安全
