Strategy Treasury Analysis
Analyze MicroStrategy (now “Strategy”) bitcoin treasury and preferred securities.
When to Use
When user asks about MSTR, Strategy, bitcoin treasury, or preferred securities (STRK, STRF, STRD, STRC).
Data Sources
- Yahoo Finance API - stock prices for MSTR and preferreds (no auth required)
- Coinbase API - BTC price (no auth required)
- strategytracker.com - NAV, premium, BTC holdings (via read_webpages if needed)
Commands
# Get BTC price
curl -s "https://api.coinbase.com/v2/prices/BTC-USD/spot" | python3 -c "import sys,json; print(json.load(sys.stdin)['data']['amount'])"
# Get all Strategy securities prices
for ticker in MSTR STRD STRF STRK STRC; do
curl -s -H "User-Agent: Mozilla/5.0" "https://query1.finance.yahoo.com/v8/finance/chart/$ticker" | \
python3 -c "import sys,json; d=json.load(sys.stdin); m=d['chart']['result'][0]['meta']; print(f'{ticker}: \${m[\"regularMarketPrice\"]:.2f}')" 2>/dev/null
done
# Get detailed quote data (includes more fields)
curl -s -H "User-Agent: Mozilla/5.0" "https://query1.finance.yahoo.com/v8/finance/chart/STRD?interval=1d&range=1d" | python3 -c "
import sys,json
d=json.load(sys.stdin)['chart']['result'][0]['meta']
print(f'''Price: \${d[\"regularMarketPrice\"]:.2f}
52wk High: \${d.get(\"fiftyTwoWeekHigh\", 0):.2f}
52wk Low: \${d.get(\"fiftyTwoWeekLow\", 0):.2f}
Volume: {d.get(\"regularMarketVolume\", 0):,}''')
"
Preferred Stock Details
| Ticker | Type | Fixed Dividend | Par Value | Cumulative | Convertible | Seniority |
|---|---|---|---|---|---|---|
| STRK | Perpetual Preferred | 8% | $100 | Yes | Yes (10:1) | Senior |
| STRF | Perpetual Preferred | 10% | $100 | Yes | No | Senior |
| STRD | Perpetual Preferred | 10% | $100 | Yes | No | Junior to STRF |
| STRC | Variable Rate | Variable | $100 | NO | No | Junior to STRD |
Effective Yield Calculation
Effective Yield = (Annual Dividend / Current Price) × 100
Examples:
- STRD at $77.62 with 10% fixed = ($10 / $77.62) × 100 = 12.88%
- STRF at $104.75 with 10% fixed = ($10 / $104.75) × 100 = 9.55%
- STRK at $86.59 with 8% fixed = ($8 / $86.59) × 100 = 9.24%
- STRC at $100 with 11% variable = ($11 / $100) × 100 = 11%
Note: STRC’s dividend rate is variable and changes periodically. Check the official Strategy app for current rate.
Full Analysis Script
# Run full Strategy treasury analysis
python3 << 'PYEOF'
import urllib.request
import json
def fetch_json(url):
req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
with urllib.request.urlopen(req) as resp:
return json.load(resp)
# BTC price
btc = float(fetch_json("https://api.coinbase.com/v2/prices/BTC-USD/spot")['data']['amount'])
# Stock prices
tickers = ['MSTR', 'STRD', 'STRF', 'STRK', 'STRC']
prices = {}
for t in tickers:
try:
data = fetch_json(f"https://query1.finance.yahoo.com/v8/finance/chart/{t}")
prices[t] = data['chart']['result'][0]['meta']['regularMarketPrice']
except:
prices[t] = None
# Dividend rates (fixed, except STRC is variable - use placeholder)
dividends = {'STRK': 8, 'STRF': 10, 'STRD': 10, 'STRC': 11} # STRC rate may vary
print("*Strategy Treasury Summary*\n")
print(f"BTC Price: ${btc:,.2f}")
print(f"MSTR: ${prices['MSTR']:.2f}\n")
print("*Preferred Securities*")
for t in ['STRK', 'STRF', 'STRD', 'STRC']:
if prices[t]:
eff_yield = (dividends[t] / prices[t]) * 100
vs_par = ((prices[t] - 100) / 100) * 100
par_status = f"+{vs_par:.1f}% premium" if vs_par > 0 else f"{vs_par:.1f}% discount"
print(f"{t}: ${prices[t]:.2f} ({par_status}) → {eff_yield:.2f}% effective yield")
PYEOF
Risk Indicators
-
Premium to NAV - fetch from strategytracker.com if needed
- <20% is compressed
- <0% is danger zone (market values MSTR below its BTC)
-
Preferred prices vs par ($100)
- Deep discount = higher yield but market pricing risk
- Premium = call risk (callable at par)
-
BTC vs cost basis - impairment risk if BTC falls below ~$40k avg cost
Notes
- The official Strategy app (strategytracker) has the most accurate effective yields
- Yahoo Finance API may have slight delays
- STRC’s variable rate changes - always verify current rate
- Use user-provided screenshots from Strategy app as authoritative when available