MAS-337: 融資審査スコアリング機能(Loan Screening Score)
概要
| 項目 | 内容 |
|---|---|
| 案件 ID | MAS-337 |
| 案件名 | 融資審査スコアリング機能(Loan Screening Score) |
| カテゴリ | シミュレーション・資金調達戦略 / 融資対策 |
| Phase | P2(MAS-071 アプローチ D の根拠を動的算出化する補完機能) |
| 優先度 | ★★(Solo-CEO の運転資金調達判断に直結) |
| 実装ステータス | 🟡 Open(v0.1 起票・2026-05-01) |
| 対象ファイル(新規) | 400_domain/4XX_loan_screening_engine.js(IIFE 名前空間 LoanScreeningEngine・純粋関数)/ webapp_client/src/cockpit/LoanScreeningPanel.tsx(cockpit パネル)/ 800_ops/8XX_migration_loan_screening_seed.js(マスタ冪等シード) |
| 対象ファイル(変更) | 000_infra/002_constants.js(Constants.LOAN_SCREENING_DEFAULTS 追加・閾値 default)/ 100_config/101_sys_config.js(MAS_LOAN_PRODUCTS / MAS_INDUSTRY_BENCHMARKS タブ DDL 追加 + メニュー登録)/ 200_data/202_repository.js(LoanProductRepository / IndustryBenchmarkRepository 追加)/ 300_ui/302_spa_bridge.js(bootstrap + runLoanScreeningSimulation API + 結果保存 API 追加)/ webapp_client/scripts/sync-engines.mjs(4XX を sync 対象に追加)/ webapp_client/src/cockpit-main.tsx(副作用 import 追加・failure_patterns #33 対策) |
| 新規シート(マスタ) | MAS_LOAN_PRODUCTS(融資商品マスタ・公庫の主要 4 商品)/ MAS_INDUSTRY_BENCHMARKS(業種別ベンチマーク・5 業種) |
新規 03_sys_params キー | MAS337_DEBT_SERVICE_YEARS_MAX(default 10・債務償還年数上限)/ MAS337_DSCR_TARGET(default 1.3・DSCR 目標)/ MAS337_EQUITY_RATIO_HEALTHY(default 0.30・自己資本比率優良ライン)/ MAS337_SELF_FUND_MIN_RATIO(default 0.10・新創業融資自己資金最低比率)/ MAS337_WEIGHTS_JSON(default {"profit":0.30,"dscr":0.20,"selfFund":0.20,"history":0.10,"equity":0.15,"manager":0.05} の重み JSON) |
| 前提案件 | MAS-058 v2.0(✅ 完了 PR #400・健全性診断 6 制約)/ MAS-067 Phase A-D(✅ 完了 PR #459・5 軸モデル / 多年 P/L・B/S・CF)/ MAS-071 v1.1(✅ 完了 PR #459・アプローチ D の MAS071_TARGET_PROFIT 連動先) |
| 後続案件 | MAS-067 Phase E(多年 + 融資審査統合シミュレーション)/ MAS-XXX 銀行別審査基準切替(信金・地銀・メガバンク対応) |
| 吸収・再定義対象 | なし(新規機能・既存 MAS071_TARGET_PROFIT の経験則 default を補完) |
目的
bizlp Solo-CEO(一人社長)が事業性融資(公庫・信金・地銀)を申請する前段階で、自社の財務状況が審査基準を通過できるかを 1 画面で診断し、不足軸とその補強アクションを可視化することを目的とする。
現状の問題
MAS-071 v1.1 の アプローチ D「融資対策」 は、MAS071_TARGET_PROFIT(default 600 万円)を入力定数として受け取り、OP_pre - 報酬 ≥ TargetProfit を満たす役員報酬上限を計算している。
しかし「なぜ 600 万なのか」の根拠は 821_migration_mas071_strategy_seed.js line 35 の description に 「公庫融資審査基準」 とあるのみで、算出ロジックを持っていない。実態は実務経験則ベースの定数:
借入額 ÷ 当期純利益 ≦ 10 年(= 債務償還年数 10 年以内)
5,000〜6,000 万円借りるなら、年間利益 500〜600 万円以上欲しい
このため以下の限界がある:
- ユーザーが目標融資額(3,000 万・5,000 万・1 億)を変えても TargetProfit が連動しない
- 業種別(IT / コンサル / 製造 / 小売 / 飲食)のリスク係数が反映されない
- 公庫以外の金融機関(信金・地銀・メガバンク)の審査基準に切り替えられない
- DSCR / 自己資本比率 / 自己資金比率など複数指標との総合判定ができない
User Story(解決対象)
| # | ペルソナ | やりたいこと |
|---|---|---|
| US-1 | Solo-CEO | 「3,000 万円の運転資金を引きたい。今の月商 / 利益で公庫を通せるか?」を 1 画面で確認したい |
| US-2 | Solo-CEO | 「役員報酬を 月 50 万 → 月 80 万に上げると融資審査でどう影響するか」を試算したい |
| US-3 | Solo-CEO | 「マル経融資(上限 2,000 万)と 新創業融資(上限 3,000 万)の両方を並行検討したい」 |
MAS-058 / MAS-067 / MAS-071 との位置づけ
- MAS-058(健全性診断): 現シナリオの財務健全性 6 制約(黒字 / ランウェイ / 緊急予備 / 営業利益率 / 留保率 / 労働分配率)を 1 点評価。本案件はその「外部評価視点(融資審査)」を補完する位置づけ
- MAS-071(4 アプローチ役員報酬): アプローチ D の
targetProfitを本案件の 動的算出値で上書きできるようにする(UI 手動上書き > 動的算出 > historical_default 600 万) - MAS-067(5 軸マルチイヤー): v0.1 は当期スナップ評価のみ・v2 で MAS-067 Phase E として「3 年後の追加融資 X 億評価」を多年シミュレーションに統合
公庫の融資審査基準・実務知識(背景セクション)
📌 本セクションは v0.1 起票時点の調査メモを集約。閾値・係数は公開情報 + 実務目安ベースであり、公庫内規(非公開)とは異なる可能性がある。実装時は注意事項 #2 を参照。
3.1 日本政策金融公庫(JFC)の概要
日本政策金融公庫(Japan Finance Corporation)は政府系金融機関で、3 つの事業を持つ:
| 事業 | 主な対象 | Solo-CEO 関連度 |
|---|---|---|
| 国民生活事業 | 個人事業主 / 小規模法人(従業員 9 人以下が中心) | ◎(本案件 v0.1 主スコープ) |
| 中小企業事業 | 中小企業(資本金・従業員数で定義) | △(成長期に検討) |
| 農林水産事業 | 農林漁業 | × |
Solo-CEO は通常「国民生活事業」(融資上限 4,800 万・平均融資額 約 700 万)。
3.2 主要商品マッピング(v0.1 で MAS_LOAN_PRODUCTS に投入する 4 商品)
| 商品 | 上限額 | 自己資金比率(default) | 主な特徴 |
|---|---|---|---|
| 新創業融資制度 | 3,000 万(うち運転資金 1,500 万) | 1/10 | 創業 2 期以内、無担保無保証可、自己資金 1/10 必須 |
| 中小企業経営力強化資金 | 7,200 万 | 任意 | 認定支援機関の事業計画書必要、無担保枠 2,000 万 |
| マル経融資 | 2,000 万 | 不問 | 商工会議所 6 ヶ月指導必須、無担保無保証、低利 |
| 女性・若者・シニア起業家支援資金 | 7,200 万 | 1/10 推奨 | 35 歳未満 / 55 歳以上 / 女性 限定、低利 |
3.3 審査の主要評価軸(定量・定性)と本案件のスコア化マッピング
| # | 軸 | 計算式(または判定) | 法的根拠 | 実務目安(公庫優良) | bizlp で取得済みデータからスコア化可否 |
|---|---|---|---|---|---|
| 定量-1 | 自己資金比率 | 自己資金 ÷ 総事業費 | 実務基準(新創業融資のみ約款に明記) | 1/10 以上(安全圏 1/3〜1/2) | ◎(ユーザー入力) |
| 定量-2 | 黒字化見込み | 当期 + 翌期の P/L 計画 | 実務基準 | 当期 or 翌期黒字 | ◎(92_fs_pl + 64_pl_ytd_plan) |
| 定量-3 | 税引前当期純利益 | 借入希望額 ÷ 純利益 ≦ 10 年 | 実務基準 | 5,000〜6,000 万借入 → 純利益 500〜600 万 | ◎(92_fs_pl) |
| 定量-4 | 債務償還年数 | (有利子負債 - 現預金) ÷ (営業 CF + 減価償却費) | 実務基準(公庫内規) | ≦ 10 年 | ◎(71_bs / 91_fs_bs / 92_fs_pl) |
| 定量-5 | 自己資本比率 | 純資産 ÷ 総資産 | 実務基準 | ≧ 30% | ◎(71_bs / 91_fs_bs) |
| 定量-6 | DSCR(Debt Service Coverage Ratio) | 営業 CF ÷ 元利返済額 | 実務基準(銀行で重視) | ≧ 1.2〜1.3 倍 | ◎(92_fs_pl + 借入希望額 + 想定金利) |
| 定性-1 | 経営者経歴・信用情報 | 個人信用情報(CIC / JICC)+ 経歴書 | 個人信用情報の保護に関する法律 | 延滞・債務整理歴なし | △(v0.1 はユーザー自己申告) |
| 定性-2 | 事業の独自性・市場性 | 事業計画書 + 市場分析 | 実務基準 | 競合差別化が明確 | ×(v2 で AI 評価候補) |
| 定性-3 | 借入金使途明確性 | 設備 / 運転 / 創業の明示 | 実務基準(公庫約款) | 使途が具体的 | △(ユーザー入力 + ルール判定) |
| 定性-4 | 取引先・売上見込み | 取引先一覧 + 売上計画 | 実務基準 | 安定取引先複数 | △(11_mst_account 取引先 + 64_pl_ytd_plan) |
| 定性-5 | 経営者の人柄 | 面談 | 主観評価 | 誠実 / 具体的 | ×(人間判断) |
📌 法的根拠の有無: 公庫の審査基準は内規であり、「経営者保証ガイドライン」(中小企業庁 / 全国銀行協会・2014 年)以外は法律で明文化されていない。本案件のスコアリングは公開情報 + 実務目安ベースであり、最終判断は金融機関面談に委ねる(注意事項 #1 / #2 参照)。
機能仕様
4.1 入力項目(cockpit 入力フォーム)
| 入力 | 型 | default | 備考 |
|---|---|---|---|
| 希望融資額(運転) | number(円) | 0 | 0 円なら設備のみ |
| 希望融資額(設備) | number(円) | 0 | 0 円なら運転のみ |
| 融資商品種別 | select | 新創業融資制度 | MAS_LOAN_PRODUCTS から選択(4 商品 + その他) |
| 取引金融機関 | select | 公庫 | v0.1 は公庫のみ・将来拡張前提(信金 / 地銀 / メガバンク) |
| 業種 | select | コンサル | MAS_INDUSTRY_BENCHMARKS から選択(IT / コンサル / 製造 / 小売 / 飲食) |
| 業歴(創業何期目) | number | 1 | 1 期目は新創業融資のみ |
| 自己資金額 | number(円) | 0 | 役員借入金は含まない |
| 連帯保証人有無 | bool | false | スコア重み w_6 反映 |
| 担保有無 | bool | false | v0.1 は default 担保なし |
| 想定融資金利 | number(%) | 2.0 | DSCR 計算用(公庫国民生活事業 default) |
| 返済期間(年) | number | 7 | 元利均等返済前提 |
4.2 算出ロジック(複数指標による総合スコアリング)
v0.1 は案 A(ルールベース)で起動・v2 で案 C(ハイブリッド・AI 統合)へ拡張(人間が検討すべき事項 Q1 推奨)。
# Step A: 推奨 TargetProfit を 3 ロジックの max で算出
推奨_目標法人利益 = max(
借入希望額 ÷ 必要利益カバー年数, // 案 A: 債務償還年数ベース(10 年)
年間元利返済額 × DSCR_目標, // 案 B: DSCR ベース(1.3 倍)
業種ベンチマーク利益 // 案 C: 業種別下限(MAS_INDUSTRY_BENCHMARKS)
)
# Step B: 必要自己資金
必要自己資金 = 借入希望額 × 自己資金比率(商品別 default)
# Step C: 自己資本比率(純資産 / 総資産 ≧ 30% で公庫優良判定)
自己資本比率 = 純資産 ÷ 総資産
# Step D: スコアリング(重み付き総合・w_i は MAS337_WEIGHTS_JSON で調整可能)
スコア_pre = (
w_1 × score_利益カバー + // 純利益 / 必要利益カバー
w_2 × score_DSCR + // DSCR / DSCR_目標
w_3 × score_自己資金 + // 自己資金 / 必要自己資金
w_4 × score_業歴 + // min(業歴, 3) / 3
w_5 × score_自己資本比率 + // 自己資本比率 / 0.30
w_6 × score_経営者属性 // 連帯保証 + 担保 + 信用情報の合成
)
スコア = clip(スコア_pre × 100, 0, 100)
ランク = A (≥85) / B (70-84) / C (50-69) / D (30-49) / E (<30)
重みの推奨値(v0.1 default・MAS337_WEIGHTS_JSON):
| w_i | 軸 | 重み | 根拠 |
|---|---|---|---|
| w_1 | 利益カバー | 0.30 | 公庫実務で最重視(債務償還年数) |
| w_2 | DSCR | 0.20 | 銀行系審査の中核指標 |
| w_3 | 自己資金 | 0.20 | 新創業融資要件 + 信用補完 |
| w_4 | 業歴 | 0.10 | 1 期目 → 3 期目で線形評価 |
| w_5 | 自己資本比率 | 0.15 | 公庫優良判定の基礎 |
| w_6 | 経営者属性 | 0.05 | 連帯保証 + 担保 + 信用情報 |
業種ベンチマーク利益(MAS_INDUSTRY_BENCHMARKS の default 値):
| 業種 | 利益基準(年・最低) | 利益率基準(営業利益率) | ソース |
|---|---|---|---|
| IT(受託 / SaaS) | 600 万 | 10% | TKC / 中小企業白書 2025 |
| コンサル(1 人法人) | 600 万 | 12% | SPI Research 2025 中央値 9.8% を内部留保込みで補正 |
| 製造業 | 800 万 | 8% | 中小企業白書 2025 |
| 小売 | 500 万 | 5% | 中小企業白書 2025 |
| 飲食 | 400 万 | 5% | 中小企業白書 2025 |
4.3 出力項目(cockpit パネル)
| 出力 | 型 | 用途 |
|---|---|---|
| 推奨 TargetProfit | number(円) | MAS-071 アプローチ D に注入する値 |
| 推奨自己資金額 | number(円) | 不足時の警告メッセージ生成 |
| 必要月商レンジ | { min, healthy, buffered } | 「最低 X 万 / 健全 Y 万 / 安全 Z 万」の 3 段階 |
| 総合スコア | number(0-100)+ ランク(A〜E) | 視覚的な合否判定 |
| 不足軸の警告メッセージ | string[] | 「自己資本比率が低い → 役員借入金の資本金組入れ検討」等 |
| 公庫面談で詰められる質問の予習リスト | string[] | 業種 / 商品 / 不足軸別に動的生成 |
4.4 cockpit 配置
- MAS-058 Required Revenue Solver の隣接 / 配下(外部評価視点として MAS-058 健全性診断を補完)
- MAS-071 Compensation Strategy Simulator のアプローチ D 入力に逆流連動(cockpit state lift)
- default ON(前提・Solo-CEO の融資検討を起点とする想定)
4.5 ステータス・スコア表示の例(bizlp 現状値ベース)
| 指標 | 現状値 | 目標値 | 判定 |
|---|---|---|---|
| 当期純利益 | 380 万 | 600 万 | △(-220 万 不足) |
| 自己資本比率 | 18% | 30% | × |
| 債務償還年数 | 8.2 年 | < 10 年 | ○ |
| DSCR | 1.45 | ≧ 1.3 | ○ |
| 業歴 | 1 期目 | ≧ 2 期目 | ×(新創業融資なら OK) |
| 自己資金 | 100 万 | 300 万 | ×(1/10 未満) |
| 総合判定 | B(条件付通過見込) |
影響範囲
5.1 データソース
| シート / マスタ | 用途 | 読み取り / 書き込み |
|---|---|---|
71_bs / 91_fs_bs | 自己資本比率・現預金・有利子負債・総資産 | R |
62_pl_ytd / 92_fs_pl | 当期純利益・営業 CF・減価償却費 | R |
64_pl_ytd_plan | 計画値の営業 CF(黒字化見込み判定) | R |
95_sim_headcount | MAS-067 多年 P/L 計画(v2 拡張で利用) | R |
MAS_LOAN_PRODUCTS | 商品別の上限・自己資金比率・係数 | R(DDL + シード) |
MAS_INDUSTRY_BENCHMARKS | 業種別利益基準・営業利益率基準 | R(DDL + シード) |
03_sys_params | MAS337_* 5 キー | R |
40_loan_screening_results(仮) | 過去診断結果の保存(履歴比較用・任意) | R/W |
5.2 新規ファイル候補
400_domain/4XX_loan_screening_engine.js(具体番号は main 側で衝突確認 / 454-466 の隣接帯を想定)webapp_client/src/cockpit/LoanScreeningPanel.tsx(cockpit パネル新設)800_ops/8XX_migration_loan_screening_seed.js(マスタ冪等シード・822 まで使用済 (MAS-336 で 822 を予約・MAS-338 で 823 を予約)・824 以降を採番予定だが、実装着手時に最新を再確認のうえ採番)
5.3 MAS-071 連動
- アプローチ D の
targetProfitを本仕様の動的算出値で上書きできるようにする - 優先順位: UI 手動上書き > 動的算出(MAS-337) > historical_default(600 万)
MAS071_TARGET_PROFIT(sys_params)は default 保持・自動更新しない(人間が検討すべき事項 Q3)
5.4 影響しない範囲
- 既存の
MAS071_TARGET_PROFIT経験則 default は廃止しない(リグレッション診断容易) - 海外取引・為替リスクは対象外(別仕様
MAS-XXX_fx_translation) - マイクロローン(100 万円以下)は別フロー(注意事項 #9)
注意事項
- スコアリングの「総合判定」はあくまで参考値。最終判断は金融機関面談時の人間判断。UI に「参考スコア」と明示する
- 公庫の審査基準は非公開(内規)。本仕様の閾値(自己資本比率 30%・債務償還年数 10 年等)は公開情報 + 実務目安ベースであり、内規と異なる可能性を UI で明示
- 自己資本比率 30% 等の閾値は「安全圏」目安。業種・規模で柔軟に解釈される(製造業は厚め・SaaS は薄くても可)
- TargetProfit 自動算出と MAS-071 アプローチ D 入力の優先順位: UI 手動上書き > 動的算出(MAS-337) > default 600 万。
03_sys_params.MAS071_TARGET_PROFITは自動更新しない(cockpit 上書きは動的・sys_params は default 保持で過去経験則を保存) - 業種ベンチマーク(
MAS_INDUSTRY_BENCHMARKS)は TKC 経営自己診断システム / 中小企業白書等の公開統計を参照。出典を備考列に記録し、年次更新運用とする - 創業 1 期目では債務償還年数が計算できない → 売上計画ベース(
64_pl_ytd_plan)の代替算出にフォールバック(エッジケース #1 参照) - 役員借入金を「自己資金」と誤認しない。公庫は金融資産(預金 / 有価証券)として扱う。UI に「自己資金には役員借入金を含まないでください」のヘルパーテキストを表示
- 海外取引・為替リスクは本仕様で対象外(
MAS-XXX_fx_translationで別仕様化予定) - 借入希望額が小さい(例: 100 万円以下)ケースは別フロー(マイクロローン・クラウドファンディング等)。UI で「100 万円未満は別の資金調達手段を検討してください」と表示
- 担保あり/なしで審査基準が大きく変わる(現状は default 担保なし)。担保ありモードは v2 で拡張
- 連帯保証人の有無は信用補完の役割があり、スコア重み w_6 に反映。経営者本人の個人保証の場合は 「経営者保証ガイドライン」(中小企業庁・2014 年) 準拠を明示し、ガイドライン遵守時は w_6 加点
- 73_bs_plan と連動した「3 年後の追加融資余力」シミュレーションは Phase 2(v2 / MAS-067 Phase E 統合)で検討。v0.1 は当期スナップ評価のみ
- failure_patterns 反映:
- #18-#20(命名造語禁止): 「自己資本比率」等の固有名詞は
91_fs_bsの実列名を Read で確認してから記述 - #26(
oauthScopes部分宣言):appsscript.jsonは触らない(sub workspace 制約・main 担当) - #33(
sync-engines.mjs+cockpit-main.tsx副作用 import): 4XX_loan_screening_engine.js を sync 対象に追加し、cockpit-main.tsxに副作用 import を必ず追加(MAS-066 / MAS-071 で同問題の前例あり)
- #18-#20(命名造語禁止): 「自己資本比率」等の固有名詞は
エッジケース
| # | 条件 | 検知方法 | 期待される挙動 | ログ出力 |
|---|---|---|---|---|
| 1 | 業歴 1 期目 / 黒字化前 | inputs.businessAgeYears < 1 or 当期純利益 ≤ 0 | 売上計画ベース(64_pl_ytd_plan)で TargetProfit を代替算出 + 自己資金比率を厳格適用(1/3 以上推奨) | Utils.logInfo("MAS-337: 1 期目フォールバック・売上計画ベース算出") |
| 2 | 純資産マイナス(債務超過) | 純資産 < 0 | 自己資本比率 = 0% としてスコア最低(E ランク・要再建計画)+ 警告「債務超過は融資審査で実質 NG。再建計画書必須」 | logWarn |
| 3 | DSCR 計算で営業 CF が 0 or マイナス | 営業CF ≤ 0 | 即 NG 判定(≧ 1.0 がそもそも満たせない)+ 警告「営業 CF プラス化が最優先」 | logWarn |
| 4 | 自己資金 100%(借入なし) | 借入希望額 = 0 | スコア計算スキップ・「融資不要のため診断対象外」と参考表示のみ | logInfo |
| 5 | 借入希望額が商品上限超過 | 借入希望額 > MAS_LOAN_PRODUCTS.上限額 | エラー表示 + 別商品を推奨サジェスト(例: 新創業 3,000 万超 → 中小企業経営力強化 7,200 万) | logWarn |
| 6 | 手元現金 + 自己資金が借入希望額の 1/10 未満(新創業融資要件) | (現預金 + 自己資金) / 借入希望額 < 0.10 | 警告「新創業融資の自己資金最低要件未達。マル経 / 中小企業経営力強化に切替検討」 | logWarn |
| 7 | 既存借入あり | 71_bs.有利子負債 > 0 | (既存有利子負債 + 借入希望額) で再計算・債務償還年数を再評価 | logInfo |
| 8 | 役員報酬月 100 万円超(高額役員報酬) | 役員報酬月額 > 100 万 | スコアに警告反映(公庫は人件費として精査・利益圧迫要因)+ MAS-071 アプローチ D との連動メッセージ | logInfo |
| 9 | 補助金/助成金収入を当期純利益に含めるか | 92_fs_pl の特別利益 / 営業外収益に補助金・助成金の科目あり | 経常損益ベースで分離(恒常的でない収入は除外)+ 注釈「補助金は単年限定収入のため除外算出」 | logInfo |
| 10 | 業種が複数(IT × コンサル等) | inputs.industries.length > 1 | 主たる業種(売上構成比が最大)のリスク係数を採用 + 注釈「複合業種のため主業種で評価」 | logInfo |
| 11 | 連帯保証人が経営者本人(個人保証) | inputs.guarantorIsCEO === true | 「経営者保証ガイドライン」準拠フラグ ON で w_6 加点(+5 点)+ ガイドライン参照リンク表示 | logInfo |
| 12 | マル経融資(商工会議所推薦ベース) | inputs.product === "マル経融資" | 別フローで対応(推薦書ベース・財務指標は補助的)+ UI に「マル経推薦取得後に申請してください」と表示・本仕様のスコアは参考値扱い | logInfo |
実データ検証
MCP / GAS 環境で事前確認すべき項目
91_fs_bsの実列名: 「純資産」「総資産」「現預金」「有利子負債」が実際にどの列名で格納されているか Read で確認(DDL 定義と実データの乖離チェック・failure_patterns #19)92_fs_plの実列名: 「当期純利益」「営業利益」「営業 CF」「減価償却費」の格納位置を確認MAS_LOAN_PRODUCTSシードの整合性: 公庫公式サイト(2026-05 時点)の最新商品条件と乖離がないか年次レビューMAS_INDUSTRY_BENCHMARKSの出典更新: 中小企業白書 / TKC 経営自己診断は年次更新があるため、シード時点の年度を備考列に記録03_sys_paramsのMAS337_*5 キーの初期投入:8XX_migration_loan_screening_seed.jsを冪等運用(既存値があれば上書きしない)
実データ検証シナリオ(Section 8 と統合)
- bizlp 現状値で公庫 3,000 万を申請: 法人利益 380 万 / 自己資本比率 18% / 自己資金 100 万 → スコア B 判定 / TargetProfit 推奨 600 万 / 不足: 利益 +220 万 + 自己資本比率 +12pt + 自己資金 +200 万 → cockpit にアクション提案(役員報酬調整 + 役員借入金資本金組入れ + 自己資金積増し)
- 役員報酬 月 50 → 月 35 に下げた場合: 法人利益 380 → 560 万・スコア B → A- 改善・MAS-071 アプローチ D 連動表示
- 自己資金 100 → 300 に増やした場合: 自己資金比率 1/30 → 1/10 改善・新創業融資要件クリア・スコア B → B+ 改善
- マル経融資 2,000 万: 商工会議所推薦ありのため別フロー(本仕様では「マル経推薦取得後に申請」と表示)+ 参考スコア表示
- 3 年後の追加融資 1 億: MAS-067 マルチイヤーで 3 年後の P/L 予測を取得して再評価(Phase 2 / v2 で MAS-067 Phase E 統合時)
関連ドキュメント
| 仕様書 | 関連箇所 |
|---|---|
| MAS-058 Required Revenue Solver | 健全性診断 6 制約との関係(外部評価 vs 内部評価) |
| MAS-071 Compensation Strategy Simulator | アプローチ D targetProfit 連動先(cockpit state lift) |
| MAS-067 Multiyear Planning Workspace | 5 軸モデル + マルチイヤー融資シミュレーション(Phase 2 拡張候補) |
| MAS-057 Solo CEO Cockpit | cockpit パネル配置(MAS-058 隣接) |
| 日本政策金融公庫公式サイト | 商品別融資条件(年次更新) |
| 公庫国民生活事業の融資概況 | 年次レポート(平均融資額・業種別実行件数) |
| 中小企業庁「中小企業白書」 | 中小企業の財務指標ベンチマーク(業種別) |
| TKC / 経営自己診断システム | 法人別 / 業種別の財務基準値 |
| 経営者保証ガイドライン | 個人保証の取扱(中小企業庁 / 全国銀行協会・2014 年) |
人間が検討すべき事項
Q1. スコアリングモデルのアプローチ
| 案 | 概要 | 透明性 | 拡張性 | テスト容易性 |
|---|---|---|---|---|
| 案 A | ルールベース(重み w_i + 閾値 + ランク変換) | ◎ | △ | ◎ |
| 案 B | AI/LLM ベース(Vertex AI / Gemini が事業計画書 + 数値から定性判定) | × | ◎ | × |
| 案 C | ハイブリッド(定量はルール、定性は AI) | ○ | ◎ | ○ |
推奨: 案 C(ハイブリッド) — 定量はルール(Number.isFinite ガード + 透明な重み計算)でテスト容易性確保、定性(経営者属性 / 借入使途妥当性)は v1 では手動入力ベース、v2 で Vertex Gemini 統合(MAS-067 Phase D の AI 提案統合パターンを踏襲)。
段階導入: v0.1 は案 A(ルールベース)で起動・v2 で AI 統合へ拡張。理由は (a) 案 A で計算ロジックを安定させてから AI 統合 (b) 案 A だけでも US-1〜US-3 の 80% カバー (c) AI 統合は Vertex AI の API コスト + プロンプト設計が独立工程。
Q2. 適用金融機関のスコープ
推奨: v0.1 は公庫のみ・銀行別係数マスタ(MAS_LOAN_PRODUCTS)は将来拡張前提で構造だけ用意
理由:
- (a) 公庫の商品 4 種で本案件の 80% カバー
- (b) 信金・地銀の審査基準は地域差・取引履歴依存で標準化困難
- (c) v2 で「金融機関別」mode を追加する余地(
MAS_LOAN_PRODUCTSにprovider列を追加し、シード時に公庫 / 信金 / 地銀 / メガバンクの 4 値で切替可能な構造)
Q3. 「公庫融資審査基準 = 600 万」の定数化と注釈
推奨:
- (a) 現状の 600 万 default を
historical_defaultとして保存 - (b) 本仕様の動的算出値を
recommended_targetProfitとして表示 - (c) UI 手動上書き > 動的算出 > historical_default の優先順位
- (d)
MAS071_TARGET_PROFITを本仕様で算出した値で03_sys_params自動更新はしない(cockpit 上書きで動的・sys_params は default 保持)
理由: 過去経験則の感覚値も廃棄せず保存することでリグレッション診断容易・ユーザーの判断を尊重(自動上書きは「気づかぬうちに上書きされた」事故の温床)。
Q4. MAS-067(マルチイヤー)との連動
推奨: v0.1 は当期スナップ評価のみ・v2 で MAS-067 の 5 軸モデル + 多年シナリオ「3 年後追加融資 X 億」評価を Phase E として追加
理由:
- (a) v0.1 で当期評価のロジックを確定させてから多年化(段階導入・MAS-067 Phase A-D と同パターン)
- (b) MAS-067 Phase A-D が完成済(PR #459)のため拡張ポイントあり
- (c) Burnout / Cap of margin / セーフティ共済等の 5 軸との関連は別 Phase で議論
Q5. テストシナリオ
推奨: 上記「実データ検証」5 ケース + ロールバック(古い defaults に戻す手順)+ Edge case 12 件を 901_test_runner.js に F337-01〜F337-15 として実装
| Test ID | シナリオ | 期待値 |
|---|---|---|
| F337-01 | bizlp 現状(純利益 380 / 自己資本 18% / 自己資金 100)+ 公庫 3,000 万 | スコア B / TargetProfit 推奨 600 万 |
| F337-02 | 役員報酬 月 50 → 月 35 | スコア B → A- |
| F337-03 | 自己資金 100 → 300 | スコア B → B+ |
| F337-04 | マル経融資 2,000 万 | 別フロー誘導 + 参考スコア |
| F337-05 | 業歴 1 期目 + 黒字化前 | 売上計画ベースで代替算出 |
| F337-06 | 純資産マイナス(債務超過) | E ランク + 再建計画警告 |
| F337-07 | 営業 CF ≤ 0 | DSCR NG + 「CF プラス化最優先」警告 |
| F337-08 | 借入希望額 0(融資不要) | スコア計算スキップ |
| F337-09 | 商品上限超過 | 別商品サジェスト |
| F337-10 | 自己資金 1/10 未満 | 自己資金最低要件未達警告 |
| F337-11 | 既存有利子負債あり | 合算で債務償還年数再計算 |
| F337-12 | 役員報酬月 100 万超 | 高額役員報酬警告 |
| F337-13 | 補助金収入あり | 経常損益ベースで分離 |
| F337-14 | 個人保証(経営者本人) | 経営者保証ガイドライン準拠加点 |
| F337-15 | E2E(cockpit 操作 → MAS-071 アプローチ D 連動) | TargetProfit が動的算出値で上書き表示 |
実装プロンプト(Claude Code 用)
あなたはGAS会計システム(bizlp-gas-accounting)のシニア開発者です。
案件 MAS-337「融資審査スコアリング機能(Loan Screening Score)」の Step N を実装してください。
## 実行前タスク
以下のファイルを Read で確認:
1. `docs/dev/dev_mas-337_loan_screening_score.md` 全体(本仕様書)
2. `docs/dev/dev_mas-058_required_revenue_solver.md` の「Step 1 健全性制約 6 項目」「§配置原則」(健全性診断の 6 制約 + cockpit 配置原則)
3. `docs/dev/dev_mas-071_compensation_strategy_simulator.md` の「Step 1.5 評価 API」「アプローチ D」(`MAS071_TARGET_PROFIT` 連動)
4. `400_domain/454_compensation_strategy_engine.js`(IIFE パターン参考)
5. `webapp_client/src/cockpit/CompensationStrategyPanel.tsx`(cockpit パネル参考)
6. `webapp_client/scripts/sync-engines.mjs`(4XX を sync 対象に追加する手順)
7. `webapp_client/src/cockpit-main.tsx`(副作用 import の追加箇所・failure_patterns #33 対策)
8. `000_infra/002_constants.js`(`Constants.getParam` の使い方)
9. `200_data/202_repository.js`(既存 Repository パターン参考)
## 修正対象ファイル
Step 1: `800_ops/8XX_migration_loan_screening_seed.js`(新規)+ `100_config/101_sys_config.js`(DDL 追記のみ)
Step 2: `400_domain/4XX_loan_screening_engine.js`(新規・IIFE 名前空間 `LoanScreeningEngine`)
Step 3: `300_ui/302_spa_bridge.js`(追記のみ・bootstrap + `runLoanScreeningSimulation`)
Step 4: `webapp_client/src/cockpit/LoanScreeningPanel.tsx`(新規)+ `webapp_client/src/CockpitApp.tsx`(追記のみ)
Step 5: `webapp_client/src/cockpit/CompensationStrategyPanel.tsx`(追記のみ・アプローチ D state lift)
Step 6: `900_test/901_test_runner.js`(追記のみ・F337-01〜F337-15)
Step 7: dev 検証 → PR レビュー → main マージ → prod デプロイ
## 実装内容
### Step 1: マスタシード
- `MAS_LOAN_PRODUCTS`(4 商品・新創業 / 中小企業経営力強化 / マル経 / 女性若者シニア)
- `MAS_INDUSTRY_BENCHMARKS`(5 業種・IT / コンサル / 製造 / 小売 / 飲食)
- `03_sys_params` に `MAS337_*` 5 キー(既存値があれば上書きしない冪等性)
- `Utils.logInfo` + `SpreadsheetApp.getUi().alert` の両方
- メニュー登録(`101_sys_config.js` の「🔧 マイグレーション」配下)
- 番号体系: 800_ops/ は **822 まで使用済 (MAS-336 が 822 / MAS-338 が 823 を予約)** → **824 以降を採番**。実装着手時に `ls 800_ops/` で最新を再確認のこと
### Step 2: ドメインエンジン
- IIFE パターン(既存 442-454 と並列対称)
- 公開 API:
- `LoanScreeningEngine.calcRecommendedTargetProfit(input)` → 3 ロジック max
- `LoanScreeningEngine.calcRequiredSelfFund(input)` → 商品別必要自己資金
- `LoanScreeningEngine.calcEquityRatio(bsSnapshot)` → 純資産 / 総資産
- `LoanScreeningEngine.calcDSCR(input, plSnapshot)` → 営業 CF / 元利返済額
- `LoanScreeningEngine.evaluateScreening(input)` → 総合スコアリング(A〜E ランク + 警告 + 質問予習リスト)
- エラーガード: `Number.isFinite()` で全数値入力をガード
- 単体テスト F337-01〜F337-14 の期待値で実装
### Step 3: spa_bridge
- bootstrap に `MAS337_*` 5 キー + `MAS_LOAN_PRODUCTS` + `MAS_INDUSTRY_BENCHMARKS` を追加
- `runLoanScreeningSimulation(input)` API 追加
- 結果保存 API(任意・`40_loan_screening_results` 履歴比較用)
### Step 4: cockpit パネル
- 既存 `CompensationStrategyPanel.tsx` パターンの応用
- 入力フォーム(4.1 入力項目テーブル)+ 出力(4.3 出力項目テーブル)
- スコアバッジ(A 緑 / B 黄緑 / C 黄 / D 橙 / E 赤)
- 不足軸の警告メッセージ + 公庫面談予習リスト
- default ON / MAS-058 直下に配置(`CockpitApp.tsx` 追記)
### Step 5: MAS-071 アプローチ D 連動
- cockpit state lift で `recommended_targetProfit` を `CompensationStrategyPanel.tsx` のアプローチ D 入力に注入
- 優先順位: UI 手動上書き > MAS-337 動的算出 > historical_default 600 万
- `MAS071_TARGET_PROFIT`(sys_params)は自動更新しない
### Step 6: テスト
- 単体: F337-01〜F337-14(`901_test_runner.js`)
- E2E: F337-15(cockpit 操作 → MAS-071 アプローチ D 連動表示)
## 制約
- sub workspace 制約準拠: `docs/dev/` のみ書き込み可
- main workspace 制約準拠: `400_domain/`, `300_ui/`, `webapp_client/src/`, `appsscript.json` は main 担当
- failure_patterns #33: `sync-engines.mjs` への追加 + `cockpit-main.tsx` 副作用 import の両方を必ず実施
- failure_patterns #18-#20: 「自己資本比率」等の固有名詞は `91_fs_bs` の実列名を Read で確認してから記述(造語禁止)
- failure_patterns #26: `appsscript.json` は触らない(oauthScopes 部分宣言の地雷)
- `MAS071_TARGET_PROFIT`(sys_params)は **default 保持**・自動更新禁止
- `MAS_INDUSTRY_BENCHMARKS` の出典は `備考` 列に必ず記録(年次更新運用)
## エッジケース
本仕様書「エッジケース」セクションの 12 件を全件テスト化(F337-05〜F337-14)。
## 実データ検証
1. `91_fs_bs` の「純資産」「総資産」「現預金」「有利子負債」列名を Read で実列名確認
2. `92_fs_pl` の「当期純利益」「営業利益」「営業 CF」「減価償却費」格納位置確認
3. `MAS_LOAN_PRODUCTS` シードの公庫公式サイト(2026-05 時点)整合性確認
4. `03_sys_params.MAS337_*` 5 キーの冪等投入動作確認(再実行で値が壊れない)
## 動作確認
1. `npm run push:dev` で開発用 GAS にデプロイ
2. 「🔧 マイグレーション → MAS-337 マスタシード」でマスタ投入
3. cockpit パネルを開き、入力 → スコア表示 → MAS-071 アプローチ D 連動表示を確認
4. F337-01〜F337-15 を `npm run test` で実行 → 全 PASS
5. dev で実データ検証シナリオ 5 件を手動実行
6. main マージ後 `npm run push:prod` で本番デプロイ
### 拡張思考の使用状況
| フェーズ | 拡張思考 | 備考 |
|---|:-:|---|
| Step 1 マスタシード | なし | 仕様書定義済の値を投入のみ |
| Step 2 ドメインエンジン | あり | 4 案アルゴリズム + 6 重み + 業種係数の設計判断 |
| Step 3 spa_bridge | なし | bootstrap 追加と API 配線のみ |
| Step 4 cockpit パネル | 一部 | 既存パターン応用 + UX 配置判断 |
| Step 5 MAS-071 連動 | なし | state lift 配線のみ |
| Step 6 テスト | なし | 期待値が仕様書に確定済 |
推奨実行モデル
| 工程 | 推奨モデル | 理由 |
|---|---|---|
| Step 1: マスタシード | Claude Sonnet 4.6 | DDL + シード値投入のみ・既存 800_ops/ パターンの応用 |
| Step 2: ドメインエンジン | Claude Opus 4.7 (1M context) | 3 ロジック max + 6 重み + 業種係数 + ランク変換の設計判断・MAS-058/067/071 横断理解必要 |
| Step 3: spa_bridge | Claude Haiku 4.5 | bootstrap 追加と API 配線のみ・パターン確立済 |
| Step 4: cockpit パネル | Claude Sonnet 4.6 | 既存 CompensationStrategyPanel.tsx / RequiredRevenuePanel.tsx パターンの応用 |
| Step 5: MAS-071 連動 | Claude Sonnet 4.6 | cockpit state lift + 優先順位ロジック |
| Step 6: テスト | Claude Haiku 4.5 | 期待値が仕様書に完全定義済・F337-01〜F337-15 のテンプレ実装 |
変更履歴
| 日付 | 変更内容 |
|---|---|
| 2026-05-01 | v0.1 起票(main 側起票依頼を受けて MAS-337 として起草。Q1-Q5 推奨案を提示・MAS-071 アプローチ D と逆流連動・cockpit パネル新設・MAS_LOAN_PRODUCTS / MAS_INDUSTRY_BENCHMARKS マスタ追加・スコアリング案 A ルールベース起動 + v2 案 C ハイブリッド拡張) |
仕様書作成プロンプト
展開して表示(再現性・監査性のため・本仕様書を生成する際に Claude Code に投入したプロンプト全文)
あなたは bizlp-gas-accounting プロジェクトの仕様書起票担当です。新規仕様書 **MAS-337: 融資審査スコアリング機能 (Loan Screening Score)** の本体を起草し、ファイルに書き出してください。
## ゴール
`docs/dev/dev_mas-337_loan_screening_score.md` を新規作成。約 600〜800 行・14 セクション全網羅・`docs/_internal/dev_spec_prompt_template.md` のテンプレート遵守。
## 案件 ID 採番経緯 (確定済)
- MAS-336 は同セッションで `dev_mas-336_je_inv_phase1_recognition.md` で消化済
- ユーザー希望「MAS-071 と密接関連のため近傍 ID」だが MAS-071 cluster (MAS-065〜080) は全て使用済
- failure_patterns #31 (ID 衝突回避) に従い、次の空き **MAS-337** を採用
- 仕様書本文の関連ドキュメントセクションで MAS-058/071/067 とのリンクを明示
## 背景 (起票依頼の要約)
main ワークスペース実装担当からの依頼。
### 現状の問題
bizlp の MAS-071 (Compensation Strategy Simulator) アプローチ D「融資対策」は、`MAS071_TARGET_PROFIT` (default **600 万円**) を入力定数として受け取り、`OP_pre - 報酬 ≥ TargetProfit` を満たす役員報酬上限を計算する。
しかし「**なぜ 600 万なのか**」の根拠は `821_migration_mas071_strategy_seed.js` line 35 の description に **「公庫融資審査基準」** とあるのみで、**算出ロジックを持っていない**。実態は経験則ベースの定数:
> 借入額 ÷ 当期純利益 ≦ 10 年 (= 債務償還年数 10 年以内)
>
> 5,000〜6,000 万円借りるなら、年間利益 500〜600 万円以上欲しい
このため:
- ユーザーが目標融資額を変えても TargetProfit が連動しない
- 業種別 / 業歴年数別の係数が反映されない
- 公庫以外の金融機関 (信金・地銀・メガバンク) の審査基準に切り替えられない
- DSCR / 自己資本比率 / 自己資金比率など複数指標との総合判定ができない
### 解決したい User Story
- **Solo-CEO**: 「3,000 万円の運転資金を引きたい。今の月商 / 利益で公庫を通せるか?」を 1 画面で確認したい
- **Solo-CEO**: 「役員報酬を 月 50 万 → 月 80 万に上げると融資審査でどう影響するか」を試算したい
- **Solo-CEO**: 「マル経融資 (上限 2,000 万) と 新創業融資 (上限 3,000 万) の両方を並行検討したい」
## frontmatter (先頭)
```yaml
---
id: MAS-337
aliases: ["LOAN-SCREENING"]
type: Story
status: Open
---
```
## 仕様書に必ず含めるべき内容
### Section 1. 概要 + Section 2. 目的
依頼の問題意識 + User Story 3 件 + MAS-071/058/067 との位置づけ。
「公庫融資審査基準 = 600 万円」が経験則であって動的算出ではないことを明示。
### Section 3. 公庫の融資審査基準・実務知識 (背景セクション・必須)
**3.1 日本政策金融公庫 (JFC) の概要**:
- 国民生活事業 vs 中小企業事業 vs 農林水産事業
- Solo-CEO は通常 国民生活事業 (融資上限 4,800 万・平均 700 万)
**3.2 主要商品テーブル**:
| 商品 | 上限 | 特徴 |
|---|---|---|
| 新創業融資制度 | 3,000 万 (うち運転 1,500 万) | 創業 2 期以内、自己資金 1/10 要件 |
| 中小企業経営力強化資金 | 7,200 万 | 認定支援機関の事業計画書必要 |
| マル経融資 | 2,000 万 | 商工会議所 6 ヶ月指導必須、無担保無保証 |
| 女性・若者・シニア起業家支援資金 | 7,200 万 | 35 歳未満 / 55 歳以上 / 女性 |
**3.3 審査の主要評価軸 (定量・定性)**:
- 定量: 自己資金比率 (1/10 以上 ≦ 安全圏 1/3〜1/2) / 黒字化見込み / 税引前当期純利益 (借入額 ÷ 利益 ≦ 10 年) / 債務償還年数 ((有利子負債 - 現預金) ÷ (営業 CF + 減価償却費) ≦ 10 年) / 自己資本比率 (30% 以上望ましい) / DSCR (営業 CF ÷ 元利返済額 ≧ 1.2〜1.3 倍)
- 定性: 経営者経歴・信用情報 / 事業の独自性・市場性 / 借入金使途明確性 / 取引先・売上見込み / 経営者の人柄
→ 各軸に**法的根拠の有無 / 実務目安かどうか / bizlp で取得済みデータからスコア化できるか**をマッピングするテーブルを必ず記載すること
### Section 4. 機能仕様 (修正方針相当)
**4.1 入力項目**:
- 希望融資額 (運転 / 設備の内訳)
- 融資商品種別 (新創業 / マル経 / 中小企業経営力強化 / その他)
- 取引金融機関 (公庫 / 信金 / 地銀 / メガバンク — 商品により審査基準係数を切替)
- 業種 (IT / コンサル / 製造 / 小売 / 飲食 — リスク係数)
- 業歴 (創業何期目)
- 自己資金額 (役員借入金は除外)
- 連帯保証人有無 / 担保有無
**4.2 算出ロジック (案・複数指標による総合スコアリング)**:
```
推奨_目標法人利益 = max(
借入希望額 ÷ 必要利益カバー年数, // 案 A: 債務償還年数ベース
年間元利返済額 × DSCR_目標, // 案 B: DSCR ベース
業種ベンチマーク利益 // 案 C: 業種別下限
)
必要自己資金 = 借入希望額 × 自己資金比率 (商品別 default)
自己資本比率 (要求) = 純資産 / 総資産 ≧ 30% (公庫優良判定)
スコア = w1 × 利益カバー + w2 × DSCR + w3 × 自己資金 + w4 × 業歴 + w5 × 自己資本比率 + w6 × 経営者属性
```
→ 重み w_i は仕様書で議論して決めてほしい (推奨値 + 根拠)
**4.3 出力項目**:
- **推奨 TargetProfit** (= MAS-071 のアプローチ D に注入する値)
- **推奨自己資金額**
- **必要月商レンジ**
- **総合スコア** (例: A〜E ランク)
- **不足軸の警告メッセージ** (「自己資本比率が低い → 役員借入金の資本金組入れ検討」等)
- **公庫面談で詰められる質問の予習リスト**
**4.4 cockpit 配置**:
- MAS-058 Required Revenue Solver の隣接 / 配下
- MAS-071 Compensation Strategy Simulator のアプローチ D 入力に逆流連動
**4.5 ステータス・スコア表示の例**:
| 指標 | 現状値 | 目標値 | 判定 |
|---|---|---|---|
| 当期純利益 | 380 万 | 600 万 | △ (-220 万 不足) |
| 自己資本比率 | 18% | 30% | × |
| 債務償還年数 | 8.2 年 | < 10 年 | ○ |
| DSCR | 1.45 | ≧ 1.3 | ○ |
| 業歴 | 1 期目 | ≧ 2 期目 | × (新創業融資なら OK) |
| **総合判定** | | | **B (条件付通過見込)** |
### Section 5. 影響範囲 + データソース
- **71_bs / 91_fs_bs**: 自己資本比率、現預金、有利子負債
- **62_pl_ytd / 92_fs_pl**: 当期純利益、営業 CF
- **64_pl_ytd_plan / 95_sim_headcount**: 計画値の営業 CF
- **新規入力**: 融資希望額・商品・自己資金 (ユーザー入力)
- **新規マスタ**: `MAS_LOAN_PRODUCTS` (商品別の上限・自己資金比率・係数) / `MAS_INDUSTRY_BENCHMARKS` (業種別利益基準)
- 新規ファイル候補: `400_domain/4XX_loan_screening_engine.js` (具体番号は main 側で衝突確認)
- cockpit パネル: `webapp_client/src/cockpit/LoanScreeningPanel.tsx` 新設
- MAS-071 連動: アプローチ D の `targetProfit` を本仕様の動的算出値で上書きできるようにする (ユーザー手動上書き優先)
### Section 6. 注意事項 (10-12 件)
- スコアリングの「総合判定」はあくまで参考値。最終判断は金融機関面談時の人間判断
- 公庫の審査基準は非公開 (内規) のため、本仕様の閾値は公開情報 + 実務目安ベース
- 自己資本比率 30% 等の閾値は「安全圏」の目安であって、業種・規模で柔軟に解釈される
- TargetProfit 自動算出と MAS-071 アプローチ D 入力の優先順位 (UI 手動上書き > 動的算出 > default 600 万)
- 業種ベンチマーク (MAS_INDUSTRY_BENCHMARKS) は TKC 経営自己診断システム等の公開統計を参照
- 創業 1 期目では債務償還年数が計算できない → 売上計画ベースの代替算出
- 役員借入金を「自己資金」と誤認しない (公庫は金融資産として扱う)
- 海外取引・為替リスクは本仕様で対象外 (`MAS-XXX_fx_translation` で別仕様)
- 借入希望額が小さい (例: 100 万円以下) ケースは別フロー (マイクロローン)
- 担保あり/なしで審査基準が大きく変わる (現状は 担保なし default)
- 連帯保証人の有無は信用補完の役割があり、スコア重みに反映 (経営者属性 w6)
- 73_bs_plan と連動した「3 年後の追加融資余力」シミュレーションは Phase 2 で検討
### Section 7. エッジケース (10-12 件・計算式表)
- 業歴 1 期目 / 黒字化前: 売上計画ベースで TargetProfit 算出 + 自己資金比率を厳格適用
- 純資産マイナス (債務超過): 自己資本比率 = 0% としてスコア最低 (E ランク・要再建計画)
- DSCR 計算で営業 CF が 0 or マイナス: 即 NG 判定 (≧ 1.0 がそもそも満たせない)
- 自己資金 100% (借入なし): スコア計算スキップ・参考表示のみ
- 借入希望額が商品上限超過: エラー表示 + 別商品を推奨サジェスト
- 手元現金 + 自己資金が借入希望額の 1/10 未満 (新創業融資の最低要件): 警告
- 既存借入あり: (有利子負債 + 借入希望額) で再計算
- 役員報酬月 100 万円超 (高額役員報酬): 公庫は人件費として精査・スコアに警告反映
- 補助金/助成金収入を当期純利益に含めるか: 経常損益ベースで分離 (恒常的でない収入は除外)
- 業種が複数 (IT × コンサル等): 主たる業種のリスク係数を採用 + 注釈
- 連帯保証人が経営者本人 (個人保証) の場合: 中小企業庁ガイドライン (経営者保証ガイドライン) 準拠を明示
- マル経融資 (商工会議所推薦) は審査軸が大きく異なる: 別フローで対応 (推薦書ベース・財務指標は補助的)
### Section 8. 実データ検証 (具体シナリオ + 期待値)
1. **bizlp 現状値で公庫 3,000 万を申請**: 法人利益 380 万 / 自己資本比率 18% → スコア B 判定 / TargetProfit 推奨 600 万 / 不足: 利益 +220 万 + 自己資本比率 +12pt → cockpit にアクション提案 (役員報酬調整 + 役員借入金資本金組入れ)
2. **役員報酬 月 50 → 月 35 に下げた場合**: 法人利益 380 → 560 万・スコア B → A- 改善
3. **自己資金 100 → 300 に増やした場合**: 自己資金比率 1/30 → 1/10 改善・新創業融資要件クリア
4. **マル経融資 2,000 万**: 商工会議所推薦ありのため別フロー (本仕様では「マル経推薦取得後に申請」と表示)
5. **3 年後の追加融資 1 億**: MAS-067 マルチイヤーで 3 年後の P/L 予測を取得して再評価 (Phase 2)
### Section 9. 関連ドキュメント
- [MAS-058 Required Revenue Solver](dev_mas-058_required_revenue_solver.md) — 健全性診断との関係
- [MAS-071 Compensation Strategy Simulator](dev_mas-071_compensation_strategy_simulator.md) — アプローチ D 連動先
- [MAS-067 Multiyear Planning Workspace](dev_mas-067_multiyear_planning_workspace.md) — 5 軸モデル + マルチイヤー融資シミュレーション
- [MAS-057 Solo CEO Cockpit](dev_mas-057_solo_ceo_cockpit.md) — cockpit パネル配置
- 日本政策金融公庫公式サイト (商品別融資条件)
- 公庫国民生活事業の融資概況 (年次レポート)
- 中小企業庁「中小企業白書」 (中小企業の財務指標ベンチマーク)
- TKC / 経営自己診断システム (法人別 / 業種別の財務基準値)
### Section 10. 人間が検討すべき事項 (Q1-Q5 必須・推奨 + トレードオフ + 推奨理由)
#### Q1. スコアリングモデルのアプローチ
- **案 A**: ルールベース (重み w_i + 閾値 + ランク変換) — 透明性高い、調整容易
- **案 B**: AI/LLM ベース (Vertex AI / Gemini が事業計画書 + 数値から定性判定)
- **案 C**: ハイブリッド (定量はルール、定性は AI)
- **推奨**: **案 C (ハイブリッド)** — 定量はルール (Number.isFinite ガード + 透明な重み計算) でテスト容易性確保、定性 (経営者属性 / 借入使途妥当性) は v1 では手動入力ベース、v2 で Vertex Gemini 統合 (MAS-067 Phase D の AI 提案統合パターンを踏襲)。**v0.1 は案 A (ルールベース) で起動・v2 で AI 統合へ拡張**
#### Q2. 適用金融機関のスコープ
- **推奨**: **v0.1 は公庫のみ・銀行別係数マスタ (MAS_LOAN_PRODUCTS) は将来拡張前提で構造だけ用意**。理由: (a) 公庫の商品 4 種で本案件の 80% カバー (b) 信金・地銀の審査基準は地域差・取引履歴依存で標準化困難 (c) v2 で「金融機関別」mode を追加する余地
#### Q3. 「公庫融資審査基準」の定数化と注釈
- **推奨**: **(a) 現状の 600 万 default を「historical_default」として保存 (b) 本仕様の動的算出値を `recommended_targetProfit` として表示 (c) UI 手動上書き > 動的算出 > historical_default の優先順位 (d) `MAS071_TARGET_PROFIT` を本仕様で算出した値で `03_sys_params` 自動更新は**しない** (cockpit 上書きで動的・sys_params は default 保持)**。理由: 過去経験則の感覚値も廃棄せず保存することでリグレッション診断容易・ユーザーの判断尊重
#### Q4. MAS-067 (マルチイヤー) との連動
- **推奨**: **v0.1 は当期スナップ評価のみ・v2 で MAS-067 の 5 軸モデル + 多年シナリオ「3 年後追加融資 X 億」評価を Phase E として追加**。理由: (a) v0.1 で当期評価のロジックを確定させてから多年化 (b) MAS-067 Phase A-D が完成済 (PR #459) のため拡張ポイントあり (c) Burnout / Cap of margin / セーフティ共済等の 5 軸との関連は別 Phase で議論
#### Q5. テストシナリオ
推奨: 上記 Section 8 の 5 ケース + ロールバック (古い defaults に戻す手順) + Edge case 12 件を `901_test_runner.js` に F337-01〜F337-15 として実装
### Section 11. 実装プロンプト (Claude Code 用)
- Step 1: マスタシード (`MAS_LOAN_PRODUCTS` 4 商品 + `MAS_INDUSTRY_BENCHMARKS` 5 業種) 投入
- Step 2: ドメインエンジン (`400_domain/4XX_loan_screening_engine.js` IIFE パターン) 実装
- Step 3: spa_bridge.js に bootstrap 系 + `runLoanScreeningSimulation` API 追加
- Step 4: cockpit パネル (`webapp_client/src/cockpit/LoanScreeningPanel.tsx`) 実装
- Step 5: MAS-071 アプローチ D との連動配線 (cockpit state lift)
- Step 6: 単体テスト (F337-01〜) + E2E (F337-15)
- Step 7: dev 検証 → PR レビュー → main マージ → prod デプロイ
### Section 12. 推奨実行モデル
- マスタシード: Sonnet (DDL + シード値投入のみ)
- ドメインエンジン: Opus (4 案アルゴリズム + 6 重み + 業種係数の設計判断)
- cockpit パネル: Sonnet (既存 SoloFinancialStatementsPanel パターンの応用)
- テスト: Haiku
### Section 13. 変更履歴
| 日付 | 変更内容 |
|---|---|
| 2026-05-01 | v0.1 起票(main 側起票依頼を受けて MAS-337 として起草。Q1-Q5 推奨案を提示・MAS-071 アプローチ D と逆流連動・cockpit パネル新設・MAS_LOAN_PRODUCTS / MAS_INDUSTRY_BENCHMARKS マスタ追加) |
### Section 14. 仕様書作成プロンプト (`<details>` で本プロンプトを丸ごと格納)
## 進め方
1. まず以下の参照ファイルを Read して理解 (それぞれ読み終えたら破棄して構わない・本タスクではノート程度でOK):
- `docs/_internal/dev_spec_prompt_template.md` (テンプレート構造を把握)
- `docs/dev/dev_mas-058_required_revenue_solver.md` (MAS-058 健全性診断・隣接配置先)
- `docs/dev/dev_mas-071_compensation_strategy_simulator.md` (アプローチ D の TargetProfit 連動先)
- `docs/dev/dev_mas-067_multiyear_planning_workspace.md` (Phase E 拡張候補)
2. `docs/dev/dev_mas-337_loan_screening_score.md` を Write で**1 回の出力で**作成 (約 600〜800 行)
3. テンプレートのセクション構成と本プロンプト記載のセクションリストの両方を満たすこと
4. `<details>` ブロック (Section 14) には**本プロンプト全文を丸ごと**コピーすること
## 制約
- sub workspace 制約: `400_domain/`, `500_import/`, `600_report/`, `webapp_client/src/`, `appsscript.json` は触らない (READ のみ可)
- 仕様書本体のみ書き出す。`docs/_config.json` 反映 / `id_mapping_table.csv` / `todo_master_tables.md` / `changelog.md` 更新 / 関連 spec (MAS-058/071) のクロスリンク追記は親が担当
- 1 つの Write tool call で全文を出力すること (600-800 行は 1 call で十分)
- 出力後はファイルパスと行数を報告するだけでよい (要約や説明は不要)
実行してください。