logo
    logo
    Log in
    Back to blog

    Changelog Sep 8, 2026 - Theme depth, frozen share snapshots, and the AI's reasoning

    Choose how deep into a correlation theme a scan reaches, share a scan as a snapshot that keeps today's numbers, and read why the AI picked each filter.

    4 min read

    A scan restricted to a correlation theme now chooses how far into that theme it reaches. Alongside it: a share link can freeze the numbers it shows instead of re-pricing them for whoever opens it, and the AI tells you why it picked each filter it built.

    How deep into a theme a scan reaches

    A correlation theme has three grades of membership. Core is what the theme's name describes, Satellite trades in sympathy with it, and Loose is barely correlated. A theme-restricted scan took the first two while the picker advertised that number as the theme's size, so "Enterprise SaaS and workflow software" read as 110 in the picker and listed 274 in its detail dialog. Adding it to a scan that came back empty looked like a defect.

    Rows in the picker now read 110 of 274, with the breakdown per grade under them. A Depth control at the top of the Themes section cycles the bound the scan runs at: Core only, Core + satellite (the default), or Core, satellite + loose. Every count moves with it, and the depth you chose shows on the collapsed universe header, the mobile section badge and the scan-stats strip.

    Loose members are in the theme everywhere else in the product, so you can now reach them in a scan. The default stays at core + satellite, because past that the theme's name stops describing what comes back. Scanning by theme needs Super or above.

    Share results that stay put

    The ticker list on a share link was always frozen. Every number beside it was not: the share page re-fetched each value when a stranger opened the link, and a live price socket overwrote whatever had been seeded. A link you posted in June showed June's tickers at today's prices, and said nothing about it.

    Sharing now asks what the link should show. Live values keeps the old behaviour. Frozen snapshot captures the numbers with the tickers and stamps the page "Values as of" the date you shared it. A snapshot is the List tab only, since freezing bars for hundreds of tickers would run to megabytes, and the page says so rather than drawing today's chart under a frozen header. A snapshot captures only what an anonymous visitor may see, so no stranger gets more than they could have fetched themselves, and a Super Pro sharer freezes worse numbers than their own screen shows.

    My Scans gained a Shared tab listing every link you have made, what it shows, when it expires and how many results it carried. Copy it, open it, change the expiry, or revoke it. Revoking stops the link for everyone holding it, wherever you posted it, and cannot be undone.

    Why these filters

    Ask for a scan in plain English and the answer arrives with the model's own account of what it built: which category a phrase routed to, which number a vague word became, which part of your question it could not express. It sits as a collapsed footnote under the filter tree, on web and in the app. Edit a filter and the note goes, since it no longer describes what will run.

    Your saved scan's results keep up

    Editing a saved scan and pressing Save moved the definition and left the old results underneath it, so the scan showed rows its filters no longer matched and the next refresh reported those rows as new matches. A save now carries the run's results onto the scan, when the run used the definition you saved.

    Background refreshes reach the grid on an event of their own instead of riding the alert. An alert fires only when a refresh adds tickers and notifications are on, so a result set that shrank, or any scan with alerts off, used to update for nobody. Both update now, on the scanner grid and on the app's watchlist card.

    Runs under My Scans → History list their tickers again, read back from the scan they belong to.

    Also in this release

    • The empty-scan message names what emptied the scan: a universe with nothing scannable in it, or filters that emptied a real one, with the size and the themes you picked.
    • The stats strip counts matches against the universe scanned, instead of labelling those matches as the tickers scanned.
    • A ticker page marks which grade of theme membership each label is, so a Loose theme no longer reads as a promise that a theme scan includes that stock.
    • Ticker pages link the preset scanners whose conditions that stock meets. A moving-average cross link appears when the averages crossed, not whenever one sits above the other.
    • The public footer links the preset scanner directory at /scanners, and those pages describe their scan in English. Several were publishing raw translation keys to readers and to Googlebot.
    • Pricing marks your current plan again on accounts holding an API add-on alongside a base plan.
    • The homepage build section is a drag-to-reveal comparison between the filter builder and the plain-English composer over one unchanged result set.
    • Tapping a theme heatmap cell reads out a compact dollar volume, follows the metric you switch to and names the month on the axis (mobile).
    • Theme search results stay clear of the keyboard rather than pushing the panel's header off the top, and the "why these filters" note reads from the translation catalogs, VoiceOver included (mobile).

    Tell us what breaks, the frozen snapshots above all. feedback.scanr.ai or [email protected].

    — Eoin & The Scanr.ai team