Portfolio overview
Loading...
📡 Cohort pulse — this week
Loading...
Top performers this week
Action flags
💡 Priority coaching suggestions this week
⭐ Invested portfolio health
Auto-computed · red = at risk · click to open profile
⚡ LLM token usage — per company
cumulative · Scout updates every Friday
No LLM data yet — Scout will populate from next Friday run.
Portfolio leaderboard
Loading...
Rank by:
#
Company
Momentum
Eng %
API WoW
Commits
0G
Score
Social & narrative metrics
Mindshare tiers · engagement · 0G positioning · updated by IR every Friday
𝕏 X / Twitter followers · follower delta · engagement rate · views · 0G positioning
#
Company
Tier
Followers
Δ Followers
Eng %
Views 7d
0G on X
Discord + Telegram members · WoW growth · mention count this week
#
Company
Discord
WoW
Telegram
WoW
Mentions
Portfolio-wide 0G narrative gap
0 of 10 Apollo companies mentioned 0G in their X posts this week. Pulsar Money has 106K followers and daily posting cadence — if one company could be coached to incorporate 0G positioning, this is the highest-reach unlock in the entire Apollo cohort.
Market narrative tracker
Trending AI × blockchain narratives · team alignment · branding suggestions · updated by IR every Friday
Trending narratives this week
Team alignment ranking — click to open branding suggestion
#
Company · currently talking about
Score
Coaching suggestion → recommended narratives
0G metrics
Hub ecosystem projects · portfolio subset · updated by Scout every Friday
Open Solutions Hub ↗
Integration status — portfolio companies (live + planned)
Upcoming 0G products
Tracking starts at launch
🤖
Agentic ID
Coming soon
Decentralized identity layer for AI agents. Enables persistent agent identities across sessions and protocols. Portfolio usage will be tracked here once integration is available.
Sandbox
Coming soon
Isolated execution environment for AI agent testing and deployment. Safe, verifiable, tamper-proof compute. Portfolio usage will be tracked here once integration is available.
OKR tracker
All active OKRs across Apollo · sorted by progress delta this week
OKR
Progress
Delta
Status
This week's highlights
Major moves across all portfolio companies · updated every Friday by Bowie
TGE readiness
Score = average of 4 factors · Founder 25% · Market 25% · Community 25% · Commercial 25% · updated by IR every Friday
Market conditions this week
How to read the scores
Ready to launch (≥60) — All 4 dimensions strong. Consider setting a TGE window.
Getting close (40–59) — 1–2 gaps remain. Focus on the weakest sub-score first.
Not ready (<40) — Multiple dimensions need work. Use the coaching notes below each card.
0G integration is tracked in the 0G metrics tab, not in TGE readiness scoring.
Fundraising tracker
Round status · investor tracking · 0G investment returns · revenue · updated by IR every Friday
Fundraising by company
Company
Round
Target
Raised
Status
Valuation / Structure
Confirmed investors
In discussion / target
KOL suggestions
Key opinion leaders identified by IR as suitable for each team to onboard · updated every Friday
Company:
Match type:
KOL
Followers
Eng %
Match type
Company
Why they are relevant + recent content
Post-TGE tracker
Companies that have completed token generation · MC, FDV, ATH performance · updated by Scout every Friday
Company
Ticker
Current MC
Current FDV
Peak FDV
% from ATH
0G Integration
On-chain metrics
TVL · DAU · weekly transactions · protocol revenue · token holders · updated by Scout via Goldsky every Friday
⬡ Goldsky — pending contract addresses
🔌
Connecting Goldsky
Goldsky Turbo pipelines will populate on-chain data for all portfolio companies with live contracts — TVL, DAU, weekly transactions, protocol revenue, and post-TGE token holder counts. Scout will pull from Goldsky every Friday. Contract addresses are being collected from each company (contact: George).
Goldsky → TVL · DAU · weekly txns · revenue · token holders 21 companies tracked once contracts confirmed
⏳ Pending Goldsky pipelines — awaiting contract addresses
Once contract addresses are confirmed, George sends them to Radek at Goldsky. Pipelines go live and Scout populates data every Friday.
Priority — Post-TGE (16 companies)
Company
Token
Chain
Metrics to track
Status
CARV
CARV
Ethereum + CARV Chain
DAU · Txns · Holders
Need contract
Tria
TRIA
Multi-chain (AA)
DAU · Txns · Holders
Need contract
Momentum ★
MOMEN
TBC
TVL · DAU · Txns · Revenue · Holders
Need contract
Rivalz ★
RIZ
TBC
DAU · Txns · Holders
Need contract
Warden
WARD
Warden Protocol
TVL · DAU · Txns · Revenue · Holders
Need contract
Haio
HAIO
TBC
DAU · Txns · Holders
Need contract
Open Ledger ★
OPEN
TBC
DAU · Txns · Holders
Need contract
PlaysOut
PLAY
TBC
DAU · Txns · Holders
Need contract
Voyager ★
VOY
TBC
TVL · DAU · Txns · Revenue
Need contract
Assister ★
ASRR
TBC
DAU · Txns · Holders
Need contract
Cygnus Finance
CGN
TBC
TVL · DAU · Txns · Revenue · Holders
Need contract
Infinity Ground
AIN
TBC
DAU · Txns · Holders
Need contract
Humans.ai
HEART
Ethereum + Humans Chain
DAU · Txns · Holders
Need contract
Unagi
UNA
TBC
DAU · Txns · Holders
Need contract
Newmoney.ai
NEW
TBC
DAU · Txns · Holders
Need contract
Lockness
LKN
TBC
DAU · Txns · Holders
Need contract
Pre-TGE with likely live contracts (5 companies)
Company
Program
Chain
Notes
Status
Khalani
Guild
TBC
Intent protocol — likely has live contracts
Confirm
Zoofi
Guild
0G Chain
DeFi protocol on 0G Chain
Confirm
Bond
Ecosystem
TBC
DeFi bonding curve
Confirm
ZIA Finance
Ecosystem
TBC
DeFi, using 0G Storage
Confirm
Cred Protocol
OnePiece
TBC
DeFi credit protocol
Confirm
Portfolio companies
All portfolio companies · grouped by program · ★ = 0G Invested · M★ = Michael Invested · click any row to open full profile
+fmtNum(c.fundRaised):'—'}${pctBar}
${c.fundStatus||'—'}
${leadHtml}
${investorHtml}
`); }catch(e){console.error('Row error for '+c.name+':',e.message);} } frEl.innerHTML=safeRows.length?safeRows.join(''):'
No fundraising data yet.
'; // Revenue table const revEl=document.getElementById('fr-rev-rows'); const revStatusConf={revenue:['#0D2B22','#00C896','Generating'],'pre-revenue':['#1A1A2E','#4A5568','Pre-revenue'],'protocol-revenue':['#14102A','#7C5CFC','Protocol revenue']}; if(revEl){ const revAll=allCos.filter(c=>c.mrr>0||c.arr>0||c.revenueStatus==='revenue'||c.revenueStatus==='protocol-revenue'); revEl.innerHTML=revAll.length?revAll.map(c=>{ const [rbg2,rtc2,rlbl]=revStatusConf[c.revenueStatus||'pre-revenue']||revStatusConf['pre-revenue']; const pc2=PC[c.prog]||'#4A5568'; return `
${c.name}
${PL[c.prog]||c.prog}
${rlbl}
${c.mrr?'$'+fmtNum(c.mrr):'—'}
${c.arr?'$'+fmtNum(c.arr):'—'}
${c.revenueWoW!=null?(c.revenueWoW>0?'+':'')+c.revenueWoW+'%':'—'}
${c.mrr&&c.mrr>0?'Commercial traction confirmed.':c.revenueStatus==='protocol-revenue'?'Protocol fees active.':'—'}
`; }).join(''):'
No revenue data yet — IR will populate from next run.
'; } // 0G Investment portfolio const ogInvData=allCos.filter(c=>c.og0gInvested||c.michaelInvested); const ogEl=document.getElementById('fr-og-rows'); if(ogEl)ogEl.innerHTML=ogInvData.length?ogInvData.map(c=>{ const ret=c.ogInvestedAmount&&c.ogCurrentValuation?(c.ogCurrentValuation/c.ogInvestedAmount).toFixed(2):null; const retColor=ret?ret>2?'#00C896':ret>1?'#F5A623':'#FF4D4D':'#4A5568'; const tgeBadge=c.tgeStatus==='live'?`Post-TGE`:c.tgeStatus==='planning'?`Pre-TGE`:`No token`; const pc3=PC[c.prog]||'#4A5568'; const investLabel=c.og0gInvested?`★ 0G`:''; const michaelLabel=c.michaelInvested?`M★`:''; return `
${c.name}
${investLabel}${michaelLabel}${PL[c.prog]||c.prog}
${c.ogInvestedAmount?'$'+fmtNum(c.ogInvestedAmount):'—'}
${c.fundRound?`${c.fundRound.replace('series-','Series ').replace(/^\w/,x=>x.toUpperCase())}`:``}
${c.ogInvestedValuation?'$'+fmtNum(c.ogInvestedValuation):'—'}
${c.ogCurrentValuation?'$'+fmtNum(c.ogCurrentValuation):'—'}
${ret?ret+'x':'—'}
${tgeBadge}
`; }).join(''):'
No investment data yet.
'; } function buildInvestmentPortfolio(){ const ipEl=document.getElementById('fund-investments'); if(!ipEl)return; const inv=filtered().filter(c=>(c.og0gInvested||c.michaelInvested)&&(c.ogInvestedAmount!=null||c.tgeStatus==='live')) .sort((a,b)=>(b.ogCurrentValuation||0)-(a.ogCurrentValuation||0)); const invAll=filtered().filter(c=>c.og0gInvested||c.michaelInvested).length; const total0g=inv.filter(c=>c.og0gInvested).reduce((s,c)=>s+(c.ogInvestedAmount||0),0); const totalM=inv.filter(c=>c.michaelInvested).reduce((s,c)=>s+(c.ogInvestedAmount||0),0); const rows=inv.map(c=>{ const who=(c.og0gInvested&&c.michaelInvested)?'★ 0G + M★': c.og0gInvested?'★ 0G':'M★ Michael'; const amt=c.ogInvestedAmount; const amtStr=amt===0?'Strategic':amt?'$'+fmtNum(amt):'TBC'; const entryStr=c.ogInvestedValuation?'$'+fmtNum(c.ogInvestedValuation):''; const curStr=c.ogCurrentValuation?'$'+fmtNum(c.ogCurrentValuation): c.tgeStatus==='live'?'Fetch from CoinGecko': 'Pre-TGE'; let multStr=''; if(c.ogCurrentValuation&&c.ogInvestedValuation&&amt>0){ const mult=(c.ogCurrentValuation/c.ogInvestedValuation); const col=mult>=2?'#00C896':mult>=1?'#F5A623':'#FF4D4D'; multStr=`${mult.toFixed(1)}×`; } const tgeBadge=c.tgeStatus==='live'?`Post-TGE`: c.tgeStatus==='planning'?`Pre-TGE`: `No token`; return `
${c.name}
${PL[c.prog]||c.prog}${c.sector?' · '+c.sector:''}
${who}
${tgeBadge}
${amtStr}
${entryStr}
${curStr}
${multStr}
`; }).join(''); ipEl.innerHTML=`
Investment Portfolio Showing ${inv.length} of ${invAll} invested companies with known data
${inv.filter(c=>c.og0gInvested).length}
0G investments
${inv.filter(c=>c.michaelInvested).length}
Michael investments
${total0g?'$'+fmtNum(total0g):'—'}
0G deployed
${totalM?'$'+fmtNum(totalM):'—'}
Michael deployed
Company
Investor
Status
Amount invested
Entry valuation
Current FDV
Multiple
${rows||'
No investment data yet.
'}
`; } function frFilter(status,btn){ frStatusFilter=status; document.querySelectorAll('.fr-fb').forEach(b=>{ b.style.background=b===btn?'#0D1E35':'#111620'; b.style.color=b===btn?'#3B9EFF':'#4A5568'; b.style.borderColor=b===btn?'#3B9EFF':'#1E2A3D'; }); buildFundraising(); } function searchCompanies(q){ searchQuery = q.toLowerCase().trim(); // Re-render all tabs to reflect search buildLeaderboard();buildSocial();buildNarrative();buildOKRs();buildMilestones();buildTGE(); buildFundraising();buildKOLs();buildPostTGE();buildOnchain();buildCompanyCards();buildOverview(); const ogTab=document.getElementById('tab-og');if(ogTab&&ogTab.style.display!=='none')build0G(); const ldrTab=document.getElementById('tab-leadership');if(ldrTab&&ldrTab.style.display!=='none')buildLeadership(); } // ─── UPDATED switchTab ──────────────────────────────────────────────────────── function switchTab(id,btn){ // Hide all tab views using direct style (bypasses any CSS conflicts) document.querySelectorAll('.view').forEach(function(v){ v.style.display='none'; }); // Reset all tab buttons document.querySelectorAll('.snb').forEach(function(b){ b.style.color=''; b.style.borderBottomColor='transparent'; b.style.fontWeight=''; b.classList.remove('active'); }); // Show the target tab var tabEl=document.getElementById('tab-'+id); if(tabEl){ tabEl.style.display='block'; } else { console.error('switchTab: tab div not found for id='+id); return; } // Highlight the active button if(btn){ btn.style.color='#00C896'; btn.style.borderBottomColor='#00C896'; btn.style.fontWeight='500'; btn.classList.add('active'); } // Build tab content if needed try { if(id==='og')build0G(); if(id==='posttge')buildPostTGE(); if(id==='fundraising'){buildFundraising();buildInvestmentPortfolio();} if(id==='onchain')buildOnchain(); if(id==='tge')buildTGE(); if(id==='kols')buildKOLs(); if(id==='narrative')buildNarrative(); if(id==='social')buildSocial(); if(id==='leaderboard')buildLeaderboard(); if(id==='leadership')buildLeadership(); if(id==='overview')buildOverview(); if(id==='okrs')buildOKRs(); if(id==='milestones')buildMilestones(); if(id==='companies')buildCompanyCards(); } catch(e) { console.error('switchTab build error for '+id+':', e); } } function buildLeadership(){ const D=DASHBOARD_DATA; const el=document.getElementById('ldr-content'); if(!el)return; const scope=typeof filtered==='function'?filtered():D.companies; const invested=scope.filter(c=>c.og0gInvested||c.michaelInvested); const watchlist=scope.filter(c=>!c.og0gInvested&&!c.michaelInvested); const highPri=scope.filter(c=>c.priority==='High'); const investRec=watchlist.filter(c=>c.investmentRec==='Invest'); const postTGE=invested.filter(c=>c.tgeStatus==='live'); const parseMC=(s)=>{ if(!s)return 0; const n=parseFloat(s.replace(/[$~,]/g,'')); if(s.includes('B'))return n*1e9; if(s.includes('M'))return n*1e6; if(s.includes('K'))return n*1e3; return n; }; const PERF=(c)=>{ if(c.tgeStatus!=='live')return null; const mc=parseMC(c.currentMC), ath=parseMC(c.peakFDV); if(!mc||!ath)return null; const pct=Math.round(mc/ath*100); if(pct>=50)return{pct,col:'#00C896',bg:'#0D2B22',lbl:'Performing'}; if(pct>=20)return{pct,col:'#F5A623',bg:'#281900',lbl:'Recovering'}; return{pct,col:'#FF4D4D',bg:'#1A0808',lbl:'Down'}; }; const POTENTIAL=(c)=>{ let score=0, reasons=[]; if((c.og&&c.og.length>0&&!c.og.includes('tbd'))||c.on0gChain===true){score+=30;reasons.push({t:'Using 0G infra',c:'#7C5CFC',bg:'#14102A'});} else if(c.og&&c.og.includes('tbd')){score+=15;reasons.push({t:'Integrating 0G',c:'#FF6B35',bg:'#1A0E00'});} if(c.tgeStatus==='planning'){score+=20;reasons.push({t:'Pre-TGE window',c:'#F5A623',bg:'#1A1200'});} if(c.fundRaised>0){score+=15;reasons.push({t:'Funded',c:'#3B9EFF',bg:'#0A1520'});} if(c.narrativeFitScore>=70){score+=20;reasons.push({t:'Strong narrative',c:'#00C896',bg:'#0D2B22'});} else if(c.narrativeFitScore>=50){score+=10;reasons.push({t:'Narrative fit',c:'#00C896',bg:'#0D2B22'});} if(c.tgeScore>=60){score+=15;reasons.push({t:'TGE-ready',c:'#E040FB',bg:'#1A0020'});} if(['AI · Agents','AI Security','DePIN','Privacy AI','zkML','ZK'].some(s=>c.sector&&c.sector.includes(s.split('·')[0].trim()))){score+=10;reasons.push({t:'Hot sector',c:'#FFD700',bg:'#1A1400'});} const tier=score>=60?{lbl:'Strong',col:'#00C896',bg:'#0D2B22'}:score>=35?{lbl:'Promising',col:'#F5A623',bg:'#281900'}:{lbl:'Monitoring',col:'#4A5568',bg:'#111620'}; return{score,tier,reasons}; }; // ── Section toggle state ────────────────────────────────────────── if(typeof window._ldrSection==='undefined')window._ldrSection='both'; const showSection=(s)=>{ window._ldrSection=s; const portEl=document.getElementById('ldr-portfolio-section'); const watchEl=document.getElementById('ldr-watchlist-section'); const btn1=document.getElementById('ldr-btn-portfolio'); const btn2=document.getElementById('ldr-btn-watchlist'); if(portEl)portEl.style.display=(s==='portfolio'||s==='both')?'block':'none'; if(watchEl)watchEl.style.display=(s==='watchlist'||s==='both')?'block':'none'; if(btn1){btn1.style.background=s==='portfolio'?'#7C5CFC':s==='both'?'#14102A':'#0E131C';btn1.style.borderColor=s!=='watchlist'?'#7C5CFC':'#1E2A3D';} if(btn2){btn2.style.background=s==='watchlist'?'#0D2B22':s==='both'?'#0D2B22':'#0E131C';btn2.style.borderColor=s!=='portfolio'?'#00C896':'#1E2A3D';} }; // ── KPI bar ─────────────────────────────────────────────────────── const kpiHtml=`
${invested.length}
Portfolio companies
${postTGE.length}
Post-TGE
${watchlist.filter(c=>c.tgeStatus==='planning').length}
Pre-TGE watchlist
${highPri.length}
High priority
${investRec.length}
Invest recommendations
`; // ── Section toggle buttons ──────────────────────────────────────── const toggleHtml=`
Click to focus a section
`; // ── Portfolio Actions rows ──────────────────────────────────────── const sortedInvested=[...invested].sort((a,b)=>{ if(a.priority==='High'&&b.priority!=='High')return -1; if(b.priority==='High'&&a.priority!=='High')return 1; const tgeO={live:0,planning:1,none:2}; return(tgeO[a.tgeStatus]||2)-(tgeO[b.tgeStatus]||2); }); const portRows=sortedInvested.map(c=>{ const perf=PERF(c); const invBadge=(c.og0gInvested?`★ 0G`:'')+(c.michaelInvested?`M★`:''); const tgeBadge=c.tgeStatus==='live'?`Post-TGE · ${c.tgeTicker||'?'}`:c.tgeStatus==='planning'?`Pre-TGE${c.tgeTicker?' · '+c.tgeTicker:''}`:`No token`; const healthHtml=perf?`${perf.lbl}
${perf.pct}% of peak
`:c.tgeStatus==='planning'?`Awaiting TGE`:``; const ogMods=c.og&&c.og.length&&!c.og.includes('tbd')?`
${ogHtml(c.og)}
`:c.og&&c.og.includes('tbd')?`⬡ integrating`:``; const priDot=c.priority==='High'?``:''; const actionHtml=c.nextAction?`
${c.nextAction}
${c.priority==='High'?`High Priority`:''}`:`No action set`; return `
${priDot}${c.name} ${invBadge}
${PL[c.prog]||c.prog}${c.sector?' · '+c.sector:''}
${ogMods}
${tgeBadge}
${healthHtml}
⬡ Portfolio
${(()=>{ const amt=c.ogInvestedAmount; const entryVal=c.ogInvestedValuation; const curVal=c.ogCurrentValuation; const who=c.og0gInvested&&c.michaelInvested?'0G + M★':c.og0gInvested?'0G ★':'M★'; if(!amt&&amt!==0) return 'Amount TBC'; const amtStr=amt===0?'Strategic':'$'+fmtNum(amt); let ret=''; if(curVal&&entryVal&&amt>0){ const mult=(curVal/entryVal*(amt/amt)).toFixed(1); ret=`
${mult}× on $${fmtNum(amt)}
`; } else if(curVal&&amt>0){ ret=`
Current FDV $${fmtNum(curVal)}
`; } return `
${amtStr}
${who}
${ret}`; })()}
${actionHtml}
`; }).join(''); // ── Watchlist rows ──────────────────────────────────────────────── const sortedWatch=[...watchlist].map(c=>({c,p:POTENTIAL(c)})).sort((a,b)=>{ if(a.c.priority==='High'&&b.c.priority!=='High')return -1; if(b.c.priority==='High'&&a.c.priority!=='High')return 1; const recOrder={'Invest':0,'Watch':1,'Pass':2}; if(a.c.investmentRec!==b.c.investmentRec)return(recOrder[a.c.investmentRec]||1)-(recOrder[b.c.investmentRec]||1); return b.p.score-a.p.score; }); const watchRows=sortedWatch.map(({c,p})=>{ const priDot=c.priority==='High'?``:''; const tgeBadge=c.tgeStatus==='live'?`Post-TGE${c.tgeTicker?' · '+c.tgeTicker:''}`:c.tgeStatus==='planning'?`Pre-TGE${c.tgeTicker?' · '+c.tgeTicker:''}`:`No token`; const fundHtml=c.fundRaised?`
$${fmtNum(c.fundRaised)}
${c.fundRound||''} ${c.fundLead?'· '+c.fundLead:''}
`:``; const recBadge=c.investmentRec==='Invest'?`✓ Invest`:c.investmentRec==='Pass'?`✕ Pass`:`Pending Bowie`; // Investment case — reasons + thesis const reasonTags=p.reasons.map(r=>`${r.t}`).join(''); const investCase=c.thesis||p.reasons.length?`
${reasonTags?`
${reasonTags}
`:''} ${c.thesis?`
${c.thesis}
`:''}
`:'No analysis yet'; const potBar=`
${p.tier.lbl}
`; return `
${priDot}${c.name}
${PL[c.prog]||c.prog}${c.sector?' · '+c.sector:''}
${recBadge}
${tgeBadge}
${fundHtml}
${potBar}
${investCase}
`; }).join(''); el.innerHTML=` ${kpiHtml} ${toggleHtml}
Portfolio Actions
${invested.length} companies we have invested in — sorted by token status then priority
Company
Token status
Market health
Type
Investment
Next action
${portRows||'
No portfolio companies.
'}
Investment Watchlist
${watchlist.length} companies being evaluated — sorted by recommendation then potential score
Formal recommendations set by Bowie every Friday
Company
Recommendation
TGE · Funding
Potential
Investment case
${watchRows||'
No companies in watchlist.
'}
`; } window.addEventListener('DOMContentLoaded',()=>{ const d=new Date(D.meta.weekOf); if(document.getElementById('date-tag'))document.getElementById('date-tag').textContent=d.toLocaleDateString('en-US',{month:'short',day:'numeric',year:'numeric'}); if(document.getElementById('update-tag'))document.getElementById('update-tag').textContent=`Scout ${D.meta.scoutRanAt} · Bowie ${D.meta.bowieRanAt||D.meta.irRanAt}`; // Ensure overview is visible on load var ov=document.getElementById('tab-overview');if(ov)ov.style.display='block'; buildOverview();buildLeaderboard();buildSocial();buildNarrative();buildOKRs();buildMilestones();buildCompanyCards();buildTGE();buildKOLs();buildInvestedHealth();buildPostTGE();buildOnchain();buildFundraising();buildInvestmentPortfolio();try{buildLeadership();}catch(e){console.error('buildLeadership init error:',e);} });