Live
← AssetUI Switch to Wholesale ⇄
AU
Portfolio Owner
assetui.org

Radar

Deal pipeline · AI signal scoring · 5-pillar analysis

Total Deals
0
in pipeline
Avg Score
--
composite
Active
0
in progress
Closed
0
portfolio

Dialer

Outreach queue · stage management · multi-channel

Queue Size
0
outreach ready
Avg Score
--
composite
Replied
0
in pipeline
NDA Executed
0
signed
Outreach Queue
Sorted by AI score — click Send to log outreach

Sequences

Day 3/7/14 cadence · channel escalation · reply detection

Total
0
sequences
Active
0
running
Total Replies
0
logged
Automation Rules
Always On

Inbox

Deal signals · reply tracking · NDA triggers · stage advances

Pipeline

6-stage acquisition kanban · click any card to view & edit

Total Deals
0
in pipeline
Under LOI
0
active
Closed
0
portfolio
NDA Executed
0
signed

Deal Rooms

NDA-gated rooms · documents · timeline · contacts

NDA & Docs

8-step auto-trigger chain · status tracking · send reminders

Auto-Trigger Chain
Fires automatically on reply detection
Active NDAs

CIM Analysis

Document analysis · flag scoring · LOI generation

Asset Engine

Post-acquisition value creation · AI agents · parallel analysis

Standby
Assets Under Mgmt
0
closed deals
Efficiency Agent
Standby
connect QB to activate
Growth Agent
Standby
connect QB to activate
90-Day Action Plan

Efficiency Warden

Waste reduction · vendor optimization · overhead scanning

Assets Scanning
0
closed deals
Status
Idle
connect QB to activate
Notes Logged
0
this session

Growth Strategist

Revenue expansion · pricing · new markets · upsell

Assets Scanning
0
closed deals
Status
Idle
connect QB to activate
Opportunities
0
identified

Brain — Master Dashboard

Cross-workflow intelligence · attention items · signals

Active Deals
0
in pipeline
Need Action
0
replied/pending
NDAs Pending
0
awaiting sig
Activity Log
0
total actions
Closed
0
in portfolio
Attention Items

Command Center

Natural language control · AI-powered answers from your real pipeline data

Ask anything about your pipeline
Command History
Run a command above to get started

Agent Activity

Real-time feed of every action across all DealOS modules

Live
Activity Feed
0 entries

Live Financials

Portfolio P&L · bank accounts · deal treasury · runway scenarios

ⓘ Connect QuickBooks and Plaid in settings to see live portfolio financials. Sample data shown below.
Revenue MTD
$237K
+11%
EBITDA MTD
$68K
28.6% margin
Total Cash
$842K
4 accounts
Total Debt
$1.31M
$18.4K/mo
Net Cash Flow
+$49K
after debt svc
Consolidated P&L — March 2026 Sample
HVAC Services Revenue$183,400
SaaS ARR (CloudQueue)$38,200
Stripe / Transaction$15,800
Total Revenue$237,400
Cost of Revenue−$94,200
Payroll & Benefits−$67,400
Operating Expenses−$7,800
EBITDA$68,000
Debt Service−$18,400
Net Cash Flow+$49,600
Connect Your Accounts
SetupConnect integrations above to replace sample data with live financials from your portfolio companies.
Revenue MTD
$199K
+9%
EBITDA MTD
$41K
20.6% margin
Cash Balance
$312K
BOA operating
AR Outstanding
$61K
down from $87K
Precision HVAC P&L — March 2026 Sample
Service Revenue$156,800
Contract Revenue$42,500
Total Revenue$199,300
Parts & Materials−$18,200
Labor (11 FT)−$67,400
Vehicle & Overhead−$14,600
EBITDA$41,100
Financial Signals
WatchParts cost at retail. Wholesale switch saves ~$4.8K/mo.
GoodService contract revenue new record. Upsell campaign working.
ActionAR aging: $12K invoice 62 days overdue. Chase required.
MRR
$38.2K
+$2.1K vs last mo
ARR Run Rate
$458K
growing
Gross Margin
74%
SaaS benchmark
Churn MTD
1.2%
below 2% target
CloudQueue P&L — March 2026 Sample
SaaS Subscriptions$38,200
Stripe Processing−$1,400
Hosting & Infra−$4,200
Support & Tools−$1,600
EBITDA$31,000
Growth Signals
GoodNRR 112% - expansion MRR exceeding churn.
Watch23% of Starter users at 80%+ feature usage - upsell ready.
GoodPayback period 4.2 months. CAC healthy at current spend.
Bank Accounts Plaid
BOA
Bank of America - HVAC Operating
Checking · ....4821
$312,400
+$18.2K MTD
CHS
Chase - Reserves
Savings · ....9204
$380,000
+$5K MTD
STR
Stripe - CloudQueue
Payments · ....3847
$124,600
+$38.2K MTD
MER
Mercury - War Chest
Business · ....7162
$25,000
Stable
Deployed Capital
$4.2M
2 acquisitions
LOI Exposure
$0
under LOI
Total Debt
$1.31M
$18.4K/mo service
Debt Schedule Sample
SBA 7(a) - Precision HVAC$840,0006.5% · $11.2K/mo
Seller Note - CloudQueue$470,0005.0% · $7.2K/mo
Total Debt Service / mo$18,400
Your Deals Under LOI
Cash Runway Scenarios Sample
Organic growth (current trajectory)
34 mo
$49K/mo net · $842K cash · No new acquisitions
SBA acquisition (new deal $1.5M)
18 mo
$300K equity down · Additional $22K/mo debt service
Seller note deal ($800K)
26 mo
$160K equity · $9K/mo note · Lower capital risk
Deal Details
Click "Generate LOI" to create a Letter of Intent from this deal's data.
'+text.replace(//g,'>')+''); win.document.close(); win.print(); } // ── DRAWER AI ACTIONS ── function actionSendNDA(){ if(!currentDealId){ showToast('Open a deal first'); return; } var deal=deals.find(function(d){ return d.id===currentDealId; }); if(deal) doSendNDA(deal.id,deal.name); } function actionGenerateLOI(){ drawerTab('loi',document.getElementById('dtab-loi')); setTimeout(generateLOI,100); } function actionValuation(){ var deal=currentDealId?deals.find(function(d){ return d.id===currentDealId; }):null; if(!deal){ showToast('Open a deal first'); return; } var ask=parseFloat((deal.asking_price||'0').replace(/[^0-9.]/g,'')); var ebitda=parseFloat((deal.ebitda||'0').replace(/[^0-9.]/g,'')); if(!ebitda){ showToast('Add EBITDA to run valuation'); return; } var mult=ask&&ebitda?(ask/ebitda).toFixed(1):'--'; showToast(deal.name+': '+mult+'x EBITDA multiple. Fair range 3-5x for most SMBs.'); } function actionOutreach(){ if(!currentDealId){ showToast('Open a deal first'); return; } var deal=deals.find(function(d){ return d.id===currentDealId; }); if(deal){ closeDrawer(); promoteToDialer(deal.id,deal.name); } } function actionRescore(){ if(!currentDealId){ showToast('Open a deal first'); return; } var deal=deals.find(function(d){ return d.id===currentDealId; }); if(deal) rescoreDeal(deal.id,deal.name); } function actionAdvanceStage(){ if(!currentDealId){ showToast('Open a deal first'); return; } var deal=deals.find(function(d){ return d.id===currentDealId; }); if(deal){ advanceStage(deal.id,deal.name,deal.stage); closeDrawer(); } } function actionWarden(){ if(!currentDealId){ showToast('Open a deal first'); return; } closeDrawer(); nav('warden',document.getElementById('ni-warden')); } function actionGrowth(){ if(!currentDealId){ showToast('Open a deal first'); return; } closeDrawer(); nav('growth',document.getElementById('ni-growth')); } // ── MODALS ── function openDealModal(){ document.getElementById('qd-name').value=''; document.getElementById('qd-sector').value=''; document.getElementById('qd-ask').value=''; document.getElementById('qd-loc').value=''; document.getElementById('qd-stage').value='Sourced'; document.getElementById('deal-modal').classList.add('open'); } function quickAddDeal(){ var name=(document.getElementById('qd-name').value||'').trim(); if(!name){ showToast('Business name is required'); return; } var data={ name:name, sector:document.getElementById('qd-sector').value||'', asking_price:document.getElementById('qd-ask').value||'', location:document.getElementById('qd-loc').value||'', stage:document.getElementById('qd-stage').value||'Sourced' }; api('/dealos/deals',{method:'POST',body:JSON.stringify(data)}).then(function(newDeal){ deals.unshift(newDeal); logAct('📋','Deal added: '+name,(data.sector||'Sector TBD')+' - '+(data.asking_price||'Price TBD')); closeModal('deal-modal'); renderAll(); showToast(name+' added to pipeline'); }).catch(function(e){ showToast('Error: '+e.message); }); } function openSequenceModal(){ document.getElementById('seq-name').value=''; document.getElementById('seq-modal').classList.add('open'); } function createSequence(){ var name=(document.getElementById('seq-name').value||'').trim(); if(!name){ showToast('Sequence name is required'); return; } api('/dealos/sequences',{method:'POST',body:JSON.stringify({ name:name, channel:document.getElementById('seq-channel').value||'Email', step:document.getElementById('seq-step').value||'Day 3' })}).then(function(s){ sequences.unshift(s); closeModal('seq-modal'); renderSequences(); updateMetrics(); logAct('💬','Sequence created: '+name,'Channel: '+(s.channel||'Email')); showToast('Sequence "'+name+'" created'); }).catch(function(e){ showToast('Error: '+e.message); }); } function openCIMModal(){ var ndaDeals=deals.filter(function(d){ return !d.cim_received; }); var sel=document.getElementById('cim-deal-select'); sel.innerHTML=ndaDeals.length ?ndaDeals.map(function(d){ return ''; }).join('') :''; document.getElementById('cim-notes').value=''; document.getElementById('cim-red').value='0'; document.getElementById('cim-amber').value='0'; document.getElementById('cim-green').value='0'; document.getElementById('cim-modal').classList.add('open'); } function saveCIM(){ var id=parseInt(document.getElementById('cim-deal-select').value); if(!id){ showToast('Select a deal'); return; } var deal=deals.find(function(d){ return d.id===id; }); var notes=document.getElementById('cim-notes').value; var red=document.getElementById('cim-red').value||'0'; var amber=document.getElementById('cim-amber').value||'0'; var green=document.getElementById('cim-green').value||'0'; var notesFull=notes+(notes?'\n':'')+'Flags: '+red+' red / '+amber+' amber / '+green+' green'; patchDeal(id,{cim_received:true,notes:notesFull}).then(function(){ logAct('📊','CIM received: '+(deal?deal.name:'Deal'),red+' red / '+amber+' amber / '+green+' green flags'); closeModal('cim-modal'); renderAll(); showToast('CIM analysis saved'); }); } function closeModal(id){ document.getElementById(id).classList.remove('open'); } // Close modals on overlay click document.addEventListener('click',function(e){ if(e.target&&e.target.classList&&e.target.classList.contains('modal-overlay')){ e.target.classList.remove('open'); } }); // ── PATCH / LOG HELPERS ── function patchDeal(id,data){ return api('/dealos/deals/'+id,{method:'PATCH',body:JSON.stringify(data)}).then(function(updated){ deals=deals.map(function(d){ return d.id===id?updated:d; }); renderAll(); return updated; }).catch(function(e){ showToast('Error: '+e.message); }); } function logAct(icon,title,sub){ sub=sub||''; return api('/dealos/activity',{method:'POST',body:JSON.stringify({icon:icon,title:title,sub:sub})}) .then(function(){ activityLog.unshift({icon:icon,title:title,sub:sub,time:'just now'}); renderActivity(); updateMetrics(); }).catch(function(e){ console.warn('Activity log error:',e); }); } // ── LOGOUT ── function dosLogout(){ if(!confirm('Log out of DealOS?')) return; ['assetui_token','nexus_token','assetui_user','nexus_user'].forEach(function(k){ localStorage.removeItem(k); }); window.location.href='/'; } // ── BOOT ── (function(){ var token=localStorage.getItem('assetui_token')||localStorage.getItem('nexus_token'); if(!token){ window.location.href='/'; return; } fetch('/auth/me',{ headers:{'Authorization':'Bearer '+token,'Content-Type':'application/json'}, mode:'cors',credentials:'omit' }).then(function(r){ return r.json(); }).then(function(user){ if(!user||user.detail){ window.location.href='/'; return; } if(!user.has_dealos&&!user.is_admin){ window.location.href='/pricing'; return; } currentUser=user; var initials=(user.company_name||'AU').substring(0,2).toUpperCase(); ['dos-av','sb-av'].forEach(function(id){ var el=document.getElementById(id); if(el) el.textContent=initials; }); set('dos-name',user.company_name||'Portfolio Owner'); set('sb-name',user.company_name||'Owner'); set('dos-role',user.email||'assetui.org'); set('sb-role',user.email||'assetui.org'); loadAll(); }).catch(function(){ window.location.href='/'; }); })();