mµ — Platform Blueprint

Data Architecture · Core Math · Interface Map

June 2026
Internal · Pre-release
Google Sheets Workbook · Single Source of Truth
5 tabs published as CSV · public CORS headers · fetched client-side in the browser
LIVE
Index
gid 235288692
date
index_level
market_cap
weighted_multiple
included_count
risk_free_rate
Mµ Index Section
+ Hero Stats
Assets
gid 128077220
ASSET · ARTIST
VALUATION · VAL_MULT
YRS_MKT
µ(12m/24m/36m/ALL)
σ(12m/24m/36m)
~600 rows
Search Index
+ Valuation Lab
News
gid 193864162
source · published_at
title · summary · url
category
impact_score
Market News Feed
Trades
gid 2040938702
date · title · source
deal_value · url
bucket · asset_type
confidence
Trade Tape Feed
Rates (DGS10)
gid 1926999961
date · raw_yield
ma_20_obs
ma_60_obs
ma_120_obs
ma_26wk · ma_52wk
RFR Breakdown Modal
+ WACC Build-Up
Current architecture: The front-end is a pure static site (HTML + CSS + JS, no backend, no build step). On load, it fetches each Sheet tab as a published CSV using ?output=csv — Google returns these with access-control-allow-origin: *, so no proxy is needed. All computation (index stats, valuation math, WACC build-up, chart rendering) happens entirely in the browser via Chart.js. The Sheet is the only thing that needs to change to update the data.
Access control: All three pages (main tool, Pitch deck, Blueprint) are protected by a client-side SHA-256 credential gate (auth.js). Credentials are hashed — plaintext is never stored anywhere. Authentication state is held in sessionStorage and clears when the browser tab closes. This provides deterrence-level protection suitable for a pre-public proprietary tool on a public host.

Future state — automated data engines (each writes to its Sheet tab on a scheduled cadence)

Stream Intelligence Engine
Luminate / BDS API → weekly µ/σ per asset → Assets tab
Index Calculation Engine
Market-cap weighting, rebalancing → Index tab
Trade Monitor
Deal scraping + NLP classification → Trades tab
News Aggregator
RSS + LLM impact scoring → News tab
Rates Puller
FRED API → DGS10 daily → Rates tab
Valuation Engine
Auto-model multiples from catalog data → Assets tab
Each engine fires on a scheduled cadence (daily / weekly) and writes its output back to the same Sheets workbook. The front-end never changes — only the data does. This is the architectural advantage of starting with Sheets as the transport layer.

1 · Index Statistics

Weekly Log Return
rt = ln( Levelt / Levelt−1 )
Computed from the weekly index_level series (~51 data points, 7-day spacing).
Index µ — Annualized
µ = mean(rt) × 52
Annualizes weekly mean log return. Not winsorized at the index level (unlike constituents).
Index σ — Annualized
σ = sample_stdev(rt) × √52
Matches the constituent convention used in the intelligence tool's value_track_as_of.
Period Returns
Δ = Level[n] / Level[n−k] − 1
k = 1 (1-week), 4 (4-week), 0→first point (full period).
µ/σ (Risk-Adjusted Signal)
µ/σ = µ(36m) / σ(36m)
Per-constituent signal. Higher = better return per unit of risk. Used for sorting in the Search Index.

2 · Streaming Forecast (Valuation Lab — Tab 1)

Year-0 Cash Flow
CF0 = Streams × $/stream
Default $0.0035/stream (blended industry rate). Adjustable down to $0.0001 for thin-payout platforms.
Pre-fill from Index Data
Streams = (Valuation ÷ Multiple) ÷ $0.0035
Reverse-engineers the stream volume implied by the index's valuation and multiple for any asset.
Decay Mode — Default Growth Rate
rt = floor + (µ − floor) × dt−1
d = decay factor (default ⅔). floor = 0. Tapers from µ toward floor each year. Most realistic model for catalog behavior.
Manual Mode
rt = µ  (t ≤ N),  else g
Two-stage cliff: hold µ for N years (persistence window), then drop to flat terminal rate g. Full analyst control.
Static Mode — CAGR-Equivalent g
g = ( ∏(1 + rt) )1/10 − 1
10-year CAGR-equivalent of the decay path. Auto-derived; overridable. Communicates the same terminal value as Decay in a single flat number.
Cash Flow Compounding
CFt = CFt−1 × (1 + rt)
Applied for t = 1 … 10. Cumulative = Σ CF1 … CF10 (reported at the bottom of the forecast table).
Blended µ Preset
µblend = Σ(µh × wh) / Σwh
Weights: 12m × 50% + 24m × 30% + 36m × 20%. Renormalizes over whichever horizons exist. Default when an asset loads.

3 · Market Mix — Revenue Expansion (Tab 2)

Master Total
Master = Streaming ÷ strmShare
strmShare default 70%: streaming is assumed to be 70% of total Master recording revenue.
Total Catalog Revenue
Total = Master ÷ masterShare
masterShare default 66.7%: Master recording is ⅔ of total catalog (Master + Publishing).
Publishing Total
Pub = Total − Master
The residual: everything above the Master recording line flows to Publishing.
Pub-Only Scope (DCF Summary)
Pub = (Streaming ÷ strmShare) × (pubShare ÷ masterShare)
When Master is excluded from scope, Pub is derived from streaming as the anchor — no double-counting.
Sub-Component Revenue
Revenue = Total × share%
Applied per medium within Master and Pub. All shares are editable in the UI.
Default Master shares (% of Master): Streaming 70% · Physical 13% · Neighboring Rights 9% · Sync 5% · Other 3%
Default Pub shares (% of Pub): Performance Rights 50% · Mechanicals 20% · Sync 25% · Other 5%

4 · Vinyl Margin (Tab 3)

Landed Cost / Unit
landed = mfg × (1 + freight% + other%)
Rolls freight and incidental overhead into per-unit manufactured cost.
Net Sellable Units
netSell = units × (1 − spoilage%)
Removes promo copies and damaged inventory from the sellable pool.
Net Price / Unit
netPrice = wholesale × (1 − dist%)
After distributor take (default 20% of gross wholesale).
Depletion Schedule
[50%, 25%, 20%, 5%] of netSell/yr
Front-loaded. Capped at max units/year. Carryover rolls to next year if cap is hit.
Net Margin (full run)
margin = (sold × netPrice × cycles) − (landed × units × cycles)
Each repress is a new cycle: pressed when the prior run depletes, extends the schedule ~4 years.
Default Vinyl (no custom model)
VinylCFt = StreamCFt × 0.20
Quick estimate: assumes vinyl = 20% of streaming revenue each year. No inventory depletion logic applied.

5 · DCF Summary — Net Present Value (Tab 4)

10-Year NPV
NPV = Σt=0..10 CFt / (1 + r)t
r = discount rate set in the DCF Summary DR input. t=0 is undiscounted (current year). Aggregates all in-scope components.
Aggregated Annual Cash Flow
CFt = Σ(all in-scope components year t)
Master + Pub sub-components, vinyl cash flows, custom forecast — summed per year based on active scope toggles.
Undiscounted Cumulative
Total = Σ CF1..10
The pre-discount sum displayed at the modal footer. Compare against NPV to see the time-value cost of waiting for future cash flows.

6 · WACC Build-Up & Multiple Framework (RMC Modal)

WACC (Bottom-Up)
WACC = Rf + β×ERP + Illiq + Perf + Conc
Each component is computed live from index data and current asset metrics. Suggested range = WACC ± 1.5 pts.
Gordon Growth Multiple
GG = 1 ÷ (WACC% − g%)
g = terminal growth rate (default 0.5%). Only meaningful when WACC−g > 1 pt. Represents the steady-state intrinsic multiple at these assumptions.
DCF Implied Multiple
DCFimpl = Mkt Val ÷ (Σ CF / 10)
What multiple is the market assigning vs. the average modeled annual cash flow. A calibration signal: divergence from GG indicates mis-priced cash flows or different terminal assumptions.
Market Comp Multiple
Mkt = VAL_MULT (from index)
The multiple at which the asset is currently trading in the index. Compared against GG and DCF Implied to triangulate a suggested range.
WACC Component Detail
ComponentSymbolSource / Logic
Risk-Free Rate Rf Live DGS10 raw yield (FRED via Sheets). Fallback 4.25% if unavailable.
Beta × Equity Risk Premium β × 5.0% β proxied from σ(36m): <8% → 0.35, <15% → 0.55, <25% → 0.75, ≥25% → 1.00. ERP fixed at 5%.
Illiquidity Premium 2.0 – 4.0% Music catalogs are illiquid assets. Age-adjusted: <3 yrs → 4.0%, <6 yrs → 3.0%, <10 yrs → 2.5%, ≥10 yrs → 2.0%.
Performance Risk 0 – 2.5% Penalizes declining catalogs. µ < −15% → +2.5%, µ < −5% → +1.5%, µ < 0% → +0.75%, µ ≥ 0% → 0%.
Concentration Premium 1.0% Fixed single-asset premium. Reflects idiosyncratic risk of holding one catalog vs. a diversified portfolio.
Total WACC Σ above Rounded to 2 decimal places. Applied directly as the discount rate in the NPV calculation when "Apply to Toolkit" is clicked.

7 · Knobs & Levers — What Can Be Turned

Revenue / Stream
$0.0035 default · min $0.0001
↑ Higher = streaming-heavy catalog at good payouts. ↓ Lower = models thin-payout platforms (YouTube, TikTok).
Growth Model
Manual / Decay / Static
Decay = realistic taper; Static = CAGR-equivalent flat; Manual = full two-stage control.
µ (Growth Anchor)
12m / 24m / 36m / Blend preset
Blend weights recent momentum more. 12m = aggressive; 36m = conservative; Blend = default for loaded assets.
Decay Factor d
Default 0.6667 (⅔ kept/yr)
0.5 = half-life each year; 1 = no decay (flat µ forever). Lower d = steeper early taper.
Terminal Floor
0% (engine-ready; UI pending)
Sets the asymptote of the decay curve. Negative = gentle long-run decline.
Terminal g
0.5% default
Manual/Static long-run steady-state rate. Gordon Growth model anchor. Static auto-derives from decay path.
Discount Rate (WACC)
11% default · RMC modal auto-fills
Set manually in DCF Summary or applied from the WACC build-up in the Rate & Multiple Analysis modal. Drives NPV.
Master Share of Total
66.7% default
Changes the Master/Pub split. Lower = more Publishing-heavy catalog structure.
Streaming % of Master
70% default
How streaming-dependent the Master revenue is. Lower = more diverse catalog.
Acquisition Scope
Master only / Pub only / Both
DCF Summary isolates exactly which rights are in scope. Critical for pricing partial acquisitions.
Vinyl Inputs
mfg · units · price · dist · spoil
Models any pressing scenario. Represses chain cycles and extend the horizon up to 10+ years of cash flows.
µ Persistence (Manual)
Default 3 years
How long the current growth rate holds before the cliff to terminal g. Key sensitivity in the manual model.
Physical Exclusion (auto)
Triggered when vinyl is modeled
Prevents double-counting: if Vinyl tab is active, Physical Vinyl is automatically zeroed out of Market Mix.
1
Navigation & Access Gate
AUTH-GATED
Fixed top bar with mµ brand mark and section anchor links. All three pages (main tool, Pitch, Blueprint) are protected by a full-screen SHA-256 credential gate injected via auth.js — the page content is only revealed after successful login. Session token stored in sessionStorage; clears on tab close.
Index Assets Valuation Lab News Trades Markets Pitch → Blueprint →
2
Hero
LIVE DATA
Full-bleed intro section with brand mark, tagline "Value Your Mµsic", mission statement, and two CTAs. Below the copy, a 3-stat row pulled live from the Index sheet.
Index Level Tracked Market Cap Indexed Asset Count
3
Mission
STATIC COPY
Short positioning statement: "Every great song is an income-producing asset — yet music has traded in the dark, priced by a handful of insiders. mµ exists to change that." No data dependencies.
4
Mµ Index
LIVE · WEEKLY
Market-cap weighted benchmark for the music asset class, base 100 like the S&P 500. Area line chart with 3 series toggles. 9 stat cards above the chart. Clicking the Risk-Free Rate card opens the RFR Breakdown modal.
Index Level (chart) Market Cap (chart) Weighted Multiple (chart) 1-Week Change 4-Week Change Period Change Index µ (annualized) Index σ (annualized) Risk-Free Rate → modal
5
Search Index
LIVE · ~600 ASSETS
Searchable, sortable table of every Mµ Index constituent. Live-filter search by track name or artist. All 8 columns are sortable. Clicking any row opens the Valuation Lab pre-filled with that asset's live index data (valuation, multiple, µ/σ metrics, years on market). The chip row at the top of the modal reflects these values throughout the session.
Asset (track name) Artist Valuation ($) Multiple (×) µ 36m (%) σ 36m (%) µ/σ ratio Years on Market
6
Valuation Lab
CORE TOOL · MODAL
The analytical heart of the platform. Open as a blank toolkit or click any asset row to pre-fill from live index data. Asset metrics shown in a chip row at the top: Valuation · Multiple · µ(36m) · σ(36m) · µ/σ · Yrs Mkt. Four tabs share live state — changes in Streaming Forecast flow through to Market Mix and DCF Summary automatically.
7
Rate & Multiple Analysis (RMC Modal)
WACC · MULTIPLES · SIGNALS
A dedicated overlay — triggered from the DCF Summary tab — that performs a bottom-up WACC build-up and multiple framework analysis for the currently loaded asset. All inputs are derived live from index data, the streaming forecast, and the DGS10 rate feed. Results are asset-specific, not generic benchmarks.
8
Bookmarks
PERSISTENT · localStorage
A save/restore system for complete Valuation Lab sessions. Accessed from the bookmarks panel button in the DCF Summary tab. Captures all inputs, growth model state, scope toggles, and the asset name and title — so any analysis can be named, saved, and reloaded in a future session without re-entering data.
Save current state Named bookmarks Asset name + artist captured Date/time stamp One-click restore Delete individual saves Persists across sessions (localStorage)
9
Market News + Trade Tape
LIVE · DUAL FEED
Side-by-side scrollable feed cards. Market News: headlines tagged by category and impact score, links out to source. Trade Tape: catalog sales and acquisitions with deal value, confidence score, asset type classification (master/pub/both), and bucket tag (e.g. "sale", "acquisition"). Up to 80 items per feed.
10
Prediction Markets
COMING SOON
Intentional placeholder, linked live to Kalshi's Culture & Music market category. Positioned as a sentiment and leading-indicator layer: Grammy odds, chart debut probabilities, tour gross predictions, album awards. No live data ingested yet — this is the next planned data integration.