CFO Associates
CFO Associates

Spyglass JE Generator v2 New Reports

Spyglass Ventures PR LLC — Beta Loader + Realized G/L → QuickBooks Online

🔷 This is the v2 tool using simplified Lukka reports. Run it alongside the existing Spyglass JE Generator and compare outputs each month until fully validated.
Methodology Validation

Historical pivot reconciliation — proof tool matches Aug / Sep / Oct 2025

All Match
✓ Every Closed Lots aggregation the tool computes ties exactly to the values reported in the historical Lukka Closed Lots Pivot sheet for Aug, Sep, and Oct 2025. The Fee Wallet small deltas ($18–$26/month) are the deliberately-excluded Transfer-Fee rows (those go to the EXCHANGE FEES line instead, per v1 methodology). The Transit Wallet pivot reports a single combined total — the tool correctly splits it into Partners Distributions, Maple Loan Interest, and gas fees.
Attestant Staking — Expense-Disposal Ether (feeds Maple Reward Rights DR)
FieldAug 2025 PivotAug TOOLSep 2025 PivotSep TOOLOct 2025 PivotOct TOOLMatch
Cost Basis$1,093,944.77$1,093,944.77$1,100,291.79$1,100,291.79$1,056,032.02$1,056,032.02
Proceeds$1,095,500.50$1,095,500.50$1,102,987.56$1,102,987.56$1,053,617.67$1,053,617.67
Realized G/L$1,555.74$1,555.74$2,695.77$2,695.77−$2,414.35−$2,414.35
Fee Wallets (MEV) — Transfer-Disposal Ether (feeds Maple Reward Rights DR, fees excluded)
FieldAug 2025 PivotAug TOOLSep 2025 PivotSep TOOLOct 2025 PivotOct TOOLMatch
Cost Basis (pivot incl fees)$68,650.24$68,624.36$79,995.96$79,977.48$1,703,421.41$1,703,403.06
Proceeds (pivot incl fees)$71,172.26$71,145.73$79,486.66$79,468.21$1,642,713.12$1,642,694.93
Realized G/L$2,522.02$2,521.37−$509.31−$509.27−$60,708.29−$60,708.13
Note: tool excludes Transfer-Fee rows from Fee Wallet aggregation (small deltas of $18–$26 in cost/proc) — those rows go to the EXCHANGE FEES line per historical v1 methodology.
Contra-revenue (Gnosis Safe nodeset) & ICP Distributions (DFINITY)
Account / FieldAug 2025 PivotAug TOOLSep 2025 PivotSep TOOLOct 2025 PivotOct TOOLMatch
Gnosis Safe — Cost$67,399.40$67,399.40$0$0$0$0
Gnosis Safe — Proceeds$67,399.40$67,399.40$0$0$0$0
DFINITY ICP — Cost$122,461.34$122,461.34$0$0$0$0
DFINITY ICP — Proceeds$122,461.34$122,461.34$0$0$0$0
Transit Wallet decomposition — pivot total = ethDistProc + mapleInt + Transit gas fees
MonthPivot Total ProceedsTool: ethDistProc (ETH)Tool: mapleInt (USDC)Tool: Transit FeesTool SumMatch
Aug 2025$3,928,445.43$3,781,950.32$146,492.20~$2.91$3,928,445.43
Sep 2025$2,820,597.35$2,678,854.41$141,738.30~$4.65$2,820,597.36
Oct 2025$3,086,710.13$2,940,229.53$146,477.55~$3.05$3,086,710.13
The historical pivot collapses Transit Wallet to one line. The tool correctly splits it into three JE rows: PARTNERS DISTRIBUTIONS (ETH leg), Maple Loan Interest (USDC leg), and EXCHANGE FEES (gas).
Maple Reward Rights — what each month produces under the deployed formula
MonthattProc + fwProc (DR)attCost + fwCost (CR ETH)Net G/L (to Capital section)
Aug 2025$1,166,646.23$1,162,569.13gain $4,077.10
Sep 2025$1,182,455.76$1,180,269.27gain $2,186.49
Oct 2025$2,696,312.60$2,759,435.08loss $63,122.48
Feb 2026$202,246.00$202,995.74loss $749.74
Reconciliation: the DR/CR difference each month equals attGain + fwGain (the realized G/L on those disposals) and flows to CAPITAL LOSS / CAPITAL GAIN in Section 2. Aug/Sep small gains, Oct/Feb small losses. Magnitudes match Spyglass's historical pattern: ~$1.1M/month consensus from Attestant + $70K–$1.6M/month MEV from Fee Wallets.
How to reproduce these numbers yourself:
1. Open any monthly workbook in /Users/cfoakevin/Desktop/<NN>.25 Lukka Spyglass Activity.xlsx.
2. Open the Closed Lots Pivot sheet. The pivot labels rows "Maple Consensus rewards" (= Attestant Expense-Disposal) and "Maple Rewards payouts" (= Fee Wallet Transfer-Disposal).
3. Sum the Proceeds column for those two pivot rows. That sum equals the Maple Reward Rights DR the tool computes.
4. Sum the Cost Basis column for the same two rows. That sum equals the ETH credit the tool computes.
5. The difference between them is the realized G/L, which the tool routes to Capital Loss / Capital Gain rather than netting against Maple Reward Rights — consistent with how the historical JEs were structured.
Reference

How it works — JE line-by-line breakdown

Every line in the QBO journal entry is computed from one specific filter against one specific Lukka report. Click any section below to see the formula, source file, and the prior-month pivot that ties out to it. Use this when investigating a number that looks off, or when training a new team member on the workflow.
1. Staking & Income Recognition
DIGITAL ASSETS:ETH Debit
stakingTtl = Beta Loader Debit where Asset Code = "ETH"
Source: Beta Income QB Loader → ETH row, Debit column. This is the FMV-priced gross ETH income for the month (Staking + Staking Earned + Other, all assets re-priced).
Prior-month tie-out: matches the STAKING INCOME credit row of the Beta Loader (same number, opposite side).
DIGITAL ASSETS:EigenLayer Debit
eigen = Beta Loader Debit where Asset Code starts with "EIGEN" OR Asset Name = "EigenLayer"
Source: Beta Income QB Loader → EIGEN row.
Prior-month tie-out: equals the All Income & Expense sum where Sub Type = "Staking" AND Asset Name = "EigenLayer" (the Beta Loader pulls this 1:1, no re-pricing needed since EIGEN income carries USD).
DIGITAL ASSETS:FIL Debit
fil = Beta Loader Debit where Asset Code = "FIL" OR Asset Name = "Filecoin"
Source: Beta Income QB Loader → FIL row (FMV-priced).
Prior-month tie-out: Sub Type = "Other Income" rows in the All Income CSV, with FMV re-pricing applied in the Beta Loader.
STAKING INCOME Credit
stakingTtl (same value as ETH debit above)
Source: credits ETH staking income to the P&L. Mirrors the ETH debit so the gross income posts to revenue.
STAKING INCOME (EIGEN) Credit
eigen
Source: separate credit so EIGEN revenue is identifiable in QBO.
INTEREST INCOME Credit
fil
Source: FIL "Other Income" is booked to Interest Income per Spyglass policy.
EXCHANGE FEES Debit & DIGITAL ASSETS:ETH Credit
exchFees = SUM(Closed Lots.Cost Basis) WHERE Disposal Type IN ("Trade - Fee","Transfer - Fee")
Source: Closed Lots CSV. Picks up all gas/network fee cost basis disposed during the period.
Prior-month tie-out: in each monthly workbook, filter the Closed Lots sheet to Disposal Type = "Transfer - Fee" or "Trade - Fee" and sum the Cost Basis column. Historical magnitude: $3 – $30/month.
2. Capital Gains / Losses
CAPITAL LOSS Debit
capLoss = MAX(0, -derivLoss) + MAX(0, -fwGain) + MAX(0, -attGain) + MAX(0, ethDistCost - ethDistProc) + MAX(0, icpDistCost - icpDistProc)
Source components:
derivLoss = SUM(Realized G/L) where Disposal Account contains "Blockfills" AND Disposal Type = "Derivative Trade - Disposal"
fwGain = SUM(Realized G/L) where Disposal Account contains "Fee Wallets"
attGain = SUM(Realized G/L) where Disposal Type = "Expense - Disposal"
ethDistProc/ethDistCost = Proceeds/Cost where Disposal Account contains "Transit" AND Type = "Transfer - Disposal" AND Asset Name = "Ether"
Each MAX() guarantees only losses (not gains) contribute to this line.
Prior-month tie-out: the new Realized Gain Loss report (1-row Lukka summary) should match capGain − capLoss to within rounding. If it doesn't, one of the filter components is missing data.
CAPITAL GAIN Credit
capGain = MAX(0, spotGain) + MAX(0, derivLoss) + MAX(0, fwGain) + MAX(0, attGain) + MAX(0, ethDistProc - ethDistCost) + MAX(0, icpDistProc - icpDistCost)
Source: mirror of capLoss but takes only the positive side. Same six filters, opposite direction.
PARTNERS DISTRIBUTIONS Debit
ethDistProc = SUM(Closed Lots.Proceeds) WHERE Disposal Account contains "Transit" AND Type = "Transfer - Disposal" AND Asset Name = "Ether"
Source: Closed Lots CSV — ETH leaving Spyglass Transit Wallet to partners. Books distribution at fair value (proceeds).
Prior-month tie-out: the "Dividend and JS Payment" sheet in each monthly Lukka workbook is the Closed Lots pivot for exactly this filter. Open it and confirm the SUM of Proceeds matches. Historical: $2.7M–$3.8M/month (Aug–Oct 2025).
⚠️ If this line is blank, it means no ETH left Transit this month. Before booking, confirm on-chain (Etherscan) that Spyglass Transit Wallet had zero outbound ETH transfers — blank may indicate (a) genuine pause in distributions, or (b) Lukka reconciliation still pending. Cross-check the same filter for USDC also returns zero before concluding.
DIGITAL ASSETS:ETH Credit (Partners Distributions offset)
ethCr2 = ethDistCost = SUM(Closed Lots.Cost Basis) for the same Transit-Ether-Transfer-Disposal filter
Source: removes the cost basis of distributed ETH from the books. Difference between Proceeds and Cost Basis flows to capGain/capLoss.
DIGITAL ASSETS:USD - Exchange Debit or Credit
derivLoss > 0 ? DR derivLoss : CR |derivLoss|
Source: net G/L on Blockfills derivative trades. DR if month was a gain (USD received), CR if a loss (USD paid out).
PARTNERS DISTRIBUTIONS Debit (ICP) & DIGITAL ASSETS:ICP Credit
icpDistProc / icpDistCost where Disposal Account contains "DFINITY" AND Type = "Transfer - Disposal"
Source: Closed Lots — ICP distributions from the DFINITY account, mirror of ETH distribution logic.
DIGITAL ASSETS:USDC Credit
mapleInt = SUM(Closed Lots.Proceeds) WHERE Disposal Account contains "Transit" AND Type = "Transfer - Disposal" AND Asset Name = "USD Coin"
Source: USDC leaving Transit — mapped to Maple Loan Interest (see section 3).
Contra-revenue Debit & DIGITAL ASSETS:ETH Credit
contraProc / contraCost where Disposal Type = "Expense - Disposal" AND Disposal Account does NOT contain "Attestant"
Source: Closed Lots — Gnosis Safe (nodeset) Expense-Disposal rows. Separate from Maple because nodeset is a different validator product.
3. Maple Loan & Rewards
Maple Loan Interest Debit
mapleInt = SUM(Closed Lots.Proceeds) WHERE Disposal Account contains "Transit" AND Type = "Transfer - Disposal" AND Asset Name = "USD Coin"
Source: Closed Lots CSV — USDC sent out from the Spyglass Transit Wallet (loan interest paid to Maple).
Prior-month tie-out: in the monthly workbook, filter Closed Lots on the same criteria. Historical: $140K–$150K/month when active. Zero when Maple loan is dormant.
Maple Reward Rights Debit
mapleDR = attProc + fwProc
  attProc = SUM(Closed Lots.Proceeds) WHERE Disposal Type = "Expense - Disposal" AND Disposal Account contains "Attestant"
  fwProc  = SUM(Closed Lots.Proceeds) WHERE Disposal Account contains "Fee Wallets" AND Disposal Type ≠ "Transfer - Fee"
Source: Closed Lots CSV. Two streams: (1) Attestant Expense-Disposals = base validator consensus rewards being recognized as Maple's product, (2) Fee Wallet Transfer-Disposals = MEV + priority-fee channel. Sum of proceeds becomes the Maple Reward Rights asset.
Prior-month tie-out: open the Closed Lots Pivot sheet in the monthly Lukka workbook. The pivot itself labels these rows: Attestant Expense-Disposal-Ether is tagged "Maple Consensus rewards", and Fee Wallet Transfer-Disposal-Ether is tagged "Maple Rewards payouts". Sum the Proceeds column for those two pivot rows — that's the Maple Reward Rights debit. Historical magnitudes: ~$1.1M/month (Attestant) + $70K–$1.6M/month (Fee Wallet MEV).
Note: the realized G/L on these disposals (proceeds − cost basis) flows to the Capital Loss / Capital Gain lines in section 2 above, so the two sections together balance against the ETH credit.
DIGITAL ASSETS:ETH Credit (Maple offset)
mapleCR = attCost + fwCost (cost-basis side of the same disposals)
Source: Closed Lots cost basis for the same two filters used above. Removes the ETH cost basis from the balance sheet because it's now reclassified to the Maple Reward Rights asset account.
4. FIL Storage Provider Collateral
FIL Collateral Increase DR ETH & CR FIL-Collateral
tf = SUM(All Transfers.Base Amount) WHERE Base Asset Code = "FIL" AND Type = "Deposit"
Source: All Transfers CSV. Captures FIL deposited into the Balance Custodial Wallet (Storage Provider Collateral).
Prior-month tie-out: filter the All Transfers sheet to Base Asset Code = "FIL" AND Type = "Deposit". The amount is denominated in FIL quantity (not USD).
FIL Collateral Decrease (reverse pair)
Same tf value, reversed: DR FIL-Collateral / CR ETH
Source: the tool currently books equal DR and CR pairs for collateral increase and decrease. If net change is non-zero, this section will not balance — check that deposits and withdrawals are reconciled in Lukka.
If a number doesn't look right:
1. Open the matching prior-month workbook in /Users/cfoakevin/Desktop/<NN>.25 Lukka Spyglass Activity.xlsx.
2. Find the equivalent pivot sheet (e.g. "Dividend and JS Payment" for Partners Distributions, "Income PIVOT" for Maple Reward Rights).
3. Re-run the filter described in the formula above against this month's source CSV. If your manual sum matches the JE: data is correct. If it differs: check whether the wrong file was uploaded to the wrong slot, or whether Lukka has finished reconciling.

Common gotchas:
Blank Partners Distributions means zero rows match the Transit-Ether-Transfer-Disposal filter. Confirm on-chain before assuming the JE is wrong.
Beta Loader vs All Income CSV pricing: the Beta Loader re-prices ETH at FMV; the raw Lukka Income CSV often has $0 USD on many rows. STAKING INCOME and Maple Reward Rights should always come from the FMV-priced source.
Closed Lots end mid-month: Lukka only matches lots once reconciled. If the latest Disposal Date in the file is well before month-end, re-export with a later cutoff date.
Spyglass Ventures v2 Reports

Spyglass Ventures PR LLC

Upload Lukka report files — new simplified set

New reports (replaces All Income & Expense + Closed Lots G/L)
Beta Income QB Loader
5-row pre-built income JE
new report
📈
Realized Gain Loss
1-row G/L summary
new report
Still required from Closed Lots
📋
Closed Lots
Distributions, Maple & fees
🔃
Processed Global Ledger
Staking Earned breakdown (Maple)
optional
Optional — leave blank if no activity this month
🔄
All Trades
ETH/USDC swaps
optional
📉
All Derivative Trades
Options, futures
optional
↔️
All Transfers
FIL collateral
optional

✓ Journal entry ready

↓ Download QBO Workbook