margin-management by AojdevStudio
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.
Content & Writing
239 Stars
61 Forks
Updated Feb 4, 2026, 06:20 AM
Why Use This
This skill provides specialized capabilities for AojdevStudio's codebase.
Use Cases
- Developing new features in the AojdevStudio repository
- Refactoring existing code to follow AojdevStudio standards
- Understanding and working with AojdevStudio's codebase structure
Install Guide
2 steps- 1
Skip this step if Ananke is already installed.
- 2
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Skill Stats
SKILL.md 399 Lines
Total Files 1
Total Size 0 B
License NOASSERTION
---
name: margin-management
description: 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.
---
# 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
## Core Workflow
### 1. Read Fidelity Balances CSV
**Location**: `notebooks/updates/Balances_for_Account_{account_id}.csv`
**Key Fields to Extract**:
```csv
Balance,Day change
Total account value,228809.41,3447.61 → Portfolio Value
Margin buying power,193919.92,-4667.04
Net debit,-2992.70,-2191.14 → Margin Balance (abs value)
Margin interest accrued this month,1.12, → Monthly Interest (actual)
```
**Calculations**:
- **Margin Balance**: Absolute value of "Net debit" = $2,992.70
- **Interest Rate**: Default 10.875% (Fidelity $1k-$24.9k tier) unless specified
- **Monthly Interest Cost**: Balance × Rate ÷ 12 = $2,992.70 × 0.10875 ÷ 12 = $27.11
### 2. Safety Check: Margin Jump Alert
**Rule**: If new margin balance > previous balance + $5,000, **STOP**
**Reason**: Large draws should be intentional per margin-living strategy
**Example**:
```
Previous: $2,992.70
Current: $9,500.00 (+$6,507.30) → 🚨 ALERT - Confirm intentional draw
```
**Action**:
- Alert user immediately
- Show diff: "Margin increased by $6,507 - 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**: 10.875% (or updated rate from CSV if available)
- **Monthly Interest Cost**: Calculate (Balance × Rate ÷ 12)
- **Notes**: Auto-generate based on elapsed time since Oct 9, 2025
**Example Entry**:
```
Date: 2025-11-11
Margin Balance: $2,992.70
Interest Rate: 10.875%
Monthly Interest Cost: $27.11
Notes: Month 1 - Building foundation, on track per strategy
```
**Notes Generation Logic**:
```python
months_elapsed = (current_date - datetime(2025, 10, 9)).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: $2,992.70
```
#### Monthly Interest Cost
```
= Latest calculated cost
Example: $27.11/month
```
#### Annual Interest Cost
```
= Monthly Interest Cost × 12
Example: $27.11 × 12 = $325.32/year
```
#### Dividend Income (from Dividend Tracker)
```
= Pull from Dividend Tracker "TOTAL EXPECTED DIVIDENDS"
Example: $2,847.32/month
```
#### Coverage Ratio
```
= Dividend Income ÷ Monthly Interest Cost
Formula: =IFERROR(Dividends / Interest, 0)
Example: $2,847.32 ÷ $27.11 = 105.0x 🟢
```
**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: $228,809.41 ÷ $2,992.70 = 76.5:1 🟢🟢🟢
```
**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 $30k+, consider selling)
#### Current Draw vs Fixed Expenses
```
Current monthly draw: $4,500 (fixed expenses only)
Target: Start with $4,500, scale to $6,213, $8,000, $10,000 based on data
```
### 6. Scaling Alerts (Time-Based)
**Strategy Start Date**: October 9, 2025
**Calculate months elapsed**:
```python
from datetime import datetime
start = datetime(2025, 10, 9)
current = datetime.now()
months_elapsed = (current - start).days // 30
```
#### Month 6 Alert (April 2026)
```
📊 MONTH 6 MILESTONE CHECK:
✅ Dividends: $2,847/month (need $2,000+)
✅ Portfolio-to-Margin Ratio: 76.5:1 (need 4:1+)
✅ Dividend Growth: On track
🎯 RECOMMENDATION: Scale margin draw to $6,213/month (add mortgage)
- Current: $4,500 (fixed expenses only)
- New: $6,213 (fixed + mortgage)
- Safety margin: Excellent
```
#### Month 12 Alert (October 2026)
```
📊 MONTH 12 BREAK-EVEN CHECK:
Expected Dividends: $4,500+/month (goal: break-even with margin interest)
✅ IF achieved: Consider scaling to $8,000/month (add some variable expenses)
⚠️ IF not: Hold at $6,213, assess strategy
```
#### Month 18 Alert (April 2027)
```
📊 MONTH 18 MATURE STRATEGY CHECK:
Expected Dividends: $7,000+/month
Expected Margin: Declining (dividends paying down debt)
✅ IF achieved: Consider scaling to $10,000/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 $20k business income
```
#### Critical (Emergency)
```
⛔ Ratio < 2.5:1 OR margin call risk
Action: STOP draws, inject $30k+ 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**:
1. **Data-driven**: Decisions backed by actual dividend income, not projections
2. **Safety-first**: Never scale if ratio drops below 3.5:1
3. **Business income as insurance**: Available $22k/month, not primary strategy
4. **Monte Carlo backstop**: 98.5% of scenarios used business income at some point
## Business Income Backstop
**Available**: $22,000/month from business operations
**Usage Scenarios**:
1. ⛔ **Margin call (ratio < 3:1)**: MUST USE business income immediately
2. ⚠️ **Market correction (20-30% drop)**: OPTIONAL - assess need
3. 🎯 **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: $228,809.41
Margin Balance: $2,992.70
Ratio: 76.5:1 🟢🟢🟢
Monthly Interest: $27.11
Dividend Income: $2,847.32
Coverage: 105.0x 🟢
Status: Excellent - building foundation
```
### Scenario 2: Month 6 (Projected)
```
Portfolio Value: $280,000 (projected with W2 contributions)
Margin Balance: $25,000 (scaled to $6,213/month draw)
Ratio: 11.2:1 🟢
Monthly Interest: $227
Dividend Income: $4,500 (projected)
Coverage: 19.8x 🟢
Status: Healthy - on track for break-even
```
### Scenario 3: Month 15 (Break-Even)
```
Portfolio Value: $350,000
Margin Balance: $50,000 (scaled to $8,000/month draw)
Ratio: 7.0:1 🟢
Monthly Interest: $453
Dividend Income: $6,800
Coverage: 15.0x 🟢
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 mcp__gdrive__sheets tool**:
```javascript
// 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 `date` command
## Example Scenario
**Trigger**: User downloads new Fidelity balances CSV
**Agent workflow**:
1. ✅ Read Balances CSV - Portfolio: $228,809.41, Margin: $2,992.70
2. ✅ Safety check - Previous: $0, Current: $2,992.70 (+$2,992.70 < $5k threshold) - PASS
3. ✅ Calculate metrics:
- Monthly interest: $27.11
- Portfolio-to-margin ratio: 76.5:1
- Coverage ratio: 105.0x (dividends ÷ interest)
4. ✅ Add entry to Margin Dashboard:
- Date: 2025-11-11
- Balance: $2,992.70
- Rate: 10.875%
- Cost: $27.11
- Notes: "Month 1 - Building foundation, on track"
5. ✅ Update summary section:
- Current balance: $2,992.70
- Monthly cost: $27.11
- Annual cost: $325.32
- Dividend income: $2,847.32
- Coverage: 105.0x
6. ✅ Generate status: "🟢 Excellent health - Ratio 76.5:1, Coverage 105x"
7. ✅ LOG: "Updated Margin Dashboard - Month 1, $2,992.70 balance, 76.5:1 ratio"
---
**Skill Type**: Domain (workflow guidance)
**Enforcement**: BLOCK (financial risk critical)
**Priority**: Critical
**Line Count**: < 400 (following 500-line rule) ✅
Name Size