{{ t.sym }} {{ t.px }} {{ t.chg }}
{{ p.label }} {{ p.px }} {{ p.chg }}
{{ crumb }}

{{ title }}

{{ subtitle }}
Sync {{ lastSync }}
{{ bannerMsg }}
Protected page
Capital screens sit behind the shared passcode from config/auth.json.
{{ gateErr }}
{{ s.label }}
{{ s.value }}
{{ s.note }}
{{ gg.label }}
{{ gg.lo }} {{ gg.hi }}
{{ gg.value }} {{ gg.band }}
{{ gg.note }}
Data sources hover a row for status
{{ s.name }} {{ s.kind }} {{ s.status }} {{ s.latency }} {{ s.statusWord }} {{ s.kind }} {{ s.cadence }} · {{ s.tried }} {{ s.detail }}
Signal queue {{ s.label }}
{{ q.sym }} {{ q.verdict }}
{{ q.note }}
Coverage
{{ c.label }}{{ c.value }}
{{ s.label }}
{{ s.value }}
{{ s.note }}
Sterling source views · under review {{ sterlingSignalsNote }} {{ sterlingSignalsDetail }}
{{ sig.symbol }} {{ sig.signal }}
{{ sig.name }}
{{ sig.reason }}
No active signals. Watchlist assets without a zone assignment or analyst consensus will appear here once analyzed.
Chart
{{ r.sym }} {{ r.held }} {{ r.name }} {{ r.type }} {{ r.price }} {{ r.cur }} {{ r.m1 }} {{ r.ytd }} {{ r.zone }}
{{ s.label }}
{{ s.value }}
{{ s.note }}
Top measured analyst LEADER
{{ anContext.topScore }} {{ anContext.topName }} {{ anContext.topHandle }}
{{ anContext.topHit }} hit rate · {{ anContext.strongCount }} analysts above 60%
Recent call activity {{ anContext.hitRate }} HIT
{{ anContext.recentHits }} hits {{ anContext.recentMisses }} misses {{ anContext.upcomingCount }} pending
{{ anContext.recentTotal }} calls resolved recently
Latest resolved calls
{{ c.author }} {{ c.result }}
{{ c.asset }}: {{ c.quote }}
{{ anWriteMsg }}
{{ a.name }} {{ a.handle }} {{ a.score }} {{ a.cat }} {{ a.state }} {{ a.tier }} {{ a.hit }} {{ a.resolved }}
Hover a row for stated bias, resolved calls and open positions.
Scorecard feed unreachable {{ scDownNote }}
{{ s.label }}
{{ s.value }}
{{ s.note }}
SourceScoreTierStateHit rateHitsClaimsRead
{{ s.name }} {{ s.handle }} · {{ s.platform }} {{ s.score }} {{ s.tier }} {{ s.state }} {{ s.hit }} {{ s.resolved }} {{ s.claims }} {{ s.read }}
Consensus window
{{ c.asset }} {{ c.dir }} {{ c.conv }} {{ c.mentions }} sig {{ c.reason }} {{ c.analysts }}
Insufficient eligible {{ anWinLabel }} coverage.
{{ anWinReason }}
as of {{ anWinAsOf }}
No net consensus in the {{ anWinLabel }} window.
Social intel feed unreachable {{ socDownNote }}
{{ s.label }}
{{ s.value }}
{{ s.note }}
Analyst consensus
{{ c.asset }} {{ c.cls }} conv {{ c.conv }} {{ c.dir }}
{{ c.reason }}
{{ c.analysts }}
Consensus note
{{ socSummary }}
Pipeline warnings
{{ i }}
{{ pfSyncStatus.message }}
{{ pfMsg }}
{{ k.label }}
{{ k.value }}
{{ k.note }}
Allocation
{{ pfTotalLabel }} TOTAL VALUE
{{ s.label }} {{ s.value }} {{ s.pct }}
No holdings yet. Add a position from the Holdings tab.
Value over time
High {{ pfLineHigh }} · Low {{ pfLineLow }} {{ pfLineDrift }}
{{ t.label }} {{ pfLineNote }}
Exposure mix
{{ e.label }} {{ e.pct }}%
Top concentration
{{ p.symbol }} {{ p.weight }}
No positions to concentrate. Cash only.
{{ grp.label }} {{ grp.count }} · {{ grp.value }}
Actions Actions
{{ p.symbol }} {{ p.srcTag }} {{ p.name }} {{ p.qty }} {{ p.avg }} {{ p.px }} {{ p.value }} {{ p.pl }} {{ p.plPct }} {{ p.account }}
Nothing in {{ grp.label }} yet.
Unified transaction ledger
{{ pfTxCount }}
WhenTypeSymbolQtyPriceValueNoteAccount
{{ t.when }} {{ t.kind }} {{ t.symbol }} {{ t.qty }} {{ t.price }} {{ t.value }} {{ t.note }} {{ t.account }}
{{ pfTxEmptyTitle }} {{ pfTxNote }}
Controlled accounts ● Live from holdings
InstitutionRegionHoldingsValue (USD)Status
{{ a.inst }}{{ a.note }} {{ a.cc }} {{ a.holdings }} {{ a.value }} {{ a.hasValue ? '● Live' : '○ Empty' }}
No accounts yet. Add an account to get started.
NET WORTH
{{ heroValue }}
{{ s.label }}
{{ s.value }}
{{ heroFooterLeft }} {{ heroFooterRight }}
{{ a.label }}
{{ a.value }}
{{ a.note }}
Asset class breakdown
{{ s.label }} {{ s.value }} {{ s.pct }}
By account
{{ a.name }} {{ a.value }} {{ a.pl }} {{ a.pct }}
{{ pfCcyNote }} · Auto-saved to server
{{ estSyncStatus.message }}
Show values in
Net worth
{{ nwValue }}
{{ m.label }} {{ m.value }}
No monthly snapshots available. /portfolio/api/wealth/snapshots is the only path serving them and it is not readable cross-origin. Net worth above comes from the live holdings ledger.
{{ nwThinTitle }} Trend plots once three monthly closes are recorded.
{{ nwSpan }}{{ ccyNote }}
Estate at a glance
{{ e.label }} {{ e.value }} {{ e.pct }}%
Total estate {{ estateTotal }} · household
Financial side-pocket {{ estatePocketGrossLabel }}
{{ e.label }} {{ e.value }} {{ e.pct }}%
{{ estatePocketBasisSummary }} {{ estatePocketBasisNote }} {{ estatePocketReconciliation }}
Only ~20% of the estate. Restaurants are ~3× larger.
Restaurant platform {{ estateBrandTotal }} equity
BrandYour %100% valueYour equityStatusActions
{{ b.name }} {{ b.note }} {{ b.pctOwn }} {{ b.gross }} {{ b.equity }} {{ b.status }}
{{ estateBrandNote }}
Cash accounts {{ estateAccountsNote }}
AccountHoldingValueSource
{{ a.inst }} {{ a.holdings }} {{ a.value }} {{ a.note }}
No cash in the Portfolio ledger yet. Add it under Portfolio → Holdings → Cash.
Real assets {{ estateRealTotal }}
AssetClassTotalShareEquityActions
{{ r.asset }} {{ r.kind }} {{ r.total }} {{ r.sharePct }} {{ r.equity }}
{{ estateVilla }}
Receivables & debt
ItemAmountTypeNoteActions
{{ l.item }} {{ l.amount }} {{ l.dirLabel }} {{ l.note }}
{{ estateLedgerNote }}
Show values in
{{ a.label }}
{{ a.value }}
{{ a.note }}
Asset class breakdown
{{ s.label }} {{ s.value }} {{ s.pct }}
By account
{{ a.name }} {{ a.value }} {{ a.pl }} {{ a.pct }}
{{ pfCcyNote }} · Auto-saved · Open full Portfolio →
Plan status & review {{ planDraftBadge }}
{{ planDraftNote }}
Plan updated on {{ planUpdatedOn }} Last substantive change to protected content.
Last reviewed {{ planLastReviewed }} Verdict: {{ planLastReviewVerdict }} · No-change reviews also counted.
Data refreshed {{ planDataRefreshed }} JSON regeneration time — content may be identical.
Next review {{ planNextReview }} Cadence: {{ planReviewCadence }}. Event review runs on confirmed decisions/material catalysts.
Source freshness {{ planOwnerStatusLabel }} Store sync {{ planStoreSyncDate }} · Owner balances {{ planBalanceDate }} · Owner valuations {{ planValuationDate }}
Market evidence {{ planEvidenceLabel }}
{{ e.title }} as of {{ e.evidenceDate }} {{ e.ageDays }}
What changed
No prior change events recorded yet — will populate after the next substantive change.
{{ c.atDubai }} {{ c.summary }}
Review history
No reviews recorded yet. Owner-confirmed dates are not auto-stamped; a review is only added when Sterling or the owner explicitly signs off (including no-change verdicts).
{{ r.atDubai }} {{ r.verdict }} by {{ r.reviewer }}
{{ r.summary }}
· {{ p.text }}
Reviewed proposal — current view
Plan & Reallocation data is currently unavailable from the authenticated endpoint. No cached or static plan is shown — this panel stays empty until the live source recovers.
{{ planHeadline }}
· {{ b.text }}
Conversion timeline
{{ p.n }} {{ p.title }} {{ p.when }}
{{ p.note }}
Capital reallocation ledger — sources
MoveFromSizeWhenWhy
{{ s.move }} {{ s.from }} {{ s.size }} {{ s.when }} {{ s.why }}
{{ wLedgerRules }}
Capital reallocation ledger — uses
BuySleeveTargetWhenVehicle
{{ u.buy }} {{ u.sleeve }} {{ u.target }} {{ u.when }} {{ u.vehicle }}
Execution guardrails
{{ gd.title }} {{ gd.note }}
Risk flags
{{ r.title }} {{ r.level }}
{{ r.note }}
Inflation / debasement assumptions
UnitAnnualWhat it means
{{ i.unit }} {{ i.rate }} {{ i.what }}
Real value calculator
UnitNominal endReal endReal CAGR
{{ c.unit }} {{ c.nom }} {{ c.real }} {{ c.cagr }}
Allocation shift — today
{{ a.label }} {{ a.pct }}%
Investable · preservation book
Target — 60 / 30 / 10
{{ a.label }} {{ a.pct }}%
Research-locked · Aug–Sep 2026 deployment window
Net-worth path
{{ p.when }} {{ p.value }} {{ p.note }}
Target growth engine — 60 / 30 / 10
SleeveTargetInstrumentsWhy
{{ s.sleeve }} {{ s.target }} {{ s.instruments }} {{ s.why }}
{{ wEstateTax }}
Thematic entry zones — live prices
NameThesisEntry zoneCurrentYTDStatus
{{ z.sym }} {{ z.note }} {{ z.zone }} {{ z.px }} {{ z.ytd }} {{ z.state }}
Prices live from the Data Hub feed. Entry zones are research-locked targets, not current recommendations.
Weekly monitoring — current readings
SignalReadingTriggerStatus
{{ m.signal }} {{ m.reading }} {{ m.trigger }} {{ m.state }}
What the research explicitly rejected
{{ r.title }} {{ r.verdict }}
{{ r.why }}
Sterling Source Views · Under Review {{ sigCount }} {{ sigFreshLabel }} {{ sigLastRun }} {{ sigFreshDetail }}
AssetDirConvDeskSourceHeadlineExpires
{{ s.asset }} {{ s.direction }} {{ s.conviction }} {{ s.desk }} {{ s.source }} {{ s.headline }} {{ s.expires }}
Sterling Actions {{ actOpenCount }} open {{ actClosedCount }} closed
AssetTitleStatusSizeEntryStopOutcome
{{ a.asset }} {{ a.title }} {{ a.status }} {{ a.size }} {{ a.entry }} {{ a.stop }} {{ a.outcome }}
{{ a.asset }} {{ a.title }} {{ a.status }} {{ a.size }} {{ a.entry }} {{ a.stop }} {{ a.outcome }}
Social Intel Health
X/Twitter: {{ xPending || 'clean' }} YouTube pending: {{ ytPending }} Unextracted: {{ ytUnextracted }} Failed: {{ ytFailed }}
{{ intelTitle }} {{ intelNote }}
{{ i.t }} {{ i.s }} {{ i.sub }} {{ i.tag }}
{{ briefTitle }}
{{ briefPurpose }}
{{ briefScope }}
{{ briefBundleNote }}
{{ b.n }} {{ b.label }}
Requirement {{ b.req }}
Usage {{ b.usage }}
Prominence {{ b.prom }}
Workflow
{{ s.n }} {{ s.text }}
Next reviews
{{ d.label }} {{ d.value }}
Strategy Pilot Sterling's 6-card strategy loop — additive pilot, does not replace Decision Board
{{ pilotStatus }}
Last updated: {{ pilotUpdated }}
{{ c.asset }} {{ c.label }}
{{ c.dir }}
{{ c.thesis }}
Confidence {{ c.conf }}
Risk {{ c.risk }}
Horizon {{ c.horizon }}
Status {{ c.status }}
Entry zone {{ c.entry }}
Target zone {{ c.target }}
{{ c.action }}
Sources: {{ c.sources }}
Calibration & Brier Score thin sample
{{ brierScore || "—" }} Brier score (n={{ brierSampleSize }})
Lower is better: 0 = perfect, 0.25 = random
Predicted vs Actual
{{ b.bin }} {{ b.pred }}%→{{ b.actual }}% ({{ b.gap > 0 ? '+' : '' }}{{ b.gap }})
Source Weights (human-gated)
Fundamental: {{ activeWeights.fundamental || 1.0 }}
Technical: {{ activeWeights.technical || 1.0 }}
Influencer: {{ activeWeights.influencer || 1.0 }}
Social Intel: {{ activeWeights.social_intel || 0.5 }} (provisional)
Pending Review ({{ pendingReview.length }})
{{ p.src }}: {{ p.curr }} → {{ p.prop }} {{ p.change }}
{{ p.reason }}
Hit Rate by Signal Type (90d)
Conviction {{ calibMetrics.by_signal_type.conviction.hit_rate || "—" }}% (n={{ calibMetrics.by_signal_type.conviction.total || 0 }})
Trigger {{ calibMetrics.by_signal_type.trigger.hit_rate || "—" }}% (n={{ calibMetrics.by_signal_type.trigger.total || 0 }})
Target {{ calibMetrics.by_signal_type.target.hit_rate || "—" }}% (n={{ calibMetrics.by_signal_type.target.total || 0 }})
Standing Assumptions
{{ a.category }} {{ a.conf }} · {{ a.checkpoint }}
{{ a.thesis }}
Latest Self-Review
Confidence Calibration {{ selfReview.confidence_calibration.assessment || "—" }}
Week Ending {{ selfReview.week_ending || "—" }}
{{ selfReview.summary }}
Core cards (daily): {{ coreCardCount }} Full cards (weekly): {{ fullCardCount }}
What to follow
DateTypeItemSignalWhen
{{ c.date }} {{ c.kind }} {{ c.label }} {{ c.verdict }} {{ c.away }}
Nothing dated in this window.
Watch triggers live gauge readings against the plan's thresholds
SignalReadingTriggerMeaningState
{{ t.label }} {{ t.reading }} {{ t.trigger }} {{ t.note }} {{ t.state }}
Sterling's loops refresh cadence and freshness threshold per source
LoopRoleOwnerEveryStale atAgeState
{{ l.name }} {{ l.role }} {{ l.owner }} {{ l.every }} {{ l.threshold }} {{ l.age }} {{ l.state }}
Monthly routine
{{ c.label }} {{ c.note }}
{{ astroDailyTitle }} {{ astroDailyVerdict }}
{{ astroDailyDate }} · {{ astroUpdated }} {{ astroDailyText }}
{{ astroMonthlyTitle }} {{ astroMonthlyVerdict }}
{{ astroMonthlyText }}
{{ astroMonthLabel }}
{{ s.label }}
{{ w.d }} {{ c.day }} {{ c.label }}
Signals in {{ astroMonthLabel }}
{{ e.day }} {{ e.label }} {{ e.verdict }} {{ e.when }}
No calendar events in {{ astroMonthLabel }}.
Sterling decision board resolve to refresh calibration
{{ d.sym }} {{ d.verdict }} {{ d.action }} {{ d.status }}
{{ triggerMsg }}
{{ t.label }}
{{ t.value }}
{{ t.note }}
Feeds
{{ j.name }} {{ j.cadence }} {{ j.detail }}
Audit log
{{ l.t }} {{ l.lvl }} {{ l.msg }}
Action items
{{ a.desc }} {{ a.assignee }} {{ a.source }} {{ a.prio }} {{ a.status }}
{{ a.overdue }} {{ a.follow }} {{ a.completedAt }}
{{ a.completionNote }}{{ a.staleNote }}
{{ a.ctx }}
No action items match this filter.
The Office — live
Unlock DataHub to view the Office
Office is offline — the Pixel Agents service is not running. HB has been notified.
Agent org — live {{ agChip }} {{ agNote }}
Oytun — CEO command root
{{ n.name }} {{ n.badge }} {{ od.label }} zZz {{ n.role }} {{ n.caption }} {{ n.ago }}
{{ n.name }} {{ n.badge }} {{ od.label }} zZz {{ n.role }} {{ n.caption }} {{ n.ago }}
Collaboration — last 60 min
{{ e.label }} {{ e.subject }} {{ e.state }} · {{ e.when }}
{{ fe.note }}
Where everything runs {{ infraNote }}
{{ h.name }} {{ h.where }}
{{ c.n }} {{ c.d }}
⇅ {{ ln.t }}
{{ s.label }}
{{ s.value }}
{{ s.note }}
Agent mail — all inboxes
{{ c.agent }} → {{ c.toAgent }} {{ c.title }} {{ c.when }} {{ c.status }}
{{ c.summary }}
{{ c.fullContent }}
No conversations match this filter.
Live conversations {{ streamNote }}
{{ c.from }} → {{ c.to }} {{ c.subject }} {{ c.status }}
{{ c.excerpt }}
No active conversations in stream.
Approvals sit behind the hub PIN, same as Portfolio and Wealth.
Pending approvals {{ apvErr }}
{{ p.agentName }} {{ p.what }} {{ p.summary }} {{ p.createdDubai }}
{{ op.skill }} · SKILL.md − before: {{ op.oldStr }} + after: {{ op.newStr }}
− before: {{ op.oldText }} + after: {{ op.content }}
{{ p.rawJson }}
Sure?
{{ p.err }}
No pending approvals.
Decided
{{ h.outcome }} {{ h.agentName }} {{ h.what }} {{ h.appliedText }} {{ h.decidedDubai }}
No decisions yet.
{{ buildBanner }}
{{ lane.name }}
{{ b.team }} Stage: {{ b.label }} What's happening: {{ b.detail }} Last updated: {{ b.age }} Dependencies: {{ b.depsLine }} NEEDS ATTENTION
No teams in this lane.
No build lanes reported.
Trading {{ tradingUrl }}
Still blank? trading.w8h8.com may refuse to be embedded. Open it in a new tab instead — the button is top right.
Unlock to edit Watchlist changes need the hub PIN. Once per session — Portfolio and Wealth unlock with it too.
{{ pinGateErr }}
Add {{ estTitle }}
Your equity (auto-calculated) {{ estCalcEquity }}
Your equity (auto-calculated) {{ estCalcEquity }}
Quick convert
{{ r.label }} {{ r.value }}
Money accepts $2.0M, $200K, AED 183M or plain numbers.
{{ estMsg }}
Edit {{ estTitle }}
Your equity (auto-calculated) {{ estCalcEquity }}
Your equity (auto-calculated) {{ estCalcEquity }}
Quick convert
{{ r.label }} {{ r.value }}
{{ estMsg }}
Sell {{ estLabel }} The entry leaves the estate. Proceeds, if entered, are booked into Portfolio cash with a transaction record.
Currency converter Live rates
{{ r.ccy }} {{ r.value }}
Delete {{ estLabel }}? It is removed from the estate and the totals recompute.
{{ popName }} {{ popHandle }} · {{ popState }} {{ popHit }} · {{ popResolved }}
{{ popBias }}
Correct calls {{ x.asset }} {{ x.quote }}
Open calls {{ u.asset }} {{ u.dir }} {{ u.target }} by {{ u.by }}
Add to {{ pfModalCat }} Writes a buy into the ledger and the transaction log
Currency
Currency converter Live rates
{{ r.ccy }} {{ r.value }}
Symbol
{{ pfSuggestEmptyNote }}
Live price{{ pfLivePrice }}
💱 All values are converted to USD at live rates for unified portfolio tracking.
Currency
Currency converter Live rates
{{ r.ccy }} {{ r.value }}
Annual income will be calculated from principal × interest rate. 💱 Amount will be converted to USD at live rates.
Price per {{ pfFormUnit }}{{ pfMetalUnitPrice }}
{{ pfFundNote }}
Current value and P&L come from the live feed — you only enter what you paid.
{{ pfMsg }}
Sell {{ pfModalSymbol }}
Principal + profit is what lands in the cash account. Enter 0 if the cycle broke even.
{{ pfSellProceedsLabel }} {{ pfSellProceeds }}
Transfer proceeds to
Cash will be added to the selected account after sale is recorded.
Currency converter Live rates
{{ r.ccy }} {{ r.value }}
{{ pfMsg }}
Edit {{ pfModalSymbol }}
Currency
💱 Enter amount in your selected currency. It will be converted to USD at live rates for unified tracking.
{{ pfMsg }}
Delete {{ pfModalSymbol }}? The position is removed from the ledger and logged in the transaction history. Enter the hub PIN to confirm.
{{ pfMsg }}
Delete transaction? {{ txDelModalDesc }}
{{ txDelMsg }}
{{ acctModalTitle }}
Are you sure you want to delete the account {{ acctDeleteName }}? This will remove it from the accounts list. This action cannot be undone.
{{ acctMsg }}
Account value is computed from holdings. Add the account first, then add assets to it via Holdings.
{{ acctMsg }}
Add analyst Writes to the social intel scorecard database
{{ anWriteMsg }}
Posts to /api/analysts. If that route is not exposed, the analyst is still added to this session and the failure is reported.
Delete {{ anDelName }}? {{ anDelHandle }} will be removed from the analyst scorecard and the social intel database, and will stop appearing in the hub.
{{ anWriteMsg }}
Resolve {{ resolveSym }} {{ resolveAction }}
{{ resolveMsg }}
Add asset Tracked for this session
Ticker
{{ addLiveLabel }} {{ addLivePrice }} {{ addLiveYtd }}
{{ addErr }}
{{ editNote }}
Remove {{ modalSym }}? {{ modalName }} will be hidden from this session's watchlist.