🔷 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.
- New: Beta Income QB Loader replaces the 1,990-row All Income & Expense CSV
- New: Realized Gain Loss (1 row) replaces Closed Lots for the G/L figure
- Still required: Closed Lots for Partners Distributions, Maple interest, and exchange fees
- Optional: Processed Global Ledger for Staking Earned sub-type breakdown (Maple section)
Methodology Validation
Historical pivot reconciliation — proof tool matches Aug / Sep / Oct 2025
✓ 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.
| Field | Aug 2025 Pivot | Aug TOOL | Sep 2025 Pivot | Sep TOOL | Oct 2025 Pivot | Oct TOOL | Match |
|---|---|---|---|---|---|---|---|
| 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 | ✓ |
| Field | Aug 2025 Pivot | Aug TOOL | Sep 2025 Pivot | Sep TOOL | Oct 2025 Pivot | Oct TOOL | Match |
|---|---|---|---|---|---|---|---|
| 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.
| Account / Field | Aug 2025 Pivot | Aug TOOL | Sep 2025 Pivot | Sep TOOL | Oct 2025 Pivot | Oct TOOL | Match |
|---|---|---|---|---|---|---|---|
| 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 | ✓ |
| Month | Pivot Total Proceeds | Tool: ethDistProc (ETH) | Tool: mapleInt (USDC) | Tool: Transit Fees | Tool Sum | Match |
|---|---|---|---|---|---|---|
| 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).
| Month | attProc + fwProc (DR) | attCost + fwCost (CR ETH) | Net G/L (to Capital section) |
|---|---|---|---|
| Aug 2025 | $1,166,646.23 | $1,162,569.13 | gain $4,077.10 |
| Sep 2025 | $1,182,455.76 | $1,180,269.27 | gain $2,186.49 |
| Oct 2025 | $2,696,312.60 | $2,759,435.08 | loss $63,122.48 |
| Feb 2026 | $202,246.00 | $202,995.74 | loss $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
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.
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"
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"
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"
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)
STAKING INCOME (EIGEN) Credit
eigen
INTEREST INCOME Credit
fil
EXCHANGE FEES Debit & DIGITAL ASSETS:ETH Credit
exchFees = SUM(Closed Lots.Cost Basis) WHERE Disposal Type IN ("Trade - Fee","Transfer - Fee")
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)
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)
PARTNERS DISTRIBUTIONS Debit
ethDistProc = SUM(Closed Lots.Proceeds) WHERE Disposal Account contains "Transit" AND Type = "Transfer - Disposal" AND Asset Name = "Ether"
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
DIGITAL ASSETS:USD - Exchange Debit or Credit
derivLoss > 0 ? DR derivLoss : CR |derivLoss|
PARTNERS DISTRIBUTIONS Debit (ICP) & DIGITAL ASSETS:ICP Credit
icpDistProc / icpDistCost where Disposal Account contains "DFINITY" AND Type = "Transfer - Disposal"
DIGITAL ASSETS:USDC Credit
mapleInt = SUM(Closed Lots.Proceeds) WHERE Disposal Account contains "Transit" AND Type = "Transfer - Disposal" AND Asset Name = "USD Coin"
Contra-revenue Debit & DIGITAL ASSETS:ETH Credit
contraProc / contraCost where Disposal Type = "Expense - Disposal" AND Disposal Account does NOT contain "Attestant"
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"
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"
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"
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).
DIGITAL ASSETS:ETH Credit (Maple offset)
mapleCR = attCost + fwCost (cost-basis side of the same disposals)
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"
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
If a number doesn't look right:
1. Open the matching prior-month workbook in
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.
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
📈
Realized Gain Loss
1-row G/L summary
Still required from Closed Lots
📋
Closed Lots
Distributions, Maple & fees
🔃
Processed Global Ledger
Staking Earned breakdown (Maple)
Optional — leave blank if no activity this month
🔄
All Trades
ETH/USDC swaps
📉
All Derivative Trades
Options, futures
↔️
All Transfers
FIL collateral