A quantitative framework for detecting budgetary distortion.
Project description
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. 千葉県柏市:プレコンセプションケア事業
- リンク: 柏市事業について
- 背景: 市が「少子化対策」として民間企業と連携しアプリ等を導入。
- 発表数値 ($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
- 背景: 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+
実行コマンド
# 人数の検証例 (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 ライブラリ
実行方法
- ライブラリのインストール
pip install numpy
- シミュレーションの実行
# 基本的な検証(柏市の例: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象限 (金High / 人High) |
インフラ・岩盤 | $D \approx 1$ | ゴミ収集、道路、学校給食。 金はかかるが全員使う。適正。 |
| 第2象限 (金Low / 人High) |
イノベーション | $D \ll 1$ | 優秀なDX施策、SNS広報。 低予算で多くの市民に届く「神事業」。 |
| 第3象限 (金Low / 人Low) |
お付き合い | $D \approx 1$ | 小さなイベント、審議会。 毒にも薬にもならない。 |
| 第4象限 (金High / 人Low) |
【歪み (Distortion)】 | $D \gg 1$ | 再開発、タブレット、謎のアプリ。 巨額の税金が、ごく一部の人間に消えている。 |
※運用の注意点(セーフティネットの除外) 生活保護、障害福祉、救急医療などの「福祉・救命事業」は、構造的に「高コスト・少数対象(第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)
本リポジトリのツールを組み合わせることで、以下のフローで自動監査が可能です。
- CSVの作成 (Data Preparation)
prompts/auditor_prompt.mdを使用して、AI (Gemini/ChatGPT/Claude) に決算書PDFを解析させ、input.csvを生成させます。
- 分析の実行 (Execution)
- 生成されたCSVをPythonスクリプトに読み込ませます。
- コマンド:
python budget_distortion_analyzer.py input.csv
- 結果の出力 (Output)
- 理論に基づいた**「歪み指数 ($D_{index}$)」と「判定(第〇象限)」**が自動算出され、優先的に監査すべき事業がリストアップされます。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file standard_block_auditor-0.1.1.tar.gz.
File metadata
- Download URL: standard_block_auditor-0.1.1.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5de04be672c88c0e311b0538c96ade92a5dadcc3a6708605f08b5bd010821f8a
|
|
| MD5 |
01363d1ca2d00e458a7fbebff8780042
|
|
| BLAKE2b-256 |
133280f9a96b2602c0490dbb3aaa62ef9aad9e9e1637726ed747ea1167e3d93a
|
File details
Details for the file standard_block_auditor-0.1.1-py3-none-any.whl.
File metadata
- Download URL: standard_block_auditor-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64f67d7221f3e515e43ece7837e158fb60c6966e1a8971861f3ded7087f476ae
|
|
| MD5 |
b9a329d0d572b125e64ab7e3b18f6ce5
|
|
| BLAKE2b-256 |
0368f1128ee58703177178e8238efe0720897055c20f5ec0064e0bccc0544fc0
|