UPSIDE
{{ n.name }}
MA
Atlas · The Book
{{ acctName }} {{ statusLabel }}
Call mode
{{ acctMeta }}
{{ g.valueStr }}
{{ g.label }}
Write-backs
Account plan
New opportunity
Add contact
Pin / snooze
Correct the read
native writes · draft-by-default · readback where wired
{{ t.name }}{{ t.count }}
Service friction {{ frictionTickets }} open · why cadence or movement may be blocked Escalation risk Zendesk · sup_activity_ledger
UPSIDE reads
{{ frictionRead }}
No service friction. No open tickets, RMAs, or escalations — any cadence gap here is sales, not service.
{{ v.label }}
{{ v.value }}
{{ v.sub }}
Revenue · 24 months {{ revTrailing }} trailing · {{ revYoy }} YoY
prior year this year peak {{ revPeak }} · avg dashed
{{ revYmax }}
24 mo agoprior yearthis yearnow
What they buy category mix · sup_invoice_lines
{{ c.cat }}
{{ c.rev }} {{ c.delta }}
Stopped buying {{ s.cat }} · {{ s.rev }}
Whitespace {{ w }}
Last call · read by UPSIDE {{ call.sentLabel }}
{{ call.intent }} · {{ call.date }} · {{ call.duration }}
{{ call.summary }}
{{ ch.t }}
Open pipeline
{{ oppValueStr }} · {{ oppsCount }}
{{ oppSub }}
Advance opportunity →
Open pipeline
No open opportunity
Greenfield — the native opp store starts empty. Open the first from the read above.
Opportunity & risk harness intelligence — magnitude-banded, each tagged to its source & freshness
Truth timeline every order, call, email & ticket — each tagged to its source {{ timelineSummary }}
{{ t.dateStr }}
{{ t.icon }}
{{ t.label }}{{ t.title }}{{ t.sent }}
{{ t.summary }}
{{ t.source }}
Analytic lenses nine real series read straight off this account
Revenue · 24 months
monthly · the buying heartbeat
{{ viz.revTotalStr }}
{{ viz.revYoYStr }} YoY
{{ g.label }}
{{ x.label }}
{{ viz.heartbeatNote }}
Pace vs last yearcumulative $
{{ g.label }}
{{ x.label }}
this year last year
{{ viz.paceDelta }} {{ viz.paceAheadStr }} last year at month 12.
Forecast coneprojection
now
{{ g.label }}
{{ x.label }}
actual projected range
Base case {{ viz.yearEnd }} at year-end if cadence holds.
GM waterfallLY → YTD
{{ g.label }}
{{ c.val }}
{{ c.name }}
Order rhythmdays between orders
{{ g.label }}
median {{ viz.medStr }}
9 orders agomost recent
Last order {{ viz.curGapStr }} ago — {{ viz.rhythmNote }}
Market controlparts wallet
{{ viz.walletShareStr }}WE HOLD
Superior holds {{ viz.walletShareStr }}
{{ viz.mcHead }} headroom open
Estimated share of this dealer\u2019s total parts spend.
Category breadth{{ viz.breadthActive }}/9 lines
{{ c.label }}{{ c.revStr }}
{{ viz.breadthActive }} active · {{ viz.breadthWhite }} whitespace lines to open.
Engagementlast 90 days
90d agorequired windowtoday
{{ viz.engStatus }}{{ viz.engTouches }} touches in 30d
Wallet · attachaddressable
{{ s.label }}{{ s.str }}
{{ viz.attachRead }}
SKU ledger · category churn
{{ skuActiveCount }} of 9 categories active · top line {{ skuConc }} of revenue
{{ skuGrowing }}
growing
{{ skuShrinking }}
shrink/stop
{{ skuWhite }}
whitespace
Revenue concentration top line {{ skuConc }} of active revenue
{{ s.label }}{{ s.str }}
{{ s.cat }}
{{ s.revStr }}
{{ s.delta }}
Stockout exposure GM riding on SKUs they buy that are below reorder sup_v_stockout_at_velocity
{{ stockoutGmStr }}
GM at risk · 12mo
{{ stockoutCount }}
SKUs affected
{{ stockoutCover }}
avg cover left
{{ stockoutQty }}
units to reorder
{{ s.desc }}
{{ s.sku }} · {{ s.cat }}
{{ s.cover }} oh/rop
{{ s.vel }} {{ s.lead }} {{ s.sub }} {{ s.gm }}
on-hand / reorder · velocity · lead · substitute · GM
No stockout exposure on their bought lines
Every SKU this account buys is currently above reorder point — no GM at risk from supply today.
SKU movement current vs prior revenue by line · click a row for the evidence sup_invoice_lines
Line Current Prior Move
Line churn by quarter
lines added vs lost
{{ q.added }}
{{ q.lost }}
{{ q.period }}
added lost top line {{ mvTopShare }}
Peers · head-to-head delta where this account under-buys, under-prices, or gets touched less than a lookalike
Compare against
{{ pt.name }} {{ pt.shared }} shared
+ Associate a peer
This account
{{ acctName }}
{{ cmpAcctMeta }}
versus
Peer
{{ cmpPeerName }}
{{ cmpPeerMeta }}
{{ cr.mine }}
{{ cr.label }} {{ cr.delta }}
{{ cr.their }}
✦ Cross-sell — they buy, you don't
{{ cmpPeerName }} buys {{ fwdCount }} {{ fwdCatWord }} this account hasn't opened.
{{ fwdRev }}
their spend in your whitespace
Draft cross-sell opener →
{{ fc.cat }} {{ fc.rev }} · {{ fc.units }}
Category ledger — line by line units · avg price · gross margin · click a row to drill into SKUs
Category This account Peer Signal
{{ d.chevron }}
{{ d.cat }}
{{ d.statusSub }}
{{ d.mineRev }}
{{ d.mineSub }}
{{ d.peerRev }}
{{ d.peerSub }}
{{ d.badge }}
{{ d.signal }}
SKU · {{ d.skuCount }} lines This account Peer Delta
{{ s.partNo }}
{{ s.desc }}
{{ s.mineRev }}
{{ s.mineSub }}
{{ s.peerRev }}
{{ s.peerSub }}
{{ s.tag }}
{{ s.note }}
Order cadence sup_mv_account_order_cadence
This account
{{ cadMine.gap }}d
median reorder rhythm
Orders / yr{{ cadMine.ordYr }}
Avg order{{ cadMine.aov }}
Last order{{ cadMine.last }}
{{ cadMine.windowLabel }}
Peer
{{ cadPeer.gap }}d
median reorder rhythm
Orders / yr{{ cadPeer.ordYr }}
Avg order{{ cadPeer.aov }}
Last order{{ cadPeer.last }}
{{ cadPeer.windowLabel }}
{{ cadRead }}
Engagement · 90 days CORTEX auto-captured
{{ eb.label }}
{{ eb.mineVal }}
{{ eb.peerVal }}
Last touch · sentiment
{{ engMine.touch }} · {{ engMine.sent }}
Last touch · sentiment
{{ engPeer.touch }} · {{ engPeer.sent }}
{{ engRead }}
The comparison set wallet share × YoY · bubble = revenue
{{ p.label }}
This account
Peer · growing
Peer · declining
▲ above line = growing YoY
→ right = more wallet share
● bigger = more revenue
← lower wallet sharehigher wallet share →
No peer associated yet
Pick a lookalike account to run a side-by-side delta — the categories they buy that this account doesn't, price & margin gaps line by line, reorder cadence, and engagement footprint.
Associate a peer →
Esc
{{ c.name }}
{{ c.loc }} · {{ c.tier }}
{{ c.shared }} + Add
People · discovered contacts identity merged from calls, email & UPSIDE contacts
{{ s.label }}{{ s.n }}
Possible duplicate — {{ mergeNames }}
Same number across two source systems. Heuristic match — review before merging.
ReviewKeep separate
{{ c.initials }}
{{ c.name }}primary
{{ c.title }} · via {{ c.src }}
{{ c.seen }}×
seen
{{ c.last }}
last seen
{{ c.confStr }} conf
{{ c.status }}