Evidence before interpretation.
Current data status
A Nasdaq daily ETF-history adapter powers the separate sector research preview for SPY and eleven sector ETFs. These are source-reported historical observations, not independently verified prices or live quotes. Company research uses Finnhub for available quotes, profiles and trailing metrics, and Yahoo Finance for daily history and quote fallback. Coverage currently includes twenty-six supported companies; each data class can be unavailable independently. New source-linked editions are saved independently; the legacy briefing archive has not been imported. Company descriptions are editorial directory content, separate from provider data.
Stocktwits social sentiment
Our social snapshot reads Stocktwits’ trending-symbol list and up to thirty recent posts for each of the first six tickers. Posts older than twenty-four hours at collection are excluded; duplicate post IDs are removed. Percentages count only authors’ explicit bullish or bearish labels. Untagged posts are shown separately, never treated as neutral or replaced with a 50/50 reading. A post count is not a count of independent investors; the author count is also shown.
Trending order comes from Stocktwits. This bounded sample is not an aggregate sentiment index, a measure of money flows or a forecast. Post text is unverified opinion and may include promotions. A shared background update is eligible every fifteen minutes while the server is awake; source failures back off and preserve the original snapshot time. Snapshots older than one hour are withheld. Page views read the cache and do not trigger provider requests or AI analysis.
Successful snapshots are retained for seven days; pruning runs when the background collector wakes, so server sleep can delay cleanup. No older history is reconstructed. The social page compares only the bullish share of author-labelled posts for the same ticker in source samples captured near one, four or twenty-four hours apart. Each side needs at least ten labelled posts from five authors. Samples may overlap, and source outages or Render sleep create visible gaps. A percentage-point change describes this small changing sample, not all traders, a price signal or a prediction.
Company data and caching
Neon stores validated quote, profile, metric and history snapshots separately. Quotes use their provider timestamp, not retrieval time. Finnhub does not supply quote volume through this adapter; missing values remain missing. Market capitalization and shares outstanding from Finnhub profiles are converted from millions. Trailing P/E is not forward P/E; no forecast multiple is inferred. Fundamentals can have different source reporting periods.
Yahoo charts display unadjusted completed-session daily closes in USD, not total returns. Current-session bars are excluded until the source regular close plus thirty minutes. Quote fallback compares the provider regular price against the preceding daily close, not the beginning of the requested history range. Simple moving averages use these same daily closes. Corporate actions can affect comparisons.
Short process caches and persisted refresh leases deduplicate visits. Quotes are eligible every five minutes during the configured weekday US session window, otherwise every six hours; profile/metrics daily and histories every six hours. This clock is not a full holiday calendar. A bounded warmer runs every fifteen minutes while Render is active; hosting sleep pauses it. Browser requests can trigger a shared background refresh sooner. HTTP/API caching never makes old source timestamps current.
Provider request reservations, daily budgets and rate-limit cooldowns persist in Neon. Quote/history observations more than seven days old are withheld; profile capture age is capped at seven days and metrics at thirty days. These are explicit availability ceilings, not real-time guarantees. No Redis service, external scheduler, new subscription or LLM call is required for company snapshots. Commercial data display entitlements still need confirmation before domain cutover.
Intelligence editions, futures and policy
One dated edition joins validated market observations with reported headline/snippet context and a provider earnings calendar. Publication after a market snapshot is marked as forward context, not its cause. Edits produce source-versioned saved editions; no automatic AI causal explanation or trade verdict is published. Company and policy questions use the same guarded Lemon backend and source panels.
Futures quotes require Yahoo’s FUTURE instrument classification and actual series identity. Active contract month and rollover are disclosed as unverified when absent; ETF/spot proxies are never substituted. Crypto observations require the separate CRYPTOCURRENCY class. Each source time remains visible; cache refresh is not proof of an open session.
Sector history is reconstructed from captured aligned source histories using the same model version. It is labeled reconstructed, not presented as an observed historical alert. Rank/quadrant comparisons are reproducible from those reports. Supported company links use editorial sector classification, not a verified ETF holdings list.
Executive-order research retains Federal Register record/publication dates and retrieved text when available. Topic-based economic exposure is a hypothesis, not a bullish/bearish return prediction. Read operative provisions and amendments in the official linked PDF. Form 4 panels parse only non-derivative transactions from an issuer-validated filing. Where supplied, the view retains the filed acquired/disposed field and direct/indirect ownership details. It shows calendar days between the transaction date and SEC filing date; this is a date comparison, not a compliance judgment. Missing derivatives or 13F holdings are not inferred.
The heartbeat screen uses a disclosed twenty-six-company universe, daily unadjusted bars, source growth metrics and reported earnings surprises. Missing fields are unknown, not passing scores. Scan thresholds filter saved results; source budgets can leave coverage incomplete. In-process collection pauses when hosting sleeps, so a nightly eligibility interval is not a guaranteed overnight cron schedule.
Public-source evidence collection
The collector retrieves Treasury Debt to the Penny statistics and Federal Register presidential-document metadata from fixed government endpoints. It validates record dates, exact-cent debt totals and source domains before storing records and content fingerprints in Neon. Original records and source links remain available for inspection. Validation does not establish independent accuracy or a causal link to market prices.
Collection attempts run hourly while this web service is active; hosting sleep pauses them. Source status shows the last attempt, and each fact shows its record/publication date separately from its capture time. Changed records create new revisions. Collector failures are recorded; previous facts are historical records, never relabeled current. Federal Register metadata is an informational rendition; legal text should be checked against its official govinfo PDF.
FRED observations retain their original units, frequency, seasonal adjustment and observation period. CPI is displayed as an index level, not an inflation percentage; M2 is a money-stock level in billions of dollars. Retrieval vintage and series update time are separate from observation periods. Missing values remain missing. These series provide macro context, not stock/ETF prices or measured equity flows.
What can be published
Market observations require an identified source, instrument, market timestamp, ingestion timestamp and delay status. The product accepts 15-minute-delayed data. Incomplete, stale or incompatible inputs must not silently produce a score. Interpretation must be distinguished from observation and linked to supporting evidence.
Rotation calculations
The original legacy v1 calculation engine is preserved and remains disconnected. Its breadth factor is a price-history proxy, not constituent participation. The separate price-return model uses closing-price relative returns, ten-session RS normalization and ten-session ratio momentum. Its score weights are 25% 20-session relative return, 20% five-session relative return, 15% SMA20/50 position, 15% volume pressure, 15% normalized ten-session RS regression slope and 10% last completed session relative return. Relative return, slope and volume factors use midrank percentiles across all eleven sectors; SMA positions contribute 0/50/100. Volume pressure averages percentiles of ten-session normalized OBV change and signed log daily volume ratio against the prior twenty sessions. Directional trading activity must not be described as measured net fund flows. No predictive accuracy is claimed. Candidate data requires all twelve histories to align with at least 51 complete sessions, correct symbols/currency, valid daily OHLC/volume and the latest completed NYSE session for all twelve funds. The NYSE holiday calendar is maintained through 2027; a day is included after 4:30 PM Eastern, including early-close days. Older data is withheld, rather than relabelled current. Unscheduled exchange closures may require a calendar update. Price returns exclude dividends and may reflect splits or source corrections. Historical rank changes use only the same source and price-return model, never the older Yahoo adjusted-close series. A public endpoint does not establish a commercial display license; this evaluation does not clear the main-domain launch.
Watchlists
Guest watchlists stay in browser storage. Signed-in watchlists are stored privately in Neon. Device watchlists are imported only when requested. Watchlist persistence does not depend on fabricated market prices.
Account activity
For signed-in testers, minimal daily account activity markers record desk visits and watchlist changes. They do not include login codes, email contents or session replay.
No newsletter or test emails are being triggered by this rebuild work. Existing legacy scheduling has not been modified. The existing login system can send a code when a user requests one; the agent will not request codes or trigger sends without authorization.