Metadata-Version: 2.4
Name: standard-block-auditor
Version: 0.1.1
Summary: A quantitative framework for detecting budgetary distortion.
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=1.3.0
Requires-Dist: matplotlib>=3.4.0
Requires-Dist: numpy>=1.21.0
Requires-Dist: seaborn>=0.11.0
Dynamic: license-file

# Standard Block Comparison Method (標準ブロック比較法)

**"数字のマジック"から解き放たれ、行政施策の真の実効性を測るための監査フレームワーク**

## 概要 (Overview)
行政や企業が発表する「累計〇〇人」「予算〇〇億円」といった巨大な数字は、往々にして実態（ROI）を隠蔽するために利用されます。
本リポジトリでは、これらの数字を「基礎自治体（Standard Block）」という最小単位まで分解し、その施策が社会インフラとして機能しているか、あるいは単なる「誤差」に過ぎないのかを数学的に判定する手法「標準ブロック比較法」を提供します。

この手法は、フェルミ推定の考え方を応用し、日本の基礎自治体数（約1,700）を定数として用いることで、誰でも直感的に規模感を把握できる指標（Administrative Density）を算出します。

## 目的 (Purpose)
*   **行政監査のDX化:** 感情論ではなく、数式に基づいたロジカルな行政評価を行う。
*   **規模感の可視化:** 巨大すぎる数字を、市民が実感できるサイズ（1自治体あたりのキャパシティ）に変換する。
*   **Civic Techへの貢献:** 誰もが検証・利用可能な評価フォーマットをオープンソースとして公開する。

## 計算式 (The Formula)

行政施策の実効性インパクト ($I$) は、以下の式で定義されます。

$$ I = \frac{V}{B} $$

ここで、標準ブロック ($B$) は以下のように算出されます。

$$ B = \frac{P \times R}{N} $$

### 変数の定義
*   $P$ (Population): 日本の総人口（約1.24億人 ※2023年推計）
*   $R$ (Ratio): ターゲット属性の比率（例：全人口なら1.0, 若年層なら0.15など）
*   $N$ (Number): 全国の基礎自治体数（約1,718）
*   $V$ (Value): 発表された成果数（例：累計3,000人、予算100億円など）
*   $B$ (Block): 標準ブロック（1自治体あたりの平均ターゲット数）
*   $I$ (Impact): 実効性インパクト

### 判定基準 (v2.0)
算出されたインパクト値 ($I$) は、「全国1,718自治体のうち、いくつの自治体を満杯にできるか」を示します。
これに基づき、施策の「社会実装ステージ」を判定します。

| インパクト値 ($I$) | 普及率目安 | 判定 | 意味 (Benchmark) |
| :--- | :--- | :--- | :--- |
| **$I < 1.0$** | 0.05%未満 | **誤差レベル** | 論外。標準的な1自治体すらカバーできていない。 |
| **$1.0 \le I < 17$** | 1%未満 | **局所的** | 実験段階。まだ「アーリーアダプター」にも届いていない。 |
| **$17 \le I < 172$** | 1%〜10% | **普及フェーズ** | 「クラスに1人」レベル。認知が広がり始めている。 |
| **$172 \le I < 859$** | 10%〜50% | **基礎インフラ** | 「10人に1人」。水道・電気のような社会基盤になりつつある。 |
| **$I \ge 859$** | 50%以上 | **社会OS** | 過半数が利用。なくてはならない社会の前提。 |

## ケーススタディ (Case Studies)

### 1. 千葉県柏市：プレコンセプションケア事業
*   **リンク:** [柏市事業について](reports/kashiwa_report_2025.md)
*   **背景:** 市が「少子化対策」として民間企業と連携しアプリ等を導入。
*   **発表数値 ($V$):** 利用者 3,000人
*   **ターゲット比率 ($R$):** 0.15 (出産適齢期女性と仮定)
*   **標準ブロック ($B$):** $124,000,000 \times 0.15 \div 1,718 \approx 10,826$ 人
*   **分析結果 ($I$):** $3,000 \div 10,826 \approx$ **0.27**
*   **結論:** 全国換算で「1自治体あたり0.3人」しか利用していない計算となり、施策としての普及率は**「誤差レベル」**である。

### 2. 大阪・関西万博：来場者目標
*   **リンク:** [大阪万博について 2025](reports/osaka_expo_analysis_en.md)
*   **背景:** 2025年開催予定の万博の来場者数目標。
*   **発表数値 ($V$):** 2,820万人
*   **ターゲット比率 ($R$):** 1.0 (全人口対象)
*   **標準ブロック ($B$):** $124,000,000 \times 1.0 \div 1,718 \approx 72,176$ 人
*   **分析結果 ($I$):** $28,200,000 \div 72,176 \approx$ **390**
*   **解釈の転換:** この数字は「すべての自治体から平均390人が行く」とも読めるが、逆説的に「1自治体あたり平均1.6万人を動員しないと達成不能（※期間中のリピート含む）」という兵站（ロジスティクス）の非現実性を示唆している。

## Python版の使い方 (Usage)

リポジトリに含まれるPythonスクリプトを使用して、手元の数値を簡単に検証できます。

### 必要要件
*   Python 3.6+

### 実行コマンド
```bash
# 人数の検証例 (3000人、ターゲット比率100%)
python methodology/block_calculator.py --value 3000 --target_ratio 1.0

# 予算の検証例 (100億円、ターゲット比率100%)
python methodology/block_calculator.py --value 10000000000 --target_ratio 1.0
```

## Googleスプレッドシート版の使い方 (For Everyone)
プログラミング不要で、表計算ソフト上で計算できます。
`methodology/google_sheets_script.js` のコードを、Googleスプレッドシートの「拡張機能 > Apps Script」にコピペして保存してください。

**使用例:**
| A列 (発表数値) | B列 (ターゲット比率) | C列 (インパクト) | D列 (判定) |
| :--- | :--- | :--- | :--- |
| 3000 | 0.15 | `=IMPACT_SCORE(A2, B2)` | `=IMPACT_VERDICT(C2)` |


## 統計的検証（モンテカルロ・シミュレーション）
「ターゲット比率の推計が甘いのでは？」「観測データに誤差があるのでは？」という指摘に対し、本手法の結論が揺らがないか（堅牢性）を検証するためのスクリプトです。
ターゲット比率の不確実性や観測誤差を考慮し、数万回のシミュレーションを行って信頼区間を算出します。

### 必要要件
*   Python 3.6+
*   **NumPy** ライブラリ

### 実行方法

1. ライブラリのインストール
```bash
pip install numpy
```

2. シミュレーションの実行
```bash
# 基本的な検証（柏市の例：3000人、比率0.15）
python verification/sensitivity_analysis.py --value 3000 --target_ratio 0.15

# 詳細設定（不確実性 ±10% を想定する場合など）
# -sd オプションで標準偏差を指定できます（デフォルトは0.03）
python verification/sensitivity_analysis.py --value 28200000 --target_ratio 1.0 --ratio_sd 0.1
```

### 出力例 
「95%信頼区間（95% CI）」の下限値が 1.0 を下回っている場合、その施策は「統計的誤差を考慮しても失敗（誤差レベル）」であると断定できます。


## 拡張モジュール：行政予算ポートフォリオ分析 (Budget Portfolio Analysis)

## 概要
「標準ブロック比較法」を決算書の全事業に適用し、「投じられた税金（Budget）」と「得られた成果（Coverage）」のバランスを可視化する指標です。
これにより、特定の事業が**「市民への還元率」においてどれほど歪んでいるか**を数値化します。

## 1. 予算インパクト ($I_{budget}$) の定義
その事業予算が、標準的な自治体（1ブロック）の財政規模に対して、どれだけの「重み」を持っているかを測ります。

$$ B_{money} = \frac{S_{total}}{N} $$
$$ I_{budget} = \frac{v_{cost}}{B_{money}} $$

*   **$S_{total}$:** **標準自治体（人口約7万人）の一般会計予算の目安 ($\approx$ 300億円)**
    *   ※一律「標準的な自治体の財布の大きさ」を分母とし、「その事業が財布に対してどれだけデカいか」を測る指標とします。
*   **$N$:** 基礎自治体数（1,718）
*   **$v_{cost}$:** その事業の決算額（例：タブレット 15億円）
*   **$B_{money}$:** **標準予算ブロック**（1自治体あたりがその分野に使うべき平均的コストの目安）
*   **$I_{budget}$:** **予算インパクト**（標準的な金銭感覚に対して何倍の金を突っ込んでいるか）

## 2. 予算歪み指数 ($D_{index}$) の定義
「金を使っているのに、届いている人数が少ない」度合いを算出します。
これが高いほど、**「コスパが悪い（中抜き・ハコモノ・既得権益）」**可能性が高まります。

$$ D_{index} = \frac{I_{budget}}{I_{coverage}} $$

*   **$I_{budget}$:** 予算インパクト（金の大きさ）
*   **$I_{coverage}$:** 普及インパクト（人数の多さ ※従来のブロック法で算出）
*   **$D_{index}$:** **予算歪み指数 (Distortion Index)**

---

## 判定マトリクス (The Matrix)

算出された $I_{budget}$（金）と $I_{coverage}$（人）をプロットすることで、事業を4つの象限に分類できます。

| 象限 | 状態 | 判定 ($D_{index}$) | 具体例 |
| :--- | :--- | :--- | :--- |
| **第1象限**<br>(金High / 人High) | **インフラ・岩盤** | $D \approx 1$ | ゴミ収集、道路、学校給食。<br>金はかかるが全員使う。適正。 |
| **第2象限**<br>(金Low / 人High) | **イノベーション** | $D \ll 1$ | 優秀なDX施策、SNS広報。<br>低予算で多くの市民に届く「神事業」。 |
| **第3象限**<br>(金Low / 人Low) | **お付き合い** | $D \approx 1$ | 小さなイベント、審議会。<br>毒にも薬にもならない。 |
| **第4象限**<br>(金High / 人Low) | **【歪み (Distortion)】** | **$D \gg 1$** | **再開発、タブレット、謎のアプリ。**<br>**巨額の税金が、ごく一部の人間に消えている。** |

> **※運用の注意点（セーフティネットの除外）**
> 生活保護、障害福祉、救急医療などの「福祉・救命事業」は、構造的に「高コスト・少数対象（第4象限）」になります。これらは「無駄（歪み）」ではなく**「社会的コスト（Social Cost）」**として区別して評価する必要があります。

---

## 計算例：柏市の事例でのシミュレーション

### ケースA：タブレット (15億円 / 活用率50%)
*   **予算($I_b$):** 巨大（標準的な教育ICT予算の数倍と仮定） $\rightarrow$ **10.0**
*   **普及($I_c$):** 半分しか使われていない $\rightarrow$ **0.5**
*   **歪み($D$):** $10.0 \div 0.5 =$ **20.0 (異常値)**
    *   *判定:* 「第4象限（歪み）」。投資額に対して効果が薄すぎる。

### ケースB：プレコンセプションケア (3.7億円 / 300人)
*   **予算($I_b$):** 規模に対して大きい $\rightarrow$ **2.0**
*   **普及($I_c$):** 誤差レベル $\rightarrow$ **0.01**
*   **歪み($D$):** $2.0 \div 0.01 =$ **200.0 (極めて異常)**
    *   *判定:* 「第4象限（完全なる虚無）」。金だけ消えて誰も恩恵を受けていない。

---

## この式が暴くもの
自治体の決算書データをこの式に流し込むと、**「第4象限（金は使うが人は使わない）」にプロットされる事業**が炙り出されます。
そこが、**「監査のメスを入れるべき病巣（利権・思考停止エリア）」**です。

## Python版の使い方 (Usage)
### ワークフロー：理論から実践へ (Workflow)

本リポジトリのツールを組み合わせることで、以下のフローで自動監査が可能です。

1.  **CSVの作成 (Data Preparation)**
    *   `prompts/auditor_prompt.md` を使用して、AI (Gemini/ChatGPT/Claude) に決算書PDFを解析させ、`input.csv` を生成させます。
2.  **分析の実行 (Execution)**
    *   生成されたCSVをPythonスクリプトに読み込ませます。
    *   コマンド: `python budget_distortion_analyzer.py input.csv`
3.  **結果の出力 (Output)**
    *   理論に基づいた**「歪み指数 ($D_{index}$）」**と**「判定（第〇象限）」**が自動算出され、優先的に監査すべき事業がリストアップされます。
