margin-management
Update Margin Dashboard with Fidelity balance data and calculate margin-living strategy metrics. Monitors margin balance, interest costs, coverage ratios, and scaling thresholds. Triggers safety alerts for large draws and provides time-based scaling recommendations. Use when updating margin, balances, coverage ratio, or margin strategy analysis.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o margin-management.zip https://jpskill.com/download/22818.zip && unzip -o margin-management.zip && rm margin-management.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/22818.zip -OutFile "$d\margin-management.zip"; Expand-Archive "$d\margin-management.zip" -DestinationPath $d -Force; ri "$d\margin-management.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
margin-management.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
margin-managementフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] margin-management
マージン管理
目的
マージン残高、金利コスト、配当カバー率、ポートフォリオ対マージン安全閾値を追跡することで、マージン活用戦略を監視・管理します。戦略のマイルストーンに基づいたデータ駆動型のスケーリング推奨を提供します。
使用する場面
このスキルは、以下の状況で使用します。
- 新しいFidelity残高CSVをインポートする際
- マージン残高または金利を更新する際
- カバー率(配当 ÷ 金利)を計算する際
- ユーザーが「マージンダッシュボード」、「マージン残高」、「カバー率」、「マージン戦略」と発言する際
- マージンのスケーリング決定を評価する際
- 安全閾値を確認する際
個人の戦略入力
実際の金額、日付、および個人の戦略目標は、.env から取得する必要があります(.env.example を参照)。python-dotenv またはシェル環境変数を使用し、個人の数値をこのスキルにハードコードしないでください。
必須の .env 値
FG_STRATEGY_START_DATEFG_MARGIN_INTEREST_RATE、FG_MARGIN_INTEREST_RATE_DECIMALFG_MARGIN_JUMP_ALERT_THRESHOLDFG_CURRENT_MONTHLY_DRAW、FG_MONTH6_DRAW_TARGET、FG_MONTH12_DRAW_TARGET、FG_MONTH18_DRAW_TARGETFG_BUSINESS_INCOME_MONTHLY、FG_BUSINESS_INJECTION_RED、FG_BUSINESS_INJECTION_CRITICAL- 最新の例/デモ値:
FG_PORTFOLIO_BASELINE_VALUE、FG_MARGIN_BASELINE_BALANCE、FG_DIVIDEND_MONTHLY_INCOME
コアワークフロー
1. Fidelity残高CSVの読み込み
場所: notebooks/updates/Balances_for_Account_{account_id}.csv
抽出する主要フィールド:
Balance,Day change
Total account value,${FG_PORTFOLIO_BASELINE_VALUE_RAW},${FG_PORTFOLIO_DAY_CHANGE_RAW} → ポートフォリオ価値
Margin buying power,${FG_MARGIN_BUYING_POWER_RAW},${FG_MARGIN_BUYING_POWER_DAY_CHANGE_RAW}
Net debit,${FG_MARGIN_BASELINE_BALANCE_RAW},${FG_MARGIN_DAY_CHANGE_RAW} → マージン残高 (絶対値)
Margin interest accrued this month,${FG_MARGIN_INTEREST_ACCRUED_THIS_MONTH_RAW}, → 月間金利 (実際)
計算:
- マージン残高: 「Net debit」の絶対値 = ${FG_MARGIN_BASELINE_BALANCE}
- 金利: 指定がない限りデフォルトの ${FG_MARGIN_INTEREST_RATE} (Fidelity $1k-$24.9kティア)
- 月間金利コスト: 残高 × 金利 ÷ 12 = ${FG_MARGIN_BASELINE_BALANCE} × ${FG_MARGIN_INTEREST_RATE_DECIMAL} ÷ 12 = ${FG_MARGIN_MONTHLY_INTEREST_COST}
2. 安全チェック: マージン急増アラート
ルール: 新しいマージン残高 > 以前の残高 + ${FG_MARGIN_JUMP_ALERT_THRESHOLD} の場合、停止
理由: 大規模な引き出しは、マージン活用戦略に従って意図的であるべきです。
例:
Previous: ${FG_MARGIN_BASELINE_BALANCE}
Current: ${FG_MARGIN_JUMP_EXAMPLE_CURRENT} (+${FG_MARGIN_JUMP_EXAMPLE_DIFF}) → 🚨 ALERT - Confirm intentional draw
アクション:
- ユーザーに直ちにアラート
- 差額を表示: 「マージンが ${FG_MARGIN_JUMP_EXAMPLE_DIFF} 増加しました - これが意図的であったことを確認してください」
- ユーザーの確認を待ってから続行
3. マージンダッシュボードへのエントリ追加
以下の情報で新しい行を挿入:
- 日付: 現在の日付(
date +"%Y-%m-%d"を使用) - マージン残高: 残高CSVから(Net debitの絶対値)
- 金利: ${FG_MARGIN_INTEREST_RATE}(または、利用可能な場合はCSVからの更新された金利)
- 月間金利コスト: 計算(残高 × 金利 ÷ 12)
- メモ: ${FG_STRATEGY_START_DATE} からの経過時間に基づいて自動生成
エントリ例:
Date: ${FG_MARGIN_EXAMPLE_DATE}
Margin Balance: ${FG_MARGIN_BASELINE_BALANCE}
Interest Rate: ${FG_MARGIN_INTEREST_RATE}
Monthly Interest Cost: ${FG_MARGIN_MONTHLY_INTEREST_COST}
Notes: Month 1 - Building foundation, on track per strategy
メモ生成ロジック:
import os
from datetime import datetime
months_elapsed = (current_date - datetime.fromisoformat(os.getenv("FG_STRATEGY_START_DATE"))).days // 30
if months_elapsed < 6:
note = f"Month {months_elapsed} - Building foundation, on track per strategy"
elif months_elapsed < 12:
note = f"Month {months_elapsed} - Approaching Month 6 milestone"
elif months_elapsed < 18:
note = f"Month {months_elapsed} - Approaching break-even milestone"
else:
note = f"Month {months_elapsed} - Mature strategy, monitor scaling"
4. サマリーセクションの更新
ダッシュボードメトリクスを再計算:
現在のマージン残高
= マージンダッシュボードの最新エントリ
例: ${FG_MARGIN_BASELINE_BALANCE}
月間金利コスト
= 最新の計算コスト
例: ${FG_MARGIN_MONTHLY_INTEREST_COST}/month
年間金利コスト
= 月間金利コスト × 12
例: ${FG_MARGIN_MONTHLY_INTEREST_COST} × 12 = ${FG_MARGIN_ANNUAL_INTEREST_COST}/year
配当収入 (配当トラッカーから)
= 配当トラッカーの「TOTAL EXPECTED DIVIDENDS」から取得
例: ${FG_DIVIDEND_MONTHLY_INCOME}/month
カバー率
= 配当収入 ÷ 月間金利コスト
計算式: =IFERROR(Dividends / Interest, 0)
例: ${FG_DIVIDEND_MONTHLY_INCOME} ÷ ${FG_MARGIN_MONTHLY_INTEREST_COST} = ${FG_DIVIDEND_COVERAGE_RATIO} 🟢
マージン残高が $0 の場合の #DIV/0! を修正:
Before: =B10 / B11 (マージンが0の場合 #DIV/0! を引き起こす)
After: =IFERROR(B10 / B11, 0) (マージンがない場合 0 を返す)
5. 戦略メトリクスの計算
ポートフォリオ対マージン比率
= 総口座価値 ÷ マージン残高
例: ${FG_PORTFOLIO_BASELINE_VALUE} ÷ ${FG_MARGIN_BASELINE_BALANCE} = ${FG_PORTFOLIO_MARGIN_RATIO} 🟢🟢🟢
安全閾値:
- 🟢 緑: 比率 > 4.0:1 (目標 - 健全なマージン使用)
- 🟡 黄: 比率 3.5-4.0:1 (警告 - スケーリングを一時停止)
- 🔴 赤: 比率 < 3.0:1 (アラート - 引き出しを停止、事業収入を注入)
- ⚫ 危機: 比率 < 2.5:1 (緊急 - ${FG_BUSINESS_INJECTION_CRITICAL} を注入、売却を検討)
現在の引き出し vs 固定費
現在の月間引き出し: ${FG_CURRENT_MONTHLY_DRAW} (固定費のみ)
目標: ${FG_CURRENT_MONTHLY_DRAW} から開始し、データに基づいて ${FG_MONTH6_DRAW_TARGET}、${FG_MONTH12_DRAW_TARGET}、${FG_MONTH18_DRAW_TARGET} へスケーリング
6. スケーリングアラート (時間ベース)
戦略開始日: ${FG_STRATEGY_START_DATE}
経過月数の計算:
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Margin Management
Purpose
Monitor and manage margin-living strategy by tracking margin balances, interest costs, dividend coverage ratios, and portfolio-to-margin safety thresholds. Provides data-driven scaling recommendations based on strategy milestones.
When to Use
Use this skill when:
- Importing new Fidelity balances CSV
- Updating margin balance or interest rate
- Calculating coverage ratio (dividends ÷ interest)
- User mentions: "margin dashboard", "margin balance", "coverage ratio", "margin strategy"
- Assessing margin scaling decisions
- Checking safety thresholds
Personal Strategy Inputs
Real dollar amounts, dates, and private strategy targets must come from .env (see .env.example). Use python-dotenv or shell environment variables; do not hardcode personal numbers in this skill.
Required .env values
FG_STRATEGY_START_DATEFG_MARGIN_INTEREST_RATE,FG_MARGIN_INTEREST_RATE_DECIMALFG_MARGIN_JUMP_ALERT_THRESHOLDFG_CURRENT_MONTHLY_DRAW,FG_MONTH6_DRAW_TARGET,FG_MONTH12_DRAW_TARGET,FG_MONTH18_DRAW_TARGETFG_BUSINESS_INCOME_MONTHLY,FG_BUSINESS_INJECTION_RED,FG_BUSINESS_INJECTION_CRITICAL- Latest example/demo values:
FG_PORTFOLIO_BASELINE_VALUE,FG_MARGIN_BASELINE_BALANCE,FG_DIVIDEND_MONTHLY_INCOME
Core Workflow
1. Read Fidelity Balances CSV
Location: notebooks/updates/Balances_for_Account_{account_id}.csv
Key Fields to Extract:
Balance,Day change
Total account value,${FG_PORTFOLIO_BASELINE_VALUE_RAW},${FG_PORTFOLIO_DAY_CHANGE_RAW} → Portfolio Value
Margin buying power,${FG_MARGIN_BUYING_POWER_RAW},${FG_MARGIN_BUYING_POWER_DAY_CHANGE_RAW}
Net debit,${FG_MARGIN_BASELINE_BALANCE_RAW},${FG_MARGIN_DAY_CHANGE_RAW} → Margin Balance (abs value)
Margin interest accrued this month,${FG_MARGIN_INTEREST_ACCRUED_THIS_MONTH_RAW}, → Monthly Interest (actual)
Calculations:
- Margin Balance: Absolute value of "Net debit" = ${FG_MARGIN_BASELINE_BALANCE}
- Interest Rate: Default ${FG_MARGIN_INTEREST_RATE} (Fidelity $1k-$24.9k tier) unless specified
- Monthly Interest Cost: Balance × Rate ÷ 12 = ${FG_MARGIN_BASELINE_BALANCE} × ${FG_MARGIN_INTEREST_RATE_DECIMAL} ÷ 12 = ${FG_MARGIN_MONTHLY_INTEREST_COST}
2. Safety Check: Margin Jump Alert
Rule: If new margin balance > previous balance + ${FG_MARGIN_JUMP_ALERT_THRESHOLD}, STOP
Reason: Large draws should be intentional per margin-living strategy
Example:
Previous: ${FG_MARGIN_BASELINE_BALANCE}
Current: ${FG_MARGIN_JUMP_EXAMPLE_CURRENT} (+${FG_MARGIN_JUMP_EXAMPLE_DIFF}) → 🚨 ALERT - Confirm intentional draw
Action:
- Alert user immediately
- Show diff: "Margin increased by ${FG_MARGIN_JUMP_EXAMPLE_DIFF} - Confirm this was intentional"
- Wait for user confirmation before proceeding
3. Add Entry to Margin Dashboard
Insert new row with:
- Date: Current date (use
date +"%Y-%m-%d") - Margin Balance: From Balances CSV (Net debit absolute value)
- Interest Rate: ${FG_MARGIN_INTEREST_RATE} (or updated rate from CSV if available)
- Monthly Interest Cost: Calculate (Balance × Rate ÷ 12)
- Notes: Auto-generate based on elapsed time since ${FG_STRATEGY_START_DATE}
Example Entry:
Date: ${FG_MARGIN_EXAMPLE_DATE}
Margin Balance: ${FG_MARGIN_BASELINE_BALANCE}
Interest Rate: ${FG_MARGIN_INTEREST_RATE}
Monthly Interest Cost: ${FG_MARGIN_MONTHLY_INTEREST_COST}
Notes: Month 1 - Building foundation, on track per strategy
Notes Generation Logic:
import os
from datetime import datetime
months_elapsed = (current_date - datetime.fromisoformat(os.getenv("FG_STRATEGY_START_DATE"))).days // 30
if months_elapsed < 6:
note = f"Month {months_elapsed} - Building foundation, on track per strategy"
elif months_elapsed < 12:
note = f"Month {months_elapsed} - Approaching Month 6 milestone"
elif months_elapsed < 18:
note = f"Month {months_elapsed} - Approaching break-even milestone"
else:
note = f"Month {months_elapsed} - Mature strategy, monitor scaling"
4. Update Summary Section
Recalculate Dashboard Metrics:
Current Margin Balance
= Latest entry from Margin Dashboard
Example: ${FG_MARGIN_BASELINE_BALANCE}
Monthly Interest Cost
= Latest calculated cost
Example: ${FG_MARGIN_MONTHLY_INTEREST_COST}/month
Annual Interest Cost
= Monthly Interest Cost × 12
Example: ${FG_MARGIN_MONTHLY_INTEREST_COST} × 12 = ${FG_MARGIN_ANNUAL_INTEREST_COST}/year
Dividend Income (from Dividend Tracker)
= Pull from Dividend Tracker "TOTAL EXPECTED DIVIDENDS"
Example: ${FG_DIVIDEND_MONTHLY_INCOME}/month
Coverage Ratio
= Dividend Income ÷ Monthly Interest Cost
Formula: =IFERROR(Dividends / Interest, 0)
Example: ${FG_DIVIDEND_MONTHLY_INCOME} ÷ ${FG_MARGIN_MONTHLY_INTEREST_COST} = ${FG_DIVIDEND_COVERAGE_RATIO} 🟢
Fix #DIV/0! if margin balance = $0:
Before: =B10 / B11 (causes #DIV/0! when margin = 0)
After: =IFERROR(B10 / B11, 0) (returns 0 when no margin)
5. Calculate Strategy Metrics
Portfolio-to-Margin Ratio
= Total account value ÷ Margin Balance
Example: ${FG_PORTFOLIO_BASELINE_VALUE} ÷ ${FG_MARGIN_BASELINE_BALANCE} = ${FG_PORTFOLIO_MARGIN_RATIO} 🟢🟢🟢
Safety Thresholds:
- 🟢 Green: Ratio > 4.0:1 (target - healthy margin usage)
- 🟡 Yellow: Ratio 3.5-4.0:1 (warning - pause scaling)
- 🔴 Red: Ratio < 3.0:1 (alert - stop draws, inject business income)
- ⚫ Critical: Ratio < 2.5:1 (emergency - inject ${FG_BUSINESS_INJECTION_CRITICAL}, consider selling)
Current Draw vs Fixed Expenses
Current monthly draw: ${FG_CURRENT_MONTHLY_DRAW} (fixed expenses only)
Target: Start with ${FG_CURRENT_MONTHLY_DRAW}, scale to ${FG_MONTH6_DRAW_TARGET}, ${FG_MONTH12_DRAW_TARGET}, ${FG_MONTH18_DRAW_TARGET} based on data
6. Scaling Alerts (Time-Based)
Strategy Start Date: ${FG_STRATEGY_START_DATE}
Calculate months elapsed:
import os
from datetime import datetime
start = datetime.fromisoformat(os.getenv("FG_STRATEGY_START_DATE"))
current = datetime.now()
months_elapsed = (current - start).days // 30
Month 6 Alert
📊 MONTH 6 MILESTONE CHECK:
✅ Dividends: ${FG_DIVIDEND_MONTHLY_INCOME}/month (need ${FG_MONTH6_DIVIDEND_MINIMUM})
✅ Portfolio-to-Margin Ratio: ${FG_PORTFOLIO_MARGIN_RATIO} (need 4:1+)
✅ Dividend Growth: On track
🎯 RECOMMENDATION: Scale margin draw to ${FG_MONTH6_DRAW_TARGET}/month (add mortgage)
- Current: ${FG_CURRENT_MONTHLY_DRAW} (fixed expenses only)
- New: ${FG_MONTH6_DRAW_TARGET} (fixed + mortgage)
- Safety margin: Excellent
Month 12 Alert
📊 MONTH 12 BREAK-EVEN CHECK:
Expected Dividends: ${FG_MONTH12_DIVIDEND_TARGET}/month (goal: break-even with margin interest)
✅ IF achieved: Consider scaling to ${FG_MONTH12_DRAW_TARGET}/month (add some variable expenses)
⚠️ IF not: Hold at ${FG_MONTH6_DRAW_TARGET}, assess strategy
Month 18 Alert
📊 MONTH 18 MATURE STRATEGY CHECK:
Expected Dividends: ${FG_MONTH18_DIVIDEND_TARGET}/month
Expected Margin: Declining (dividends paying down debt)
✅ IF achieved: Consider scaling to ${FG_MONTH18_DRAW_TARGET}/month (most variable expenses)
⚠️ IF not: Hold current level, reassess timeline
7. Alert Thresholds
Generate alerts based on conditions:
Green (Healthy)
✅ Ratio > 4:1 AND dividends covering interest
Status: On track, continue per strategy
Yellow (Caution)
⚠️ Ratio 3.5-4:1 OR dividend coverage declining
Action: Pause scaling, monitor weekly
Red (Alert)
🚨 Ratio < 3:1 OR dividend cuts detected
Action: STOP draws, inject ${FG_BUSINESS_INJECTION_RED} business income
Critical (Emergency)
⛔ Ratio < 2.5:1 OR margin call risk
Action: STOP draws, inject ${FG_BUSINESS_INJECTION_CRITICAL} business income, consider selling hedge (SQQQ)
Critical Rules
WRITABLE Columns (Margin Dashboard)
- ✅ Date (Column A)
- ✅ Margin Balance (Column B)
- ✅ Interest Rate (Column C)
- ✅ Monthly Interest Cost (Column D - calculated but writeable)
- ✅ Notes (Column E)
SACRED Formulas (NEVER TOUCH)
- ❌ Coverage Ratio (unless adding IFERROR wrapper)
- ❌ Summary section totals (unless fixing #DIV/0!)
Margin Strategy Philosophy
Core Principle: Confidence-based scaling, not time-based mandates
Decision Framework:
- Data-driven: Decisions backed by actual dividend income, not projections
- Safety-first: Never scale if ratio drops below 3.5:1
- Business income as insurance: Available ${FG_BUSINESS_INCOME_MONTHLY}/month, not primary strategy
- Monte Carlo backstop: ${FG_BUSINESS_BACKSTOP_PROBABILITY} of scenarios used business income at some point
Business Income Backstop
Available: ${FG_BUSINESS_INCOME_MONTHLY}/month from business operations
Usage Scenarios:
- ⛔ Margin call (ratio < 3:1): MUST USE business income immediately
- ⚠️ Market correction (20-30% drop): OPTIONAL - assess need
- 🎯 Acceleration (reach FI faster): OPTIONAL - strategic choice
Current Philosophy: Insurance policy only, not active strategy component
Example Calculations
Scenario 1: Month 1 (Current State)
Portfolio Value: ${FG_PORTFOLIO_BASELINE_VALUE}
Margin Balance: ${FG_MARGIN_BASELINE_BALANCE}
Ratio: ${FG_PORTFOLIO_MARGIN_RATIO} 🟢🟢🟢
Monthly Interest: ${FG_MARGIN_MONTHLY_INTEREST_COST}
Dividend Income: ${FG_DIVIDEND_MONTHLY_INCOME}
Coverage: ${FG_DIVIDEND_COVERAGE_RATIO} 🟢
Status: Excellent - building foundation
Scenario 2: Month 6 (Projected)
Portfolio Value: ${FG_MONTH6_PROJECTED_PORTFOLIO} (projected with W2 contributions)
Margin Balance: ${FG_MONTH6_PROJECTED_MARGIN} (scaled to ${FG_MONTH6_DRAW_TARGET}/month draw)
Ratio: ${FG_MONTH6_PROJECTED_RATIO} 🟢
Monthly Interest: ${FG_MONTH6_PROJECTED_MONTHLY_INTEREST}
Dividend Income: ${FG_CURRENT_MONTHLY_DRAW} (projected)
Coverage: ${FG_MONTH6_PROJECTED_COVERAGE} 🟢
Status: Healthy - on track for break-even
Scenario 3: Month 15 (Break-Even)
Portfolio Value: ${FG_MONTH15_PROJECTED_PORTFOLIO}
Margin Balance: ${FG_MONTH15_PROJECTED_MARGIN} (scaled to ${FG_MONTH12_DRAW_TARGET}/month draw)
Ratio: ${FG_MONTH15_PROJECTED_RATIO} 🟢
Monthly Interest: ${FG_MONTH15_PROJECTED_MONTHLY_INTEREST}
Dividend Income: ${FG_MONTH15_PROJECTED_DIVIDEND_INCOME}
Coverage: ${FG_MONTH15_PROJECTED_COVERAGE} 🟢
Status: Break-even achieved, dividends > interest
Google Sheets Integration
Spreadsheet ID: Read from fin-guru/data/user-profile.yaml → google_sheets.portfolio_tracker.spreadsheet_id
Use the mcpgdrivesheets tool:
// STEP 1: Read Spreadsheet ID from user profile
// Load fin-guru/data/user-profile.yaml
// Extract: google_sheets.portfolio_tracker.spreadsheet_id
// STEP 2: Read Margin Dashboard
mcp__gdrive__sheets(
operation: "spreadsheets.values.get",
params: {
spreadsheetId: SPREADSHEET_ID, // from user-profile.yaml
range: "Margin Dashboard!A2:E50"
}
)
// STEP 3: Add new margin entry
mcp__gdrive__sheets(
operation: "spreadsheets.values.update",
params: {
spreadsheetId: SPREADSHEET_ID, // from user-profile.yaml
range: "Margin Dashboard!A2:E2",
valueInputOption: "USER_ENTERED",
requestBody: {
values: [[date, balance, rate, monthly_cost, notes]]
}
}
)
Agent Permissions
Margin Specialist (Write-enabled):
- Can add new entries to Margin Dashboard
- Can update margin balance, rate, cost
- Can generate scaling alerts
- CANNOT modify summary formulas (without formula-protection skill)
Builder (Write-enabled):
- Can repair broken formulas (#DIV/0!)
- Can update summary section calculations
- Can add new metrics
All Other Agents (Read-only):
- Market Researcher, Quant Analyst, Strategy Advisor
- Can read margin data for analysis
- Cannot write to spreadsheet
- Must defer to Margin Specialist or Builder
Reference Files
For complete strategy details, see:
- Margin Strategy:
fin-guru-private/fin-guru/strategies/active/margin-living-master-strategy.md - Portfolio Strategy:
fin-guru-private/fin-guru/strategies/active/portfolio-master-strategy.md - User Profile:
fin-guru/data/user-profile.yaml - Spreadsheet Architecture:
fin-guru/data/spreadsheet-architecture.md
Pre-Flight Checklist
Before updating Margin Dashboard:
- [ ] Fidelity Balances CSV is latest by date
- [ ] CSV is in
notebooks/updates/directory - [ ] Margin Dashboard sheet exists in Google Sheets
- [ ] Previous margin balance known (for jump detection)
- [ ] Dividend Tracker is up-to-date (for coverage ratio)
- [ ] Current date retrieved via
datecommand
Example Scenario
Trigger: User downloads new Fidelity balances CSV
Agent workflow:
- ✅ Read Balances CSV - Portfolio: ${FG_PORTFOLIO_BASELINE_VALUE}, Margin: ${FG_MARGIN_BASELINE_BALANCE}
- ✅ Safety check - Previous: $0, Current: ${FG_MARGIN_BASELINE_BALANCE} (+${FG_MARGIN_BASELINE_BALANCE} < ${FG_MARGIN_JUMP_ALERT_THRESHOLD} threshold) - PASS
- ✅ Calculate metrics:
- Monthly interest: ${FG_MARGIN_MONTHLY_INTEREST_COST}
- Portfolio-to-margin ratio: ${FG_PORTFOLIO_MARGIN_RATIO}
- Coverage ratio: ${FG_DIVIDEND_COVERAGE_RATIO} (dividends ÷ interest)
- ✅ Add entry to Margin Dashboard:
- Date: ${FG_MARGIN_EXAMPLE_DATE}
- Balance: ${FG_MARGIN_BASELINE_BALANCE}
- Rate: ${FG_MARGIN_INTEREST_RATE}
- Cost: ${FG_MARGIN_MONTHLY_INTEREST_COST}
- Notes: "Month 1 - Building foundation, on track"
- ✅ Update summary section:
- Current balance: ${FG_MARGIN_BASELINE_BALANCE}
- Monthly cost: ${FG_MARGIN_MONTHLY_INTEREST_COST}
- Annual cost: ${FG_MARGIN_ANNUAL_INTEREST_COST}
- Dividend income: ${FG_DIVIDEND_MONTHLY_INCOME}
- Coverage: ${FG_DIVIDEND_COVERAGE_RATIO}
- ✅ Generate status: "🟢 Excellent health - Ratio ${FG_PORTFOLIO_MARGIN_RATIO}, Coverage ${FG_DIVIDEND_COVERAGE_RATIO}"
- ✅ LOG: "Updated Margin Dashboard - Month 1, ${FG_MARGIN_BASELINE_BALANCE} balance, ${FG_PORTFOLIO_MARGIN_RATIO} ratio"
Skill Type: Domain (workflow guidance) Enforcement: BLOCK (financial risk critical) Priority: Critical Line Count: < 400 (following 500-line rule) ✅