# Transaction Ledger & Evidence Ratio Methodology
## cebetracker.io /evidence/ page
## Strategy (MSTR) Data Anchor
## Version: 2026-04-21 | Rows: 58 (#50-107) | Canonical gap series: 58 rows, 32 columns

---

## Part 1: Transaction Ledger

### 1.1 Scope

The ledger covers Strategy's preferred era: January 6, 2025 (row #50, last pre-preferred baseline) through April 20, 2026 (row #107, most recent 8-K). Each row represents one strategy.com/purchases entry, typically mapping to a single weekly 8-K filing period. Some rows combine two filing periods when strategy.com reports them as one entry.

All 58 rows are VERIFIED from individual SEC EDGAR 8-K filings across sessions 1-5 of the data anchor thread. Source URLs trace to stable SEC Archives paths.

### 1.2 Capital Flow Distinction: Raised vs. Deployed

Strategy's quarterly BTC rollforward footnotes (8-K Ex 99.1) report capital deployed to BTC purchases, not total capital raised. This was confirmed by matching Q4 2025 footnote totals ($3,086M) against BTC acquisition cost ($3,085M) to the million.

The ledger captures capital raised (total ATM net proceeds and IPO net proceeds). For /evidence/, capital raised is the structurally relevant number: it measures what the preferred machine produced, not what it consumed.

Cross-check protocol: after each quarter, compare footnote sum vs BTC cost (validates footnote = deployed), then compare extraction totals vs footnote totals (delta = cash build + dividends).

### 1.3 Unit Convention

All dollar columns use raw dollars. Example: $850M = 850,000,000. This matches the Snapshots tab in the master Google Sheet.

Share columns with `_k` suffix are in thousands (matching `adso_thousands`). Columns without `_k` suffix are raw counts.

Prior to normalization (2026-04-21), `_face_usd` columns were stored in thousands ($K). Corrected by multiplying all face values by 1000. The `_net_proceeds_usd` columns were already in raw dollars.

### 1.4 Data Integrity Rules

**Biconditional rule:** `(funding_pct_pref > 0%) iff (preferred_event == TRUE)`. Validated after every session. Final state: 0 violations across 58 rows.

**preferred_event (narrow):** TRUE if and only if new preferred capital was raised that week (net proceeds > 0 for any series). Balance-sheet-only weeks are FALSE.

**Source URL requirement:** Every row has a `source_url` pointing to the stable SEC Archives path for its 8-K filing.

### 1.5 Known Corrections

Row #54 `strk_face_usd`: originally written as 73,000 ($K) in session 5, missing one zero. Should have been 730,000 ($K). After normalization became 73,000,000 instead of 730,000,000. Corrected to 730,000,000. This affected cumulative preferred face from row #54 onward by -$657M, understating the terminal gap by ~2,400 sats until fixed.

Rows #94-107 (2026): net proceeds were initially blank (face values populated but net proceeds not extracted from 8-Ks). Fixed by using face as net proceeds proxy (STRC trades at par, error < 1%). Flagged in pref_data_note as "[net=face proxy, pending 8-K re-extraction]."

MSTR_20260412 and MSTR_20260419 `preferred_usd`: corrected from stored values to match component face sum. $31M delta from stale STRE EUR/USD conversion. Face components are authoritative.
Row #87 `stre_face_usd`: was 0. STRE IPO face (EUR 775M) was never converted to USD, so $806M of preferred claims were missing from cumulative preferred face on rows #87-107. Fixed by converting at current snapshot EURUSD rate (1.04): EUR 775M x 1.04 = $806M. This increased the terminal gap by ~3,000 sats.

STRE FX convention: the transaction ledger converts STRE at the current snapshot EURUSD rate (1.04), not the issuance rate (1.174). The gap series measures current claims. The $104M difference (issuance vs current) is a known approximation; a live implementation would re-convert at each quarter's rate.


Row #54 `strk_face_usd`: written as 73,000 ($K) in session 5, missing one zero. Should have been 730,000 ($K). After normalization became $73M instead of $730M. Corrected to $730,000,000. Impact: understated cumulative preferred by $657M from row #54 onward, understated terminal gap by ~2,400 sats.

Row #87 `stre_face_usd`: was $0. STRE face (EUR 775M) was never converted to USD or added to `pref_total_face_usd`. Fixed: EUR 775M x 1.04 = $806M. Impact: understated cumulative preferred by $806M from row #87 onward, understated terminal gap by ~3,000 sats.

### 1.6 Filing Format Evolution

| Era | Format | Notes |
|---|---|---|
| Jan-Apr 2025 | Narrative | "sold N shares...for net proceeds of $X". Parse from prose. |
| May-Jun 2025 | 2-column | Shares Sold + Net Proceeds. Face computed from shares x $100. |
| Jun-Aug 2025 | 3-column | Shares + Notional (face) + Net Proceeds. Both directly readable. |
| Sep-Dec 2025 | "Ticker Stock" | Labels changed from "TICKER ATM" to "TICKER Stock". No "TICKER Shares" after count. |
| Jan 2026+ | STRC-dominated | Same as Sep-Dec. STRC becomes primary funding mechanism. |

---

## Part 2: Canonical Gap Series

### 2.1 What the Gap Measures

The gap is the difference between FD BPS and CEBE in satoshis per share:

```
Gap = FD BPS - CEBE (in sats/share)
```

FD BPS treats all BTC as belonging to common equity. CEBE subtracts senior claims first. The gap quantifies the overstatement: how much BTC per share the industry's standard metric (FD BPS) attributes to common shareholders that actually belongs to debt holders and preferred stockholders.

### 2.2 Data Sources and Join Specification

The canonical gap series joins two data sources:

**Weekly data from the transaction ledger (real 8-K data per row):**
- `cumulative_btc` (total BTC holdings)
- `basic_shares_derived_k` (basic shares for CEBE denominator)
- `adso_thousands` (assumed diluted shares for BPS denominator)
- Preferred face values per series (accumulated to cumulative `cum_pref_face`)
- `btc_reserve_usd` (BTC holdings at market value, from which 8-K market price is derived as `btc_reserve_usd / cumulative_btc`)

**Quarterly data from Snapshots tab (step-function interpolation):**
- `debt_usd` (total convertible and other debt)
- `cash_usd` (cash and cash equivalents)

Step-function is correct because debt and cash don't change between quarterly filings. The 2030B convertible ($2B, Feb 2025) and Q4 2025 cash build ($38M to $2,301M) appear as discrete steps at the quarterly snapshot boundary, which is when they were actually reported.

Everything else is real weekly data from 8-Ks. No interpolation on BTC holdings, shares, preferred face, or BTC price.

### 2.3 Computation

For each of the 58 weeks:

```
Net Senior Claims (USD) = Debt + Cumulative Preferred Face - Cash
Net Senior Claims (BTC) = Net Senior Claims (USD) / BTC Price
CEBE = (BTC Held - Net Senior Claims in BTC) / Basic Shares
FD BPS = BTC Held / ADSO
Gap = (FD BPS - CEBE) x 100,000,000  [convert to sats]
Delta G = Gap(this week) - Gap(prior week)
```

**CEBE denominator:** Basic shares (from `basic_shares_derived_k`). Never fully diluted.

**BPS denominator:** ADSO (from `adso_thousands`, sourced from strategy.com/shares). This is Strategy's published assumed diluted share count, which includes converts at their stated conversion ratios plus outstanding RSUs and options.

### 2.4 Price Versions

The canonical CSV computes every row at two BTC prices:

**Raw (8-K market price):** `btc_reserve_usd / cumulative_btc`. This is the implied market price at the time Strategy filed the 8-K. Shows the gap investors actually experienced.

**Normalized ($77,500 fixed):** Strips BTC price volatility. Isolates pure capital structure changes: share issuance, preferred growth, debt changes, cash moves. Used for the evidence ratio analysis.

The two converge at the terminal (#107) because $77,500 is near the Apr 20 8-K market price ($77,453). They diverge at baseline (#53) because Jan 2025 BTC was $104,840.

### 2.5 Terminal Statistics

| | Raw (8-K price) | Normalized ($77,500) |
|---|---|---|
| Baseline #53 (Jan 27, 2025) | 4,533 sats | 14,155 sats |
| Terminal #107 (Apr 20, 2026) | 51,974 sats | 51,931 sats |
| Expansion | 47,442 sats | 37,776 sats |
| Growth | 1,047% | 267% |

Raw growth (1,047%) is inflated by BTC price decline ($104,840 to $77,453). Fixed-dollar claims grow in BTC terms as price falls, mechanically widening the gap. The normalized 267% reflects pure capital structure expansion.

### 2.6 STRE FX Handling

STRE is EUR-denominated (EUR 775M face). The transaction ledger stores `stre_face_eur` (native EUR) and `stre_face_usd` (USD equivalent). The USD equivalent uses the current snapshot EURUSD rate (1.04 as of Apr 2026), not the issuance rate (1.174 at Nov 2025 IPO).

Rationale: the gap measures current claims against current BTC holdings. A EUR-denominated claim's USD equivalent changes with FX. Using the current rate reflects the actual claim size today. The issuance rate would overstate the current USD claim by ~$104M (EUR 775M x 1.174 = $910M vs EUR 775M x 1.04 = $806M).

The canonical gap series accumulates `stre_face_usd` from the transaction ledger into `cum_pref_face`. For more precise FX treatment, the gap series could re-convert STRE at each quarter's snapshot rate. Current implementation uses a single rate (1.04) applied at the transaction level. The difference across the period is within the noise floor of the analysis.

---

## Part 3: Evidence Ratio Analysis

### 3.1 Question

Do preferred-event weeks cause the gap to expand, or does the gap expand for other reasons (BTC price, share dilution, debt changes) with preferred events being coincidental?

### 3.2 Event Definition (Pass 2: 0.5% Materiality Threshold)

A preferred-event week is any week in which:
- A new preferred series debuted (IPO/first issuance), OR
- Existing preferred series expanded through ATM activity exceeding 0.5% of total preferred face outstanding at the start of that week.

Rate modifications are excluded. They affect wrapper cost (annual dividend burden) but not claims size (BTC committed to senior obligations). The gap measures claims size.

This definition was tested at three thresholds (Pass 1: any >$0, Pass 2: 0.5%, Pass 3: 1.0%). The finding is threshold-insensitive.

### 3.3 Results (Normalized at $77,500)

| Metric | Value |
|---|---|
| Event weeks | 33 |
| Non-event weeks | 24 |
| Event mean Delta G | +1,518 sats |
| Non-event mean Delta G | -542 sats |
| Event share of total expansion | 135% |

Non-event mean is negative. Event weeks are the sole source of gap expansion. Event share exceeds 100% because event weeks must overcome non-event compression to produce net expansion.

### 3.4 Threshold Sensitivity

| Pass | Threshold | Event weeks | Event mean | Non-event mean | Event share |
|---|---|---|---|---|---|
| Pass 1 | Any pref > $0 | 42 | +1,179 | -830 | 134% |
| Pass 2 | 0.5% of face | 33 | +1,518 | -542 | 135% |
| Pass 3 | 1.0% of face | 24 | +2,083 | -391 | 135% |

Non-event mean is negative across all three passes. The conclusion does not depend on threshold choice. A critic cannot argue the threshold was cherry-picked.

### 3.5 Frequency

Event weeks expand the gap 76% of the time (25/33 positive Delta G). Non-event weeks compress the gap 75% of the time (18/24 negative Delta G). The gap has a directional bias that flips with preferred activity.

### 3.6 Magnitude Correlation

Pearson r = 0.9435 (p < 0.0001) between preferred issuance size and normalized gap expansion. Nearly perfect. The relationship is mechanical: larger preferred face directly increases net senior claims in BTC terms, which widens the BPS-CEBE gap proportionally.

Top 5 Delta G weeks are the top 5 issuance weeks in exact order: #73 STRC IPO ($2,801M, +11,987), #107 STRC ATM ($2,180M, +7,087), #68 STRD IPO ($1,250M, +5,395), #103 STRC ATM ($1,182M, +3,773), #58 STRF IPO ($871M, +3,413).

### 3.7 IPO vs ATM Weeks

| Subgroup | Count | Mean Delta G | Hit rate | Mean issuance |
|---|---|---|---|---|
| IPO weeks | 5 | +6,564 sats | 100% (5/5) | $1,026M |
| ATM weeks | 28 | +616 sats | 71% (20/28) | $231M |

IPOs are larger magnitude and 100% consistent. ATM weeks are smaller individually but cumulative: 28 weeks x +616 = +17,248 sats total from ATM, vs 5 weeks x +6,564 = +32,820 from IPOs. Both mechanisms contribute materially.

### 3.8 Reference Items

**Row #55 (Feb 24, 2025):** 2030B convertible note $1.99B. Classified as non-event (not preferred). Delta G = +9,436 sats at $77,500. This is a senior-claims event (adds $2B debt) but not a preferred event. It sits in the non-event pool and pulls the non-event mean upward, making the finding conservative.

**Row #92 (Dec 31, 2025):** STRC rate change 10.75% to 11.00%. Zero capital raised. Delta G = -9,375 sats. Driven by the cash step-function ($54M to $2,301M at Q4 boundary), not by the rate change. Classified as non-event under the evidence definition (rate changes excluded). The large negative Delta G is a data artifact of quarterly cash interpolation.

---

## Part 4: File Inventory

| File | Location | Contents |
|---|---|---|
| `mstr_transactions_verified_normalized.tsv` | /outputs/ | 58-row transaction ledger, 44 columns, all VERIFIED, units normalized to raw dollars |
| `gap-series-canonical.csv` | /verification/evidence/ | 58-row canonical gap series, 32 columns, raw + normalized, Pass 2 event classification |
| `mstr_evidence_ratio_analysis.csv` | /outputs/ | 58-row event classification with three materiality passes |
| `mstr_evidence_supplemental.csv` | /outputs/ | 34-row scatter data (pref_atm_usd vs delta_g_normalized) for correlation |
| `mstr_preferred_event_weeks.csv` | /outputs/ | 55-row event listing with reasons (pre-normalization, superseded by canonical) |
| `mstr_contingent_dilution_audit.md` | /outputs/ | 11-instrument toxicity audit. No toxic convertibles. STRK floating liq pref flagged. |
| `mstr_costs_2026-04-25.tsv` | /outputs/ | 18-row costs tab, new schema with cost_id primary key |
| `mstr_q2_2026_snapshots.tsv` | /outputs/ | Q2 2026 snapshot row, schema-aligned |

### Canonical File for /evidence/ Page

`gap-series-canonical.csv` is the single source of truth for the evidence page rebuild. Every input is visible per row. Every intermediate value is computed, not inherited. The file supersedes the prior `verified-gap-series.csv` (64-row synthetic dataset from an earlier session with unknown price source and share count methodology).

---

## Part 5: What Changed From the Published Article

The published article (Section 06) cited baseline 9,068 sats, terminal 50,788 sats, expansion 41,720 sats, growth 460%. These numbers came from a 64-week synthetic dataset produced in a prior session. That dataset:

- Used an unknown BTC price source (not the 8-K market price)
- Used unknown share counts for the BPS denominator (likely FD shares from 10-K, not ADSO from strategy.com/shares)
- Had the STRK IPO face value wrong by a factor of 10 ($73M instead of $730M)
- Cannot be reproduced from any combination of inputs in the verified data

The canonical series replaces those numbers. For the article update:

**Section 06 (gap chart):** Use raw (8-K market price). Baseline 4,533 sats, terminal 51,974 sats, expansion 47,442 sats, growth 1,047%. This shows the gap as investors experienced it, including BTC price effects.

**Section 07/10 (evidence ratio):** Use normalized ($77,500). Baseline 14,155 sats, terminal 51,931 sats, expansion 37,776 sats, growth 267%. Event weeks are the sole source of expansion. Non-event mean is negative. Pearson r = 0.9435.

The two versions answer different questions. Raw: "what happened to the gap?" Normalized: "what caused the gap to move?" Both are in the canonical CSV, every input traceable.

---

*Methodology produced by the Strategy Data Anchor thread, cebetracker.io. All data traces to SEC EDGAR primary filings and the master Snapshots tab. No estimated or inherited values in the canonical gap series.*
