/
Open Enter
These settings control how the portfolio dashboard prioritizes positions for your attention.
Automatic background jobs that keep portfolio data up to date via yfinance.
Configure daily snapshot recipients and the scheduled 3:45 PM CT send on trading days.
Enter buying power per entity. Saving schedules the margin summary email 1 hour out.

Presentation Mode

OFF — real figures

Scales every dollar value (AUM, position values, cash, margin, P&L — text + charts) by one hidden factor, so you can present without revealing real magnitudes. Per-share prices stay real (they're public); share counts scale with the values so shares × price still cross-foots. Ratios and percentages are unchanged, and nothing is written to the database.

This affects only the browser you turn it on in — and it follows you into every Demo Platform app (Stocks, Family Office, Deals, PE/VC, Documents). Everyone else keeps seeing real figures the whole time. It switches itself off after the chosen number of hours.

Every dollar value × this. Tune it so the headline AUM lands on a round number.

Alerts

The two book-level limits the app warns on.

Show a warning on the dashboard when total margin utilization exceeds this percentage of available margin.

e.g. 0.80 = 80%

Warn when any single GICS sector exceeds this % of the book. Drives the banner and the red % on Exposure, and the breach line in the weekly Exposure email.

e.g. 0.15 = 15%

Names that appear in trade-proposal dropdowns and event tags. Auto-derived from the active users table — add or remove people in admin.

Toviya Morgan
Extras override (optional)

Comma-separated names to add on top of the user list — useful for non-login signers (contractors, advisors). Leave blank for users-only.

Daily macro / sector / thematic monitoring. Quant pulls from FRED + yfinance ($0). AI: weekly Sonnet review, on-demand Perplexity flag explainer, on-demand Haiku ticker suggest. All wrapped in the drivers agents pod budget.

Default $0.50. Hard-skips overflow.

|z| ≥ this fires a flag. Per-driver overrides on the Drivers tab.

: ET

Sonnet ~$0.05/run. Idempotent per ISO week.

AI call days Cap costs by allowing AI only on selected weekdays. All other days, AI calls return "not_an_ai_day" unless explicitly forced.

Default: Mon & Wed. Affects auto-map, weekly review, AI suggestions, AI explainer, coverage narrator. Manual force-override is available next to each button.

Weights will be auto-normalized to sum to 1.0 if needed.

How It Works

Scheduled tiers run automatically on weekdays to keep prices and fundamentals current without overloading yfinance. Jobs only run once per day and never overlap (except T6 which is independent). Status auto-refreshes every 15 seconds.

T1 — Portfolio Prices
Weekdays at 9:45 AM, 12:30 PM, 4:15 PM ET
Batch download via yf.download() for all active holdings. Updates current price, ref high, and stores OHLCV history.
T2 — Pipeline Prices
Weekdays at 6:00 PM ET
Fetches prices for research pipeline tickers not already updated by T1. Reuses today's portfolio prices where available.
T3 — Stock Metrics
Mon / Wed / Fri at 7:00 PM ET
Fetches fundamentals (dividend yield, sector, industry, country) via yf.Ticker().info with rate limiting.
T4 — Fundamentals
Daily at 11:00 PM ET
Nightly deep fundamentals refresh — P/E, market cap, earnings dates, and other yfinance data for all tickers.
T5 — AI Mover Analysis
Chains after T1 close (4:15 PM ET)
AI analysis of stocks that moved ±3%+ today via Perplexity Sonar. Runs automatically after the post-close price update.
T6 — Market Indices
Weekdays every 525600 min, 8 AM–6:30 PM ET
Refreshes the global banner (S&P 500, Dow, Nasdaq, etc.). Lightweight — runs independently of other tiers.
T7 — Finnhub News
Weekdays at 8:30a, 10:30a, 12:30p, 2:30p, 5:00p ET
Company & market news with sentiment scoring via Finnhub free tier. 5x daily.
T8 — Business Segments Agent
1st of each month at 3:00 AM ET
Refreshes segments, competitors, and business tags for any holding whose data is missing or >6 months stale. Uses yfinance + Haiku fallback.
Daily Backup
Every day at 2:00 AM ET
Full database snapshot to cloud storage. Incrementals run every 10 min.

Enable / Disable Tasks

Turn individual scheduled tasks on or off. Manual "Run Now" triggers still work even when a task is disabled. · Saved instantly.

Live Status

Idle
Job Schedule Last Run Status Action
Portfolio Prices
T1 — Highest priority
Weekdays @ 9:45a, 12:30p, 4:15p ET Never Waiting
Pipeline Prices
T2 — Research tickers
Weekdays @ 6:00 PM ET Never Waiting
Stock Metrics
T3 — Fundamentals
Mon/Wed/Fri @ 7:00 PM ET Never Waiting
Fundamentals
T4 — Deep data refresh
Daily @ 11:00 PM ET Never Waiting
AI Mover Analysis
T5 — Post-close AI
After T1 close update (4:15 PM ET) Never Waiting
Market Indices
T6 — Global banner
Weekdays every 525600m, 8a–6:30p ET Never Completed Waiting
Finnhub News
T7 — Company & market news
Weekdays @ 8:30a, 10:30a, 12:30p, 2:30p, 5:00p ET Never Waiting
Business Segments Agent
T8 — Semi-annual segments refresh
Monthly on 1st @ 3:00 AM ET (only touches stale tickers) Never Waiting
Full DB Backup
Full snapshot → cloud storage + immutable B2
Twice daily @ 11:00 & 23:00 UTC · incremental every 90 min Never
Running…
Completed Waiting

Scheduler Engine

Started at Not running
Check interval 60 seconds
Current job None
Last error None

Manual Refresh

Run T1 → T2 → T3 → T4 in sequence. Each job waits for the previous one to finish.

Market Data Configuration

Configure which indices appear in the global banner and how often they refresh. Format: TICKER:Display Name separated by commas.

minutes (1–60)

Positions held outside the custodian

Track shares custodied away from the main custodian (Fidelity, Schwab, etc.). Each entry lives in its own account named like “NORTHWIND GROWTH TRUST - FIDELITY” so it sits right next to the matching Custodian account for easy comparison. These are included everywhere — Holdings, Exposure, and total AUM — and flagged with their custodian. The default location is Custodian, so only these need a flag. The daily Custodian sync never touches them, so adding positions here can't disturb the existing setup.

Add a Position

Account name preview:

Tracked External Positions

No external positions tracked yet. Add one above.

Upload statement (Fidelity / Merrill / other)

Dated month-end holdings (and optional tax lots) from a non-Custodian custodian export (.csv, .xlsx, or .pdf). Each upload replaces any prior statement for the same account and date, and feeds the FO Platform's month-end report as of that date. The custodian is auto-detected from the file when possible.

Account name preview:
Auto-detected from the file when the statement disagrees (e.g. a Merrill PDF).

Drop file here or click to browse (.csv / .xlsx / .pdf)
Drop file here or click to browse (.csv / .xlsx / .pdf)

Uploaded Statements

External custodian statements aren’t part of this demo.

Email sending isn’t connected in this demo.

Scheduled Emails

Each card controls one automated email. The Daily Snapshot card holds the sender mailbox and the default recipient list every other email falls back to when its own recipients are left blank.

Daily Snapshot

Scheduled

Portfolio performance, market overview and every position that moved ±3% with its catalyst — plus an AI-written bull vs bear case under each position that moved ±10%. Earnings moved to their own Earnings Calendar email below, which rides this card's schedule and recipients.

The Daily Snapshot goes to these recipients. They also serve as the default for any scheduled email below whose own recipients are left blank.

Weekly Exposure

Manual only

GICS sector & industry breakdowns (incl. ETFs), country & region rollup, asset-class breakdown, top holdings, and a sector × country heatmap. Sends on the configured weekday — market holidays do not skip this email.

Weekly 13F — Smart Money

Scheduled

Consensus buys/sells across ~105 hedge funds (from SEC 13F filings), what the funds did with stocks we hold, and notable moves from marquee managers (Buffett, Ackman, Burry, …). Reads the pre-built 13F report — sends on the configured weekday.

Weekly AI Token Economics

Scheduled

What a token costs and who is serving them — a price index across ~370 priced models, demand mix by model origin, disclosed AI compute by country, and open-weight adoption. Free public sources only. Change-gated: a week in which the model catalogue did not move sends nothing.

Weekly Positioning — COT

Scheduled

CFTC Commitments of Traders read: AI positioning narrative, the most-stretched markets (crowded longs & shorts vs. their 3-year range), positioning around the markets we hold (gold, copper, crypto, vol, …), and the overall-market gauge. Reads the pre-built COT cache — sends on the configured weekday (Monday morning by default; COT releases Friday 3:30pm ET).

Daily Article Digest (AI)

Scheduled AI

Full article list from the Articles dashboard — Perplexity sonar-pro discovery results grouped by source (WSJ · Barron's · Substacks · tech · geopolitics · special situations · biotech · earnings · energy · consumer) with title, publication, key insight, summary, sentiment, ticker/theme chips. Per-ticker coverage handled separately by Finnhub. Fires automatically after the ~5 AM ET daily search whenever it persists articles. "Send Now" force-resends today's digest.

Schedule fixed at 5 AM ET (after the article search); no time picker.
Last sent: 2026-10-08

Earnings Calendar

Scheduled

Upcoming Earnings + Recently Reported — the two tables that used to sit at the bottom of the Daily Snapshot, split into their own email so the post-close read stays short (they were 97% of the snapshot's size). Same content as before: estimates, timing, last-4-quarters history, beat/miss and the AI pre-earnings / reaction analysis. Rides the Daily Snapshot's schedule and recipients unless you override them below, so turning the snapshot off turns this off too.

blank → Daily Snapshot time (15:45)
From the Compare table: which measures became a problem (crossed the limit the fundamentals monitor alerts on) since the last of these, and which stopped being one. Every reading is shown with its limit in words, and every email opens with a plain-words explainer. Price moves are deliberately not counted — the snapshot and the movers cover those — so this is filings, earnings, analyst actions and insider trades only. Sent every weekday, changed or not: on a quiet day it still carries both sides of the fifteen names that most need a look, each with a written read of what is happening. Weekends are skipped — the book does not move, so a Saturday send would be Friday’s email again.
Time (CT) weekdays, when something changed
To

Daily Stock-Universe Movers

Scheduled

The whole market, not just our book — every US-listed name that moved ±10.0% in the last session, OTC and pink sheets included, each row flagged HELD / PIPELINE / NEW. The same table is attached as .xlsx. Every move is re-derived from that ticker's own daily closes rather than trusted from the screener — a stale quote on a thin line reports a move that never happened, and those candidates are dropped and listed on sheet 2. Runs after the close (an intraday send is labelled as a partial session). Free — no API key, ~5s, no AI spend.

Last sent: 2026-10-08

Daily Portfolio Company News

Scheduled

100% company news for the whole book — every open stock position's recent news (via Finnhub), grouped one section per company, biggest positions first. With AI summaries on, each story is read and distilled into the salient positive / negative points that would move the stock (falling back to the article's own summary when a publisher paywalls us). The cache is topped up right before sending, so it's current 7 days/week. "Send Now" ships today's edition from the cached news.

Last sent: 2026-10-08

Daily Investment Ideas

Scheduled

New ideas, individual names and themes we don't own or track — reads the day's real articles and hunts for what's buried in them (a supplier named in passing, a bottleneck mentioned as an aside), not the headline everyone has. Three sections: New Ideas (a full thesis, something changed), Individual Names We're Missing (specific tickers we don't own and aren't already in the Pipeline — a research flag, not a call), and Themes (worth tracking, not yet actionable). Every item links to the real articles it came from — anything that can't be traced to one is dropped in code, so nothing is invented. A quiet day sends nothing rather than padding.

Last sent: 2026-10-08

Agent Failure Alerts

On Event

Emails you when a billing, auth or rate-limit error is blocking the AI agents, or when one agent keeps failing. Sent when it happens rather than on a schedule, and deduped with a cooldown so a sustained outage mails once. Blank recipients fall back to the main list.

Topic Report

On demand

Who receives a topic report when you press Email it on Research Themes → a theme → Report. There is no schedule: a space does not change daily, so this only goes out when you send it. Blank falls back to the main list.

Margin Summary

Triggered

Mirrors the Holdings → Margin tab Summary (KPI strip, per-account margin report, headroom to call, shock scenarios). Fires 1 hour after any buying-power update on the Margin tab. Consecutive edits within the hour reset the timer.

Buying Power

Accepts $, commas, spaces

A value 5× above or below the current one is skipped as a likely typo. Tick override on that row to save it anyway.

10/08/2026

Each save records a dated snapshot. The full report — margin loan, headroom, stress tables and buying-power history — lives on Holdings → Margin.

Static demo · synthetic data · read-only  ↩