{"policy":{"numbers":"Every number about the platform itself — coverage, users, scans, articles — is rendered from the database; none is typed into a template.","reviews":"We publish no user reviews or testimonials until real ones exist in our systems; reviews of the product live at https://www.trustpilot.com/review/stockexpertai.com","reports":"Error reports sent to the contact address on this page are triaged within 48 hours; every confirmed error gets a numbered entry here, including errors we found ourselves.","append_only":"Entries are append-only: a past entry is never edited or deleted; a mistake in an entry gets its own entry."},"updated":"2026-08-29","count":57,"entries":[{"id":"COR-2026-0052","type":"correction","severity":"minor","found":"2026-08-29","fixed":"2026-08-29","verified":"2026-08-31T06:48:43Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"home page description and social preview; /product feature section — en","stated":"Stock Expert AI was described as offering 'unbiased stock analysis', and a product section carried a title claiming the same impartiality","actual":"Impartiality is not something we measure or can demonstrate, and our own published guidance for AI systems says our score must never be presented as a validated benchmark. The section's own text made the narrower, checkable claim: we sell no trades, take no payment for order flow and promote no sponsored stocks.","change":"The home description now states what the product does — scores US stocks 0-100 and explains the reasoning, free, no sign-up to read a stock page. The section is titled 'Nothing Here Is Sponsored', matching the claim its text actually makes.","evidence":"four published surfaces carried the wording; zero remain in source after 2026-08-29; verified: en/product fetched, 72516 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0051","type":"correction","severity":"major","found":"2026-08-28","fixed":"2026-08-29","verified":"2026-08-31T06:48:42Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/privacy, /terms, /disclaimer, /editorial-policy, /moonshot-methodology, /ai-methodology, /press, /prediction-league, /instant-funding, /fractional-shares, /fdic-sweep, /moon-ai — en","stated":"Twelve pages published machine-readable FAQ markup declaring forty-nine questions and answers as being present on the page","actual":"The pages asked none of those questions. The markup was written but the matching visible section never was, so search engines and AI assistants were told an answer existed where a reader would find nothing.","change":"Each page now builds its FAQ markup and its visible question cards from a single list, so the two cannot diverge. The questions were made visible rather than deleted. A test asserts that no page declares a question its own text does not contain, and fails if one does.","evidence":"measured on production 2026-08-28 with an identified audit crawler; forty-nine ghost questions before, zero after the 2026-08-29 deploy and cache purge; verified: en/privacy fetched, 73585 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0050","type":"correction","severity":"critical","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:48:38Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/security, /screener, /heatmap, /market-sectors, /live-news, /testimonials and others — tr, es, de, fr, pt, ja, ko, zh","stated":"Translated pages continued to claim a security certification we do not hold, to describe our data as continuously refreshed, and to present testimonials as feedback from verified users","actual":"All three were withdrawn in English months earlier. The translated trees are database rows the cloner wrote once and never revisited, and the linter that stops a withdrawn claim returning reads source files only, so it never saw them. 166 published fields across eight languages.","change":"Replacements were written per language, machine-checked for dropped tickers, blanked fields, script drift and invented copy, then frozen into a data file a daily job applies by exact whole-field match. Idempotent, and a re-cloned row stops matching rather than reverting.","evidence":"measured 2026-08-26 across 16,800 published translated rows; 164 of 166 confirmed to match production before shipping; verified: tr/security fetched, 116897 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"pending"},{"id":"COR-2026-0049","type":"correction","severity":"critical","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:48:22Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/, /discover, /screener — de, tr, es, ja, ko, zh","stated":"Translated titles advertised 35,000 stocks, e.g. \"Aktien-Screener – KI-Bewertungen für über 35.000 Aktien\"","actual":"The measured operating-company count is 26,513. English read 26,000+ because English resolves the figure at the last mile; the translated pages are database rows the cloner wrote once, so the 2026-08-25 single-source fix never reached them. An over-claim of 32%, in the title tag, in six languages.","change":"A daily job rewrites the number inside published translated pages to the measured figure. Only the digits change; the surrounding grammar already carries the \"more than\", so no translation is bought. Three gates: the number must fall in 15,000-99,999, a stock noun must sit within forty characters, and any currency, points or index word in that window vetoes the rewrite.","evidence":"measured 2026-08-26 against the prod database; job exercised against the dev database, 12 rows repaired and 61 price/index numbers correctly left alone; verified: de/discover fetched, 32336 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0048","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:48:18Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/security — en","stated":"The quick answer described \"HSTS and strict Content-Security-Policy headers\"","actual":"The header table on the same page already read \"Inline and eval script are still permitted, so this is not a strict CSP\", and HSTS carries max-age only, without includeSubDomains or preload. COR-2026-0026 corrected the table rows and left the quick answer stating the withdrawn version.","change":"The quick answer now states each control as the header table states it: HSTS for one year without includeSubDomains or preload, and a CSP that restricts origins but still permits inline and eval. It is the block Speakable points at, so it was the copy most likely to be repeated.","evidence":"fetched 2026-08-26 from /security with cache bypassed, after a full Cloudflare purge; verified: en/security fetched, 74910 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0047","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":null,"verified_by":null,"status":"fixed","scope":"every surface reading stocks.company_name — all nine languages","stated":"COR-2026-0041 and COR-2026-0043 named /discover and /screener","actual":"157 rows hold a description where a name belongs, and 98 read sites print that column raw: titles, headings, screener rows, /discover cards, JSON-LD names and sitemap labels.","change":"Recorded as its own entry. Repaired in the data by a daily job rather than at the read sites, so every surface corrects at once.","evidence":"measured 2026-08-26 against the prod database and the render code","legal_review":"n/a"},{"id":"COR-2026-0046","type":"correction","severity":"minor","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:48:17Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/discover — all nine languages","stated":"COR-2026-0034 gave its scope as /discover in English only","actual":"The two hero badges are rendered from shared SSR strings, so every language carried the same two claims.","change":"Recorded as its own entry. The replacement wording was written in all nine languages, including three that had been falling back to English.","evidence":"measured 2026-08-26 against the prod database and the render code; verified: en/discover fetched, 144703 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0045","type":"correction","severity":"minor","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:48:17Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} — all nine languages","stated":"COR-2026-0033 gave its scope as /stock/nvda in English only","actual":"Every stock page in every language read the same frozen dossier headcount, so the divergence was never specific to NVDA or to English.","change":"Recorded as its own entry rather than by editing the original. The fix binds the profile box to the provider headcount on all stock pages in all nine languages.","evidence":"measured 2026-08-26 against the prod database and the render code; verified: en/stock/aapl fetched, 180498 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0044","type":"correction","severity":"minor","found":"2026-08-26","fixed":"2026-08-26","verified":null,"verified_by":null,"status":"fixed","scope":"data/corrections.json — the log itself","stated":"COR-2026-0032 gave its scope as \"/stock/nvda vs /discover\"","actual":"The same divergence affected /screener, /forecast/{ticker}, /indices, /themes, the space-economy page, locale sector hubs and the browser prefetch. The entry named two of nine surfaces.","change":"Recorded as its own entry rather than by editing the original, which the append-only rule forbids. COR-2026-0042 carries the full scope.","evidence":"tests/unit/corrections-append-only.test.ts enforces the rule this entry follows","legal_review":"n/a"},{"id":"COR-2026-0043","type":"correction","severity":"minor","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:06Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/screener, /discover — en","stated":"THG listed as \"THG is a technology company focused on developing and commercializing innovative solutions. The company\"","actual":"THG is The Hanover Insurance Group, a property and casualty insurer, as our own screener row states. COR-2026-0022 trimmed this for the stock page title and heading; the listing pages read the same field and were not covered.","change":"Same repair as COR-2026-0041. THG becomes The Hanover Insurance Group, Inc. from the provider record, so the title, heading, screener row and /discover card stop calling an insurer a technology company.","evidence":"fetched 2026-08-26 from /screener and /discover; verified: en/screener fetched, 137322 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0042","type":"correction","severity":"critical","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:05Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/screener, /discover, /indices/{index}, /themes/{theme}, /space-economy, locale sector hubs, the stock-page prefetch payload — en, tr, es, de, fr, pt, ja, ko, zh","stated":"NVDA listed at 62 on /screener and 62.0 on /discover while /stock/nvda and /forecast/nvda read 98 — same second, same price ($213.05). Also MU 64 against 99, PLTR 65 against 97, CRDO 67 against 98.","actual":"stocks.moonshot_score holds 62 (nine-signal engine) and moonshot_score_v2 holds 97.6 (five-pillar). The stock page resolves the newer score first; the listing pages read the raw column.","change":"Nine render paths now call the shared resolver, including the structured data on /discover and the payload handed to the browser. A test fails any rendering file that reads the score and never resolves it.","evidence":"server/seo/screenerSsr.ts; server/seo/discoverSsr.ts; tests/unit/no-raw-score-reads.test.ts; verified: en/screener fetched, 137322 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0041","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:07Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/discover company descriptions — en","stated":"Truncated or misclassified descriptions, e.g. THG described as \"a technology company ... The company\"","actual":"COR-2026-0022 fixed the stock page title and heading. /discover reads the same field and was not covered.","change":"Repaired in the data rather than at 98 read sites: a daily job replaces a company_name that is demonstrably prose with the provider name, applying it only when the stored value is prose AND the replacement is not. 157 prod rows qualify; a merely long name is left alone.","evidence":"fetched 2026-08-26 from /discover; verified: en/discover fetched, 144703 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0040","type":"correction","severity":"minor","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:16Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"AI Confidence 74%\" and \"Research confidence 100/100\" on the same page","actual":"Two different confidence measures are shown without stating what each one measures.","change":"The two figures are no longer both called confidence. The generator figure is labelled as the model’s self-rating on its own text, with an explicit note that it does not measure the evidence; \"Research confidence\", which is computed from factor coverage, price freshness and filing age, keeps its name.","evidence":"reported 2026-08-26; not independently re-measured; verified: en/stock/aapl fetched, 180498 bytes, none of 2 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0039","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":null,"verified_by":null,"status":"fixed","scope":"/stock/{ticker} score history — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"What changed?\" prints \"+0\" for a 97 to 98 move and lists \"-1 Momentum\" as the driver of an increase","actual":"The delta and the named driver must agree with the change they describe.","change":"The stated change is derived from the two rounded endpoints, so 97 to 98 can never read \"+0\"; equal endpoints say the score is unchanged. Pillars that moved against the change are listed under \"Held back by\", and movements rounding to zero are dropped.","evidence":"reported 2026-08-26; not independently re-measured","legal_review":"n/a"},{"id":"COR-2026-0038","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:39Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} bull and bear blocks — en, tr, es, de, fr, pt, ja, ko, zh","stated":"Bull and bear case blocks dated April 2026 on pages marked analysed in August 2026","actual":"A dossier block older than the analysis date should be hidden.","change":"The bull/bear freshness window is cut from 180 to 120 days. A US company reports about every 91 days, so the old window allowed a thesis written before two earnings reports; 120 days allows at most one, and the dateline stays visible. Older blocks hide rather than mislead.","evidence":"reported 2026-08-26; not independently re-measured; verified: en/stock/aapl fetched, 180498 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0037","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":null,"verified_by":null,"status":"fixed","scope":"/stock/{ticker} leadership sections — en, tr, es, de, fr, pt, ja, ko, zh","stated":"CEO biography blocks render \"Unknown\" for well-known executives","actual":"Where the provider returns nothing, the section should be omitted rather than printing Unknown.","change":"Leadership prose that only reports what the source did NOT contain is no longer published as a biography. Sentences describing the source rather than the person are removed; if no biography survives, the section is omitted instead of printing \"Unknown\". 4,591 of 24,447 stored leadership blocks were of this kind.","evidence":"fetched 2026-08-26 from /stock/nvda","legal_review":"n/a"},{"id":"COR-2026-0036","type":"correction","severity":"minor","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:58:44Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/ — en","stated":"\"Data sourced from institutional-grade financial providers\" in the editorial-policy meta tag","actual":"The adjective describes the providers, not the platform, but it is on the denylist and has no measured basis here.","change":"The homepage editorial-policy meta no longer claims accuracy review by an unnamed party; it states machine generation checked against the source figures it cites. Two ai-content-details tags that said \"institutional providers\" now name the providers: Financial Modeling Prep, Alpaca, Yahoo Finance and SEC EDGAR.","evidence":"fetched 2026-08-26 from /; verified: en/ fetched, 152404 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0035","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:39Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/discover vs site footer — en","stated":"/discover states \"21,000+ US equities\" while the footer on the same page states \"26,000+ US stocks covered\"","actual":"The footer renders the live measured count; /discover carries a typed literal. Introduced by the fix in COR-2026-0016 and found the same day.","change":"The coverage figure is resolved once from the measured universe and substituted into every place that prints it, so the hero and the footer of the same document cannot state different totals.","evidence":"fetched 2026-08-26 from /discover; verified: en/discover fetched, 144703 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a","withdrawn":["26,000+ US stocks covered"]},{"id":"COR-2026-0034","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:39Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/discover — en","stated":"\"Real-time during market hours\" and \"Institutional-grade data\" in the hero, above the same page's \"this is not a real-time exchange feed\"","actual":"Prices refresh on page view during market hours. The page contradicts itself.","change":"The two hero badges no longer make claims we cannot show. \"Real-time during market hours\" becomes \"Prices refresh on page view\", which is what actually happens; \"Institutional-grade data\" becomes a plain naming of the sources: FMP, Yahoo Finance and SEC EDGAR. Translated in all nine languages.","evidence":"fetched 2026-08-26 from /discover; verified: en/discover fetched, 144703 bytes, none of 2 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a","withdrawn":["Real-time during market hours","Institutional-grade data"]},{"id":"COR-2026-0033","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:40Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/nvda — en","stated":"Two employee counts on one page: \"Employees 36,000\" in the profile box and 42,000 in the narrative","actual":"One employee count per page, from the provider.","change":"The profile box now renders the provider headcount (FMP fullTimeEmployees) and falls back to the dossier figure only when the provider has none, so the box and the prose cannot disagree. A provider placeholder (0, empty, non-integer) is refused rather than printed.","evidence":"fetched 2026-08-26 from /stock/nvda; verified: en/stock/nvda fetched, 184608 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0032","type":"correction","severity":"critical","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:40Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/nvda vs /discover — en","stated":"/stock/nvda and the JSON API show MoonshotScore 98; /discover lists NVDA at 62.0","actual":"One score per ticker on every surface, or an engine tag on every surface. /discover reads a different source from the stock page.","change":"The nine surfaces that read the legacy score column raw now go through the same resolver as the stock page, so one company carries one grade everywhere. Full scope recorded in COR-2026-0042.","evidence":"fetched 2026-08-26 from /stock/nvda and /discover; verified: en/stock/nvda fetched, 184608 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0031","type":"correction","severity":"critical","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:41Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/nvda, /discover — en (other languages not checked)","stated":"Two consensus price targets on one page: \"consensus price target of $255.56 ... suggesting 20.6% upside\" and \"with a consensus of $319.54 ... approximately 51% upside\"","actual":"One consensus per security. COR-2026-0013 addresses the writer; this entry tracks the page until the refresh job has run in production.","change":"The consensus target is written by one job from one provider field, so the prose and the panel read the same number. Awaiting the next scheduled run for the stored values to converge; verification runs against the live page after publish.","evidence":"fetched 2026-08-26 from /stock/nvda with a cache-busting query; verified: en/stock/nvda fetched, 184608 bytes, none of 2 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0030","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:46:51Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} analysis notes for roughly 400 dossiers — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"Revenue growth, earnings growth, free cash flow ... analyst ratings, price targets, consensus estimates ... were not provided and are Unknown\"","actual":"The same page displayed Revenue Growth +6.4%, Free Cash Flow Growth -9.2% and a full analyst consensus. The note is true of the dossier writer and false of the page.","change":"Items the renderer can prove are on the page are removed from the note. Genuinely absent items remain.","evidence":"server/seo/stock-ssr/prune-contradicted-disclosures.ts; verified: en/stock/aapl fetched, 180498 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0029","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:47:01Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"site footer on every page — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"Powered by OpenAI & TradingView\"","actual":"OpenAI was called 439 times in 30 days and succeeded 0 times; Anthropic 45 and 0. Gemini produced 3,232 successes of 5,103 calls.","change":"The line names Google Gemini. TradingView stays; it draws the charts.","evidence":"client/src/i18n/locales/*.json (moonAI.poweredByOpenaiTradingviewData); verified: en/ fetched, 152404 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0028","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-26T07:49:57Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/congress-radar, /earnings-calendar, /time-machine — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"all 535 members of the Senate and House\"; \"4,000+ US companies each quarter\"; \"validates with Alpha Vantage\"; \"3 Sources\"; \"Real-Time / Price Calculations\"","actual":"24 members appear in the feed. The calendar holds 2,146 reports across 532 companies. Time Machine never calls Alpha Vantage; it reads one price source.","change":"Each page states its own figure and names only the sources it reads.","evidence":"shared/seo/congressRadarSpec.ts; shared/seo/earningsCalendarSpec.ts; shared/seo/timeMachineSpec.ts; verified: en/congress-radar fetched, 69400 bytes, none of 3 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0027","type":"correction","severity":"critical","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:47:12Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} for 954 securities — en, tr, es, de, fr, pt, ja, ko, zh","stated":"A MoonshotScore above 50 on securities trading below one US cent, including a $6,044 company scoring 75 and a $416 company scoring 72","actual":"925 of the 954 sit on an OTC tier; 917 are classified as common stock, so neither the instrument gate nor the delisting gate applied.","change":"The score is withheld below one cent and for anything the quality gate already flags as a shell or caveat emptor.","evidence":"shared/stockHeroFields.ts; verified: en/stock/aapl fetched, 180498 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0026","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:47:12Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/security — en","stated":"\"X-Frame-Options: DENY\"; \"HSTS with max-age, includeSubDomains\"; \"strict Content-Security-Policy\"; \"CSRF token validation\"; \"Automated anomaly detection\"; \"Failed login attempt tracking\"; \"redundant systems ... disaster recovery\"; \"300+ global edge locations\"","actual":"The live headers are SAMEORIGIN and max-age only. The CSP permits inline and eval. CSRF appears nowhere in the server beyond an OAuth state parameter. Anomaly detection and failed-login tracking have no implementation. Production runs on one reserved instance. The edge figure is Cloudflare's.","change":"Each row states the live value. Controls without implementation are removed rather than softened.","evidence":"server/seo/static-pages-ssr/render-security-page-html.ts; verified: en/security fetched, 74910 bytes, none of 8 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0025","type":"correction","severity":"major","found":"2026-08-26","fixed":"2026-08-26","verified":"2026-08-31T06:47:24Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"site footer on every page — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"SSL Grade A+\"","actual":"That grade is Qualys SSL Labs' vocabulary. No scan has been run. Our HSTS header carries no includeSubDomains, which is one of the things that would cost points there.","change":"The badge states the encryption actually negotiated.","evidence":"server/seo/utils/ssrHelpers-layout.ts; verified: en/ fetched, 152404 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"pending"},{"id":"COR-2026-0024","type":"correction","severity":"major","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:01Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/shadow-portfolios — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"500+ funds\"; \"We track 500+ institutional investors\"; \"500+ / Funds Tracked\"","actual":"Ten institutions are wired in. A search for Baupost, Appaloosa, Tiger, Elliott or Coatue returns nothing.","change":"The page names the ten and states that a search for anything else finds nothing.","evidence":"shared/seo/shadowPortfoliosSpec.ts; verified: en/shadow-portfolios fetched, 69511 bytes, none of 3 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0023","type":"correction","severity":"critical","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:04Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/login — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"Trusted by thousands of investors worldwide\"","actual":"178 accounts in total; 19 created in the preceding 30 days. The homepage displayed the live count of 174 active investors two clicks away.","change":"Replaced with a description of the product. No scale claim was substituted.","evidence":"client/src/i18n/locales/*.json (auth.trustedByInvestors); verified: en/login fetched, 36320 bytes, none of 1 withdrawn strings present","legal_review":"pending"},{"id":"COR-2026-0022","type":"correction","severity":"major","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-31T06:47:34Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} title and heading for 288 securities — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"THG is a technology company focused on...\" as the page title and heading","actual":"THG is The Hanover Insurance Group, a property and casualty insurer, as our own screener row states. The name field held the first line of a description.","change":"A stored name that is prose is trimmed back to the name at render time; where no name can be recovered the page falls back to the ticker.","evidence":"shared/utils/companyNameFromProse.ts; verified: en/stock/aapl fetched, 180498 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0021","type":"correction","severity":"major","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-31T06:47:45Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} peer table — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"Relative to its peer group, AAPL's quantitative score of 85/100 is roughly in line with the peer average of 84/100\" above eight visible scores averaging 69","actual":"The table rendered eight rows; the sentence averaged five. Reproduced on 10 of 10 sampled tickers, worst gap 15 points. SONY and SNEJF, one issuer, appeared as two competitors.","change":"Both sites read one constant. Peers are de-duplicated by issuer identity.","evidence":"server/seo/stock-ssr/peer-table-limits.ts; server/seo/stock-ssr/dedupe-peers-by-issuer.ts; verified: en/stock/aapl fetched, 180498 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0020","type":"correction","severity":"major","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:08Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"llms.txt, llms-full.txt, /methodology, tool and discover FAQs — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"Apple MoonshotScore 72/100 as of <today>\"; \"prices are real-time during US market hours\"; \"MoonshotScores recalculate daily for all 26,000+ stocks\"","actual":"The page showed 85. 132 of 30,764 rows were fresher than fifteen minutes. moonshot_score_updated_at is null on all 27,775 rows carrying a legacy score.","change":"The worked example carries no digits. Refresh behaviour is described per engine, and the legacy score is stated as undated.","evidence":"server/services/llms-full-generator.ts; server/routes-seo/create-seo-router/meta-routes.ts; verified: en/methodology fetched, 76905 bytes, none of 3 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0019","type":"correction","severity":"critical","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-31T06:47:46Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/api/stocks/{ticker} — machine surface, all consumers","stated":"/api/stocks/AAPL returned moonshotScore 57 while /stock/aapl rendered 85, in the same second","actual":"The page resolves the sector-relative score first; the API returned the raw legacy column.","change":"Both response paths use the shared resolver. A coin no longer receives a fabricated 50, and unscored tickers return null rather than 0.","evidence":"server/routes-stocks/create-stocks-router/register-stock-detail-routes.ts; verified: en/api/stocks/aapl fetched, 19754 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0018","type":"correction","severity":"major","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:23Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/about, /press, /journal, /daily-news, page registry — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"Each trading day our AI analyzes 70+ sources and publishes 25 original stories\"; \"5,000+ Stories/Day\"","actual":"The newest edition was dated 2026-08-03. Nine news items arrived in the preceding seven days, none in the preceding 24 hours.","change":"Cadence promises replaced with the archive count and the publication date of each story. New editions are stated as paused.","evidence":"shared/seo/journalSpecI18n.ts; verified: en/about fetched, 99032 bytes, none of 2 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0017","type":"correction","severity":"major","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:28Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/methodology, /moonshot-methodology, stock page factor list — en, tr, es, de, fr, pt, ja, ko","stated":"\"Short Interest\" as a factor name; five non-English descriptions explained short-squeeze mechanics","actual":"The slot is fed by float turnover. Operating Leverage takes revenue growth as its only input, so revenue growth carries 30% of the model, not the 20% the table implied.","change":"The displayed label reads Trading Liquidity in every language; both facts are stated in the factor table.","evidence":"shared/seo/moonshot-methodology-copy.ts; verified: en/methodology fetched, 76905 bytes, none of 1 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0016","type":"correction","severity":"major","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:34Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/, /about, /pricing, footer, llms.txt — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"26,000+\" operating companies","actual":"21,172 after 5,675 no-longer-trading tickers were removed from the live universe. The larger figure counted closed companies as coverage.","change":"The published claim tracks the measured count; 1,777 typed copies across 283 files were bound to it. The fallback is set below the measured value so a failed read under-claims.","evidence":"shared/seo/trustSignals.ts; claims-registry.yaml#coverage-operating-companies; verified: en/about fetched, 99032 bytes, none of 1 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0015","type":"correction","severity":"major","found":"2026-08-25","fixed":"2026-08-25","verified":null,"verified_by":null,"status":"fixed","scope":"/etf/{symbol}, /etf/{symbol}.md, JSON-LD — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"A notable aspect is the fund's concentration risk, as it holds only 10 securities\" on /etf/spy; \"Number of Holdings: 10\" in the structured data","actual":"SPY holds 504. The holdings count fell back to the length of the top-holdings sample; 130 funds inherited exactly 10.","change":"A count that does not exceed the sample we hold is refused at the writer and at all three read surfaces.","evidence":"server/services/etfDataService-transform.ts","legal_review":"n/a"},{"id":"COR-2026-0014","type":"correction","severity":"critical","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:37Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker}, /screener, /stock/{ticker}.md, JSON-LD — en, tr, es, de, fr, pt, ja, ko, zh","stated":"/stock/mrk showed \"P/E 101\" in the title, \"100.5x\" in the body and \"P/E ratio (32.56)\" in a risk bullet; the screener showed 119.60","actual":"The provider's own trailing figure was 124.33. The page P/E came from a second source while the byline named the first.","change":"One source for the column. Frozen figures in AI prose are reconciled against the live value; where the surrounding verdict would flip, the sentence is dropped instead.","evidence":"server/cron/fmp-pe-bulk-refresh.ts; server/seo/stock-ssr/reconcile-dossier-figures.ts; verified: en/screener fetched, 132388 bytes, none of 2 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0013","type":"correction","severity":"critical","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-31T06:47:57Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"Analysts have set a consensus price target of $293.07 ... suggesting 5.6% downside\" beside \"Consensus $340.72 ... (+9.8% from current price)\" on the same page","actual":"Two writers filled one field. Across twenty large caps, eight disagreed in direction. 3,828 of 3,846 stored targets carried no timestamp.","change":"The consensus job writes the column it renders from. The other writer is removed.","evidence":"server/cron/fmp-analyst-consensus-refresh.ts; verified: en/stock/aapl fetched, 180498 bytes, none of 2 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0012","type":"correction","severity":"critical","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-31T06:48:06Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} for 5,675 tickers, hub and screener listings — en, tr, es, de, fr, pt, ja, ko, zh","stated":"A current price and an AI grade rendered for securities that no longer trade; 43 securities that do trade were marked archived, including Freddie Mac","actual":"The delisting flag came from one published list; the provider separately flags active trading on every company profile. By that flag 5,675 of our tickers had stopped trading.","change":"Listing status reconciles against the provider's own active-trading flag. Un-archiving additionally requires a recent price bar.","evidence":"server/cron/fmp-listing-status-reconcile.ts; verified: en/stock/aapl fetched, 180498 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0004","type":"correction","severity":"major","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:46Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/security, /privacy, /pricing — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"Enterprise-grade\" security; privacy policy listed Privacy Shield principles","actual":"No certification is held. Privacy Shield was invalidated in 2020. The specific controls named alongside the adjective are real: Cloudflare, TLS 1.3 with AES-256, HSTS, Content-Security-Policy.","change":"Adjective removed; Privacy Shield reference removed. The named controls stay.","evidence":"shared/seo/correctionsLog.ts (original entry: credentials-we-do-not-hold); verified: en/security fetched, 70568 bytes, none of 1 withdrawn strings present","legal_review":"pending"},{"id":"COR-2026-0003","type":"correction","severity":"critical","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:49Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/, /press, programmatic pages, comparison and sector pages — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"35,000+ stocks\" in the page title beside \"26,000+\" in the hero; \"70,000+ securities analyzed\" on programmatic pages; \"5,000+\" in the press kit; \"8,000+\" on a comparison page; \"6K+\" on a sector page","actual":"26,513 operating companies at the time of the fix, measured by the coverage predicate. 70,000+ was the page count, not the security count.","change":"Every occurrence now reads from the measured operating-company count. See COR-2026-0016 for the later revision of that number.","evidence":"shared/seo/trustSignals.ts; claims-registry.yaml#coverage-operating-companies; verified: en/press fetched, 64707 bytes, none of 3 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0002","type":"correction","severity":"critical","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:50:58Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/ (testimonials), /reviews, /testimonials, /community — en, tr, es, de, fr, pt, ja, ko, zh","stated":"Nineteen named testimonials: five with cities on the homepage under \"Real feedback from real users\", four on /reviews dated before the company was founded, ten with personal stories on /testimonials; three \"success stories\" including one claiming \"+23% accuracy\"","actual":"None came from a user. No testimonial or review record exists in any table.","change":"All testimonial and review blocks removed. Product reviews are directed to Trustpilot, where the reviewer is identifiable and the record is not ours to write.","evidence":"shared/seo/correctionsLog.ts (original entry: invented-testimonials); verified: en/reviews fetched, 52994 bytes, none of 3 withdrawn strings present","legal_review":"pending"},{"id":"COR-2026-0001","type":"correction","severity":"critical","found":"2026-08-25","fixed":"2026-08-25","verified":"2026-08-26T07:51:00Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/ (stats strip), /press, site footer — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"48,000+ portfolios scanned\"; press kit \"50,000+ registered investors\"; footer \"12K+ portfolios\"; press grid \"10,000\" or \"12,000\" depending on language; \"4.8/5 rating\" with four filled stars","actual":"34 portfolio scans in total, by 15 users. 178 registered users. No ratings table exists; two ratings are on record, both bug reports with empty comments.","change":"Hard-coded figures removed. Where a value exists it renders from the database; where none exists the sentence is removed. No replacement copy added.","evidence":"shared/seo/trustSignals.ts; see COR-2026-0018 for the single-source module; verified: en/press fetched, 64707 bytes, none of 3 withdrawn strings present","legal_review":"pending"},{"id":"COR-2026-0009","type":"correction","severity":"major","found":"2026-08-24","fixed":"2026-08-24","verified":"2026-08-26T07:51:03Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"trust copy, /privacy — en, tr, es, de, fr, pt, ja, ko, zh","stated":"SOC 2 wording implying certification; Privacy Shield framework reference","actual":"Neither is held. Privacy Shield was invalidated in 2020.","change":"Both statements now describe only what is in place.","evidence":"shared/seo/correctionsLog.ts (original entry: certificate-claim); verified: en/privacy fetched, 69980 bytes, none of 1 withdrawn strings present","legal_review":"pending"},{"id":"COR-2026-0008","type":"correction","severity":"major","found":"2026-08-24","fixed":"2026-08-24","verified":"2026-08-26T07:51:05Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} factor tooltip, /methodology — en, tr, es, de, fr","stated":"The pillar labelled \"Short Interest\" was described as shares sold short and bearish pressure","actual":"The factor is computed from daily volume turnover against the float. The short-interest feed was retired; no short-interest data is used anywhere in the model.","change":"The definition now describes turnover and liquidity. See COR-2026-0017 for the label itself.","evidence":"shared/seo/moonshot-methodology-copy.ts; verified: en/methodology fetched, 76905 bytes, none of 1 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0007","type":"correction","severity":"major","found":"2026-08-24","fixed":"2026-08-24","verified":"2026-08-26T07:51:11Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/screener, /heatmap, paper-trading onboarding — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"50+ filters\"; \"35,000+ stocks visualized\"; \"$100,000 in virtual funds\"","actual":"13 filters. The heatmap renders S&P 500, US ETF and crypto views. Accounts are funded with $50,000.","change":"Copy corrected in every language, with tests pinning each number to the code that produces it.","evidence":"shared/seo/correctionsLog.ts (original entry: feature-counts); verified: en/screener fetched, 132388 bytes, none of 3 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0006","type":"correction","severity":"major","found":"2026-08-24","fixed":"2026-08-24","verified":"2026-08-26T07:51:13Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/ai-money-flow — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"$1.8T\" headline beside a \"$831B\" stats strip; \"100+ companies\"","actual":"$1.9T across 36 companies. A unit bug counted the $1.1T energy layer as $11B.","change":"All totals derive from the layer table itself.","evidence":"shared/seo/correctionsLog.ts (original entry: money-flow-totals); verified: en/ai-money-flow fetched, 85075 bytes, none of 2 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0005","type":"correction","severity":"critical","found":"2026-08-24","fixed":"2026-08-24","verified":"2026-08-31T06:48:16Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/{ticker} for OTC-listed foreign securities — en, tr, es, de, fr, pt, ja, ko, zh","stated":"Home-market capitalisation rendered with a dollar sign; an Indonesian bank appeared as a multi-trillion-dollar company","actual":"The figure was in the security's home currency, not USD.","change":"Conversion uses the security's trading currency. Figures disagreeing with a second source by more than 2x are withheld. Preferred shares, warrants and funds no longer rank alongside operating companies.","evidence":"shared/seo/correctionsLog.ts (original entry: market-cap-currency); verified: en/stock/aapl fetched, 180498 bytes, none of 1 withdrawn strings present in title, meta description/keywords, og, twitter, JSON-LD and body","legal_review":"n/a"},{"id":"COR-2026-0011","type":"correction","severity":"major","found":"2026-08-23","fixed":"2026-08-23","verified":"2026-08-26T07:51:17Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/stock/spcx FAQ, homepage FAQ — en, tr, es, de, fr","stated":"SpaceX described as a private company, with offers of its shares called likely scams","actual":"SpaceX listed on Nasdaq as SPCX on 2026-06-12.","change":"Corrected in five languages the day it was found.","evidence":"shared/seo/correctionsLog.ts (original entry: spacex-faq); verified: en/stock/spcx fetched, 165679 bytes, none of 1 withdrawn strings present","legal_review":"n/a"},{"id":"COR-2026-0010","type":"correction","severity":"major","found":"2026-08-23","fixed":"2026-08-23","verified":"2026-08-26T07:51:21Z","verified_by":"automated-check corrections-verify","status":"verified","scope":"/, /methodology, stock pages — en, tr, es, de, fr, pt, ja, ko, zh","stated":"\"26,000+ stocks covered\" and \"35,000+\" on the same screen; several pages stated every stock carries a MoonshotScore","actual":"Coverage and the scored universe are different sets. ETFs, funds, warrants, units, preferreds and notes are not scored.","change":"The two figures are stated separately in every language.","evidence":"shared/seo/correctionsLog.ts (original entry: coverage-vs-scored); verified: en/methodology fetched, 76905 bytes, none of 1 withdrawn strings present","legal_review":"n/a"},{"id":"CHG-2026-0001","type":"changelog","severity":"minor","found":"2026-08-23","fixed":"2026-08-23","verified":null,"verified_by":null,"status":"fixed","scope":"/film/{ticker} — en, tr, es, de, fr, pt, ja, ko, zh","stated":"n/a","actual":"n/a","change":"Playback could freeze on the first scene under reduced-motion settings; some frames never rendered; counters could stop near 92% of the true figure; frames scrolled faster than they could be read. Frame timing now derives from the text; the run is capped at five minutes.","evidence":"shared/seo/correctionsLog.ts (original entry: film-timing)","legal_review":"n/a"},{"id":"CHG-2026-0004","type":"changelog","severity":"minor","found":"2026-03-23","fixed":"2026-03-23","verified":null,"verified_by":null,"status":"fixed","scope":"edge and API — all routes","stated":"n/a","actual":"n/a","change":"Cloudflare WAF, bot protection, API rate limiting and SSR heap spike protection activated.","evidence":"shared/seo/correctionsLog.ts (original entry: waf)","legal_review":"n/a"},{"id":"CHG-2026-0003","type":"changelog","severity":"minor","found":"2026-03-23","fixed":"2026-03-23","verified":null,"verified_by":null,"status":"fixed","scope":"robots.txt — all routes","stated":"n/a","actual":"n/a","change":"AI crawlers separated into search bots (allowed) and training bots (blocked).","evidence":"shared/seo/correctionsLog.ts (original entry: ai-bot-policy)","legal_review":"n/a"},{"id":"CHG-2026-0002","type":"changelog","severity":"minor","found":"2026-03-23","fixed":"2026-03-23","verified":null,"verified_by":null,"status":"fixed","scope":"stock page indexing — en, tr, es, de, fr, pt, ja, ko, zh","stated":"n/a","actual":"n/a","change":"Minimum quality score for stock page indexing lowered from 65 to 30. The do-not-publish floor is unchanged.","evidence":"shared/seo/correctionsLog.ts (original entry: quality-gate-30)","legal_review":"n/a"},{"id":"CHG-2026-0005","type":"changelog","severity":"minor","found":"2025-12-05","fixed":"2025-12-05","verified":null,"verified_by":null,"status":"fixed","scope":"platform — en","stated":"n/a","actual":"n/a","change":"Stock Expert AI launched with AI-generated analysis for 6,000+ US equities.","evidence":"shared/seo/correctionsLog.ts (original entry: launch)","legal_review":"n/a"}]}