Changelog

What's new in CrunchJunkie

Every release, explained plainly. No marketing fluff.

v3.286November 2026
Update

Keyword research in Hebrew and Chinese

Keyword research now runs in Hebrew for Israel and in Chinese for Singapore (Simplified), Hong Kong and Taiwan (Traditional); Taiwan had no research language until now. Questions work in both: in Hebrew a keyword that opens with a question word such as איך or מה, in Chinese a keyword that contains one such as 怎么 or 哪里 or ends in 吗. Chinese keywords have no spaces, so the words column shows a dash unless DataForSEO reports a count, and a words filter leaves those rows out. Hebrew keywords are shown right to left.

v3.285November 2026
Update

Rank Tracker: add AI visibility's competitors in one click

Under Set-up and cost, the Rank Tracker now offers the competitors a client already tracks in AI visibility, from the project's list and every market's own list. One click adds one, the same as typing its website, within the ten competitors a client can have. Only a website saved for that competitor in AI visibility is offered; a competitor without one is named, so you can type its site. Competitors you already track are left out. A competitor still costs nothing extra: its positions are read from the same results list.

v3.284November 2026
Update

Retry only the checks that failed

When a scan has failed checks, the failure panel in the Data pill and the scan item in your Inbox now offer Retry failed checks. It runs only the failed prompt and engine pairs again, not the whole scan, and the button shows what that costs in checks before you click: the same count the Run scan dialog uses, with premium engines weighted, plus what of it draws from your Managed AI allowance. You confirm before anything is spent. If your own key for an engine is out of quota or was rejected, that engine is left out and the button says so and points to Settings → AI & API Keys, because it would fail the same way; engines with a working key stay retryable. A retry is not offered while a scan of the project is running or queued, or to a read-only seat. The answers are saved as of now, in the same figures as any scan's; nothing is back-dated.

v3.283November 2026
Update

REST API: filter the answers list by market

GET /api/v1/ai-visibility/projects/{id}/answers now takes market, the same value /metrics takes: one market exactly as written in each answer's locale, for example de-DE. Without it nothing changes. A market with no answers in the window returns an empty list, and meta.note names the markets that do have some. The MCP tool list_ai_answers takes the same market parameter. Answer lists without the full text are also lighter to read, with identical contents.

v3.282November 2026
Update

REST API: every AI answer behind the figures, and the scans that produced them

Two new read-only endpoints for building your own dashboard. GET /api/v1/ai-visibility/projects/{id}/answers returns one row per prompt, engine and run: the scan it came from, the time, the engine and the model the provider reported, the market, the prompt with its category and tags, and for your brand and every tracked competitor whether the answer named it, at which position and with what sentiment, plus the cited and retrieved URLs and, on request, the full answer text. Pass scanJobId to read everything one scan stored. GET /api/v1/ai-visibility/projects/{id}/scans lists a project's scans with their status, engines and stored answers. The scan.completed webhook now also carries projectId, the engines and markets, runsPerPrompt and startedAt, so a receiver can fetch the scan's answers straight away. The REST API docs now state the v1 stability promise: fields are only ever added, never removed or renamed.

v3.281November 2026
Update

Plan and billing shows this period's Managed AI checks day by day

Settings › Plan and billing › Usage now opens with This period: the Managed AI checks used each day so far, and where the scan schedules take them by the period's end, against the checks your package includes. Hover a day for its figures, or show the chart as a table. The days still to come are an estimate. When the usage ledger does not add up to the meter, a note above the chart names both numbers; the meter's is the one that is billed. On the Overview, the forecast now names the scheduled scan that takes you past the included checks, and the meter's figures stay on the page when the forecast cannot be loaded.

v3.280November 2026
Major

Keyword research and Links, joined to AI search data

Keyword research gives a client keywords around a seed from DataForSEO Labs, beside the searches AI engines ran for the client's tracked prompts, AI Overviews and Search Console positions. Links shows a client's link profile from DataForSEO Backlinks beside the pages AI engines cite. Both run on your own DataForSEO account or on a Rank Tracker budget, charged at twice DataForSEO's price; there are no free lookups, and the cost is shown before every lookup. We have no keyword or backlink index of our own.

  • Referring domains, anchors, linked pages, link gaps against competitors and a weekly spam check, opt-in and under one monthly cap.
  • Saved keyword lists, striking-distance queries from Search Console and CSV export.
  • MCP tools for the two, a lookup behind the same opt-in as actions that spend AI.
v3.279November 2026
Fix

AI visibility data notes say what a measurement change changed

The data notes on an AI visibility page gave every change in how we measure an engine the same name, “How Google AI Overviews answers are captured” for Google AI Overviews, so two different changes read alike. A note now says what changed: “How Google AI Overviews answers are recorded” when the way answers are recorded changed, and “How mentions in Google AI Overviews answers are counted” when the way mentions are counted changed, with each engine's own name. The client digest, which already told the two apart, now uses the same rule. Any other measurement change keeps the old name.

v3.278November 2026
Update

Rankings: an email when keywords leave the top 10, one click from the page

A client's Rankings page has “Email me when keywords leave the top 10” in its ⋯ menu. It opens Automations with the Top 10 guard ready for that client: it emails the workspace owner, or the recipients you add, when the client's keywords drop out of the top 10 or the top 3, raised only once a second check has confirmed the drop. The rule exists only once you save it in the builder, like any automation. When the plan's automation limit is reached, or you can only read, Automations says why instead of opening the rule.

v3.277November 2026
Update

Data sources: Looker Studio and other connections under Add a source

Data sources › Add a source has a new group, Export & other connections, for what is set up on a page of its own rather than connected there. The Looker Studio card has an Add to Looker Studio button, which opens the CrunchJunkie connector in Looker Studio, and an API keys link to Settings › REST API, where you create the key the connector asks for. AI assistants (MCP) opens Settings › MCP. Product feeds opens a client's Shopping page on its Feed tab, and Server logs a client's GEO audit › Bot visits; with several clients you pick one. Rank Tracker opens Settings › Rank Tracker. Nothing is connected from these cards. The separate Instagram “coming soon” tile is gone: the live Facebook & Instagram connector already reads organic Instagram data.

v3.276November 2026
Update

Your white-label logo now shows in the app's left-hand rail

The tile at the top of the left-hand rail shows your workspace's white-label logo instead of its initial, and the account menu lists each workspace with its own logo. A workspace's logo appears only while that workspace's plan includes white label. With a client in view, the tile shows that client's logo. A read-only member limited to some clients, such as a client's own contact, sees your agency's logo there on every page, unless that client (or, with no client open, any of the member's clients) is set to “Show CrunchJunkie branding to this client”: then the tile shows the initial, in line with that client's reports. The logo sits on a white plate in the light and the dark theme. Without a logo, or when it does not load, the initial shows as before.

v3.274November 2026
Update

SEO audit: parameters to ignore

The SEO audit's settings take a list of up to 100 URL parameters to ignore, one per line. A URL the crawler finds with one of them is crawled without it, so /contact/?topic=a and /contact/?topic=b become one page, /contact/: crawled once, counted once in each issue, and requested once from the page allowance. Only the parameter is removed, never the page, and the start URL is crawled as entered. One click adds the common tracking parameters (the UTM parameters and the Google, Meta and Microsoft click ids). The list is empty by default, so nothing changes until you add to it. Each crawl keeps the list it ran with, and crawls before and after a change of the list are not compared, because they reach different pages; a page that is no longer crawled is never counted as fixed. The setting is also in the assistant connector and the help article.

v3.273November 2026
Fix

Disable SSO and cancel Managed AI now ask first, and a complimentary plan no longer shows an invoice date

Disabling SSO, stopping an engine on Managed AI and cancelling a Managed AI package each open a short confirmation that says what changes (who is no longer sent to your identity provider, which engines stop being scanned, what stays on your bill). Settings → Dashboards has a Revoke button for the newest public link of each report: the link stops working at once. A complimentary plan no longer shows a next invoice 100 years away, a price, or a 0.00 invoice; it says it is complimentary. Site Health says how many issue types with errors from Google data or a sample it does not count, so 100% is not read as no problems. The Popular badge and the report counts on the template cards are gone, because they were typed in by hand. Keyword research shows its Run lookup button from the start, off until you type a seed, and starts in the client's own AI-visibility market, when the client has one, instead of the language of your screen. Red and amber text on the settings and billing pages now clears the 4.5:1 contrast floor in the light and the dark theme.

v3.272November 2026
Fix

Counts, labels and units that did not add up now do

A workspace with one client no longer reads “1 clients”. Insights counts the Gap analysis card with the rest, so the heading and the “All” filter show the same number. Average position says how many answers with a ranked list it rests on. The visibility figure on Prompts and the one on AI → Conversions are no longer called averages: both were already pooled over all answers, and each now names its answers (Prompts: all scans to date; AI → Conversions: the last 90 days). In an AI-visibility project's settings, the checks per scan are shown as prompts × passes × engine weight, with premium engines counted 3× and follow-up checks added, so the product equals the total. Billing: the Share column of the AI ledger is now “Share of scans” and in the Rank Tracker ledger the column shows the share of cost, or the share of searches when there is no cost. Whisper's price is shown in US dollars, as OpenAI bills it. The DeepSeek warning no longer says every other provider has a DPA: SerpAPI has none and Meta AI has none listed, as Data & residency shows. Links → Referring domains no longer has a Country column or filter, and the assistant connector no longer returns that guess for referring domains or the link gap: DataForSEO mostly read it off the domain ending. Settings → Connect AI assistants has a Copy button next to the connector URL.

v3.271November 2026
Update

Owners and admins can list their agency in the directory themselves

The Partner program page in Settings, with the agency directory listing and the badge, is now open to the owners and admins of a workspace. Until now only the CrunchJunkie team could open it. Fill in your profile, save it, and it goes to a short review by us before it appears in the public directory; the page shows whether it is Live, Pending review or Hidden. Edits to a live listing stay live. Members and read-only seats do not see the Settings entry and are sent to the dashboard if they open the address. Saving the badge settings through the API is now limited to owners and admins as well, like the listing.

v3.270November 2026
Fix

The ± beside Visibility now says what it is: one standard error

The ± next to a rate was always one standard error, a range that would contain the true value in about two of three repeated scans; the 95% range is about twice as wide, or wider on thin samples. Some tooltips, the Shopping labels, the assistant connector's description of AI → Conversions, the free check and the docs called it a 95% margin of error or said it showed where your true value lies. They now say what it is. No figure changed. Mailchimp no longer appears under “Coming soon” on Data → Integrations, because it is connectable there. The client digest page now has the top bar with its breadcrumb like the other pages of a project. The empty Revision history drawer and the Labels block, which could not be used, are gone from the report view.

v3.269November 2026
Fix

Rank tracker: links Google hides are never read as "not found" or "not cited"

When Google did not let us follow a result link on a results page, a check could not tell whether your site sat behind it. Those readings were already marked Unconfirmed. Now the keyword's history row shows only Unconfirmed for such a reading, without "Not found" next to it. And if Google ever hides an AI Overview source behind a link we cannot follow, we no longer count it as a different site: when your site is not among the sources we could read, the table says the sources were not read, not "not cited".

v3.268November 2026
Fix

Google AI Mode answers have their lists again, and the gap is marked from 12 to 25 October

Google AI Mode answers have arrived with their lists again since the scan of 26 October 2026, and the scan of 2 November confirmed it. The measurement gap on AI Mode figures now has an end: there was no AI Mode scan between 19 and 26 October, so it is marked from 12 to 25 October, and alerts, signals and client digests count AI Mode again in any comparison that lies wholly after that day.

v3.267November 2026
Fix

Weekly and monthly charts: an empty period is a gap, not 0

A week or month in the middle of an AI visibility chart with no answers at all was drawn as 0 for Visibility and Mentions. It is now a gap, with a note. A period with answers but no mention of the brand stays a real 0.

v3.266November 2026
Fix

Reports: no data no longer reads as 0

A few report figures showed 0 where nothing was measured. They now show a gap and say why.

  • Share of Voice for a period in which no brand was named is a gap with a note, on charts and for AI summaries.
  • A per-engine donut leaves out an engine with no figure; a measured 0 stays.
  • Citation lifetime prints the two completed weeks it reads, not the report's dates.
  • The Shopping table counts a spelling variant of your brand as your brand and each answer once.
  • A brand measured on fewer answers in the comparison period is now named with its count.
v3.265November 2026
Update

Rank Tracker: one-off Google results pages are set aside once the next check or a second search confirms them

A Google check that stood alone between two checks that agree with each other, on the same kind of results page, is now set aside as a one-off once the next check of the keyword exists or, for a check picked for a recheck, once that second search shows the earlier page again. This replaces the comparison with a keyword's usual results that 3.248 switched off because it set aside genuine pages. A new check always counts at first, so a figure for an earlier date can change when the next check lands (normally a week later, at most six weeks) or when a second search confirms it, about a day after the run.

  • Set aside means marked Unconfirmed and left out of every figure shown afterwards: the table, charts, averages, live reports and share links, the assistant and the API. Reports and digests already sent and alerts already raised do not change. The rule does not prove that Google served a poisoned page; it sets aside a result that stood alone between two that agree. A dry run on 1 November 2026 over our own data from 28 September to 31 October 2026 would set aside 106 of 3,510 Google checks (3.0 %); 1,141 of those checks could not be judged yet, and among the 1,507 with a same-kind check on both sides the share is 7.0 % (106 of 1,507).
  • A check that counts at first is searched again about a day later only when its results page changed sharply and the client's site fell, or an alert would be raised. If the second search shows the earlier page again, it counts in place of the check. If it shows the same page, the change is taken as real. The next check can still set aside a check that the second search confirmed.
  • At most 20 % of a run's Google organic searches are searched again, rounded down; it was half. Every stated maximum falls with it. In our own data from 28 September to 31 October 2026, 61 of 3,510 Google checks (1.7 %) qualified for a recheck, so the cost is usually far below the maximum.
  • An alert on a Google page that changed sharply waits for the second search and arrives about 25 hours after the run instead of about an hour. If that search cannot run, or a refresh of the keyword brings the same kind of results page first, the alert is not raised.
v3.264November 2026
Major

SEO audit: a crawl of your client's website, AI search first

The SEO audit crawls a client's own website and checks first whether AI search crawlers can reach and read it, then the classic SEO checks. Every issue is ranked by what the affected pages are worth: Google clicks, AI answers that cite them and tracked keyword rankings. Site Health and AI Search Health are separate scores with the pages evaluated beside them. Pages are included in every plan, with a page allowance per billing period.

  • Compare crawls, get Signals when something regresses, create tasks in Approvals and draft fixes with Crunch.
  • A report source for the builder, share links and the PDF, and MCP tools for the same audit.
  • The crawler identifies itself as CrunchJunkieSiteAudit and obeys robots.txt; the crawler page explains how to allow or block it.
  • Figures are counted once per page: a URL that differs only by its query (such as /contact/?topic=x) carries no figures of its own and names the URL they are counted on, so it raises no issue that rests on traffic. llms.txt is asked for a second time as plain text before it is reported missing; a site that refuses it only to a request for Markdown gets its own notice.
v3.263October 2026
Update

Pricing calculator: the estimate counts two runs per prompt

The estimate on the pricing page now starts at two runs per prompt, which is what a new project starts with, so its figures match what a new project costs. It used to count one run, which put the Managed AI and own-keys lines well below what a new project costs.

  • A new Runs per prompt choice, 1 or 2, sits with prompts, how often and how many engines. Two runs per prompt give a steadier reading; on Managed AI, one run uses half the checks.
  • The receipt, the ledger and both ways to pay follow it. Example: 5 brands, 20 prompts, weekly, Balanced, billed monthly was €158 and is now €258 with Managed AI at two runs; choose one run and it is €158 again.
  • Setups with many brands reach the default overage cap sooner: 20 brands at two runs ask for as many answers as 40 brands at one, so Pro now shows the cap note at 20 prompts, weekly, Balanced, as Agency already did.
  • Projects are unchanged: runs per prompt is still a setting per project, and a new project still starts at two.
v3.262October 2026
Fix

AI visibility reports: fairer prompt-set marks, wider ranges on few cells, a cleaner CSV

A filtered Visibility now counts every spelling of the brand and each answer once, Rank and overlap use the proper 95 % interval on few measurements, and the mark for a changed prompt set follows one rule everywhere.

  • With a filter, a stored "ACME" now counts as Acme and a duplicate mention row counts once, in the KPI, the Brand table and the Prompt, Tag and Topic tables.
  • Rank ranges and the overlap mark use Student's t at 95 % when few scan day and engine cells stand behind a figure, so a thin measurement reads a wider range. The printed ± does not change.
  • The * also marks a prompt with no answer from an engine or market it had in the comparison period. A start on that period's first day of tracking or the day after no longer marks anything.
  • Trending URLs says the prompt set differed by the same rule as the other tables.
  • The Overview's CSV has no note row any more: Mentions always comes right after Share of Voice, and a Note column at the end explains the rows with an empty cell.
  • A saved AI summary now notices a point crossing the ten-mention floor, and a figure that provably moved beside a gap.
v3.261October 2026
Update

AI visibility charts: a point under ten mentions is a gap

Sentiment and Avg. Position charts no longer draw a point that rests on fewer than ten mentions, as the cards and tables already did not. The line breaks there, and a weekly or monthly chart that showed such a period at 0 now shows a gap. All other figures are unchanged.

  • One line under the chart says how many days, weeks or months of how many were left out, with the floor and the period, in the app, on share links and in PDFs. Hovering a gap says on how many mentions it rests.
  • A week or a month is judged on all the mentions it pools, so a weekly point can stand where its days could not.
  • The Overview's Sentiment trend breaks at such a day instead of joining across it.
  • The Overview's CSV keeps its columns and adds Mentions at the end of each row. Sentiment or Avg. Position under the floor is an empty cell, never 0.
  • In the MCP connector and the API a chart's gap is null, with gapMentions beside the series. Saved AI summaries are not marked out of date by a gap alone.
v3.260October 2026
Update

AI visibility reports: filtered tables agree with the key figures, and more prompt-set changes are marked

On a Brand or Model table with a filter, your brand's row now equals the key figure on the same filter: the same answers, the same Visibility. This moves figures on filtered tables where a competitor was added within the period; on reports without filters the figures did not change.

  • Each competitor on a filtered table rests on the answers that measured it, with its own n. Share of Voice still compares brands only on the answers that measured all of them.
  • The Brand table has a Rank column: a brand's place by Visibility, or a range such as #2–#4 where the 95 % intervals overlap, worked out from each brand's mentions and answers.
  • The * on a change now also covers an engine or market added part-way, a prompt with earlier answers but none in the comparison period, and prompts with no answer in this period, each said in its own words. Filters narrow it, and month tables read each month's own prompts. The mark never changes a figure.
  • A widget's header names its period instead of "Live data", and a widget with its own date range prints that range, in the app, on share links and in PDFs.
  • Brand Rank reads "of N brands measured", the Data basis "Brands tracked", so the two numbers explain each other.
v3.259October 2026
Fix

Rank Tracker: links Google held back no longer read as "not found"

Google now limits how fast the links on one results page can be followed. On DataForSEO's high-priority queue many of them came back unfollowed, so a manual refresh could read a site ranking first as not found. Such a check is now unconfirmed and left out of every figure, and Refresh now runs on the standard queue.

  • Refresh now takes longer, normally within the hour, and costs the weekly run's price per page instead of twice that.
  • A check still counts if every tracked site was found above the first unfollowed link. The evidence panel says how many results came back without a usable link.
v3.258October 2026
Fix

AI visibility reports: the asterisk needs a real change in the prompts

A change now carries * only when the prompts added after the comparison period began are at least 5 % of the prompts in scope. The Data basis table still lists every prompt added. No figure moves.

  • The Data basis table says when an engine started part-way through the period or prompts stopped being answered, on projects that scan at least weekly.
  • The Market table calls its column Chats on Peec AI data, and notes when a language and a language with a country both appear as markets.
  • Cited and Trending URLs tables have a glossary entry of their own instead of borrowing Source Appearances.
v3.257October 2026
Update

Client Monthly report: one Copilot note, a definition for every Source domains column, a quieter header, a compact glossary page

Four small corrections to the “AI Visibility — Client Monthly” report. The Copilot measurement note is printed once even where one widget words it slightly shorter; the others point to it, and an incident that only one widget names keeps its own note. The Definitions table now explains the Source domains columns as they are printed: Appearances counts pages of a domain used as a source, each page once per answer, and Citations counts the pages the answer cited, each page once per answer, which is not the same as the answers-citing-your-domain count on the KPI cards; the row Source Appearances only appears when a widget prints it. The small “Live data” label is gone from the cards and tables of this template, as the period is on the Data basis and on every printed page. The Definitions table prints with tighter rows, so it normally fits one page with its section header instead of leaving a page nearly empty after it. No figure changed. Reports created earlier keep their layout and label; create them again from the template to get them.

v3.256October 2026
Update

The client report prints on fewer pages, with fewer repeats and fewer leftover English words

The “AI Visibility — Client Monthly” template got a print pass after its first real report. A change that sits inside its margin of error is now grey with no arrow on every KPI card, not red or green: it is read as unchanged. Sections no longer start a page each, so the report prints on about half the pages, and the Visibility card stays on the same page as the per-engine table. The long note on a measurement incident is printed once and the other widgets point to it. The attribution cards use the translated names and no longer say “No prior data”, because they compare nothing by design, and section labels follow the report’s language. Text columns such as definitions and prompts are left-aligned. The Market table says when a market it lists had its first answers after the period, and the Tracked prompts table says its market is the market as tracked now. No figure changed. Reports already made from the template can switch a section to “Flow on without a page of its own” in the editor.

v3.255October 2026
Update

A report template for your clients, and a mark on changes that follow a changed prompt set

A new template, “AI Visibility — Client Monthly”, is written for the person at the brand who pays for the service: is it working, is it worth the cost, what happens next month. It compares one calendar month with the one before, in nine sections: a summary you write yourself, the data basis, the definitions, visibility overall and per AI assistant, per market, the competitors, the sources, the outcomes from analytics (a lower bound, and the report says so) and the plan for next month. A new report from it opens in the language of the client’s AI visibility project, not yours. It comes with some changes to every AI visibility report. A change against a period that did not hold every prompt you track now, for example Visibility on a key figure card, the change in the Model, Market and Brand tables, is marked with an asterisk, and a note says how many prompts joined and when; the figures themselves do not change. The new Tracked prompts table lists the questions the figures stand on, with their tags and the day each was first tracked, and no figure. The Source domains table states the number of answers and the period its shares divide by, the Model, Market and Brand tables spell out “within margin” under the table, the Source Appearance Rate is now judged against its margin like Visibility, and the PDF and print header of such a report names the period and the one it is compared with on every page.

v3.254October 2026
Update

AI visibility reports: a table per market and a table of definitions

Two new tables for the AI visibility report. The Market table has one row per market the project tracks (language and country) with your brand’s Visibility, its margin of error (±, in percentage points), the answers behind it, the change against the comparison period (“~” inside the margin), Avg. Position and Sentiment (a dash under ten mentions), Share of Voice and Mentions. Each row rests on that market’s answers alone, rows are never added up or averaged, a market with no answers shows 0 answers and dashes, and a KPI filtered to one Locale matches that market’s row. The Definitions table is the report’s glossary: one sentence for each metric and symbol the report’s other widgets actually use, in the report’s language, in a fixed order, with the period and the answers behind the figures under it. A metric the report does not use is not defined, and Peec AI chats are worded as chats. Both are table dimensions, so the report, the share page, the PDF and the CSV draw them without extra work; the Definitions table is left out of AI summaries, which should not quote words as figures.

v3.253October 2026
Update

AI visibility reports: Source domains and Trending URLs once per tag

The Source domains and Trending URLs tables have a new option, One block per tag. One widget then shows the table once for every prompt tag you choose, or for the tags on the most prompts if you choose none, up to 12. Each block is the table you would get with a Tag filter for that tag: its own number of answers and period above it, your domain highlighted, the rank note under it and, on Trending URLs, its own comparison with the previous period. Two blocks sit side by side on a full-width widget on screen; on paper each block takes the full width. Before, this took one widget per tag.

v3.252October 2026
Update

AI visibility reports: margins and sample sizes on engines and brands, a ten-mention floor for sentiment and position

The per-engine table now shows your brand's Visibility for each engine with its margin of error (±, in percentage points), the answers behind it, and the change against the comparison period; a change inside the margin is marked “~” (within margin), not a rise or a fall. Until now this table pooled every tracked brand together, so its figures were an average over brands, not yours: it now reads your brand's rows only. The You vs competitors table prints each brand's ± beside its Visibility and says under the table that all brands were measured on the same number of answers; a brand whose 95 % interval overlaps yours is marked “≈” and is not ranked against you. An engine with a measurement incident is marked on its row with its change left unstated, and the Visibility card's comparison leaves that engine out (the card says which and since when) while its value stays the full pool. Sentiment and Average Position are no longer stated when fewer than ten mentions carry them: a dash with the number of mentions it would rest on, on the cards, the Brand, per-engine, Prompt and Tag tables, the Overview, the AI summary data, the MCP connector and the API (null with a reason). Perception uses the same ten (it was five), so a brand with fewer than ten described mentions has no card in a report.

v3.251October 2026
Update

AI visibility reports: Brand Rank, Source Domain Rank and a data basis

Two new key figures state a place: Brand Rank, your place among the brands you track by Visibility, and Source Domain Rank, your own domain’s place among all source domains by the share of answers that used it as a source. They read “#4 of 87 domains”; a lower number is better, brands or domains with the same figure share a place, and where the 95 % margins of neighbours overlap the figure is a range such as #8–#10. A move against the comparison period is called a gain or a loss only when the two ranges do not overlap. A domain that was never used as a source has no rank. Two new tables state what a report stands on: Data basis (period, answers, prompts, brands, tags and engines in one row, with the markets, the competitor set and the changes since the comparison period under it) and Methodology (answers per month, prompts added with their days). The Monthly Deep Dive template now has all four.

v3.250October 2026
Update

AI visibility tag tables: changes against a partial period are marked

When some of a tag's prompts were first tracked after the comparison period began, its change in the Brand × Tag and Tag tables carries an asterisk, and the note under the table names the tag, how many of its prompts started late and on which day. Tag × Month and Brand × Month mark a month the prompts joined part-way through, and the change columns that compare with such a month. KPI cards mark Mentions, Retrievals, Citations and Source Appearances the same way when the comparison period held fewer prompts. The figures themselves are unchanged.

v3.249October 2026
Update

AI visibility: Ukraine as a market, Ukrainian as a scan language

Projects and markets can now be set to Ukraine and to Ukrainian. ChatGPT, Gemini, Perplexity, Claude, Grok, DeepSeek, Meta AI and Microsoft Copilot are told the person asking is in Ukraine and answer in Ukrainian. Google AI Overviews and Google AI Mode search with Ukraine as the country and Ukrainian as the language, so write those prompts the way people in Ukraine search.

v3.248October 2026
Fix

Rank Tracker: the poisoned-page check is paused while it is recalibrated

Measured on all Rank Tracker checks, the check from 3.245 set aside too many genuine Google results pages: Google's normal short results pages, and keywords whose results change a lot from week to week, looked like poisoned ones. Until a stricter rule ships, no check is set aside and nothing is rechecked.

v3.247October 2026
Update

Rank Tracker: unconfirmed Google results pages are rechecked a day later

A Google check whose results page looked unlike the keyword's usual results has been left out of every figure since 3.245. Such a keyword is now searched again about a day after its run, because a second search within the hour often gets the same page. When the recheck looks like the keyword's usual results, it counts in place of the unconfirmed check: in the table, charts, reports and alerts. Until then the row says when the keyword is rechecked.

  • A recheck that looks unlike the usual results too counts only when its top 10 matches the unconfirmed page's and neither came back with far fewer results than usual. It then counts in alerts too. Otherwise both stay unconfirmed, and the keyword is not searched a third time. At most half of a run's Google checks are rechecked (20 % since 3.265).
  • A recheck costs what any check costs and is its own line in the cost overview. The most a run can cost now includes it: it adds a recheck of at most half of a run's Google organic searches, priced at the run's dearest Google organic check. Typically about a quarter of Google checks are unconfirmed (20 % since 3.265).
v3.246October 2026
Fix

The pricing calculator picks the cheapest package, overage included

The calculator on the pricing page used to show the smallest Managed AI package that covers your monthly checks. A smaller package plus a few checks of overage is often cheaper, so for some setups it showed a larger package than needed, in a few cases about twice the price. It now compares every package with its overage, within the default overage cap, and shows the cheapest. The receipt says when overage is part of the number.

  • Example: one brand, 20 prompts on all ten engines, checked twice a week, is 2,783 weighted checks. It showed Agency at €199 and now shows Plus plus 48 checks over, €101.
v3.245October 2026
Update

Rank Tracker: poisoned Google results pages are left out

Since late September 2026, Google has answered many searches made by rank trackers with a normal-looking page on which most of a keyword's usual sites are missing, or on which far fewer results come back than usual. In our own data that was about a quarter of Google checks. Each Google desktop and mobile check is now compared, as it comes back, with the last eight checks of the same keyword that count. A check that looks unlike them is marked Unconfirmed and left out of every figure: the table and its tiles, charts, reports, alerts, digests, the assistant (MCP) and the API. Its cost still counts, because the search was made and paid for.

  • A check is unconfirmed when fewer than half of the keyword's usual top-10 sites are in its top 10, or when it returned fewer than 65 % of the usual number of results. A keyword needs at least four earlier checks that count before a new one is judged. Bing, Google's local list and Google Maps are not judged.
  • The row shows the last position that counted, marked as last known. The evidence panel shows the page as it came back and why it was left out, and the client export lists the check with two new columns, unconfirmed and serp_guard, without counting it.
v3.244October 2026
Fix

Google AI Overviews answers have their lists again, and the gap is marked from 12 to 20 October

Google AI Overviews answers have arrived with their lists again since the scans of 20 October 2026. The measurement gap on AI Overviews figures now has an end: it is marked from 12 to 20 October (20 October was still mixed), and alerts, signals and client digests count AI Overviews again in any comparison that lies wholly after that day.

  • Google AI Mode answers came back with their lists in the scan of 26 October. Its gap stays marked until a second weekly scan confirms it.
  • Signals raised during the AI Overviews gap now name its first and last day instead of saying "since".
v3.243October 2026
Fix

Market cards no longer state an exact gap when a figure is an upper bound

On the Overview's "Where you stand, market by market" cards, when your figure or the leading competitor's is marked "≤" (several Peec AI brands merged into one), the sentence under the card now says only what the figures support: "at most" or "at least" so many points, "may lead", or, when both figures are upper bounds, no gap at all.

  • The client digest email no longer names Peec AI in its upper-bound sentence. It now says the figure adds up several names counted as the same brand, since the email goes to your client, often under your own brand.
v3.242October 2026
Fix

More AI-visibility views mark Peec AI merged brands as an upper bound

Peec AI figures that combine several Peec AI brands are now marked "≤" in more places: the Overview's trend charts, market cards, Biggest movers, quadrant and Performance matrix, the market comparison table, and the client digest email. The exports (the Overview's Export CSV, the client export and Settings → Export your data) gain a last column that flags such rows.

  • Where other brands' Share of Voice is shown next to a merged brand, the existing note adds that theirs may read slightly low. The note under a donut or day chart names the engines, and on a day chart whether all or only some days, that hold the merge.
  • Google Business Profile Messages no longer use an all-zero series when the other series has figures. A chart now also names the series its comparison period could not load, and a channel flagged by both conversion ratios gets one warning instead of two.
v3.241October 2026
Fix

Comparison lines say when a week or month point is not that period's own total

On an All channels chart at week or month scale, the dashed comparison line sets the two periods' days against each other by position. When a point therefore covers other days than that period's own week or month, the chart now says so.

  • A month or week the comparison period is too short for (31 days against 30) gets no comparison, and the chart now says why.
  • AI summaries write ROAS with "×", like the score cards, also for its change. They carry the same AI-visibility notes as the summary's data (answers left out as model memory, citation counts not available).
  • When one channel mixes conversion definitions and the widget shows both cost per conversion and conversion rate, its warning gives each ratio its own figures.
v3.240October 2026
Fix

All channels chart: no 0 for days a source has not reported yet

The All channels chart no longer draws the newest days of Google Analytics 4 as 0 before GA4 has reported them, and a day a channel did not report shows as a gap instead of 0. The chart says which days are missing.

  • At week or month scale a plain total (leads, conversions) keeps the days reported so far, as the score card does; a ratio such as cost per lead leaves a part-reported week or month out, because its spend would cover more days than its leads.
  • AI → Conversions shows GA4's not-yet-reported days as a gap with a note, leaves them out of the correlation, and the "visibility and conversions both fell" signal counts only days GA4 has reported.
v3.239October 2026
Fix

Peec AI merged brands are marked as an upper bound on reports, the Overview, shared links and the API

When a brand's Peec AI figures combine several Peec AI brands, every score card, chart, donut, tag and month table, the Overview's score cards and competitive table, Home, shared links, PDFs, the AI summary, the API and the MCP connector now say that its visibility, mentions and share of voice are an upper bound. Until now only the brand tables did.

  • Avg. position and sentiment are not marked as an upper bound: they are averages, though a chat naming several of the merged brands still weighs twice in them.
  • Tag-filtered Peec AI figures are marked too, from the next Peec AI sync. A merge is recognised only from Peec AI's own brand ids.
v3.238October 2026
Fix

Assistant connector: report schedules accept internationalised email domains

Scheduling a report through the assistant connector (MCP) now accepts email addresses with an internationalised domain, such as info@müller.de; the address is stored in its ASCII form. A name before the @ stays ASCII.

  • An argument the connector cannot accept now comes back as a readable tool error that names the field, and very large requests get a clear "too large" answer instead of a failure.
v3.237October 2026
Fix

Google Business Profile Messages and LinkedIn label languages

When Google reports no Messages figure for a period, Google Business Profile reports show "—" for Messages with a short note, and Total actions adds up the figures that were reported. A comparison counts Total actions on the same basis in both periods, and says so when the two periods use different Google messaging figures.

  • LinkedIn seniority and job-function names are looked up in the report's language more reliably: an empty answer from one LinkedIn endpoint now falls through to the other instead of leaving English names in a German report.
v3.236October 2026
Fix

Data export: AI-visibility history names engine and market

The AI-visibility history in Settings → Export your data now names the engine and market of every row and includes how many mentions carried a position and a sentiment, so the figures can be pooled exactly as CrunchJunkie does. New CSV columns are added at the end; existing columns keep their place.

v3.235October 2026
Fix

Alias suggestions for brands named with ordinary words

Alias suggestions now also cover brands whose name is made of ordinary words, such as "Best Buy", when the name AI answers write is close to the brand's own name or website, from the next scans. A cited website alone is not enough for such a name.

v3.234October 2026
Fix

Facebook & Instagram and ChatGPT Ads: a refused read says "Not loaded"

When Facebook & Instagram or ChatGPT Ads refuse a read (an expired connection, a rate limit, or an answer without data), reports now say "Not loaded" instead of showing "—" as if there were nothing to report. The next read tries again.

v3.233October 2026
Fix

AI visibility: brands merged from several Peec AI brands are marked as an upper bound

When several Peec AI brands are mapped to one of your tracked brands, their counts are added up per engine, so a chat that names more than one of them may be counted more than once. Those figures are now marked.

  • AI-visibility brand tables (ranking, by engine, matrix, movers) add a note naming the brand when its visibility or mentions in the period, or in the comparison period, combine several Peec AI brands. The figures themselves do not change.
  • The mark fills in from the next Peec AI sync, which rewrites its last 90 days. Since 3.239 score cards, charts and the other report widgets carry it too.
v3.232October 2026
Fix

GA4 charts no longer drop to 0 for yesterday

Google Analytics needs up to 48 hours to publish a day. A GA4 day chart with a comparison that ends yesterday or the day before now stops at the last day GA4 has reported, instead of drawing the missing day as 0 against the comparison.

  • Search Console charts already worked this way (3 days). A period that ended earlier still shows a day without visits as 0.
v3.231October 2026
Fix

Fewer raw ids in LinkedIn and Business Profile reports

LinkedIn seniority and job function names now come from LinkedIn's own list in your report's language, and Google Business Profile Messages now counts clicks on the messaging button.

  • LinkedIn tables by Seniority or Job function show LinkedIn's names in the report language (German report: German names). An id LinkedIn does not name shows as "Seniority 12" instead of a raw id, and we are alerted.
  • Google Business Profile Messages now counts clicks on the profile's messaging button, Google's current figure. Before, it counted message conversations, which Google has deprecated, so it can differ from earlier months. If Google sends no messages figure at all, the tile reads "—" instead of 0.
  • Google Ads preview cards name every ad type Google offers, in your report's language; Meta placements name Threads and WhatsApp.
v3.230October 2026
Update

Blended charts, AI summaries and Peec imports: fewer wrong comparisons

Three places could show a figure that did not compare like with like. The All channels comparison line, the Ask Crunch summary of a report, and the Peec import are now consistent with the numbers beside them.

  • The All channels chart compares each week or month with the same number of days of the previous period, in the current period's currency, and a Leads (GA4) chart shows 0 instead of a gap when the key event did not fire.
  • The Ask Crunch summary now carries a blended widget's caveats (mixed currencies, ROAS from only some accounts, accounts left out), and ROAS is written as a ratio, not as an amount of money.
  • When two Peec brands map to one tracked brand, the day's chats are counted once, and average position and sentiment are pooled over Peec's own observation counts. Days already imported are rewritten with the next sync.
v3.229October 2026
Update

One prompt method wherever we draft prompts

The free AI visibility check, the setup guide, Suggest prompts on the Prompts tab and the MCP connector now draft prompts the same way, with the method from our study of 2,160 AI answers: one open question per buyer intent, across the buying stages, naming no brand or competitor, and at most one question about the brand while the project tracks none. You can still edit, dismiss or replace any draft, write your own or import a sheet.

  • Suggest prompts drafts ten candidates at a time, each for an intent you don't track yet. From keywords still builds them from your own terms, and a keyword that names a company keeps it.
  • The free check asks five questions instead of three. When it can't draft questions for a site, it asks you to type your own; it no longer falls back to two questions that name the brand, which got the brand back in nearly every answer.
  • Through the MCP connector, your assistant first says how many prompts it would add and why, and asks how many you want. It adds a reviewed set of up to 50 in one step, with each prompt's stage and intent as tags, and the new guided workflow build_prompt_set walks through it. During a trial the connector now keeps to the 10 active prompts per project, as the app does.
v3.228October 2026
Update

Budget vs actual: a progress bar per product line

Each product line with a budget now shows a slim bar beside its % of budget used: the bar is that line’s spend divided by its planned budget, and the Total’s bar is total spend divided by total planned, never an average of the lines. Past 100 % the bar is full and turns the warning colour; while the month is still running, a thin mark shows the budget expected by today. Lines without a budget get no bar. The same bars appear in the report, on the share link and in the PDF.

  • Notes give dates in your report’s language (“September 2026”, “20 Oct 2026”), and lines without a budget are named in one sentence. When no line has a budget yet, the planned, difference and % used columns are left out, and only the report editor shows where to add monthly budgets.
  • The comparison column is now called “Spend, previous period”, because budgets are not compared, and the hover buttons on a widget no longer cover the “Live data” label.
v3.227October 2026
Fix

A way back from every settings page, and breadcrumbs you can click

The breadcrumb at the top of a page now links the steps above the current one: “Settings” in “Settings / Billing” takes you back to Settings, and “AI Visibility” back to your list of clients. Every settings page also has a “← Settings” link above its title. Eight of them had none, and on a phone, where the breadcrumb shows only the current page, the sidebar was the only way back.

  • The sidebar no longer shows most of its items as highlighted: in the dark theme they were lime, in the light theme violet. Only the page you are on stands out now, on a violet step in the dark theme instead of a grey-olive tint, and Settings is highlighted on every settings page. The same applies to the AI Visibility menu.
v3.226October 2026
Update

Gap analysis: mark a step done and see what changed

A page’s step in the Gap analysis can now be marked done, with what you did and the day, or set aside as “Not for us”. From then on the page compares how often the answers that use that page or its site name you: the 56 days before against the days from two weeks after, checked twice, on day 42 and day 90, at 95 % confidence, with at least 30 answers in each of the two periods. Answers to the same prompt are repeated runs, so the real uncertainty is somewhat larger than the test shows. Each result shows both counts with their dates. “No clear change” says the data can’t show a change at this size, not that the step failed.

  • Done steps leave Top steps, a Steps filter shows All, To do, Done or Not for us, and marking a step done adds an internal note to the Timeline.
  • A pitch to one page is measured on that page when it has enough answers, across its site otherwise; a forum thread or a video on its page only. A result notes a settings change in between as “comparison not clean”.
v3.225October 2026
Update

Gap analysis: tooltips that open on click

Six tooltips on the Gap analysis now open a second part on click, with how to use what they explain: the Gap and Competitors named columns, the page heading, the answers line, a page’s Cited and Retrieved badges and a page’s step. Each points at something on the page, such as the Missing tab, the Competitor filter or a page’s panel, and links to Brands or the guide where that is the next place to go. Hovering still shows the short explanation.

  • The AI-visibility guide has its own Gap analysis part now, which the tooltips link to, and the Query fanouts part of the same section has its own heading.
v3.224October 2026
Fix

Insights: AI crawlers flagged as blocked only when they are

The robots.txt action in Insights listed AI crawlers as disallowed when a site's robots.txt only kept them out of some paths, such as /api or /admin, which is normal. That showed a high-priority action on sites that let every AI crawler read their content. The action now appears only when a live-answer crawler is blocked from the whole site. The Crawlability tab still shows path rules as Partial, and the docs now explain that Partial on such paths needs no change. A whole-site block written as Disallow: /* now counts as blocked too, and the tab's advice for path rules no longer asks you to remove them.

v3.223October 2026
Update

Gap analysis: one step to try for each page, and the biggest gaps at the top

Every page in the Gap analysis now suggests one step to try, drawn from what kind of page it is: ask to be included in a list, get listed and reviewed on a review site, join a discussion under your own name, get mentioned by a channel, pitch an editor, or create your profile in a directory. A page we can’t judge gets no step. Each step says why: which tracked competitors are named there and in how many answers one was named and you weren’t, over the period you picked. They are suggestions, not promises. A Top steps strip above the tabs lists the biggest gaps as to-dos, and takes you to the page.

  • An opened site now lists its ten pages with the biggest gap first, with Show more pages for the rest. Pages without a gap wait behind one line in Missing, Weak, Strong and Shared, and All lists every page. Directory pages are told apart now: ranked lists of providers and company profiles show as Directory list and Directory profile instead of Other.
  • Insights no longer lists one action per site cited in answers that did not name you. It shows one card instead: how many sites have a tracked competitor named without you, the top three, over the last 30 days, counted by the Gap analysis, with a link to it. The count follows the Gap analysis’s definition (a tracked competitor named, you not), so it differs from the old per-site actions.
v3.222October 2026
Update

Calmer AI-visibility pages

The Prompts filters, the scan-failure notice and the Overview’s branded warning got quieter, without hiding anything that matters.

  • Prompts: the cloud of tags is now one button per tag group (Intent, Stage, Language …) with a search and the number of prompts per tag; the active filters sit in one line of chips you remove one by one; each row shows two tags and +N instead of five.
  • The latest scan’s failed checks show as one small “1 check failed” pill beside Last scan, on every page of the project (on a phone, above the page): amber when it is a few checks (under 10 %, and no engine missing entirely), red when it is more. The causes open from the pill, with a link to the breakdown on Prompts; the Overview keeps its banner for the bigger failures. Checks that failed once and then succeeded on a retry are no longer counted. The notification bell lists the failed checks with the provider’s message, and marks them resolved once a finished scan of the same markets runs without any.
  • Last scan now counts a market’s own scheduled scan too, so the sidebar and the failure notice name the same date. The yellow branded-prompts box is one quiet line under the KPIs.
v3.221October 2026
Update

Gap analysis: the pages behind every gap, and which competitors are named there

Gap analysis now shows, for every site, the pages AI answers used and the tracked competitors named in those answers, with how many answers named each. It follows the period you pick on the Sources pages and says how many answers every figure rests on; until now it counted every answer ever recorded. A site’s gap is the number of answers that used it and named a tracked competitor but not you: a plain count, not a score.

  • Tabs: Missing (competitors named, you never), Weak (you in fewer answers than your competitors), Strong, Shared (both named: it overlaps Weak and Strong) and All. A site opens in place into its pages, each with its competitors, how often you were named, its page type, the engines and whether it was cited or only retrieved; a page opens a panel with the prompts behind it and the latest answers. Filter by one competitor, engine, market, prompt tag or cited and retrieved pages, and export the view as CSV.
  • A competitor now means one you track, in any market and under its aliases; until now any company an answer named counted, competitors you had removed included. Your own domains and your competitors’ own sites are labelled and listed under All only. The report’s Gap analysis table counts the same way over the report’s dates, and You and Comp on the Sources and URLs pages use the same definition, so these figures can be lower than before.
v3.220October 2026
Update

LinkedIn reports read right in every language

The LinkedIn audience tables, charts and comparisons got the details a German report showed up.

  • Industries now carry LinkedIn's current names ("Services for Renewable Energy", not "Industry 3243"), in your report's language where LinkedIn offers it. An industry we can't name is labelled "Branche 3243" ("Industry 3243" in English). Company sizes use your report's number format (1.001–5.000 in German).
  • A change that rounds to zero reads "±0,0 Pkt.", not "−0,0 Pkt.". A line chart of different counts from one source (impressions, clicks, leads) puts a series on its own right-hand axis when it is more than 20 times smaller than the largest, so clicks and leads no longer sit flat at zero; other charts are unchanged. Numbered AI lists keep counting through the bullets under their items (1, 2, 3, 4), and the AI writes in the report's language.
  • When LinkedIn spent on fewer than half the days of the comparison period and on at least twice as many days now, the huge percentage changes stay, but the widget (KPIs, charts and the audience and campaign tables) says "LinkedIn Ads ran on only 4 of 30 days of the previous period" and the change chip carries a marker. The note also reaches the AI summary and the MCP.
v3.183October 2026
Update

Search volume now runs on your own DataForSEO account

The Rank Tracker's "Searches a month" column and the prompt-volume beta now read Google Keyword Planner's figures through DataForSEO, on your workspace's own DataForSEO account or its Rank Tracker budget — no longer through a central Google Ads account of ours. DataForSEO bills one request per country and language (up to 1,000 keywords); figures are kept for 30 days and are your workspace's own when they come from your account. On a budget a lookup is charged like a search, at twice DataForSEO's price. The Rank cost card on Billing lists the lookups on one line beside the searches, and the Terms' Rank Tracker section names them. A workspace with neither account sees the column as not available, with what to connect.

v3.218October 2026
Major

Bing Webmaster Tools in your reports

Connect Bing Webmaster Tools with one sign-in and report on Bing next to Google, for as many sites per client as you need.

  • Clicks, impressions and CTR per day, top queries and pages with their average positions, crawl health, crawl issues, sitemaps and your most-linked pages. Every widget says which dates and which Bing weeks it counts.
  • Bing's clicks include every Bing vertical, Copilot and chat among them, because Bing can't split them. We label them that way instead of calling them web search. The top queries and pages are Bing web search only, because Bing has no query or page data for Copilot and chat.
  • A Google vs Bing widget sets Search Console and Bing side by side. The two are never added together, because they count different things.
v3.217October 2026
Update

AI answers that write a brand under another name are suggested as an alias

A mention only counts when the answer writes the tracked name, so a brand that answers write differently (“islaNet” for Isla Networks) was not counted. CrunchJunkie now notices when answers seem to name a tracked brand under another name and suggests it in Signals, with the answers it saw. You confirm or reject it: Add as alias counts the name as the brand from the next scan and re-counts the stored answers of the last 42 days; Not the same company means it is never suggested again.

  • A suggestion needs at least 3 answers on 2 different days, a name close to the brand’s own name or domain or the brand’s website cited in the same answer, and no website of the other name cited there. Re-counted answers count as a mention without a position or sentiment. It is a setup suggestion, so it fires no automation, webhook or digest.
  • When you add a competitor by its website, CrunchJunkie reads the site once and offers the name it gives itself, keeping the domain as the competitor’s website. Nothing changes without your click.
v3.216October 2026
Update

Shorter MCP tool descriptions, and get_citations fits in one read

get_citations now takes limit and topPages and returns the 25 most cited domains by default, each with its most cited page, instead of up to 100 domains with five pages each (a busy project ran to about 59,000 characters). The totals still cover every domain in the window. The connector's tool descriptions are shorter and say what each tool does; the notes on how to read a result now come with the result, in a howToRead field.

  • get_citations: limit (up to 100 domains, default 25), topPages (up to 5 per domain, default 1) and summary: true. totalDomains, runsAnalyzed and the shares always describe every domain in the window, and domainsReturned says how many rows came back.
  • get_query_fanouts returns 5 rows by default (limit up to 200) and the top 10 of each list, each saying how many were shown of how many exist (a limit above 10 lists that many; summary: true leaves the rows out), get_content_gaps 8 gaps (limit up to 50) and get_signals 12 signals (limit up to 100); their counts cover everything in the window. The tool descriptions are about half as long, and each read tool's result carries a howToRead field with the reading rules that used to sit in its description.
v3.214October 2026
Update

Content briefs are now a checklist you work through

A content brief now opens with one block: whether to refresh a page or build a new one, one line of Search Console facts with their window, the headline as the title and the question your page must answer. Below it, “What to change” is a numbered checklist where each item gives the action, why it matters and the cited pages behind it.

  • Tick items off as you do them. The ticks are saved with the brief and shared by your whole team (a read-only seat sees them but cannot change them). When everything is ticked, the brief suggests a re-scan; nothing scans by itself.
  • Page structure, structured data and proof to include are collapsed rows with counts. Briefs saved earlier keep their recommendations as single lines. Copy brief and the client export carry the same checklist.
v3.213October 2026
Update

Copilot is asked differently on projects with a language or market, and the old figures are marked

On projects with a set language or market, Microsoft Copilot used to get an instruction in front of every prompt, which made Bing search for the instruction itself: many answers cited translation sites instead of real sources. Copilot now gets the prompt in the project’s language plus a short market label such as “(Markt: Spanien)”. In our test the brand’s own site went from never cited to cited for all three prompts, and every answer stayed in the project’s language.

  • Copilot figures for those projects are marked as a measurement gap until 21 October 2026 (a line, a band on charts, a note for the AI summary, Ask Crunch, the MCP connector and the API). Signals, alerts and digests leave Copilot out of any comparison that touches those days.
  • Copilot figures up to 21 October and from 22 October on answer different questions, so compare them with care. Projects without a language or market only got a short instruction to reply in English. It is gone now too, and their figures are not marked as a gap.
v3.212October 2026
Update

Budget vs actual: planned budget from your campaign settings

The Budget vs actual table can now take its planned budget from the budgets set in the campaigns themselves, for Google Ads and Meta, instead of amounts you type. Choose “Planned budget from” in the widget settings: campaign settings, typed by hand, or settings with your typed amounts winning for the months you fill in. The platforms only show today’s settings, so CrunchJunkie reads them once a day for every connected Google Ads and Meta account and the history starts at the first reading.

  • A line’s planned budget is the sum of its enabled campaigns’ daily budgets, day by day; paused or ended campaigns count 0. Google Ads is capped at Google’s monthly limit of 30.4 times the daily budget, a shared budget is counted once (one spanning several lines gets its own Shared budget row), and a Meta lifetime budget is spread over its start and end dates. Days before the first reading show “—” in earlier months, and in the current month use today’s settings, and the note under the table says so.
  • Channels other than Google Ads and Meta are not read from settings yet; while one is in the table the planned budget shows “—” and the note names it. The MCP connector’s add_widget and edit_widget take plannedSource, and Ask Crunch understands “planned budget from the campaign settings”.
v3.211October 2026
Update

Budget vs actual by product line

A new table for All channels compares your planned budget with actual spend for each product line. Define the lines once by campaign name, for example Health insurance = campaigns containing PKV or KV_DE, and the table adds up Google Ads, Meta Ads and the other connected channels per line.

  • The planned budget is pro-rated by days for each calendar month in the period (15–31 October takes 17/31 of October’s budget), and a month without a budget reads “—”, never 0. A campaign goes to the first line it matches; the rest is shown as Not assigned, so the Total is always your accounts’ spend.
  • In the current month the table also shows Expected by today and a Projected month-end at the current pace. Set it up in the report builder (All channels table, Budget vs actual), or ask Crunch; the MCP connector’s add_widget and edit_widget take the lines too.
v3.210October 2026
Update

GA4 event tables can show key events only

A GA4 table by Event Name now has a “Key events only” switch: only the events GA4 marks as key events, sorted by Key Events or any other column. Ask Crunch and the MCP connector build it from plain wording (“Event Name with Key Events and Users, only key events, most Key Events first”). Users stays GA4’s own count per event and is never added up across events.

v3.209October 2026
Update

One gentle email if your trial setup is unlikely to work

A few days after a trial project’s first scan, CrunchJunkie checks whether the setup can work. If it cannot, the workspace owner gets one short email naming the problem and the fix.

  • It looks for the three problems the project notices already show: only engines that name websites, not pages (Gemini), engines that appear to read the brand as software, and a latest scan with many failed checks (at least 5, or at least 10 % of its checks).
  • Each project is checked once, between 2 and 7 days after its first completed scan, and only during a trial. The email changes nothing and bills nothing; the fix happens in the app, on your click. You can unsubscribe from it like any product notification.
v3.208October 2026
Update

A weak setup now says so, and how to fix it

When a project is set up in a way that leaves pages empty, AI Visibility now tells you why instead of showing nothing. Each notice names its cause and offers the fix.

  • A project that tracks only engines that name websites, not pages (Gemini), is flagged on the Overview, Query fan-outs, Prompts and in a content brief: briefs and page-level views stay empty. One click adds an engine you can already run, after showing the estimated extra cost per scan; nothing is billed by the click itself.
  • When engines appear to read your brand as software (searches such as “tools like …” or “… software” for a brand that is not software), Query fan-outs and the Overview quote the searches and point to where you add context. It needs at least 10 searches that name the brand and stays silent for software brands.
  • “N checks failed” now comes with the causes (key rejected, quota or billing, rate limit, timeout, provider outage, empty answer), the count for each and a one-line fix. Scans from before error messages were kept show that the cause was not stored.
v3.207October 2026
Fix

Looker Studio connector loads every row and pools position and sentiment

Long date ranges in the Looker Studio connector used to stop after 500 rows, and ranges over 180 days were silently cut to their last 180, which could leave days out and skew totals. It now fetches every row of any range, in 180-day windows, or says plainly when a range holds more than 100,000 rows. Avg position and Sentiment are now weighted by mentions, as in the app, instead of averaging the daily averages. The REST metrics endpoint takes limit and offset.

v3.206October 2026
Fix

GEO audit insights quote the audit's own results

AI-written GEO audit insights now quote engine names and page counts only from the audit's own results; a sentence that names an engine as refused although it was reachable, or gets a count wrong, is corrected or removed.

v3.205October 2026
Update

GA4 tables can show channels by month

GA4 tables can show channels by month: one row per channel, one column per month, with optional totals and shading. Choose the dimension Channel × Month on a GA4 table; its row limit sets how many months it shows, 13 by default.

  • Each cell is GA4’s own figure for that channel in that month. Sessions, key events and revenue add up in the totals. Users and rates do not: their totals are GA4’s own figures, so a person who came in two months is counted once.
  • The current month shows its days, for example "Oct 2026 (1–20)", so it never reads as a full month. Draft with AI, Ask Crunch and the MCP connector build the table when asked for visits by channel per month.
v3.204October 2026
Fix

AI-written GEO audit insights are now checked against the audit's own evidence

The short insights and summary the GEO audit writes with AI are now checked before you see them. A sentence that claims the site is unreadable for AI engines, promises that a fix will raise citations or visibility, or states a firewall block when we only have refused test requests is rewritten once, and removed if it still breaks the rule.

  • The live crawler check is now labelled "AI crawlers pass our live fetch test (beyond robots.txt)", so it reads as our test and not as a statement about every crawler. Audits you already ran keep their old label until you run them again.
  • Insights are no longer cut off in the middle of a word: a long text now ends at the last full sentence.
v3.202October 2026
Fix

The GEO audit says what robots.txt allows, not that crawlers can access the site

Next to a firewall result that said our test request was refused, the audit said the same crawlers "can access the site", because robots.txt allowed them. Those are two different questions, and the wording now keeps them apart. We also renamed a score that was easy to misread and fixed AI insights that failed on large audits.

  • The crawler checks now say "robots.txt allows n/m crawlers" and point to the live test under Firewall & access policy for whether a firewall lets them through. The agent check is now labelled "Real-time AI agents allowed in robots.txt".
  • The schema sub-score is now called Entity markup (it was Entity authority). It only measures schema.org markup, not how well known a brand is. Saved report widgets keep working and show the new name.
  • AI insights no longer get cut off on large audits: the answer has more room and the model is told to keep each insight short instead of listing every page.
  • A missing Organization schema is now worded as the site not telling AI engines who it belongs to, not as engines being unable to know the brand.
v3.203October 2026
Update

Optional product updates on the free tools

The free AI visibility check and the free GEO audit now have an unticked box under the email field: "Also send me occasional CrunchJunkie product updates." Ticking it is your choice; both tools work the same without it.

  • Without the box, the email address is used only to send you the report, as before. With it, we first send one email asking you to confirm the address, and only after you confirm may we send occasional product news; every such email has an unsubscribe link.
  • We keep the time you ticked the box and the exact wording you saw, and delete both together with your email address after 12 months. The privacy policy (section 2.8) says so.
v3.201October 2026
Fix

Pages that only repeat our scan instruction no longer count as citations

Some pages that Microsoft Copilot cited were translator pages whose web address contains the market and language instruction CrunchJunkie puts in front of a prompt. They were cited because of our instruction, not because of the question. Such pages are now left out of every citation and source figure, in all engines and in answers already stored, so citation and source counts for Copilot drop where they were counted. Citation-lifetime and trend figures follow once their weekly totals are rebuilt, within an hour of a one-off step on our side.

  • The rule reads the instruction text in the address, not a list of sites: a normal page on the same translator site still counts. Where raw answers are shown, these pages appear under their own label and are not counted.
  • An answer whose cited pages were all of this kind names no source: it is left out of the citation and source figures, like an answer with no readable links. Brand mentions, visibility and share of voice are unchanged.
  • Reports, widgets, the Sources and URLs tabs, content briefs, the API and the MCP connector all use the same rule. No answer was changed.
v3.200October 2026
Fix

The GEO audit no longer says AI engines can't read a site when only our test requests were refused

When a firewall refused our test requests that carry an AI crawler's name, the audit said that crawler can't read or cite your content. That was too strong: our requests come from our servers, not from the crawlers' own addresses, and many firewalls refuse such requests while letting the real crawlers in. The audit now says the firewall refused our test request, treats it as a strong sign of a block rather than proof, and tells you to check your own logs.

  • In AI crawler access, a refusal of our test request now counts as half a point instead of a fail, so some scores rise.
  • The Cloudflare-default case, where agent and training crawlers are refused and search-only crawlers get through, is unchanged: it matches a Cloudflare policy that also blocks the real crawlers.
  • The Firewall & access policy card, the report table, the audit insights, the connector and the docs use the same wording.
v3.199October 2026
Fix

Google AI Overviews and AI Mode answers that arrive without their lists are left out

From mid-October 2026, many Google AI Overviews and Google AI Mode answers arrived without their lists. Brands in a missing list counted as not named, so figures for these engines from those days may read low. New scans now leave such an answer out: no data, neither a mention nor a miss.

  • A scan recognises an answer that announces a list that is not there, or an overview with no text, and does not store it. It does not ask again in the same scan, since each search is billed and comes back the same, and it stops asking the engine for that scan when most of its answers come back this way. "No AI Overview" for a query is still a real result, and a short label such as "Summary:" before its paragraph is not a gap. Microsoft Copilot is not affected.
  • AI-visibility widgets, charts and the Overview whose figures include these engines in that period show it (a band on charts, a line under the rest), and the AI summary, Ask Crunch, the MCP connector and the API are told the same. Alerts, signals and client digests leave the engine out of any comparison that touches these days, for as long as this lasts.
  • We now also read a list item's name under other keys, comparison blocks and every form of a table, so nothing that does arrive is lost.
v3.197October 2026
Fix

Comparison lines on the right day in every ad platform

On daily charts of Google Ads, LinkedIn Ads, Meta Ads, Amazon Ads, Reddit Ads and ChatGPT Ads, the comparison line now matches each day with the day at the same place in the comparison period. Before, the two lines were matched by position, so when one month was longer than the other, or a day had no activity, every later point was compared with the wrong day. Microsoft Ads, Google Analytics and Search Console already worked this way.

  • A day without activity is 0 for counts such as clicks and a gap for rates such as CTR. When the comparison period is shorter (February against March, or across 29 February), the last days have no comparison point, and a chart of this month ends at the last day with data. All-channels charts add up each channel's days on their own dates, as before.
  • A figure a platform did not report for the whole period (conversions when that call failed, purchases without event tracking, LinkedIn reach, which LinkedIn never gives per day) stays a gap on every day, never a 0. When a comparison line is shown, a period that has ended, such as last month, is no longer cut short at its last day with data, even when the account was paused before its end; only a period still running ends at its last day with data. This applies to Microsoft Ads and Google Analytics charts too.
v3.196October 2026
Update

The client digest leads with the figure and addresses your client formally

The weekly or monthly update your client receives now opens with the visibility figure in large type, across every AI system as in your reports, with the number of AI answers behind it, followed by one or two sentences on what the figures mean together. The text no longer repeats the figures, never starts with a greeting, and addresses the client formally in German (Sie), French (vous) and Spanish (usted), as the label and the subject line now do too.

  • If the AI text still repeats a visibility figure (or two small counts), it is replaced by a fixed text built from the same facts, or by no text when that would only repeat the figures.
  • When AI systems are left out of the comparison because their measurement changed, the comparison gets its own line over the systems that can be compared, and the email says what changed for the others, on which day, and when they count again.
  • One name per concept: "Visibility in AI answers" throughout, one word for the margin of error, and no "~": a change not clearly beyond the margin of error reads "unchanged".
v3.195October 2026
Update

ChatGPT's tracking gap of 8–16 October is marked on AI-traffic figures

From 8 to 16 October 2026, ChatGPT opened many of the links it cites without a tag and without a referrer, so Google Analytics counted those visits as Direct instead of as ChatGPT. A ChatGPT dip in those days is a gap in the measurement, not less interest, and your reports now say so.

  • Charts of AI traffic show a band over 8–16 October (darker where the gap was sharpest, 14–16 October), with its sources. KPI cards, tables and donuts that include ChatGPT get a line underneath when their period, or only their comparison period, covers those days. The same goes for the AI → Conversions tab and its report widgets.
  • It shows when it happened, not how many visits were missed: nobody knows that. The AI summary, Ask Crunch, the MCP connector and the API are told the same, and a switch in the builder hides the band and the line on a widget.
  • The signal "AI visibility and AI-referred conversions both fell" is no longer raised while its periods include those days, and an open one is resolved with that reason. On a Google Analytics property far from UTC, the band can start or end a day off, because days are matched as UTC days.
v3.194October 2026
Update

Scans on the same day no longer all start in the same hour

Weekly and daily projects that all scanned at the same hour (Monday at 06:00 UTC, the default for older projects) now start at different times. Each keeps the day it scans on in your workspace's time zone, so weekly reports keep their rhythm, and moves to a night hour that is no later than before, in winter time and in summer time. Where the time zone leaves room, projects are spread across the night hours; where it leaves only one (New York, Chicago, Kolkata or Mexico City, for example), they move to Monday 00:00. In time zones west of Chicago the settings page will now show Sunday evening, which is when these scans already ran in local time (Sunday 22:00 in Los Angeles, for example). The time stays as it is in Alaska, Hawaii and a few other time zones (Chile and Cuba among them), for projects that scan every few days, for projects imported from Peec AI and for projects with a market on its own schedule. A scan time you chose yourself is never changed.

v3.193October 2026
Update

Scans waiting to start say so, with an estimate

At busy times a scheduled scan can wait a while before its first check. Until now the scan bar showed it as running, then as waiting for capacity, with no time. It now says "waiting to start", with an estimate such as "about 2 h" from its place in your workspace's queue and how fast our servers worked through scans in the last hour. It is an estimate, not a promise, and none is shown when there is not enough to go on. Assistants see the same through get_scan_status, which now also gives an estimate of the time left for a running scan.

v3.192October 2026
Fix

A scan you start yourself goes first at busy times

At busy times, when many workspaces' scheduled scans run at once, a scan you start yourself (in the app or from an assistant) no longer waits behind other workspaces' scheduled scans. It now gets about as many checks at once as when your browser tab runs it, so it finishes in a fraction of the time. Other workspaces' scheduled scans keep running alongside it and may finish a few minutes later. We make no more calls to the AI engines than before.

v3.190October 2026
Fix

Merchant Center, Business Profile and GA4 figures that hold up; comparison lines on the right day

Merchant Center: an offer listed under several feed labels or languages counts its free-listing impressions and clicks once, offers no longer in your feed still count towards the totals (grouped as “not in current feed”), a product without an availability is no longer counted as out of stock, and a catalog over 50,000 products says that its counts cover the first 50,000. Google Business Profile: a low-volume keyword reads “< 15”, an upper bound that is not added in, the keyword table names the calendar months it covers, and Reviews and Avg. rating say they are today’s figures. The GA4 map shows no “% of total” for a rate or an average, and a country’s share is of the property’s total, not of the countries shown. Microsoft Ads, GA4 and Search Console line charts compare each day with the same day of the comparison period, even when a day has no data.

v3.189October 2026
Fix

Figures that could not be read no longer show as 0 or “No data”

When a source could not be read, or does not report a figure, a report now says so instead of showing 0 or an empty widget. In the app it reads “Not loaded”, or “No access” when the platform refused the account; shared links and PDFs say “Data unavailable”. AI summaries, the MCP connector and the API read such a figure as missing, not zero.

  • LinkedIn Ads: Members reached and Cost per 1,000 members reached show their figures in campaign and ad tables instead of 0. Reach, audience penetration and dwell time that LinkedIn does not report (over periods longer than 92 days, by seniority, job function or another demographic, and per day in charts) read “—” with the reason. A table or ad preview that could not be read says “Not loaded”, and a comparison period that was only partly read draws no comparison line instead of a line of zeros.
  • Search Console charts no longer draw a bar of 0 for a comparison period that could not be read, and a chart whose period could not be read says “Not loaded”. Facebook & Instagram: days that could not be read are gaps in the chart, not 0; Facebook Page figures over more than 80 days of which a part could not be read show “—” instead of a smaller total; post tables say “Not loaded” or “No access”.
  • Piwik PRO and Mailchimp charts, Matomo figures when the server answers with a web page instead of data, ChatGPT Ads conversion donuts when conversions could not be read, and ChatGPT Ads figures too large to read in full now say “Not loaded” instead of 0 or “No data”.
v3.188October 2026
Fix

Unique counts and conversion rates outside Google Ads: no more added-up uniques or rates over 100 %

Figures that count people once are no longer added up over days or campaigns. Matomo unique visitors and Piwik PRO visitors on a scorecard are now the analytics tool’s own count for the whole period; where Matomo gives none, the scorecard shows “—” and says why. Reddit reach is read for the period, or for each day, straight from Reddit, so Frequency is right too. Facebook Page reach over more than one day shows “—” with the reason (the chart still shows each day). Instagram reach and accounts engaged “(30d)” are the last 30 days of the period, and the scorecard names the dates. Conversion rates now divide only what belongs to their base: Matomo counts visits that converted, not conversions; Piwik PRO’s figure is called Conversions / session, because one session can convert several goals; Reddit’s conversion rate shows “—”, because its conversions include view-through ones with no click behind them. The default GA4 funnel now ends with the sessions that had a key event instead of the key events themselves, and a rate or an average is no longer drawn as a funnel step.

v3.187October 2026
Fix

Donuts: rates show why, counts show the whole

A donut shows each slice as a share of a whole, so it only works for figures that add up, such as clicks, sessions or spend. For every source, a donut of a rate, an average or a count of unique people (CTR, conversion rate, bounce rate, average position, reach, users) now says why it cannot be drawn instead of showing slices that add up to nothing, and the builder and the assistants no longer offer one. A donut of a count now keeps its biggest slices and one “Other” slice with the rest, so each share is of the whole and not only of the slices shown. Ask Crunch follows the same rule.

v3.186October 2026
Fix

All channels: cost per conversion and cost per lead count only the channels that report them

In an All channels widget, cost per conversion, conversion rate, cost per lead and lead rate now count only the channels that report conversions (or leads) for the period, the same rule ROAS already follows. Before, the spend of every channel was divided by the results of only some of them: Amazon, Reddit and ChatGPT Ads report no leads, yet their spend was in cost per lead. A channel that reports 0 still counts, because its spend bought nothing. When a channel that spent is left out, the widget names it and its spend, and the comparison shows no prior data when the channels in a figure change between the periods. A channel that reports 0 conversions but leads, like Meta in a lead-gen account, gets a warning under the widget, and the builder offers the lead-gen blend in one click; nothing switches by itself. Figures can move in reports that mix channels with different conversion definitions, and monitoring goals for cost per lead and CPA follow the same rule.

v3.185October 2026
Fix

Google Ads donuts by device or network: only figures that add up

A Google Ads donut by device or network can only show a figure that is part of a total, such as clicks, cost or conversions. The builder no longer offers a rate, a share or an average (CTR, CPC, impression share, cost per conversion, ROAS) for such a donut, and asking an assistant for one says why and suggests a table instead of adding a donut that would stay empty. Donuts you already have keep showing the reason.

v3.184October 2026
Fix

Google Ads campaign filter: scoped to its account, and said on every figure it narrows

A report narrowed to chosen Google Ads campaigns now applies the choice to the account those campaigns belong to, and only there. Widgets of the client's other Google Ads accounts show their whole figures instead of nothing, and the All channels totals include every Google Ads account again: the chosen campaigns of the one account, the others in full. Every widget the choice narrows says so under its figures — “Google Ads figures: 2 chosen campaigns of Acme only”, with the campaign names when they fit — and an All channels widget names the accounts it includes in full, in the report, its share link and the PDF. AI summaries, the API and the AI assistant connector are told the figures are not the whole account's. A chosen campaign counts whatever its status, so a campaign removed since keeps its history. The builder's Campaigns picker lists the campaigns of every Google Ads account of the client, grouped by account; an account with more than 200 says “first 200 of …” and the search finds the rest. Reports filtered before keep their choice: each chosen campaign is matched to the Google Ads account it belongs to, and when that cannot be confirmed it is read as the client's first account's, with a note saying so.

v3.182October 2026
Update

Report editing through assistants: the right granularity, widgets where you ask, and moving one widget

Asking an assistant to show a Search Console, AI Visibility or All channels chart “by month” or “monthly” now makes it monthly: day, week and month are read straight from your words in English, German, Spanish and French, and neither a period such as “the last 12 months” nor “a week ago”, “month-over-month” or “monthly budget” is mistaken for one. Charts of other sources show one point per day, so a weekly or monthly view of them is refused with where to find one instead (for Google Ads, a table by Month or Week), as is a granularity no chart has, such as by quarter. A chart by campaign or device is left alone. The confirmation of every edit compares the widget before and after, setting by setting, so it only says nothing changed when nothing did. A new widget goes where you ask — “in the Google Ads section, right after the Top campaigns table” — and the preview shows where before anything is added; without a place, or with one that names no widget in the report, it goes at the end, and the preview says why. And a single widget can now be moved: after another widget, or to the start or end of a section. When the widget is pointed at, the preview names its old and new place; the confirmation always does. It keeps its settings and joins the section it lands in.

v3.181October 2026
Fix

Google Ads donuts and country maps no longer add up rates

A Google Ads donut by device or network and a Google Ads map by country added up their figure over the rows that make up each slice or country, rates and shares too (a slice has one row per campaign; a country one per campaign and location type): CTR of 4 % and 1 % read 5 %, impression share of 40 % and 30 % read 70 %. A map by country now adds up clicks, cost, conversions and the other counts as before, works out CTR, cost per click, cost per conversion, conversion rate and ROAS from the added totals, and shows a country’s impression share and the other figures that cannot be added up when one row makes it up, “—” with a line under the map that says why when several do (one campaign can make two, one per location type), and a real 0 as 0. Such a map no longer shows each country’s percentage of a total. A donut of a rate, a share or an average shows why it cannot be drawn instead of slices, since those figures are not parts of a total; a donut of counts is unchanged and never has more than 10 slices, so the app, shared reports, PDFs and AI summaries divide by the same total. A map by ROAS showed clicks; it now shows ROAS.

v3.180October 2026
Fix

Google Ads breakdown tables and the conversion-action donut show the right figures

Google Ads tables by device, network, day of the week, gender, age or keyword showed 0 for impression share, views and the other figures they did not add up. They now add up views, engagements, calls and the other counts. A row of one campaign or ad group shows its own impression share, 0 % included, a row that adds up several shows “—” with a line under the table that says why, and a figure Google did not return is “—”, never 0. A Google Ads donut by conversion action, such as the one in the “Conversion mix by action” template, showed the split by device; it now shows each conversion action, by conversions or conversion value, and the builder offers it.

v3.179October 2026
Fix

Google Ads: no added-up impression share when campaigns are filtered

A Google Ads KPI card filtered to several campaigns, by the report’s campaign selection or a widget filter, added up figures that Google reports per campaign only: two campaigns at 40 % and 30 % impression share read 70 %. Impression share and its lost, top and absolute-top variants, the top and absolute-top impression rates, view, engagement, video and viewability rates, average cost per view, unique users and frequency now show “—” over several campaigns, with a line under the widget that says why. A filtered chart or monthly or weekly table does the same on every day, week or month with more than one campaign, and unique users and frequency over several Display or Video campaigns show “—” for the same reason, with or without a filter. Counts and amounts are still added up, and CTR, cost per click, cost per conversion, conversion rate and ROAS are still worked out from the added totals. A report without a filter, and a filter to one campaign, show exactly what they showed before. Filtered charts and tables now also add up views, engagements, calls and the other counts that read 0 there. Asked for a Google Ads table by conversion action, Crunch, and add_widget and edit_widget over MCP, no longer put in cost, clicks or a cost per conversion, which Google cannot split by conversion action; they say so instead, and the builder offers only conversion metrics for that breakdown.

v3.178October 2026
Update

Leave a client's Meta campaigns out of a report by name

In the report builder, “Exclude Meta campaigns” takes terms such as “Energy”: every Meta campaign whose name contains one of them, in upper or lower case, is left out of every figure of the report — its Meta Ads widgets, the all-channels totals, comparisons, share links, PDFs, scheduled emails, the API and the AI assistant connector. Meta works the figures out without those campaigns, so reach and frequency stay right, and every widget it affects says under its figures which campaigns it leaves out. Over MCP, the new update_report_settings tool sets the same list, and get_report_data names it on each affected widget.

v3.177October 2026
Update

Merge projects and move prompts between markets from an AI assistant

The MCP connector now does what Settings → Markets does with existing projects: merge_project merges another client's project of the same brand into this one as a new market, with the app's preview of every count that moves and of reports that would go dark, and unmerge_project undoes it. update_tracking_prompt moves a prompt to another market of its project, update_scan_settings gives one market a scan schedule of its own, and list_prompts shows which markets came from a merge.

v3.176October 2026
Update

Add a market from an AI assistant

The MCP connector can now add a market the way Settings → Markets does: translate_prompts drafts a market's prompts in the new language for the user to review in the chat, add_market adds the market with the reviewed prompts and its own competitor list, and its preview states what one scan of the market uses before anything is saved. add_tracking_prompt takes a market, list_prompts lists a project's markets with each one's active prompts, competitors and schedule, and every prompt now carries its market.

v3.175October 2026
Update

Add a market: a plain count and current copy

The Add-a-market dialog now says what a scan of the new market uses as a plain count — prompts × runs × engines, naming how many engines are premium and counted 3× — instead of an equation whose printed factors did not multiply to the total. The competitors heading names the market once one is chosen, the schedule note points to the per-market Schedule link that already exists, a line next to the buttons says why Review is still grey, the translation note says the draft is one AI call on your key, Escape closes the dialog and asks first when translated drafts would be lost, and on a trial workspace the dialog says how many of the reviewed prompts were saved under the trial's prompt cap instead of closing silently.

v3.174October 2026
Update

The Firewall card names the layer that blocks

When the GEO Audit's live probe confirms that a crawler your robots.txt allows is refused anyway, the Firewall & access policy card now names the layer that answered — Cloudflare, Amazon CloudFront / AWS WAF, Akamai, Vercel, Sucuri, Imperva, Fastly, ModSecurity, or the web server itself — read from that response's own headers, with the fix for that layer. A robots.txt edit cannot unblock a WAF; the card, the content brief's first recommendation and the connector's audit now say where the fix goes.

v3.173October 2026
Update

One menu for workspace and account

The sidebar has one menu now: the workspace block at the top always reads as a control (a visible chevron, a second line with your role and plan) and opens your workspaces — switch, create, manage — followed by your account: settings, the ambassador portal if you have one, the admin if you are one, sign out. The user chip at the bottom of the sidebar is gone, and the duplicate “Current” badge went with it.

v3.172October 2026
Update

Content briefs never propose a figure to publish

A content brief now names the kind of proof a page needs and where it genuinely comes from — the brand's own data, a study the cited pages name — and never hands over a number to publish. The rule sits in the generator; every brief is checked before it is shown — a figure the evidence does not contain is sent back to the model once and dropped if it returns — and the evaluator and judge fail a brief that still carries one. The docs and the MCP tool say so.

v3.171October 2026
Update

Deleting a prompt now rebuilds the daily totals

Deleting a tracking prompt (or untracking an SKU) rebuilds the stored daily totals of every day it was measured on, so the Overview's headline figures, report KPIs, MCP metrics and digests agree with the views that count single answers. A short history is rebuilt before the delete answers; a long one follows within a few hours. The delete dialog, the MCP connector and the docs no longer carry the old caveat.

v3.170October 2026
Update

Text blocks: colours, highlights and callout boxes

The text block's toolbar gains text colours (muted, accent, positive, warning, negative), highlights (lime, green, amber, rose), small or large text, callout boxes (note, tip, warning, important) and a divider line, with the toolbar showing what the selection already carries. Every colour is one of the report theme's own tokens, so it reads in light and dark mode and in the PDF, and the same styling can be set through the MCP tools (add_text_widget, edit_widget with text) as attributes the connector documents.

v3.169October 2026
Update

Assistants add text blocks to reports

A new MCP tool, add_text_widget, adds a text block to a report from the assistant's own writing — an analysis, a summary, next steps — with a title, a width, an optional hidden title and a place: the start or end of the report, or before or after any widget. Nothing is interpreted by AI: the text goes in as written, cleaned exactly as the builder cleans a saved block, and the preview shows the placement, the length, the start of the text and anything that was removed. The result names the new widget, so remove_widget undoes it; edit_widget with text still changes an existing block.

v3.168October 2026
Major

Archive a workspace; move a covered one between plans

A workspace you no longer work in can be archived: everything is kept, nothing runs — no scans, scheduled reports, digests or sends, and the API, connector and webhooks are off for it — and its clients and seats stop counting against the plan. An owner restores it any time, within the plan's room. Owners of several paying workspaces can move a covered workspace from one plan to another under Settings → Workspaces.

v3.167October 2026
Major

Workspaces share one plan

The owner of a paying workspace on Pro or above can now create workspaces covered by that plan — no second card. Pro includes 3, Agency 10, Scale has no cap. A covered workspace shares the plan's pooled limits (client slots, seats counted once per person, Managed AI checks and overage, the rank budget, assistant messages) while its members, keys, white label, domain, SSO, webhooks and MCP switches stay its own; billing stays in the paying workspace, and a covered workspace can start its own subscription at any time.

v3.166October 2026
Major

Workspaces: one login, several workspaces

You can now belong to several workspaces with one login — your own and the ones you were invited into — and switch between them from the top of the sidebar or under Settings → Workspaces, which also lists invitations waiting for you. From the Pro plan, the owner or an admin can create more workspaces (Pro 3, Agency 10, Scale without cap), each with its own members, clients, data and plan. Accepting an invitation opens the workspace you joined.

v3.165October 2026
Update

Shopping: stopping a SKU's tracking asks first

Stopping tracking for a shopping SKU, one or every matching one, now shows how many per-SKU prompts and stored answers go with it (with their first and last day) and asks before the click; the timeline notes the removed prompts like deleted ones.

v3.164October 2026
Update

MCP: search-scoped content briefs; LinkedIn health check reads the API version

An AI assistant can now ask create_content_brief for a brief scoped to one fan-out search of a prompt (search, days and the page's filters), as the Query fan-outs page offers, and read it back with get_content_brief; the daily connection health check for LinkedIn Ads also makes one read under the pinned API version, so a retired version shows as Degraded with the fix named instead of Healthy until a report fails.

v3.163October 2026
Fix

Small fixes: LinkedIn tables, brief page paths, export, Peec engine names

A LinkedIn Ads table that could not be read now says Not loaded, as tiles and charts do, instead of an empty table; the content-brief modal shows page paths decoded (/über-uns, not /%C3%BCber-uns); the client export's content-briefs file names the fan-out search a brief was scoped to; Peec AI rows for Microsoft Copilot, Amazon Rufus, Mistral, Qwen, Baidu and Naver carry their engine names. Share of Voice over answers in which no brand was named at all now reads — (no share to give), never 0 %.

v3.162October 2026
Fix

Three small fixes: listing button, merge preview, Looker Studio

The rankings set-up names its two buttons apart (Change listing · Change); the market-merge preview now lists the content briefs, timeline notes and signals that move with the prompts, answers and daily figures; Google's Data Studio is called Looker Studio throughout.

v3.161October 2026
Update

All channels: a lead-gen blend

An All channels widget can now count leads as conversions: one conversion definition for the blend, so Conversions, Conv. rate and Cost per conv. read leads throughout, and a report no longer shows two numbers for one thing. Switch it on in the widget's options, or ask the editor to “count leads as conversions”. The editor also reads “weekly”, “wöchentlich” and “KW” as a weekly chart.

v3.160October 2026
Update

Billing: gifted client slots are shown

When we add extra client slots to a workspace on a standard plan, the plan's client limit grows by them everywhere (the Clients page, the API, the MCP connector), and the Billing page says how many were gifted.

v3.159October 2026
Fix

AI Visibility: a day stored twice is counted once

On the days when the daily figures were stored twice (a row without a market beside its stamped twin, a leftover of the first multi-market deploy), the Overview, the trend and the metrics now count that day once, in visibility and in the share-of-voice denominator. A row without a market is the project's own market everywhere, so a mixed day is one population. Projects without such days do not change by a byte.

v3.158October 2026
Update

AI Visibility: a prompt's language, per prompt and in bulk

On the Prompts tab a prompt with a market now also has a language select: the country's usual language by default, any language we scan in on choice, so English prompts in Spain are asked in English. Market & language for the prompts shown sets both for the whole current list at once.

v3.157October 2026
Fix

Crawl insights: a deleted project no longer breaks its log drain

Deleting an AI Visibility project whose log drain delivered logs in the last 14 days now asks first: move the log key to another project of the client, so the drain keeps working unchanged, or delete anyway. A drain still posting to a deleted project's ingest URL gets a clear answer (410 Gone, with the date and what to do) instead of an endless 401.

v3.156October 2026
Fix

AI Visibility: markets, four small fixes

The market control keeps a page's section link when you switch markets; its chips can be moved with the arrow keys; adding a market without a country next to one of the same language is refused with the reason; and adding a market with prompts no longer starts an automatic scan on a never-scanned project — nothing is scanned until you run a scan, as the dialog says.

v3.155October 2026
Update

Docs: markets inside a project

The AI Visibility guide's section "One client, many markets" now covers the whole model: adding a market, the market control, per-market competitors, a scan schedule per market, and merging another client's project into a market with the undo. Settings → Markets links to it.

v3.154October 2026
Major

AI Visibility: a scan schedule per market

Each market of a project can now scan on a schedule of its own: Settings → Markets → Schedule, with the same cadence, day and hour controls as the project. A market with its own schedule runs its prompts on its own days, apart from the project's scan; the Markets list shows every market's effective schedule and its last own scan. Markets without one keep scanning with the project, exactly as before.

  • A market's own scan queues behind a scan of the project that is still running, and never replaces one.
  • The project's cadence is measured from the project's own scans; a market's from its own.
v3.153October 2026
Major

AI Visibility: merge a project into another client's as a market

Settings → Markets of a single-market project now offers Merge into another project: it joins another client's project of the same brand as a new market. The preview shows exactly what moves (prompts, answers, daily figures), what stays and which reports of the old client would go dark before anything is written; the merge runs in one step and can be undone from the markets list, answers scanned since the merge included.

  • Every answer counts in the market it ran in from the day it ran; the figures of the other markets do not change.
  • Owners and admins only; a note on both projects' timelines explains the jump in the answer count.
v3.152October 2026
Update

AI Visibility: where you stand, market by market

On a project with several markets, the Overview now opens with one card per market: your visibility there with its answer count, the trend over the last eight weeks, the competitor that leads that market and the gap in points, and the way into that market's prompts. Under the cards, the pooled figure across all markets is labelled as a count, never as an average of the per-market rates.

  • Each market is pooled on its own answers; the side-by-side table underneath is unchanged.
v3.151October 2026
Major

AI Visibility: add a market, and one market control for every tab

A brand that sells into several countries is one project with several markets. Settings → Markets now lists every market the brand is tracked in, and “Add a market” sets up a new one in one step: country and language, the prompts (an AI draft of your existing prompts in the new language, which you review and edit before anything is saved, or none for now), the market's competitors, and what a scan of it will use. Nothing is scanned until you run a scan.

  • The market control sits under the brand name and applies to every tab: All markets, or one. Its state is in the link, so a shared URL opens the same market. Up to four markets show as chips, more as a list.
  • On a single-market project nothing changes except a quiet “Add a market” link under the brand name.
  • Prompts created for a market carry it from the start, and the Prompts tab, the Overview and the Brands page follow the selected market.
v3.150October 2026
Fix

AI Visibility: the answer language follows the market, and a language change can reach every prompt

A new project takes its answer language from its market (Germany → German), or from your account's language when no market is set. Before, a project that was not given a language explicitly scanned its prompts in English, so a German client got English answers with English sources. The setup wizard now shows the answer language under the market, pre-filled and changeable.

  • Changing a project's language reaches only the prompts that follow the project. Settings now lists the prompts that keep their own language and offers to switch them too, each keeping its market (for example English · Germany → German · Germany). The switch is refused while a scan runs, and the timeline notes the date; earlier answers stay where they ran.
  • On the Prompts tab a prompt asked in a language other than its market's usual one now reads, for example, “Germany · English” instead of just “Germany”.
  • A prompt import stamps only what the file states: a market column alone keeps the project's language, and a row that names the project's own market and language simply follows the project.
v3.149October 2026
Update

Google Ads + LinkedIn Ads: blended totals first, LinkedIn leads and audience in the standard report

The Google Ads + LinkedIn Ads template and every AI-drafted report with two or more paid channels now open with the blended totals (spend, conversions, leads and cost per lead across channels), then Google Ads, then LinkedIn Ads. Before, the blended section came last and was labelled as Google Ads.

  • LinkedIn Ads reports lead-generation figures as standard: leads, lead form opens, cost per lead and qualified leads next to delivery, plus the audience the ads reached by job function, seniority, industry and company size.
  • Cost per lead is a LinkedIn Ads metric in every widget and in Ask Crunch.
v3.148October 2026
Fix

Security: email confirmation and password reset at the same moment

When a confirmation link and a password-reset link for the same new account are used at the same moment, the account is now settled in one fixed order, so neither request fails with a server error.

  • If the address was confirmed while a reset link was being used, the reset no longer treats the account as unconfirmed: the two-factor setup, linked sign-ins and API keys its owner had just set up are kept.
v3.147October 2026
Fix

A firmer bar for projects with few prompts; goals early in a period; summaries that match their cards

A project that tracks only a few prompts now needs a clearer fall in AI visibility before Signals calls it real. Goals no longer read On track on the first day of a month, and report summaries state a change the way the card beside them shows it.

  • Answers to one prompt move together, so the test behind a change in AI visibility groups them by prompt. With only a few prompts, how much the prompts differ is itself a rough estimate. Where those differences set the bar, the test now reads them on Student's t (prompts − 1 degrees of freedom) instead of the normal curve. For a project with five prompts, a fall the old test put at 96.6 % confidence now reads 89.9 % and is no longer raised; with many prompts the bar barely moves. The same applies to competitor overtakes, to the ± beside Visibility where a figure rests on a few scan days and engines (and so to the grey "~ within margin" marks that follow from it) and to the source-type intervals. Open signals are checked again with the new test the next time Signals runs: one whose fall still clears the bar stays open (if not yet acknowledged, it now shows the new test's figures and confidence), and one that only the old test would have kept open closes with a note saying it was closed when we tightened the margin, not that the fall is over.
  • Goals: a total (conversions, leads, clicks, impressions, spend) shows Too early to tell until 3 full days of its period have passed, instead of On track at 0 of 100 on day 1. A target already reached is on track, and a limit already exceeded at risk, from the start. A goal with a target of 0 or below shows No valid target and no longer counts as at risk; new targets must be above 0. In client digests the AI that writes the summary is told that a spend limit above its pace is over budget pace, never behind, and goals that could not be read are named as such instead of being left out without a word.
  • Report summaries: a KPI widget set to show an absolute change now gives the AI summary that change, not a percentage the card does not show, and Ask Crunch's report summary carries the ± of each rate. In the API (get_report_data and /reports/{id}/data) the withinMargin field now marks the "~" changes of the Prompt and tag tables as well as the Brand table. The editor's check of a summary's figures no longer flags a figure that moved by less than 1 % since the summary was written.
v3.146October 2026
Update

Require SSO

Workspaces with single sign-on can now require it. Under Settings → SSO, an owner or admin switches on Require SSO, and members whose email address is on a verified domain then sign in only through your identity provider, so its two-factor rules and its offboarding apply to every sign-in. It stays off until you switch it on.

  • Password and Google sign-in stop working for those members, and their sessions that didn't start with SSO end within about a minute. Members with an address on another domain, such as outside consultants, are not affected. Before it goes on, a confirmation lists every member it affects.
  • The workspace owner keeps a way in if the identity provider is down: their password with two-factor authentication. Each such sign-in is logged and emailed to the owner. The owner of a workspace with single sign-on can now also always use Forgot password.
  • API keys keep working, because they belong to the workspace; a member who leaves, removed by an owner or admin or by deleting their own account, now takes the API keys they created in it with them (revoked), and the prompt says how many first. AI assistants connected from a password or Google sign-in have to be connected again after signing in with SSO.
v3.145October 2026
Fix

Required 2FA now covers the API and the AI connector

When a workspace owner requires two-factor authentication, a member who had not set it up was sent to the setup page, but could still reach the workspace's data through the API. That is closed now.

  • Until they turn 2FA on, such a member's requests for workspace data are refused with “Your workspace requires two-factor authentication. Set it up in Settings → Security.” Setting 2FA up, signing out and public share links keep working. If any workspace you belong to requires two-factor authentication, you need it to use CrunchJunkie.
  • The same goes for AI assistants connected through the CrunchJunkie connector: they act as that person, so they are refused until 2FA is on, and no new assistant can be connected before then. REST API keys keep working, and only members who meet the requirement can create new ones.
  • When an owner switches the requirement on, members without 2FA are signed out on their next request and taken to the setup after signing in again. Turning 2FA on lifts the block straight away, without a new sign-in.
v3.144October 2026
Fix

Security: confirming your email, and email changes under single sign-on

Confirming your email address now opens a page where you set your password, and then you're signed in. The password entered at sign-up stops working at that moment and every other session ends, so only the person who confirms the address can use the account.

  • Signing up with Google needs no extra step: Google confirms the address itself, and an account made that way has no password. A reset link that confirms an address works the same way as the confirmation link.
  • Members whose workspace signs them in with single sign-on can change their email only to another address on the workspace's verified domains. An owner or admin can change it to any other address under Settings → Team: the new address confirms the change, the previous address gets a notice, and both steps are recorded in our audit log.
  • While single sign-on works, Forgot password sends these members no password link but an email that points them to single sign-on. A password they already have keeps working.
v3.143October 2026
Fix

LinkedIn Ads connector moved to LinkedIn's current API version

Every LinkedIn Ads read now sends LinkedIn's API version 202610, supported until 15 October 2027. The version sent before, 202507, had been retired by LinkedIn on 15 July 2026, and a retired version is answered with an error, so LinkedIn Ads widgets could have shown "Not loaded" since then. The accounts, campaigns and analytics fields we read are unchanged between the two versions, so no figure changes.

v3.142October 2026
Fix

Content briefs from Query fan-outs are written for the search

A brief opened from a Query fan-outs row was the brief of the prompt behind the search, built on every recent answer of that prompt. So a row reading “Cited 0/9 · Named 0/9” could open a brief saying the brand is already named in 4 of 30 answers and is not a gap. The brief now takes the search itself: its evidence is the answers that ran that search in the page's window, the not-a-gap rule reads those answers alone, the header names the search with the prompt under it, and the brief is saved beside the prompt's own. Briefs opened from the Prompts tab are unchanged.

  • The AI drafting the brief now has almost twice the room for its answer and tries once more when a provider cuts it off; a cut-off answer used to read as a failed brief. When it still fails, the admin log records what the provider said.
v3.141October 2026
Fix

Content brief: a button to try again, and failures that can be traced

When a brief could not be drafted from its evidence, or none of the cited pages could be fetched, the message said to generate the brief again but offered no way to. A Generate the brief again button now sits under that message; the evidence stays, and the brief is tried again from the current answers. Every failed generation is now filed in our error log with the provider's answer, so a run of failures is visible to us. In the list of cited pages, two pages on one site are shown with their paths, so they no longer read as one site listed twice.

v3.140October 2026
Fix

Filtered Share of Voice on reports and widgets was too low

A KPI card, chart, table or per-engine breakdown that carries a filter (a tag, an engine, a prompt category, a market, a Source lens) recomputes its figures from the matching answers. Its Share of Voice took your brand's mentions of each day and engine over the mentions of every brand in the whole period, once per day and engine, so the pooled figure was the true share divided by the number of day-and-engine slices in the period. Unfiltered figures were right and are unchanged.

  • Filtered Share of Voice now measures the same slices as the unfiltered KPI card and the Brand table: every brand's mentions on the same day, engine and market, added up over the period and divided once. A filtered figure and the Brand table's row for your brand are now measured the same way. Visibility, Mentions, Sentiment and Avg. Position were not affected.
  • Nothing stored changes; every period, past ones included, now reads with the corrected rule, so a filtered Share of Voice for any earlier period can be much higher than what was shown before, wherever the report is read: in the app, over share links, in PDFs and scheduled sends, in the MCP connector's and the API's report data and in Ask Crunch. An AI summary saved before this change may quote the old figure; the report treats it like any summary whose figures have changed.
  • On the Sources tabs and in the citations data of the MCP connector and the API, pages and sites with the same count are now listed in one fixed order (alphabetical) instead of an order that could change between reads.
v3.139October 2026
Update

Your brand without its legal form: fan-out brand figures and the branded / non-branded splits move

A search or prompt that writes your brand without its legal form now counts as naming it: “pmax Online” names “Pmax Online SL”. That moves figures on several surfaces, as listed below — fan-out brand figures up, the branded / non-branded splits either way. Nothing stored changes; every period, past ones included, now reads with the new rule, so a figure for any date can differ from what was shown before. A note on each affected project's timeline marks the day of the change, and mentions in AI answers are read as before.

  • Fan-out brand figures can rise: the brands panel and the note on searches for your brand on Query fanouts, and the company a follow-up search names in Follow-up insights, now count a name written without its legal form. Never a part of a name: “PMax” alone is Google's Performance Max, not “Pmax Online SL”.
  • The branded / non-branded splits can move up or down for a name with a legal form: the Search Console widgets' split, and the Prompts tab's Branded / Non-branded visibility with the Overview's warning that branded prompts inflate the headline (both classify prompts each time they load). Why: a prompt now counts as branded when it writes the name without its legal form, and the brand terms of the search-query split, which used the name without its legal form in every case, now use it only when that shorter name is switched on — “Online SL” and “Autohaus Berlin GmbH” are matched as written, no longer as “Online” and “Autohaus Berlin”.
  • The same holds for the branded / non-branded split of Bing queries.
  • The same holds for the branded / non-branded split of Rank Tracker keywords.
  • Settings → Brands shows each name's shorter form as “Also matched as”, with a switch: on by default when it keeps a distinctive word and names no place, off when it names a place anywhere or holds only generic words (“Autohaus Berlin GmbH”, “Hotel España SA”, “Online SL”). A brand name that is an ordinary word (“Apple”) matches that word. New prompts are filed by the same switch; flipping it also re-files the prompts that were filed automatically (a category chosen by hand stays), and flipping it back files them by the rule again, so a prompt filed before this change that writes the shorter name can end up as Brand.
  • On Query fanouts: review words have their own theme, “Reviews and ratings”, and “Trust and region” is now “Trust and certification”; a recurring phrase such as “Performance Max” replaces its words; each card shows one Search Console line (a similar query only when it holds two thirds of the search's words and has at least 50 impressions); every row shows “Without you”, the number the table is ordered by, and “Named x/y”; searches appear verbatim; the summary bar uses neutral colours.
v3.138October 2026
Update

Each market of a client can track its own competitors

A project that tracks a brand in several markets can now give each market its own competitors on the Brands page. A market's list only changes that market's share of voice.

  • On the Brands page, a project whose prompts run in more than one market shows All markets (default) and one tab per market. Every market tracks the default competitors until you choose Use different competitors for it; its list starts as a copy of the default, with its own competitor suggestions from its own answers. Back to the default puts it on the default list again. Your own brand's aliases apply in every market, and a project with one market sees no change.
  • From the next scan, a market's answers are read with its own list, aliases and competitor websites, and its daily figures are measured against it. Other markets, the default list and past figures stay as they are. Each change adds a note to the timeline, labelled with the market, which explains the step in that market's share of voice.
  • Views across all markets stay honest when markets track different competitors: each brand's share of voice is its share in the markets it is tracked in, added up across those markets and divided once, never averaged, and a competitor tracked in some markets only is labelled with them and its number of answers. The Overview, shopping recommendations, report tables, the MCP connector and the API follow this rule; pick a market for that market's own share of voice.
  • The MCP connector's manage_competitors takes a market to change one market's own list; without one, its preview names the markets the change reaches and the ones that keep their own list. The GEO Audit's crawler benchmark keeps comparing you with the default list.
  • On projects with more than one market, the Share of Voice column of the report's Brand table (with its comparison and change) and Model table was too low: each market's row was divided by the mentions of every market, so with two markets a share of 62.5 % read 31.25 %. Each row is now divided by its own market's mentions, so the column matches the KPI card and the trend. These two columns change wherever the report is read: in the app, on share links, in PDFs and scheduled sends, in the report data of the MCP connector and the API, and in Ask Crunch. AI summaries saved before this change may quote the old figures: the report shows its editors a note with a button to write them again, and a scheduled send treats them like any summary whose figures have changed. Nothing else changes: the KPI cards, the trend charts, the Overview, the visibility metrics of the MCP connector and the API and the client export already measured Share of Voice within each market, client digests do not show it, and visibility, mentions, position and sentiment, the Biggest Movers, Brand × Model and tag tables, projects with one market and every stored figure stay as they were, except that on days stored partly before markets were recorded, the KPI card and the trend now count those rows in the project's own market, as the tables always did.
v3.137October 2026
Update

Query fanouts, rebuilt around one question

The Query fanouts page now opens with one sentence: how many different searches the engines ran, how many led to an answer that cites you, and how many never did. Every number on the page counts the same searches, and the table reaches all of them.

  • One population: the tabs counted only the 200 searches the table held, while the tiles counted every search in the window. Tabs, tiles, panels and the table now count every search, and the table loads more as you go.
  • “Write for these first” lists the searches that came up most and never led to you, with the sites cited instead, your Google rank, the content brief for the prompt behind each, and the answers that ran it.
  • The words the engines add are grouped into price and cost, comparing options, and trust and region, each with its share of all searches. The brands and sites the engines look for sit side by side, with yours pinned.
  • The method (API, models, scan dates, coverage, the Google column, no search volumes) moved into “How this is measured”. The “rank in Google, uncited in AI” tab is now a filter beside the table, and “See the answers” on Responses lists exactly the answers that ran one search.
v3.136October 2026
Update

The URLs tab splits by engine, and a domain opens its pages

The URLs tab now has the Domains tab's engine filter, and on the Domains tab a domain's name opens every cited page behind it, with that tab's filters carried over.

  • The URLs tab has the Domains tab's engine and topic filters. An engine means our scans of it and, where the data source includes them, its Peec AI chats, so the engines add up to the all-engines view under every data source. The rows with their appearances and citations, You and Comp, the type mix, the split into your homepage, your other pages and third-party pages, and Cited in AI, not (yet) winning in Google follow the engine you pick. Status, citation rate, last cited and trend stay on every engine, because citation lifetime is stored for all engines together; the tab says so, and a page's own panel splits them by engine. Our Gemini scans name websites, never pages: when every answer of the engine you pick is one of them, the tab says so and links to its websites on the Domains tab instead of showing an empty list. The filters are kept in the page address, so a reload or a shared link opens the same view.
  • On the Domains tab, a domain's name opens its cited pages on the URLs tab, with the engine, topic, period and “Cited for” filters carried over; the icon beside it still opens the website. The URLs tab shows the domain as a chip you can remove, next to the domain's own figures from the Domains tab. They differ from the sum of the page rows by design, and the tab says why: the Domains tab counts an answer once per domain, the URLs tab once per page, and Gemini's answers count for the domain only.
  • The type mix and the ownership split on the URLs tab show their n: the appearances of the pages listed.
  • Labels that showed in English in every language now follow yours: your homepage, your page and third-party on the URLs tab, the topic filter on the Domains tab, and the Type and Source columns of the Cited URLs report table and the issues in the Source health table, in the app, on share links, in PDFs and in the report data the API and the MCP connector return (their column names stay English).
  • Tooltips stay next to what they explain: they follow the page when it scrolls and close when their trigger scrolls out of view. The dead and retracted counts on the Domains tab use the app's own tooltip instead of the browser's, which some setups drew in the top-left corner.
  • The engine filter on the Domains tab and its chart now counts an engine's Peec AI chats too under the Peec AI and blended data sources; it counted our scans only, so under Peec AI an engine showed nothing. The MCP connector's get_cited_url takes a model, counted the same way, so its counts can follow one engine; its lifetime block stays on every engine and says so.
v3.135October 2026
Fix

The project switcher shows every project in full

The list that opens from the brand name at the top of an AI visibility project now opens over the page, not inside the side panel. It is no longer cut off on the right, and the side panel no longer scrolls sideways.

  • Each project shows its brand and, under it, the client's full name, with a short code for its market (DE, US). The language is added when it is not the market's usual one (CH · FR); a project without a market shows its language (EN). A project whose prompts are scanned in several markets shows the first and how many more (DE +2), and names them all to a screen reader; a project imported from Peec AI says so (Peec) instead of a market. Two projects of the same brand, such as one for Germany and one for the US, no longer look the same. Each client is listed once, with the project its overview opens; clients you opened recently still come first, and the project you are in has a tick.
  • It works from the keyboard: the arrow keys move through the list, Home and End go to the first and last project, Enter opens it, and Escape closes the list and returns to the brand name. A screen reader names each project's brand, client and market. On a phone the list opens over the project menu and fits the screen.
v3.134October 2026
Fix

YouTube videos are counted one by one

Every YouTube video an answer cited through a youtube.com/watch link was counted in one row, youtube.com/watch, and its link opened YouTube's start page. Each video now has its own row, which opens that video, and the history has been recounted that way.

  • A page is still its address without www, without the query string (tracking tags such as utm_source and every other parameter) and without a #fragment, except on YouTube, Facebook, Google Play and Hacker News, where the parameter that names the page is now kept: youtube.com/watch?v=… is one video, and youtu.be links, m.youtube.com and Shorts, embed and live addresses count as that same video. Facebook posts, videos and photos, Google Play apps and Hacker News threads are counted one by one the same way.
  • Recounted for all history: the URLs tab, the Cited URLs and Trending URLs report tables (in the app, on share links and in PDFs), citation lifetime, content briefs and the MCP connector's get_cited_url. Domain figures (the Sources view, the Source domains table, the domains of get_citations) and AI visibility rates do not change. The type mix and the split into your homepage, your other pages and third-party pages on the URLs tab are counted over the pages listed, so they can shift a little. Saved AI summaries, content briefs and PDFs already sent keep the figures they were written with.
  • Asked for youtube.com/watch itself, get_cited_url now says that videos are counted one by one and lists the most used of them, instead of reporting a page nobody cites. A new page type, Video, covers YouTube, Vimeo and TikTok videos in the URLs tab's type filter and type mix and in the report tables; where Peec AI has classified a page, the report tables keep showing Peec AI's class for it, as before. Page types on the URLs tab now show in your language.
  • On a new project, whose answers all come from the current week, the status, citation rate and trend columns no longer read "— → —, n 0/0": the URLs tab says when the first full week ends (Sunday, UTC), and each page says when its first rate can be measured.
  • The Rank Tracker's pages and its Cited by AI column count each video as its own page too: a ranking video is matched with the answers that cite that video.
v3.133October 2026
Fix

The scan queue, tightened

Small fixes to the scan queue from 3.130: a queued scan no longer waits for hours behind a scan that has stalled, and no check is run twice when your scan takes over from the automatic first scan.

  • A queued scan behind a scan that is driven and gets nowhere (twice in a row, over 15 minutes, without saving an answer) now takes over from it within minutes, instead of waiting for the stalled-scan check, which takes two hours or more. A scan that is only waiting for capacity on our servers is never stopped: the scan bar now says it is waiting, instead of showing a time it could not know. The answers the stalled scan saved in its last 6 hours count, so they are not asked again.
  • Run scan while the automatic first scan of a new project is still checking: your scan replaces it as before, but now starts once the checks it has in flight are in, so none of them runs (or is billed) twice.
  • At its scheduled time, a project with a queued scan now starts that scan as the period's scan, so cancelling the queued scan can no longer leave the period without one.
  • Webhooks: scan.completed for a scan that replaced or took over from others names them in data.replaced; those scans, and a queued scan cancelled before it started, send no event of their own.
v3.132October 2026
Update

Pause a prompt, and a delete that asks first

The Prompts tab can now pause a prompt: no scan asks it any more, and every answer it already has is kept. Deleting a prompt now asks first and says what is lost.

  • Pause and Resume sit in each prompt's row. A paused prompt is marked Paused, leaves a scan that is queued or running at once and keeps every stored answer, and the Status filter shows the paused or the active prompts on their own. Resume asks it again in every scan started from then on. During the trial, a resume beyond the allowance of active prompts is refused with the reason.
  • The bin no longer deletes on the first click. It opens a dialog that counts the prompt's stored answers, with the dates of the first and the last, and the content briefs written for it. It says that deleting cannot be undone and that views counting individual answers are recalculated without them, and offers Pause instead as the default. Only a second click, on Delete permanently, deletes.
  • Pausing, resuming and deleting each add an internal timeline note, in the app and through the MCP connector, which until now paused prompts without one. The connector's delete preview counts the same stored answers. A read-only member can neither pause, resume nor delete: the server refuses it.
  • Fixed: a prompt paused while a scan ran no longer turns into failed checks that ended the scan as an error, and a scan left with no prompt stops as if stopped by hand. The Overview's topic and tag views keep a paused prompt's past answers, like every other figure. Run scan is off, saying why, when every prompt of a project is paused.
v3.131October 2026
Update

How to choose prompts, in the docs and next to the prompts

The docs now explain how we choose the prompts we track, and the app links to that wherever you add prompts.

  • The AI visibility docs have a new section, "Choosing your prompts": buyer questions by stage, one wording per intent, prompts that name a brand kept apart, one set per market, how many prompts and how often to scan, what category, tags and intent are for, and when to retire a prompt. Its figures come from our study of 2,160 answers; each count gives the number of answers it is out of, and the study's limits are stated.
  • The setup guide's prompt step, the Prompts page (an info tip next to the heading), Suggest prompts, From keywords and Import link to it: the German docs in German, the English docs in every other language. The MCP connector's suggest_prompts points to it too. On the German docs index, articles now open in German.
v3.130October 2026
Update

Run scan always starts a scan

Run scan used to do nothing while your tab was busy with another project's scan. Now it always starts the scan: on our servers, or queued behind the scan of that project that is already running.

  • Started while this tab runs another project's scan, a scan now runs on our servers, alongside the first one: usually within seconds, at most a few minutes later when our servers are busy. It emails you when it is done.
  • Started on a project that is already scanning, the new scan no longer stops the running one. It is queued and starts by itself when that one finishes, and the dialog says roughly when ("about N min", from the running scan's measured pace). A project holds one queued scan, a queued scan uses nothing until it starts, and you can cancel it before then.
  • The scan bar at the bottom lists every running and queued scan of your workspace, with progress, time left and Stop or Cancel, not only the scan this tab started. A tab that wakes up after our servers took its scan over hands the scan back instead of running the same checks a second time.
v3.128October 2026
Fix

How far a prompt’s change has to go

A report’s Prompt table now says what a change needs to be clear, not only that it isn’t.

  • Under a report’s Prompt table, when changes start with “~”, a note now gives the change that is clear on the rows shown (twice the margin of error of the change, both periods’ margins combined) and the answers per prompt behind it. With a few dozen answers per prompt only large moves are clear, so most changes there start with “~”; the note shows why. AI summaries get the same line.
  • Rank Tracker budget: a search sent at the moment its keyword or client is deleted is now booked like any search deleted while its run goes, and charged at what DataForSEO charged for it. If a fault on our side sends a search a second time, the daily check finds the first one and you are charged for one search; the other is ours.
v3.123October 2026
Update

Crawl insights by site section

Crawl insights now shows which parts of a site AI crawlers fetch, such as /blog, /products or /docs, and a report can carry the same table. A fetch shows access, never a citation.

  • A new card groups the page fetches by section: the first part of the path, with a language folder such as /de/ kept as a prefix, single top-level pages together and the rest under Other sections. Each section shows its requests and their share, the requests per crawler operator, how many came from an operator's published IP ranges, the number of pages, the share answered 2xx, refused (403/406) or failed out of the fetches that logged a status, and the last crawl.
  • You can name your own sections with path prefixes, such as /de/blog = Blog (DE). They apply to the card, to the new Crawl sections report table (in the app, on shared links and in the PDF) and to get_crawl_insights in the MCP connector, which returns the sections when asked with sections: true.
  • Rank Tracker: moving the own site when a client already has three previous own sites no longer fails, and a website changed in the client's settings now always moves it. The oldest previous own site stops being read instead and keeps the positions measured until then; Set-up says since when.
v3.122October 2026
Fix

Google Ads sign-in problems named for what they are

Two warnings now say what the fix is, and the data location report says when the AI features are off.

  • When a Google Ads account requires 2-Step Verification, or Google's Advanced Protection Program, and the connected Google account does not have it, the report's warning now says so for that account and what to do: once 2-Step Verification is turned on, reports work again, and reconnecting prompts for it.
  • A Google Ads account that Google reports as not found is shown as “No access” only after every manager account the connected user can reach was tried, as for every other refusal.
  • In Settings → Data & residency, a workspace with no AI key and no Managed AI now reads “No AI key”, and the report says the AI features do not run until a key is added. It used to say they ran on CrunchJunkie's account. The privacy policy (section 3.2) now says exactly when new AI-visibility answers are read with your own key: when an Anthropic key is saved as your AI assistant key.
v3.121October 2026
Fix

Retrieval and Citation trends on the Tag table, and citation lifetime from the first measured week

The extended Tag table's Trend column follows the table's own figure when it has no Visibility column, and a page's citation lifetime lists each model change once and starts where its measurement starts.

  • On an extended Tag table that shows no Visibility column, the Trend column now draws the first Retrieval or Citation rate the table lists, or the rate behind its first Retrievals or Citations count, instead of Visibility. Each point is that rate for one week (or one month on a period of 180 days or more), pooled over the answers it is computed over, with their number: for a Retrieval rate the answers that list what they retrieved, for a Citation rate the answers that retrieved your site; a period with nothing to measure is a gap, never 0; on Peec AI data alone it is per chat, as its column is. Tables with a Visibility column draw Visibility as before. The share link, the PDF, AI summaries and the MCP connector show the same values.
  • In a page's citation lifetime, a model change listed twice for the same engine is listed once, dated by its first answer: Perplexity's move to GPT-6 Luna was answered from 26 September and noticed on 28 September, and appeared on both days. The drill-down, its likely causes and the MCP connector all read the single entry, so a loss is put down to a model change only when the change itself falls inside the weeks compared.
  • A page's drill-down now starts its charts, its table and its engine lines at the first week with any answers for the page, and says from when and how many of the 26 weeks came before; on one page we checked, the 13 weeks from April to June had no answers and are no longer listed. The MCP connector's weekly series starts at the same week (measuredFrom, with historyFrom beside it). No figure changes.
v3.120October 2026
Fix

Rank Tracker: the own site during a run, a subdomain, and what is left to read

Four follow-ups to the own site that follows the client's website.

  • A domain added, or an own site moved, while a run is going is now read from that run's stored results lists when the run ends. Those checks no longer show as not checked for it until the next run.
  • When the client's website changes to a subdomain of the own site (example.com to shop.example.com), the own site no longer moves on its own, because results on example.com would stop counting. Set-up says the two differ and asks.
  • A previous own site is still read from every search, at no extra cost, and Set-up now says so. A client keeps up to three previous own sites.
  • Set-up shows how many stored results lists are not read for the own site yet, with a button to read on, also after the website was changed in the client's settings.
v3.119October 2026
Fix

A new market is always a country, and assistants can ask for less

A market saved from now on is stored as a country, and AI assistants can read AI visibility without tens of thousands of characters of rows.

  • The setup wizard asks for the market with the same country list as Settings. It used to take free text, and a market typed as a place, such as “Utah, United States”, matched no country. A market saved from now on, in the app, by import or by an assistant, is stored as a country: a place that names one country is stored as that country, and a value that names none, or a state written as two letters such as “Los Angeles, CA”, is refused with the reason. Existing projects are measured exactly as before. Where a market is still saved as text, Settings now shows that text and what scans read it as, and picking a country stores it and adds a note to the Timeline.
  • In the MCP connector, get_ai_visibility_metrics and get_visibility_trend take summary: true for the pooled figures alone, get_ai_visibility_metrics pages its rows with limit and offset, and get_ai_answer takes maxTextChars. Without them each tool returns what it did before. In the connector and the REST API, an engine id the project has no answers from now says so and lists the project's engines, instead of reading like a window without scans.
  • A Slack alert from an automation escapes the names and words that come from your data, so none of them can notify a whole channel or turn into a link.
v3.118October 2026
Fix

Refusals in your language

When CrunchJunkie refuses a save or an action on the pages below, it now gives the reason in your language instead of in English.

  • This covers prompts, brands and competitors, the approvals queue, the report editor, and the AI key and white-label settings: for example a trial's prompt limit, a task without a title, or a report that only owners and admins can delete.
v3.117October 2026
Fix

Brand-mention accuracy, measured on 215 labelled answers

We read 215 stored answers from five projects one by one and checked every recorded brand mention against the text: 99.2 % of the recorded mentions were right (756 of 762), and 97.7 % of the brands the answers name were recorded (756 of 774). Nothing changes in your figures with this update.

  • Each of the 6 wrong mentions was a name the answer never writes: a word that only looks like the brand, or a related company the answer names instead. The 18 missed names were all in the two projects that track more than a hundred companies each.
  • Stricter rules that fix both are built and stay switched off until a check on real stored answers shows they hold. This changelog will say when they are on, and from which day your figures read differently.
v3.116October 2026
Update

AI assistant traffic for shops: purchases and revenue per assistant

A new GA4 report template shows what ChatGPT, Perplexity, Gemini and the other AI assistants bring a shop in purchases and revenue.

  • “GA4 — AI Assistant Traffic (Shop)” has one row per AI assistant with sessions, engaged sessions, purchases, purchase revenue, the purchase conversion rate and revenue per session, against the comparison period. Revenue is in the GA4 property's own currency, which the report names, and is never converted.
  • Each rate divides the row's purchases or revenue by its sessions once, and the sessions are shown with it. A shop with no sale in the period shows a real 0; only a GA4 property that has recorded no purchase in the 13 months up to the end of the period says “No purchase data in this GA4 property” instead of 0.
  • A note in the template explains how payment sites such as PayPal, Klarna, Stripe, Shop Pay and Shopify's checkout can hide the AI source, and which GA4 setting stops it.
v3.115October 2026
Update

Branded vs non-branded search queries

Search Console widgets can now count the queries that name your client's brand, the ones that don't, or both side by side.

  • Each client has brand terms, taken from its name, website and AI Visibility brand names. Add product names and misspellings, untick a term that is too generic, or exclude terms that should never count. Before you save, a preview shows how many of the client's top queries would count as branded.
  • Set a Search Console widget to branded or non-branded queries, or pick the Branded vs non-branded split for a table, donut or line chart. Google filters all of the property's queries, not a sample. CTR and average position are worked out per group from its own clicks and impressions. Queries Google anonymizes are in neither group and get their own row.
  • AI assistants, the API and Ask Crunch can read a report for branded or non-branded queries only, and Draft with AI can build these widgets.
  • Corrected figures: a Search Console filter set to “Does not contain” now leaves those values out (it used to count them, as if it said “contains”), and “Starts with” now matches only the start, a page path right after the site's address. Reports with such a filter now show correct figures, which may differ from what they showed before. A filter that combines OR with “Does not contain”, which Search Console cannot do, now says so instead of showing wrong figures.
v3.114October 2026
Update

Perplexity's Fast Search, measured and followed; trials now scan on Perplexity

Perplexity moved its web search to Fast Search in early October. We checked what that did to the numbers before following it. New trials now run on Perplexity instead of Gemini, so content briefs work from the first day.

  • Perplexity switched the web search behind the Agent API preset we use to its Fast Search between 1 and 6 October 2026 (Perplexity does not publish the day). We compared answers from three of our own tracked projects before and after, on the same 38 prompts: 25.3 sources per answer on 26–30 September and 25.8 on 7–13 October (96 answers each), and the share of answers naming the brand moved no more than it does between two runs of the same prompt. So scans follow Fast Search, and every project with Perplexity answers on both sides of the switch gets an internal Timeline note that says so. The note does not mark a break in the series, so alerts and signals keep comparing Perplexity across it.
  • Own-key cost estimates (the usage statement under Billing and the pricing page's own-keys example) now price a Perplexity scan from 7 October 2026 at Fast Search's web search fee (US$1.00 instead of US$2.50 per 1,000 searches). How many searches one scan makes is not measured yet, so the estimate counts the upper end of what we observed: US$0.006 per scan in search fees instead of US$0.0075. Earlier scans keep the fee that applied then; 1–6 October keeps the higher one, because the day of the switch is not known.
  • New trials scan on Perplexity instead of Gemini. Gemini names the websites it used but never the pages, so a content brief had nothing to learn from during a trial; Perplexity cites pages. It costs you nothing during the trial, and when the trial ends the free engine switches off and nothing is added to your plan, as before: Managed AI is only ever added when you choose it. A trial that is already running keeps Gemini until it ends. On the Lite scan mode, a trial runs Perplexity in place of Gemini, so it still scans.
v3.113October 2026
Fix

Peec AI citations now count every citation

On Peec AI data, Citations and Citation Rate now count citations the way Peec AI does: a page an answer cites twice counts twice. They can still differ from Peec AI's own figures where prompts were paused or deleted in Peec AI, because its reports count only its active prompts while the chats already imported for those prompts stay here.

  • The Peec AI import now keeps how often each chat cited each page. On a view that holds only Peec AI data, Citations add those citations up and Citation Rate divides them by the chats that retrieved your domain, on KPI cards, the Overview, the Retrieval & Citations table and the Cited Sources, Cited URLs and Source domains tables, in the app, on shared links and in PDFs.
  • Chats imported earlier knew only which pages they cited. Until they are read again, each of those pages counts once, and the figure says under it how many such chats it holds, so a lower number never passes as Peec AI's own. A saved goal or AI summary that quoted the old Citations figure on Peec AI data will see it change once.
  • Retrievals, Retrieval Rate and Used as source are unchanged, and so is every figure from CrunchJunkie's own scans and from views that mix them with Peec AI data.
v3.112October 2026
Update

An assistant's confirmation applies only the details you previewed

When an AI assistant changes something through the MCP connector, a confirmation now only applies the same details you previewed.

  • Every action's preview carries a one-time token. The confirmation has to send it back with the same details, within 15 minutes, once, in the same workspace. Otherwise nothing changes and the assistant asks for a new preview.
  • A confirmation without a preview is refused, with a note telling the assistant to show you the preview first. A chat that was already open before this change may need to be started anew to pick it up.
  • For a scan, a content brief or a rankings refresh, the scope and cost worked out at confirmation must also match the preview. If prompts were added in between, the assistant has to preview again and show you the new cost.
v3.110October 2026
Fix

Safer CSV files, steadier client exports

Two CSV downloads that could carry a formula into a spreadsheet are now safe, and client exports explain themselves when something is in the way.

  • The AI-visibility Overview's CSV and the metric-history CSV in the workspace export now put an apostrophe in front of a text cell that starts like a formula (with =, +, - or @), so a client, brand or prompt name can never run as a formula in Excel or Google Sheets. Every CSV CrunchJunkie writes now uses this one rule, and a value that is only a number, a negative one too, stays a number. The Overview's CSV also keeps a brand name with a comma in its own column and shows accents correctly in Excel.
  • Client exports: Download ZIP checks the file before the download starts, so a problem shows in the dialog in your language instead of as a failed browser download. A large file has up to 13 minutes to download. An export that is slow but still moving is no longer stopped after 6 hours, and one that would be more than one ZIP file can hold (4 GiB, about 4.3 GB) stops as soon as that is clear and says so.
  • Team settings: changing a member's role, removing a member and withdrawing an invite now always apply to the workspace you are looking at, also when you belong to more than one.
v3.109October 2026
Fix

Blended ROAS counts the accounts that report a value

Two corrections: an honest ROAS across channels, and no emails to clients from a locked workspace.

  • All-channels ROAS is now the conversion value divided by the spend of only the accounts that report a conversion value. The widget says when that is not every active account ("ROAS from the 3 accounts (of 4) that report conversion value"); with no value at all, ROAS shows a dash, never 0. The same rule applies in the app, shared links, PDFs, AI summaries, Goals, client digests, the API and the MCP connector.
  • Two kinds of account drop out of ROAS: a ChatGPT Ads account without purchase events, and a Reddit Ads account whose value field the API refuses. Their spend still counts in Spend. Google, Meta, Microsoft, Amazon and LinkedIn Ads report a value of zero when there is none, so their spend stays in ROAS, lead-gen accounts included. Where one of the two drops out, a ROAS goal reads higher, once. Per-account ROAS and every other metric are unchanged.
  • A locked workspace (cancelled, paused or unpaid) no longer sends scheduled report emails or client digests. The owner gets one email naming the workspace when this starts, and the lock screen says it. Sends resume on their next date once you choose a plan; anything due in the meantime is not sent later.
v3.107October 2026
Major

Export a client's reports and data

Before you delete a client, you can now take its reports and data with you in one ZIP file.

  • The file holds every report as a PDF, the full AI-visibility history per day, engine and brand with the answers behind each number, prompts, every AI answer with its sources, citation lifetimes, every Rank Tracker check, signals, goals, timeline notes and content briefs, with a README that explains each column and lists what is not included.
  • It is built in the background: the dialog shows the progress, an email says when it is ready, and only the owner or admin who asked can download it, for 7 days. It is stored encrypted in Frankfurt (EU).
  • The delete dialog now says plainly what deleting a client ends: share links, scheduled sends, and that usage already counted stays counted. It offers the export first, and waits while one is running.
v3.106October 2026
Fix

Rank Tracker: the own site follows the client's website

When a client's website changed in its settings, the Rank Tracker kept reading positions for the old domain, so the new site's rankings showed as not found.

  • The own site now follows a change of the client's website when it was taken from the old website. An own site chosen on purpose stays, and Set-up says when it differs from the website, with a button to read positions for the website instead.
  • The old domain keeps the positions measured for it and stays listed as a previous own site, outside the ten competitors. The new domain's positions are read from the results lists already stored, at no cost.
  • A check that could not be read for a domain now shows as not checked for it, never as not found, and no change is measured against it.
v3.105October 2026
Update

Admins can export the workspace

Settings → Export your data was for the workspace owner only. Admins can now download the workspace too.

  • An admin's JSON file has the same clients, projects, reports, history and settings as the owner's, without the team member list and the email address on each Google Ads change: those are other people's personal data and stay in the owner's file.
  • Members and read-only seats still can't download the workspace, and the member list CSV under Settings → Team is now for the owner and admins only. Everyone can still download their own personal data under Settings → Export your data.
  • We record who downloads which file and when, and each person can download up to 6 files an hour.
v3.104October 2026
Fix

Ambassador commission: refunds and disputes

Ambassador commission now follows what happens to a payment after it was booked.

  • A partial refund reverses the commission in proportion to the amount refunded. A refund after payout is deducted from the next payout and shown in the portal as a refund adjustment.
  • Commission on a disputed payment is held until the dispute is decided: a lost dispute reverses it, a closed one releases it. The ambassador is emailed at each step.
  • An estimated Stripe fee is corrected to the actual fee once Stripe has it. A US dollar payment converted at an estimated rate shows that rate's date.
v3.103October 2026
Fix

Ambassador commission excludes VAT, and shows its working

Ambassador commission is booked on the payment excluding VAT, minus Stripe's actual processing fee, as the ambassador terms say. The ambassador portal shows how each payment's commission was worked out.

  • The base is what the customer paid minus the VAT on the invoice. Until now the VAT was left in that base.
  • Stripe's fee is read from the payment's own Stripe record. A payment in US dollars is converted to euros at the rate Stripe used for it, no longer one to one. Where either can't be read, an estimate is used and marked as one.
  • A new table in the portal lists each paid billing cycle with the payment excluding VAT, Stripe's fee, the rate and the commission, and whether a refund reversed it. The first-commission email says the amount is worked out excluding VAT.
v3.102October 2026
Update

The ambassador portal, brought up to date

Everything an ambassador sees was checked against the product as it is today and rewritten where it had fallen behind.

  • Ready-made posts lead with AI visibility, take every price, engine count and plan name from the product, and come with the ambassador's link filled in. A post about a feature that is switched off is not offered, and the US-dollar prices show for a US audience.
  • The brand kit shows the current logo and the site's own share cards. Banners and screenshots with the retired logo or old wording are gone until new ones are made.
  • The dashboard explains what commission is paid on, what is reversed and when payouts happen, links to single pages with the ambassador's code, shows paused subscriptions, and tells an ambassador who is also a customer how their referrals are counted.
v3.101October 2026
Update

One login for customers who are also ambassadors

A CrunchJunkie customer can now become a brand ambassador without a second account. The same login opens their workspace and the ambassador portal.

  • Approving an ambassador whose email already has an account emails that account an offer. The role is added only when the account holder signs in and accepts the ambassador terms; no new account and no password link.
  • The user menu has an "Ambassador portal" link, and the portal has a "Back to my workspace" link. An ambassador without a workspace still sees only the portal.
  • Each referral belongs to one programme, set when the referred person signs up: account credit for a customer referral, ambassador commission for an ambassador referral, never both. Referrals made before someone became an ambassador keep their account credit.
v3.100October 2026
Fix

Setup drafts category questions, branded prompts filed as Brand, empty figures explained

Fixes from a trial project's first week, each about saying what the data shows and what to do next.

  • The setup guide drafts the first prompts from the details entered (brand, web address, category, competitors and market): open questions a buyer asks before they know the name, plus at most one about the brand. A prompt that names the brand shows whether it is filed as Brand or Discovery, and one click switches it. If no draft comes back, the fields stay empty with an example and a Suggest prompts button.
  • A prompt added without a category that names the brand or one of its aliases is filed as Brand, with a note to change it if it is a general question; a category a person chose is always kept. Prompts stored before are offered for re-filing on the Overview, never moved silently. Topic figures for past periods follow a prompt's current category, so every re-file leaves a note on the timeline.
  • A competitor added as a web address is tracked under its domain, such as greatjourneysnz.com, with the domain as its website. The Brands page renames a competitor and moves its history with it.
  • Source performance says why a figure is missing, such as "No answer retrieved your site yet", instead of "collecting data", and the Overview and report KPI cards count answers, not runs.
  • A content brief that cannot be written says what unblocks it in your workspace (run a scan, tick an engine you can already run, or add a key) with a link. Connecting a key offers to add its engine to your projects and adds nothing without a click. The own-key spend card says it covers scans and CrunchJunkie AI, and the usage statement names deleted clients.
v3.99October 2026
Fix

French says vous everywhere

The French app, its emails and every French page now address you as vous. Until now most app pages said tu, while reports, the shared report and the free AI-visibility check already said vous.

  • Every French screen, email and signal, the Ask Crunch assistant, the MCP page and the sign-in page use vous and its imperatives, such as "Vérifiez" and "Réessayez", and the emails open with "Bonjour".
  • The meaning, the numbers and the terms are unchanged: French still says scan, rapport and marge d'erreur.
v3.98October 2026
Fix

Ratings say what happens to them

A thumbs up or down on an Ask Crunch answer used to say it "helps Crunch improve". It now says what happens: the rating is saved, as on content briefs.

  • A content brief's rating now also records which team member gave it, as Ask Crunch ratings already did. A new rating on the same brief replaces the last one.
v3.97October 2026
Fix

Every signal in your language

Signals were written once, in English, when they were raised, so a German, Spanish or French reader got English in the inbox, in emails and in Slack, and a corrected wording never reached a signal already raised. Every signal is now worded when it is read, from the figures it was raised on, in the reader's language.

  • The inbox, Home, alert emails, the weekly signals overview, Slack and AI drafts word every signal in their reader's language: firewall blocks, dead links, the hosting placeholder, a stopped log drain, a site not being served, broken connections, the GEO score, feed and product-schema gaps, the portfolio pattern, visibility with conversions and Meta Ads stops, beside the rank, citation and visibility signals that already were.
  • Numbers, dates and percentages follow the reader's format, and counts use the right singular or plural.
  • The MCP connector's get_signals and the REST API's signal list add text: the same words in your language (on the API, ?lang=). Webhooks keep title and detail in English and add text in the workspace's language.
  • A signal raised before this change whose figures lack something its words need keeps the English words it was raised with; nothing is guessed.
v3.96October 2026
Fix

More of the app and its emails in your language

The project header, Approvals, the content brief, Billing and four emails were in English for everyone. They now follow your language, and German, Spanish and French each use one word for each core term.

  • The AI-visibility project header and its scan dialog, the brand filter on Sources and URLs, the Approvals page, the content brief, Settings → Billing, the founder's welcome email, the alert for spend on your own AI keys, the referral email and the result email of the free AI-visibility check are now in English, German, Spanish and French.
  • One word for each idea in each language: German always says Scan, Bericht and Fehlermarge, Spanish escaneo, informe and margen de error, French scan, rapport and marge d'erreur. German is du throughout, Spanish tú, and French no longer switches between tu and vous on one screen.
  • Error messages say what did not happen and what to do next, instead of "Something went wrong".
  • No emoji in email subjects, no exclamation marks, and no claims we can't back, such as "the highest-leverage fix" or "it takes about 8 minutes".
  • The Google Ads performance report template opens in your language; English users used to get German titles. The MCP page is now fully in Spanish and French.
v3.95October 2026
Fix

One visibility figure per client, and a status that says why

A client's AI visibility is now the same number on the AI Visibility overview, in the project header, on the Overview at 30 days and on Home: one calculation over the last 30 days. Every status and every count says what it is based on.

  • The AI Visibility overview, the project header and Home now take a client's visibility from one calculation over the same 30 days and show it the same way, to one decimal. The overview shows the project that the client's Overview opens; with two projects it could show the other one. Hover the figure to see how many answers named the brand. The MCP connector, the REST metrics and Ask Crunch now pick a client's project the same way and default to the same 30 days.
  • A client's status lists its reasons on hover. A critical signal someone has acknowledged now counts as At risk, not Off track. A new status, No recent data, shows when no new scan results came in for twice the scan interval (30 days at most) or the last scan failed or was paused before its answers were counted. These clients used to read On track.
  • Counts say what they count. The sidebar badge reads "1 critical", the same number as Critical on the Signals page; Monitoring reads "2 to fix" and Approvals "3 open". Home's client table shows "1 critical" and "2 warnings", and Needs attention says it lists critical signals and warnings.
  • Where a client has no figure, the overview and Home say why: no scan yet, no scans in 30 days, or no answers in 30 days. The overview used to say "No data yet", and Home said "No scans in 30 days" even when a scan had run.
v3.94October 2026
Fix

API and MCP figures come pooled, with their answers and window

The REST API, the MCP connector and Ask Crunch now return AI-visibility figures the way the app shows them: each brand pooled over a stated window, with the answers behind it and its margin of error, so an assistant quotes the right number.

  • The MCP tool get_ai_visibility_metrics, the API's metrics endpoint and Ask Crunch read one definition. Each brand is pooled over every answer in the window (the last 30 days unless you choose dates), with the answers as n and the ± margin, and the client is shown per engine. A count of rows is no longer labelled a sample size.
  • An engine tracked both by your scans and by imported Peec AI data is counted once, as in the app. Every engine carries its current label, so an id such as grok-3 reads as the model it runs today, and every row says whether it comes from your scans or from Peec AI.
  • Sentiment (0 to 100, 50 is neutral) and average position (1 is named first) now state their scales in the API description, the MCP tools and the docs.
  • The GEO Audit score in the API and the MCP connector now says what it measures: readiness, not how often AI answers name a brand. The MCP page says that AI-visibility figures are as of the latest scan.
  • REST behaviour change for GET /ai-visibility/projects/{id}/metrics: without dates it now covers the last 30 days instead of all history; a range over 180 days is cut to its last 180 and meta.note says so; the default blended source leaves out a Peec AI row when your own scan measured that engine on that day (source=peec returns it); and a date that isn't one, or a dateFrom after dateTo, now returns 400 with the reason.
v3.93October 2026
Fix

One wording for certainty and cause

Across the app, the docs and the MCP connector, a confidence now appears only where a test computed one, a change within the margin of error reads as unchanged, and no text says what caused a change our data cannot show.

  • Signals, Automations and the alert emails state the real bar (the last 14 days against the 28 days before, at 95% confidence) instead of "significance-gated, so no noise". An empty Signals inbox now says that no change in visibility is raised while scans are paused.
  • The action plan an automation drafts lists what the signal observed and what to check, no longer a "likely cause". The content brief calls its writing signals a 2024 lab benchmark, not research-validated, and the GEO Audit and Shopping pages describe readiness: unblocking AI crawlers lets them read a site, it does not by itself earn citations.
  • The MCP connector's guided workflows and the Claude skill tell assistants to call a fall real only when Signals raised it, to quote its periods, answers and confidence, to judge a week-on-week rise by the report KPI cards' margin rule, and to give no cause the evidence does not show. get_signals and the REST API now return the periods each signal compared.
  • Tooltips no longer say a rising line means you are gaining ground or that more runs are "more accurate": they name the margin of error. The Perplexity and Meta AI settings notes no longer say every answer is grounded in search.
v3.92October 2026
Fix

Signals say what they stand on

Each signal now says what its number counts, and shows a confidence only where a test computed one. Signals that kept saying something the data no longer showed now clear themselves.

  • A counted fact, such as a broken connection or a firewall block, no longer reads "Confidence 100%". The number under a signal says what it counts: answers, pages, AI-crawler fetches, products, links or clients, not "runs". Alert emails, Slack and the API say the same.
  • A GEO Audit score drop is raised only once a second audit confirms it, and clears itself when an audit scores within 8 points of the earlier score again. It is a warning only when the fall is 15 points or more and the band drops below Good.
  • The hosting suspension page signal is raised only when the host's page answered at least 20% of the AI-crawler fetches in the last 72 hours, and at least 3 of them. A few crawlers re-fetching the old URL after the site is back are noted on the Crawl insights page, without an alert.
  • "AI visibility and AI-referred conversions both fell" now counts the conversions over the same two periods as the visibility change, in whole days through yesterday, tests the fall in conversions, and no longer says one caused the other. "Paid spend up while AI visibility fell" is retired: paid ads do not buy mentions in AI answers.
  • The visibility alert email to the workspace owner is worded from the signal it belongs to, with the same periods, answers and confidence. Two automation templates no signal could trigger, "New competitor detected" and "Product the AI never recommends", are gone, and each template says what its signal measures.
v3.91October 2026
Fix

Insights, AI → Conversions, the GEO Audit and the perception email say what the data shows

Text the product writes now states what was observed, with its window and the answers behind it, and no cause the data can't show. An Insights rationale reads "Never named: 0 of 12 answers, last 30 days (12 Sept – 11 Oct)", an action is high priority only with at least 10 answers behind it, and llms.txt is a low-priority option, as the GEO Audit has always described it.

  • AI → Conversions shows the correlation from 20 paired days, with its 95% interval, and names a strength only when that interval excludes 0. The interval allows for both series carrying over from one day to the next, so two slow trends that happen to coincide don't read as a link. Below 20 days it says how many there are and what the project's scan schedule needs to get there.
  • The GEO Audit's quotation, statistics and citation checks name their source as a 2024 lab benchmark, and the score card says what our own study of 81 sites found: no clear link between the score and AI visibility. The AI insights describe what each finding means for crawlers reading the site, not what it does to citations.
  • In the monthly perception email, a term counts as rising or fading only when it was used in at least 3 answers and the change is too large to put down to chance, tested with Fisher's exact test and corrected for the number of terms compared; each comes with its counts. Ask Crunch gets AI visibility per engine with the answers behind it; an engine without answers is no data, not 0%.
v3.90October 2026
Fix

A change that didn't save now says so

When the app can't save a change, it now says why and shows what is really saved. Until now many buttons sent the change without reading the answer. An approval left the queue as if it had been delivered, a competitor or prompt edit showed until the next reload, and "Run detection now" could say you were all clear when the check had not run.

  • This covers approvals and tasks, competitors and aliases, prompts and suggestions, tags, automations, goals and signals. It also covers the report editor (date range, cover, AI summaries, share link, schedule), the report builder and list, the AI Visibility setup steps and several settings.
  • The message gives the reason when it is known: the admin view and read-only seats can't make changes, there is no connection, you are signed out, or the server's own explanation. Where the form still holds what you typed, it says so.
  • An AI summary that could not be saved stays on screen with "Try again", since the shared link and the PDF show it only once it is saved. An approval that went through but sent nothing, because there was no recipient or the email failed, now says so.
  • When "Run detection now" finds no new signals, it says how many are still open.
  • Stop on a running scan now stops it only once the server has it stopped. If the server refuses, the scan keeps running and the scan bar says why, so a scan never carries on in the background while the screen says it stopped.
v3.89October 2026
Fix

AI summaries describe changes the way the KPI cards do

An AI summary in a report now gets each figure as the KPI card beside it shows it: a rate's change in points, the card's "~ within margin" where it says so, the answers behind the figure in both periods, and the period itself. Crunch is told to call a change inside the margin of error unchanged and not to name causes the figures don't show.

  • Counts such as Mentions, Retrievals and Citations name the answers in both periods under the figure ("Based on 1,426 runs · 2,940 in the comparison period"), in the app, on shared links and in PDFs. A count rises and falls with the number of answers collected.
  • In the Prompt table, a Δ Visibility inside the margin of error starts with "~", and a footnote says what that means. Sorted by Δ, those prompts count as unchanged, so the real moves come first.
  • In the editor, percentages and amounts in a summary that can't be found in the report's data are named, so you can check them or regenerate before you send the report. The check catches some slips, not all.
v3.88October 2026
Fix

Client digests report AI visibility every time, and goals are judged against the days gone

A client digest now shows the client's AI-search visibility in every send: the share of AI answers that named the brand over the 7 days (weekly) or 30 days (monthly) up to the day before the send, next to the same span before, with the number of answers behind each figure. Until now it showed visibility only after a 20 % drop between two scans, and otherwise told its AI summary there was no recent data.

  • A difference not clearly beyond the margin of error reads as unchanged, by the rule and in the words of the report KPI cards; a larger one is stated in points. While a visibility signal's fall (the last 14 days against the 28 before) is open, the digest states it with its periods, answers and confidence and never calls visibility unchanged. A period without answers says so instead of showing 0 %. The AI summary gets only these figures, with their dates and sample sizes, and is told not to guess at causes. Goal rows use the metric names and the currency of the report KPI cards.
  • Goals for totals (Conversions, Leads, Clicks, Impressions, Spend) are judged against the target pro-rated to the days that had passed, so 33 conversions on day 10 of a 30-day month against a target of 100 are on track instead of At risk. The Goals tab shows the pro-rated target under the bar. Rates keep the whole target.
  • A goal's direction counts everywhere: in a client digest a CPA above its target reads as worse, not as 120 % of target, and on the AI Visibility overview a target beaten in the good direction no longer counts as off target. The Goals tab, the portfolio health, the MCP get_goals tool and client digests use one rule.
v3.87October 2026
Fix

Visibility signals now compare two periods, not two scans

A visibility drop or a competitor overtake is now raised only when the last 14 days and the 28 days before both have enough answers and the change clears a 95% confidence bar. Until now a signal compared the latest scan with the one before at 80%, and every signal said "statistically significant" whatever its confidence was.

  • The bar: at least 40 answers on at least two scan days in each period. A Warning needs a fall of 15% and 3 points at 95% confidence, a Critical signal a fall of 40% at 99%. The confidence groups the answers by prompt, because answers to the same prompt move together.
  • Each signal states both periods with their sample sizes and its real confidence, in your language. Engines and prompts measured in only one period are left out and named. When an engine's model changed inside the periods, the change is checked without that engine; if it shows only with it, the signal is Info and names the engine.
  • Open visibility signals from the old rule were checked again on 11 October. Those below the new bar are resolved with the reason "below the evidence bar". Visibility signals now resolve themselves once the change no longer holds, and the owner's alert email goes once per change. The cross-channel signals use the same visibility rule; "paid spend up while visibility stayed flat" is gone, because paid ads do not buy mentions in AI answers.
  • The project header and the overview now name their period ("18% visibility · last 30 days"). Hover a client's status to see which signals put it there; acknowledged signals still count. The sidebar badge counts open critical signals, the overview tile every severity, and each says so. Recommendations no longer show a confidence.
v3.86October 2026
Fix

The setup checklist now ticks off what you've done

The "Finish setting up" card on Home and the welcome screen now check each step against your workspace. A step you have done shows a checkmark and "Done", and the card hides itself once all three are done. Until now it listed every step until the workspace had a client and a report, so a workspace with connected data and AI Visibility scans was still asked to connect data and track its AI visibility.

  • The steps, in this order: track your AI visibility (done once a project has scan results), connect your marketing data (any data source on any client, whatever the channel) and build your first report (a report in Deleted does not count). A done step keeps its link, so you can go back to it.
  • Home's report count, its recent reports and Jump back in leave out reports in Deleted.
v3.85October 2026
Fix

Clearer API key checks

Connecting an OpenAI key now tests each feature the key runs, on the endpoint and the model that feature uses: the AI Visibility scans, CrunchJunkie AI and voice transcription. The result is shown per feature, and when OpenAI refuses one, you see OpenAI's reason and where to fix it.

  • Three refusals now have their own answer: a restricted key that lacks a permission (named, for example Responses: Write), a project that may not use the model, and an organization OpenAI wants verified first. Before, all three read as an invalid key.
  • A key is saved for what works. If the scans work and CrunchJunkie AI doesn't, the scans are switched on and CrunchJunkie AI shows its reason as a warning.
  • The check uses a few tokens on your OpenAI account and never runs a web search. The help page on your own API keys now lists the settings an OpenAI key needs.
v3.84October 2026
Update

Reports: pages losing AI citations

A new AI Visibility report table, Citation lifetime, lists pages by their citation-lifetime status as of the report period's last two completed weeks: your own pages that lost AI citations, are fading or whose citations ended in the period — or, with the second preset, your tracked competitors' pages that AI answers newly cite. Each row shows the citation rate before and now as citing / eligible answers, the change in points, when the page was last cited, the weeks it was cited and a weekly trend.

  • Two presets in the report builder, in Ask Crunch and in the MCP connector's add_widget: "Pages losing AI citations" and "New competitor pages cited". You can also pick the pages (your own, your tracked competitors' or all) and the statuses.
  • The same table in the app, on a share link and in the PDF, white-label; a footnote names the weeks it read. An AI summary reads its rows with their sample sizes, and get_report_data says as of which weeks.
v3.83October 2026
Update

Citation lifetime: which of your pages keep, lose or gain AI citations

The URLs view now shows, for every cited page, where it stands in its citation lifetime over the last 26 weeks. A page's citation rate counts only the answers to the prompts, engines and markets that already cited it in the 8 weeks before, so new prompts never dilute it and the week that found a page never makes it look as if it peaked and decayed.

  • Each page gets a status (lost, fading, ended, regained, new, rising, first measured, no recent data, steady or occasional), its citation rate in the 4 weeks before and the last 2 weeks with the number of answers behind each, when it was last cited and a weekly trend. Filter by losing or gaining pages, and sort by status, change or last citation.
  • Statuses take the sample size into account: a page needs enough answers before it is called lost or fading, a drop must hold two weeks in a row, and a week without answers to its prompts reads “no recent data”, never a loss. Most pages honestly read “occasional” until there are enough answers to call a trend.
  • A click on a page opens its drill-down: the weekly rate and answers, model changes, the status per engine, the prompts that cite it, the pages cited instead, and a likely cause where the data shows one (the page returns 404, another page of your site took over, a crawler is blocked, an engine changed model, a competitor's page replaced it). Otherwise it says unknown.
  • In the MCP connector, get_cited_url gains the page's lifetime and the new list_citation_lifetimes tool lists the pages losing or gaining citations (68 tools). Ask Crunch reads a short summary of the statuses.
v3.82October 2026
Fix

Page counts: Gemini names sites, not pages

Gemini, which we read through Google's API, names the website a source came from but never the page. Each site it named was counted as a citation of that site's homepage, so homepage counts were too high: on one project, semrush.com's "homepage" was cited in 20 answers, all of them Gemini's. Gemini answers now leave every page figure, both its count and its base, and the URLs view and the report tables say so: how many answers were left out or, when every answer came from Gemini, why there is no page to list instead of "No data for this period". Wherever sources are counted by domain, they count as before.

  • Page figures are the URLs view with its split into your homepage, your other pages and third-party sites; the Cited URLs and Trending URLs report tables, in the app, on shared links and in the PDF; get_cited_url and the top pages of get_citations in the MCP connector and the REST API; a page's "Cited by AI" in the Rank Tracker; and the pages read and cited on the AI bot traffic view. Gemini chats imported from Peec AI name real pages and still count.
  • A project that tracks only Gemini, such as a Managed AI trial, now has no page figures, only domain figures. Homepage counts drop on projects that track Gemini. A content brief no longer analyses a homepage Gemini named as if it were the page the AI cited: when Gemini was a prompt's only source, the brief says why it has no cited page to learn from.
  • A page cited with a link to a quoted passage (#:~:text=…, which some engines percent-encode) now counts as the page itself instead of one row per passage, in AI visibility and in the Rank Tracker. list_ai_answers and get_ai_answer in the MCP connector mark a Gemini answer's URLs as websites (sourcesNameSitesOnly). get_cited_url and get_citations now read an answer's cited and retrieved pages the way every other figure does, so a Peec AI chat's sources count as the pages it retrieved.
v3.81October 2026
Fix

Security: passwords set while single sign-on was unavailable

When a workspace's single sign-on is unavailable because its plan lapsed, staff who have only ever used SSO can set a password through Forgot password, so nobody is locked out. That password is now temporary: once SSO works again, it is removed, sessions that signed in with it end, and the person signs in with SSO. We email them once when this happens.

  • A password someone had before is not affected. API keys and MCP connections belong to the workspace, not to a password, and keep working. When a temporary password is removed, the audit log lists the API keys that person created in the meantime, for an owner or admin to review under Settings → REST API.
  • The SSO sign-in page now answers the same for a domain without SSO and for one whose workspace plan lapsed, so it no longer shows a workspace's plan state. Settings → Security tells staff whose SSO is unavailable how to set a temporary password, instead of saying they sign in with Google.
  • Sign-up no longer creates a password account for an address on a domain whose single sign-on is active: the address gets an email with the SSO sign-in link instead, and the form answers as always. On such a domain, no link to confirm an address is sent any more. When someone first signs in with SSO, or with a Google account that proves the address, to an account whose address was never confirmed, its password and sessions are removed, so nobody can open an account for a colleague's address in advance. Its two-factor settings, API keys and other linked logins go too, unless the Google login that confirms the address is the only one linked: then they were set up by the same person, who keeps them and gets an email. While someone uses a temporary password, their email address can't be changed.
v3.80October 2026
Fix

AI Overviews: a brand Google named only by a link now counts

SerpAPI, which reads Google AI Overviews for us, sometimes returns a name Google linked without its text: only the link's address comes back. Those brands were not counted. A scan now keeps such links, marks the gap in the answer text with the link's domain in brackets, such as [example.com], and counts the link as a mention when its domain belongs to the client or to a tracked competitor.

  • Applies to Google AI Overviews, AI Mode and Microsoft Copilot from 11 October 2026, and only to a link that stands where a list item's or paragraph's name is missing. A mention counted this way counts for visibility and share of voice only, without position or sentiment; the Responses view and get_ai_answer in the MCP connector label it. It needs the brand's own domain: the client's, or a competitor domain set in the AI-visibility project's settings, never a shared platform such as facebook.com.
  • Answers stored before 11 October 2026 are left as they were and can miss a brand Google linked. A table row whose name SerpAPI dropped together with its link cannot be recovered.
v3.79October 2026
Fix

Rank Tracker budget: searches count from the moment they are sent

A correction to when a Rank Tracker search counts against the budget, and to what a search whose result never came back costs.

  • Rank Tracker budget: a search now counts from the moment it is sent, which is when DataForSEO takes the money for it. A search whose result had not come back by the end of its run (DataForSEO did not answer within six hours, the run was stopped, or its keyword or client was deleted while the run was going) was not counted, so the budget could be used past its end. While a run is going, its searches in flight are part of what it holds back.
  • Such a search stays held back after its run until DataForSEO reports what it cost. We check once a day, so the hold is brief, usually a day or two, and it is released when the search is settled. It is then charged like any other search: twice what DataForSEO charged for it. If DataForSEO never reports a cost for it (it answered without one, the search failed with an error DataForSEO does not bill, or there was no result within three days), it is not charged, and the Billing page counts it as not charged.
v3.78October 2026
Fix

The builder's preview shows the Trend column

Switching on a table's Trend column in the report builder now shows the line in the widget's preview, drawn the way the report draws it. Until now the preview loaded the trend and did not show it.

  • A Brand table with a filter loads about twice as fast on projects that track many competitors, with or without the Trend column. Its figures are unchanged.
  • MCP connector: the description of get_ai_answer now says that an answer whose cited list held only Google redirect links returns citedUrls: null next to its real retrievedUrls.
v3.77October 2026
Update

A Trend column for AI visibility tables

The Prompt, Topic, Tag, Brand and Source domains tables can show a Trend column: a small line per row with the row's Visibility (on Source domains, the domain's share) for each week of the report period, or each month for periods of 180 days or more. Each point is computed from the same answers as the row, over that week only. A week without answers leaves a gap in the line, never a 0, and a week with fewer than 30 answers shows a hollow point. The column looks the same in the app, on share links and in PDFs.

  • Switch it on in the table's settings, or ask for it through the MCP connector's add_widget or edit_widget. get_report_data returns each row's value per week (null for a week without answers) and the answers behind each one. AI summaries get the same values.
  • New reports from the built-in “AI Visibility — Monthly Deep Dive” template have it on in the source metrics by tag table.
  • In PDFs and printouts a table wider than the page is now fitted instead of cut off at the page edge: headers wrap, cells take less padding and text can shrink to 7 pt; a table still too wide continues in a second block that repeats its first column. Until now such columns were missing on paper.
v3.76October 2026
Fix

Google redirect links left out of the Responses view

Gemini answers scanned before 9 July 2026 stored their sources as Google redirect links that name no site. The Responses view and the conversation view on the Follow-up page listed those links as sources. They now leave them out and say in one line how many they left out, as the MCP connector's get_ai_answer already did.

  • When an answer's cited list holds only such links, its cited side now reads as not known: get_ai_answer returns null instead of an empty list, the conversation view no longer lists the redirect link, and content gaps, the MCP connector's prompt details and fan-out citation shares no longer count the pages the answer only retrieved as cited. This is rare: it needs a cited link the scan could not resolve next to real retrieved pages.
  • MCP connector: get_follow_up_insights with a conversationId names the links it left out per answer (groundingRedirectsLeftOut, groundingRedirectsNote).
v3.75October 2026
Fix

Google redirect links are no source; source figures under a Locale filter

Gemini answers scanned before 9 July 2026 stored their sources as Google redirect links that name no domain. Source Appearance Rate counted such an answer as one that did not show your domain, and the source tables, the MCP connector's citation tools, gap domains, content gaps and fan-out citation shares listed the redirect host as a source. A redirect link is now never a domain, a page or a citation, and an answer that holds only such links is left out of every source and citation figure, numerator and denominator. Source Appearance Rate and Citation Diversity for a period before 9 July change accordingly: both are based on fewer answers, and Citation Diversity on fewer prompts. A period whose answers all hold such links reads "—" for them, not 0. Brand mentions are unchanged.

  • Under a Locale filter, source and citation figures and the Source domains, Trending URLs and Cited URLs tables keep the answers scanned before locales were stored, read as the project's locale, as Visibility already did. Until now they left those answers out, and the Cited URLs, Owned off-site citations and Follow-up survival tables showed nothing under any Locale filter.
  • MCP connector: update_scan_settings now says that a changed scan day or hour also saves its time zone, and passing the time zone, day and hour the project already has changes nothing (changed: false).
v3.74October 2026
Fix

Scheduled scans on time after a long scan

A correction to when a scheduled scan is due.

  • A scheduled scan is now due a set time after the last scan started, no longer after it finished. A scan that finished more than an hour after its scan time used to push the next one back: during a trial a project then scanned every other day instead of daily, and a project that scans every few days waited a day longer. Since scans share capacity (3.63), a scan can finish hours after its scan time.
v3.73October 2026
Fix

Retrievals and citations read "—" for a period nothing measured

Retrievals, Retrieval Rate, Citations and Citation Rate count only answers that show what the engine retrieved and what it cited. A period without a single such answer used to read 0 on report KPI cards, in Month and Week tables, on charts, in the MCP connector and in the AI summary's data, for example every month before July 2026, when this split was first stored. It now reads "—", or null in the API and the MCP connector, as the cards on the Overview already did. Citation Rate also reads "—" in any period in which no answer retrieved your domain.

  • Gemini answers from 2 to 9 July 2026 stored their sources as Google redirect links that name no domain, so they counted as answers that neither retrieved nor cited your domain. An answer whose list names no domain is now left out of these four figures, numerator and denominator. In practice this concerns those July days: Retrieval Rate for a period that includes them rises slightly, and the number of answers behind it falls.
  • A monthly or weekly chart of these figures leaves a gap for a period nothing measured instead of drawing 0, and the AI summary's data says "no data" for a missing chart point instead of leaving an empty slot.
v3.72October 2026
Fix

Trial scans on daylight-saving days, and line breaks in text blocks

Small corrections to when scans run, to what is counted and to how text is saved.

  • During a trial a project scans daily at its scan time, at least a day after its last scan. That day was counted as 23 hours, so on the day after the clocks went forward (a 23-hour day) the scan was skipped. It is now counted in the project's local days: 23 hours across the spring change, 25 across the autumn one. Projects that scan every few days follow the same rule.
  • Rank Tracker budget: when DataForSEO charges a search again on a retry, each attempt counts in the budget period it ran in. Before, a retry after the period turned moved the whole search's cost into the new period. And a keyword you delete while its run is still going no longer holds its cost back twice until the run ends.
  • Text blocks: a line break written as a closing br tag, as some assistants write it over MCP, now stays a line break, as browsers show it. Saving the block used to drop it.
v3.71October 2026
Fix

Business Profile KPIs and charts say when a read failed; the Peec AI note on period tables

A Business Profile KPI or chart whose read failed used to drop out of the report, and a Reddit Ads video funnel said "No data for this period". Both now say "Not loaded" in the app, or "No access" when the platform refused the account; shared links and PDFs say "Data unavailable". A Business Profile KPI keeps the figures that were read, a failed comparison period means no prior data instead of a change from 0, and the average rating of a location without reviews is "—", not 0.

  • An AI-visibility Month or Week table, and a period-comparison chart, that set periods with Peec AI data only next to periods with our own scans count every figure per answer, so that each column or line keeps one unit, and now say so under the widget, naming the Peec-only periods, as charts have since 3.69.
  • The Prompt table, filtered to one market, keeps the answers stored without a market under the project's market, as the Visibility KPI does; it used to leave them out.
  • An AI assistant that changes a project's scan time through the MCP connector without naming a time zone now saves it in the project's time zone, or the workspace's when the project has none, as the settings page does; for a project without a time zone it used to save UTC.
v3.70October 2026
Fix

GEO Audit: a block on your articles no longer reads as reachable

The live check of whether AI crawlers can fetch your site now counts the content page it probes, not only the homepage.

  • The GEO Audit fetches your homepage and one content page from your sitemap with each AI crawler's user-agent. Until now only the homepage counted in the score, so a site whose articles refuse ChatGPT-User while its homepage lets it in passed the check. A confirmed block on the content page now fails it with the same weight as one on the homepage, and the finding says what each page did, for example “Homepage reachable for every probed crawler; /blog/x blocked for ChatGPT-User”. A site blocked only on its articles sees its GEO score drop by up to about 6 points on the next audit.
  • Cloudflare is named as the likely cause only when that page's own responses carry Cloudflare's markers and the blocks match its default since 15 September 2026, which blocks agent and training crawlers only on pages that show ads. Otherwise the audit and the Firewall & access policy table speak of a firewall or CDN without naming a vendor.
  • The free GEO audit on our website runs the same two-page probe. It reuses the audit's own fetch of the content page as the baseline, so the probe adds one round of requests, and it is skipped when an audit has already used most of its time.
v3.69October 2026
Fix

Channel tables say when a read failed; Topic and Tag tables count like the KPI

A Meta Ads, Microsoft Ads, Amazon Ads, Reddit Ads, ChatGPT Ads, Piwik PRO, Mailchimp, Business Profile or Search Console table whose read failed no longer says "No data for this period", which reads like a quiet period. In the app it says "Not loaded", or "No access" when the platform refused the account; shared links and PDFs say "Data unavailable". Donut charts of those channels do the same, and a Business Profile table by surface, device or action no longer shows zeros after a failed read.

  • The Topic and Tag tables call their rate Visibility (it was "Mention rate") and count it like the Visibility KPI with the same filters. On a project with Peec AI data and our own scans, an engine both track now counts once on a day both measured it, so these tables' Visibility and Runs can change there, and Runs go down. An AI summary written over a table whose column was renamed is no longer marked as out of date for the rename alone.
  • A chart whose range has months with Peec AI data only next to months with our own scans counts every point per answer, so that the line keeps one unit, and now says so under the chart, naming the Peec-only months. AI summaries read every chart series, and a per-chat rate, with its unit, so 0.37 per chat is never described as 37 %.
  • Scheduled AI visibility scans set for an hour that daylight saving skips (midnight in Chile, Cuba, Lebanon or Egypt, or 02:00 in Europe) now run right after the clocks jump instead of being missed that day, and an hour that happens twice when the clocks go back scans only once.
  • Saving any project setting no longer moves the scan time into your browser's time zone: the schedule is shown and kept in the project's own time zone (your workspace's for a newly chosen time), and it only changes when you change the day or hour.
v3.68October 2026
Fix

Report lists without deleted reports, and clearer money and error wording

Corrections to what assistants, the API, emails and reports say when a report is deleted, a price is shown in German, Google refuses access or a figure has nothing to stand on.

  • The connector's list_reports, Ask Crunch and the REST API's GET /reports no longer list reports that are in Deleted. Pass includeDeleted to list them too, each marked deleted: true or false.
  • In German, Spanish and French every price puts the currency sign after the amount, plan cards included: “149 €” beside “149 US-$”, where the euro card used to say “€149”. A German invoice receipt in dollars now reads “12,50 US-$” instead of “12,50 $”.
  • Google Analytics: a KPI on a property Google refused says “No access”, as that property's tables and charts do, and AI → Conversions asks you to reconnect instead of saying Google may be busy. A chart series that could not be loaded reaches the AI summary as not loaded, so the summary describes no trend for it.
  • Google Ads ROAS shows “—” when there was neither a conversion value nor a conversion, whether Google left the value out or sent 0. A value of 0 next to conversions is still a real 0.00×.
  • Rank Tracker budget: searches of a keyword or client you delete during the period keep counting against the budget. They were paid for, so the budget now shows what is really left.
v3.67October 2026
Fix

Security: 2FA codes, recovery codes and lapsed plans

A wrong two-factor code now counts towards the sign-in lockout exactly like a wrong password: at sign-in, when you change your password and when you turn 2FA off. A recovery code is used up once, even when two sign-ins send it at the same moment.

  • A workspace without an active Pro, Agency or Scale plan can still list, switch off and delete its webhook endpoints, and switch off, remove the domains of and delete its SSO connection. Creating, testing and configuring still need the plan.
  • Single sign-on pauses without an active Pro, Agency or Scale plan: your team signs in with a password or Google instead, and anyone who has only ever used SSO can set a password through Forgot password.
  • Slack and webhook actions in Automations are checked against the plan each time a rule fires. When the plan no longer includes them they are skipped, and the run log says why.
v3.66October 2026
Fix

One rule for “~”, and tables cut only after they are sorted

A change in AI visibility now reads the same everywhere, and every metric table holds the top rows by the metric it is sorted on.

  • AI visibility: a change counts as a gain or a loss only when it is at least twice its margin of error, the rule the KPI cards and Home already used. The Overview's competitor table counted any change beyond one plain margin, so it showed a gain or a loss in about 8 % of the cases where Home said “~”. That table, Biggest movers, the change chips of a report's Brand table and the report tables by tag (Brand × Tag, Tag × Month, Brand × Month and Tag) now use the same rule and the same margin, print a smaller change grey with “~” in front, and explain it in the same words.
  • Google Ads tables now have a Sort setting, and the row limit cuts after the order, never before. Until now the query kept the campaigns and ad groups with the most clicks, the search terms with the most impressions and the asset groups with the most conversions, and only then showed them, so a 10-row table sorted by cost could miss the campaign that cost the most. Without a Sort a table keeps its order (campaigns by clicks, and so on). Sorted lowest first, rows with nothing to measure (no impressions, or no conversions behind a cost per conversion) are left out. Placements follow the widget's row limit instead of a fixed 50, conversion actions follow it when the widget has one, and a row's comparison value is now its own: some tables used the previous period's row in the same position, or the first row with the same name.
  • LinkedIn Ads, Piwik PRO, Matomo and Merchant Center tables now have a Sort setting too, applied before the row limit. Piwik PRO and Matomo tables also no longer keep only the rows with the most sessions or visits before ordering by their first metric, and Matomo goal tables read every goal, not only the first ones. A sort saved before these sources offered one is not used until it is picked again, a table without a Sort keeps its order (LinkedIn's own, product count for Merchant Center), and a LinkedIn table without a row limit still shows every row.
v3.65October 2026
Fix

The GEO Audit says what its agent check measures

Agent readiness checks whether AI agents can reach a site, read it without JavaScript and parse its data: the preconditions, not a test that an agent can complete a task. Its top band is now called “Preconditions met”, and a clean audit now says only that every check in the GEO score passed.

  • GEO fix suggestions and AI insights no longer say Google ignores JavaScript. Google renders pages in a headless browser, later and in a queue; OpenAI's, Anthropic's and Perplexity's crawlers are not documented to render it, so the advice to server-render stays.
v3.64October 2026
Fix

Webhooks keep flowing, and a stuck Google Analytics request gives up cleanly

Two fixes for things that could hold up work that had nothing to do with them.

  • Webhooks: events still queued for an endpoint that was then disabled (by you, or automatically after repeated failures) are now closed as skipped, and are not resent when the endpoint is re-enabled. Until now they stayed in the queue and could delay deliveries to other endpoints.
  • Google Analytics: a request that gets no answer now gives up after 30 seconds and its widget says “Not loaded”, instead of waiting until the whole report timed out and holding up the property's other widgets. A request that had to wait its turn still gets its retries when the property is busy.
v3.63October 2026
Update

Scheduled scans for many clients at once

Scans that run without an open tab are now worked through side by side: the background scanner runs every 5 minutes instead of every 10 and takes checks from many scans at once, with workspaces taking turns, so one workspace's large batch no longer holds up another's scan.

  • Within a workspace, a scan someone started (in the app, through an assistant or by an automation) goes ahead of scheduled ones, and scheduled scans run oldest first, so results arrive client by client instead of all at the end.
  • A new project gets a scan slot of its own: a weekday and a night hour in your workspace's time zone, spread so that projects don't all scan in the same hour. Projects that already exist keep their schedule; you can change any slot in the project's settings.
  • What a scan measures is unchanged: the same checks and limits, the same Managed AI budget and spend cap, the same retries.
v3.62October 2026
Fix

Missing figures show “—”, and a source that fails to load says so

A rate without a basis now shows “—” instead of 0: a cost per conversion with no conversions, a ROAS where the ad platform sent no conversion value, a CTR without impressions, a bounce rate without visits. And when a source does not answer (Google Analytics busy or down, Matomo's goals, Merchant Center's performance report, Brevo's revenue attribution), the widget says it could not be loaded instead of showing 0.

  • Google Analytics: a busy property is asked again a couple of times before we give up, a report sends at most six requests at once per property, and a widget that still could not be read says “Not loaded” in the app and “Data unavailable” on share links and in the PDF. The AI summary and the MCP connector treat it as missing, not zero.
  • Charts leave a gap where a point has no value, in the app as on share links and in the PDF, instead of drawing it at 0. Tables show “—” in the affected columns, and the rest of the row stays.
v3.61October 2026
Fix

REST API, webhooks and SSO need an active plan

The REST API, webhooks and single sign-on now need an active Pro, Agency or Scale subscription in the workspace, as the app does: active, in its trial, or in the grace period after a failed payment. Until now a canceled plan kept them, API access included.

  • Where the subscription has ended or is paused, API keys get the same 403 plan_not_allowed answer as before, webhook and SSO settings can't be changed, and webhook events are not sent: each one is logged as skipped and is not resent later. Nothing is deleted, and the API and webhooks work again once the plan is reactivated.
v3.60October 2026
Update

The MCP connector on every paid plan

Claude, ChatGPT and other assistants can now connect on every paid plan, Solo and Starter included. Until now the connector needed Pro, Agency or Scale.

  • The connector needs an active subscription in the workspace: active, in its trial, or in the grace period after a failed payment. Where the subscription has ended, the connector says so, and you can still list your other workspaces and switch to one.
  • The REST API, webhooks and single sign-on stay on Pro, Agency and Scale. The developer page, the docs and the comparison pages now say which plan includes what.
v3.59October 2026
Update

New report template: AI Visibility — Monthly Deep Dive

A built-in template in every workspace's Templates gallery lays out a month of AI visibility the way an agency's Peec AI monthly report does. It works on Peec AI projects and on our own scans.

  • Seven sections in this order: an executive summary; key figures (Visibility, Share of Voice, Sentiment, Avg. Position and Mentions, then Retrievals, Retrieval Rate, Citations, Citation Rate and Source Appearance Rate), each against the previous month; the Prompt table sorted by the change in visibility; the Brand × Tag heat map with a Total column; source metrics per tag with change columns and a Total row; a six-month trend; and the top Source domains and Trending URLs.
  • The template names no tags. The tag tables take the tags on the most prompts, up to eight, and each of their cards in the editor says you can pick and order them yourself. On a client whose prompts have no tags yet, those tables say so instead of showing an empty period.
  • The trend section uses a new date range, Last 6 full months: the six whole calendar months up to last month, so its first and last points are never part-months. It is offered for every widget and report, and Ask Crunch and the MCP connector accept it as last_6_months.
  • Opening a template from the Templates gallery now selects that template's own data source, so the new report is saved as an AI Visibility, GA4, LinkedIn or other report, not as Google Ads. The Microsoft Ads and SEO cards now open the Microsoft Ads and Search Console templates.
v3.58October 2026
Update

AI Visibility reports: Source domains, Trending URLs and a fuller Prompt table

Two new AI Visibility tables and a richer Prompt table bring the sources and prompts sections of a Peec AI monthly report into the report builder. Each follows the widget's filters, Tag included, and reads the same in the app, on a shared link and in the PDF.

  • Source domains ranks domains by their share of chats: the answers that used at least one page of the domain, divided by all answers in the widget's filters. Each row shows that share, its change in points when the report compares periods, Retrievals (on Peec AI data) or Appearances, Citations and a category. Your domain is highlighted, and a footnote gives its rank when it falls outside the table.
  • The category is Peec AI's own classification of the domain (Editorial, UGC, Corporate, Institutional, Reference and others), read by the Peec sync. Your domains and your tracked competitors' domains always read Own and Competitor. On our own scans a fixed list of review, social, reference and news sites is used and marked as ours; other domains stay blank.
  • Trending URLs takes the period's most-used pages (top 20 by default) and shows the ten whose retrievals rose most: previous and current count, the change, the change in percent or "new", the page title from Peec AI and the page type. A footnote names the previous period and says so when it covered fewer prompts.
  • The Prompt table adds each prompt's tags, the day it was first tracked (its first stored answer, which for Peec AI imports is truer than the import date) and the change in visibility in points, and it can be sorted by prompt, visibility or change (a table saved before keeps its weakest-first order). Its Mention rate column is now called Visibility and counts like the Visibility KPI: on a project with both Peec AI data and our own scans, an engine both track was counted twice on a day both measured it and now counts once, so a saved Prompt table's Visibility and Runs can change there, and Runs go down.
  • Ask Crunch and the MCP connector can add and configure the new tables, get_citations gives each domain its share of chats and category, and get_cited_url gives the page title, type and category.
v3.57October 2026
Update

AI Visibility reports: tag pivots — a Brand × Tag heat map, tables by month and a richer Tag table

Agencies that report AI visibility one product or theme at a time can now build that report from prompt tags, on our own scans and on Peec AI data alike. Every new table pools answers the way the KPI cards do and shows how many answers each figure rests on.

  • Brand × Tag puts your client and its tracked competitors against the tags you choose, in your order, with the change against the previous period under each value, the answers behind every column, an optional Total column for the widget's own filters, and optional heat shading with a legend.
  • Tag × Month and Brand × Month show Visibility per calendar month of the report's range, then the change against the previous month and against the first; a month without answers reads "—", never 0.
  • The Tag table can show Visibility, Retrievals, Retrieval Rate, Citations and Citation Rate per tag, each row equal to the KPI card filtered to that tag, with an optional change column per metric, a Total row, and your own tags in your own order.
  • On Peec AI data, a column with one tag reads Peec AI's own per-tag figures; a column that combines two tags is recomputed from the imported chats, and the widget says so. The tables work in the app, in shared reports, in PDFs, through Ask Crunch and in the MCP connector, and a report template keeps its tags and Tag filters by name, dropping, and naming in the editor, any a client's prompts don't use.
v3.56October 2026
Fix

Peec AI projects: Retrieval Rate and Citation Rate follow Peec's definitions

From 8 October 2026, Retrieval Rate and Citation Rate on a project with Peec AI data can change. A Peec chat that cited nothing used to drop out of Citation Rate's denominator, which pushed the rate up, and a chat without sources dropped out of Retrieval Rate's. Both now count as zero, for chats already imported too, and a view that holds only Peec AI data uses Peec's own definitions, so the figures match Peec's dashboard.

  • Retrievals counts your pages retrieved across all chats, and Retrieval Rate divides them by every chat (pages per chat, such as 0.37, not a percentage). Citation Rate divides your pages cited in the chats that retrieved your domain by the number of those chats. Peec's "Used as source" is the Source Appearance Rate.
  • Citations counts your pages cited. Peec counts a page each time an answer cites it; the import keeps which pages a chat cited, not how often, so Peec's Citations and Citation Rate can still be higher than ours.
  • The Cited Sources and Cited URLs tables no longer call retrieved pages citations. Their first count is Retrievals on Peec AI data and Appearances (pages retrieved or cited) on our own scans, with a Citations column beside it, in the app, in shared reports, in PDFs and in the MCP connector. The owned off-site citations and the "Cited in AI, not (yet) winning in Google" list no longer count the retrieved pages of a Peec chat that cited nothing.
  • Our own scans keep their definitions. A view that mixes them with Peec AI data counts answers that retrieved or cited your domain, with rates in percent, the same rule Share of Voice follows.
  • A period whose Peec chats retrieved pages but did not cite a single one captured no citations (chats imported before 2 July 2026), so its Citations and Citation Rate show "—", never 0; a Citations cell shows "—" wherever no answer reports its citations. The Sources and URLs views use the same labels, and a line chart gives the per-chat rates their own axis next to percentages.
v3.55October 2026
Update

Assistants can work in any of your workspaces

If your account belongs to more than one workspace, such as your agency's and the client workspaces you were invited into, you now choose which one your connected AI assistants work in: ask the assistant to switch, or pick it under Settings → Connect AI assistants.

  • Two new MCP tools, 67 in all: list_workspaces shows your workspaces with your role, plan and switches, and switch_workspace moves the connector to another of them. Switching changes no data, but like any change it is shown as a preview first and happens only after you confirm.
  • Until you choose, the connector always works in the workspace you joined first. Your role and that workspace's own switches for write actions and AI spend apply there, and every action's preview and result name the workspace it concerns.
  • If you are removed from the workspace you chose, the connector goes back to your first workspace on its next call and says so.
v3.54October 2026
Update

Assistants and Ask Crunch can rewrite text blocks

An assistant connected over MCP can now replace the text of a report's text block, and Ask Crunch rewrites one when you ask.

  • edit_widget takes a text block's new text as it is, without AI, shows its start and its length before you confirm, and keeps the block's title, width and Hide title setting. Scripts, event handlers, unsafe links, embedded frames and styling other than text alignment are removed before it is saved, and the previous text comes back so the change can be undone.
  • Text blocks are cleaned the same strict way wherever they are saved, the builder included.
  • A request that isn't about report data, such as changing a text block, is no longer filed as a missing widget, and Crunch no longer says we are adding it. It says what it can't do and where to make the change instead.
v3.53October 2026
Update

Assistants can work with goals, approvals, share links and sends

The MCP connector now reaches goals, automations, the Approvals queue, the Insights actions, and sharing or sending a report: nine new tools, 65 in all.

  • Read each client's goals with their progress, your automations, the drafts waiting for approval and the Insights page's prioritised actions.
  • Approve or dismiss one drafted action, resolve or snooze a signal, and create, change or remove a goal, each shown as a preview first.
  • Create, change or revoke a report's share link, or e-mail a report once to up to 10 addresses. The preview names every recipient and what becomes public, a password is never shown back, and assistants can send up to 20 reports a day.
v3.52October 2026
Fix

API and tool calls no longer count as user requests

AI Bot Traffic counts requests to API and tool-call paths, such as an MCP connector, on their own line instead of as people asking about your site.

  • User requests and Top crawled pages leave out /api/ and /mcp paths and the MCP sign-in lookups under /.well-known/; the count and busiest paths show separately, in the API and the MCP crawl tool too. The GEO Audit also words its author-markup finding more carefully, and the docs say to review drafted fixes before shipping.
v3.51October 2026
Update

Weekly and daily emails arrive in your morning

The Monday signals digest, client digests, the monthly AI-perception email and visibility alerts now go out at a set hour in the workspace's time zone instead of on UTC.

  • The Monday digest arrives Monday at 08:00 workspace time, client digests and the perception email at 09:00 and visibility alerts at 10:00, daylight saving included. What the emails say is unchanged, and each goes out once per period. Workspaces without a valid time zone keep the old UTC times.
v3.50October 2026
Update

Sort works on more tables

Tables from Google Analytics, Meta Ads, Microsoft Ads, Amazon Ads, Reddit Ads and ChatGPT Ads can be sorted by any metric, and rank movements are coloured.

  • Sort any breakdown table by a metric, highest or lowest first, before the row limit; a Rank Tracking change like ▲ 3 now shows green or red.
v3.49October 2026
Update

Change your password in Settings

Signed in, you can now change your password without the reset email.

  • Change your password under Settings → Security; other devices are signed out.
v3.48October 2026
Update

Provider prices checked weekly

The prices behind the own-key cost estimate are now checked against the providers every week.

  • Provider prices behind the own-key cost estimate are now checked weekly; the statement shows when they were last checked.
v3.47October 2026
Fix

Usage statement

Your usage statement now keeps one unit per column.

  • The usage statement counts own-key usage in scans and hides Managed AI columns for workspaces that don't use it.
v3.46October 2026
Fix

Grok answers keep their sources

Grok answers now store the sources they cite.

  • Grok answers before 7 October 2026 show none.
v3.45October 2026
Fix

Signing in again after a password change

Other devices are sent to the sign-in page instead of showing an empty app.

  • The sign-in page says why: your password was changed or your session ended.
v3.44October 2026
Fix

AI summaries write money in your account's currency

AI summaries and Ask Crunch were never told which currency a figure was in, so one answer could show an amount with a pound sign and the next with a dollar sign.

  • The AI now receives the currency with every money figure and is told to use only that one. A figure with no known currency is written without a symbol, and a blend of channels billed in different currencies says so.
v3.43October 2026
Fix

AI summaries and Ask Crunch run on current models

AI summaries and Ask Crunch now use current models: on an OpenAI key GPT-5.6 Terra instead of GPT-4o mini, with Managed AI or an Anthropic key Claude Sonnet 5.5 instead of Sonnet 4.6, and on a Gemini key Gemini 3.6 Flash instead of 3.5 Flash. A report's executive summary written on an OpenAI key had come out as two short sentences; the newer models write the full summary the report asks for.

  • The newer models think before they write. We keep that thinking short and give it room of its own, so it never takes space from the summary.
  • Settings → AI & API Keys shows, on each key, the model it now runs for the assistant.
  • On your own OpenAI key, a report summary now costs about 1–3 US cents of OpenAI usage (GPT-5.6 Terra: $2 per million input tokens, $12 per million output tokens).
v3.42October 2026
Fix

Claude and Gemini answers are no longer cut off

Scans set a limit on how long an engine's answer may be, and for Claude and Gemini it was too low. Claude answers were limited to 1,024 tokens, so most stopped before the end, rarely past 2,700 characters, and some came back empty after the web search. Gemini 3.6 Flash spends part of the same limit thinking before it writes, so many of its answers ended after a few hundred characters. A brand named after the cut, or in an answer that never arrived, was counted as not mentioned, so Claude and Gemini visibility read low.

  • Answers now have room to finish: 8,192 tokens for Claude and for Gemini, which now thinks at its low setting, and 8,000 for ChatGPT and Grok (both 3,000 before). Meta AI keeps its 8,000. A limit is only a ceiling, so a short answer costs what it did. Complete answers are longer: on your own keys Claude and Gemini use more tokens per check, and on Managed AI a check costs you what it did.
  • An answer from ChatGPT, Gemini, Claude, Grok, Perplexity, DeepSeek or Meta AI that arrives empty, or that the engine reports as stopped at a limit, is no longer stored. It counts neither as a mention nor as a miss: the check fails with the reason and does not count against a Managed AI allowance, though on your own keys the provider still bills the call it answered. A later pass of the scan may ask again; an engine that keeps answering like this is stopped for the rest of the scan, with the reason in the scan bar. An answer the engine declined to give is still stored as its answer; one its safety filter cut off partway is not. Google AI Overviews, AI Mode and Microsoft Copilot are unchanged: an empty result there means no AI answer was shown. Sample sizes (n) count only answers that arrived whole, and the free AI-visibility check follows the same rule.
  • Brand names are now read from up to 40,960 characters of an answer, up from 12,000, so a brand named late in a long answer counts. ChatGPT's longest answers already ran past 12,000 characters, so ChatGPT figures can rise a little as well.
  • Expect Claude and Gemini visibility to step up from a project's first scan after this change. That is the measurement catching up, not a change in your visibility, and Claude and Gemini figures from before and after it are not directly comparable. A project with Claude or Gemini answers from before the change gets a note on its Timeline when its first complete answer is stored, dated that day, and drop and overtake alerts, signals and client digests leave Claude or Gemini out of any comparison that spans it. Answers stored earlier are left as they are.
  • Grok's limit was raised too. Some Grok answers stop after their opening lines, and we are checking why before saying more.
  • In the MCP connector, get_ai_answer now says why the engine stopped writing (stopReason) and whether that was a normal end.
v3.41October 2026
Fix

Disconnecting a data source deletes its stored token

Disconnecting a data source now also deletes its stored access token when nothing else uses it. Until now the figures imported through it were deleted, but the token stayed behind.

  • One sign-in can serve several data sources, for example every Google Ads account added with the same Google login. The token stays while any of them is connected and goes with the last one. Deleting a client or your account works the same way.
  • A token another feature still reads also stays: Merchant Center while your AI Shopping catalogue imports through it.
  • Reddit Ads tokens are revoked at Reddit as well. Google and Meta tokens are deleted here but not revoked there: revoking one ends every connection the same person made with that login, here and in other workspaces. To withdraw the access at Google or Meta too, remove CrunchJunkie in that account's settings. For the same reason, disconnecting Merchant Center on the Shopping tab no longer revokes at Google.
v3.40October 2026
Fix

Disconnecting Peec AI deletes what it imported

Disconnecting Peec AI used to leave the imported answers, figures and prompts in the client's AI Visibility project, although the data-deletion page says data imported through a source goes with it. Now a disconnect deletes everything imported from Peec for that client.

  • Deleted with the stored key: the answers with their sources, Peec's daily and per-tag figures, the fan-out searches and the prompts imported from Peec. A prompt that CrunchJunkie's own scans also ran, or that a content brief was made from, stays and only loses its link to Peec; the brief loses its quotes from Peec answers.
  • Perception analyses and brand suggestions built from those answers are cleared the moment you disconnect, and open signals computed from Peec's data are resolved.
  • Nothing more is imported from the moment you disconnect, not even by a sync already running. Most imports are deleted at once; a very large one takes a few minutes, during which the source shows as Removing under Data sources and every report, shared link and the MCP connector show the client's own scans only.
  • Pressing Connect twice no longer creates a second Peec connection for the same client, and a disconnect removes every Peec connection the client has.
v3.39October 2026
Update

What happens to a workspace after its subscription ends

Our data processing agreement says a workspace's data is deleted after its subscription ends. That now happens, and never without an email first.

  • 30 days after a subscription ends, we email the workspace owner the date the workspace will be deleted, 7 days later. Choosing a plan before then keeps everything, and Settings → Export your data downloads a copy.
  • Paused workspaces keep their data for up to 12 months. After that the owner gets the same email, with 30 days' notice. Resuming at any point keeps everything.
  • Logins that belong to no other workspace are deleted with the workspace. Invoices are kept for as long as German law requires.
v3.38October 2026
Fix

DeepSeek's URLs: from model memory, not a search

Since 10 September 2026, DeepSeek's model ignores the web search tool our scans send, yet its answers still contain URLs. Those URLs were counted as cited sources. They are now labelled "from model memory, not a search" and left out of every citation and source figure, back to 10 September. DeepSeek's brand mentions still count.

  • Left out of the numerator and the denominator alike: Citation Rate, Retrievals, Citations, Source Appearances, Citation Diversity, top cited domains, the Sources, URLs and Gap views, content gaps, fan-out citation shares, shopping sources, perception's attribute sources, the citation-gap actions, crawl-to-citation figures and source health. Wherever one of these figures is shown, a note says how many answers it left out. New content briefs no longer use those URLs as evidence.
  • On the Responses view these answers carry a "URLs from memory" tag instead of "Web search", and their URLs sit under that label. In reports, shared links and PDFs, a source or citation widget that left answers out says so in a line under it, charts included, and AI summaries are told the same.
  • In the API and the MCP connector, get_ai_answer and list_ai_answers return those URLs as urlsFromMemory, never as cited or retrieved; get_citations, get_cited_url and the REST citations endpoint leave those answers out and count them in answersFromMemoryExcluded.
  • The Retrieval & citations report table now computes Citation Rate the way the KPI card does: retrieved and then cited, divided by retrieved, over answers that show both lists. It used to divide citations by retrievals, which could go above 100 %.
v3.37October 2026
Update

Fan-outs: more of each engine's searches, and an honest count of the rest

The Fan-outs page reads every search an engine lists, records when an engine answered without searching, and stops counting your own words and names as an engine's intent.

  • ChatGPT, Grok and Meta AI: every search in a web-search step is read from the list the API now returns, with the older single-search field as the fallback. Perplexity's searches are read for the first time, from the queries its Agent API returns with each set of results.
  • Claude: when a scan falls back to the separate search service, the searches Claude wrote for it are kept too.
  • Each answer now records whether the engine ran no web search, as distinct from an answer that came back without a search list. The page and the MCP tool count both, so a missing list is never read as no search.
  • Words the engines added are compared with the prompt as the engine received it, including the market and language instruction, and with that market and language as the engines write them. Your brand, your competitors and the engines' own names no longer show up as added words. Your own brand is recognised in any capitalisation; a competitor's name of up to four letters only exactly as you entered it, so a competitor called "Box" does not hide the word "box". The brands panel still counts a competitor's name in any capitalisation and marks the lower-case ones.
v3.36October 2026
Fix

A report in Deleted no longer opens through its share link

Moving a report to Deleted used to leave its share links working, so a client could keep opening a report you had deleted. Now a report in Deleted no longer opens through its share link; restoring it brings the link back.

  • Whoever opens the link sees “This link is not available”, the same as for a link you removed. The report's figures and its PDF can't be fetched through the link either, and the browser tab and the link preview no longer name the client or your agency.
  • Restoring the report from Deleted brings every link back as it was, with its password and settings, so there is nothing to send again.
  • When you delete a report, the confirmation now says that its shared links stop working until you restore it, and Public dashboards in Settings no longer lists a report that is in Deleted.
v3.35October 2026
Fix

Dollar prices: “$” in the US, “US$” where a local dollar exists

Prices in US dollars showed “US$” to everyone on the pricing page, and a bare “$” in billing, in onboarding and on the Managed AI meter, which in New Zealand, Canada or Australia reads as the local dollar. A dollar price now carries a plain “$” only where the US dollar is the local currency.

  • In English a visitor in the US sees “$165”, and a visitor in New Zealand, Canada, Australia or anywhere else sees “US$165”, as do emails, where the country is not known. German, Spanish and French put the sign after the amount: “165 US-$”, “165 US$” and “165 $US”, or “165 $” in the US. Prices in euros are unchanged.
  • The country is the one CrunchJunkie already reads from your connection to choose between euros and dollars. On the pricing pages it travels in the existing currency cookie, cj_currency, which now also holds the country while prices are in dollars (for example USD:NZ). The cookie table in the privacy policy says so. No new cookie, no tracking.
  • This covers the pricing pages and the cost calculator, billing (plan, packages, invoices, changing plan, the paused screen, the Managed AI meter and banner), onboarding, the package offer page and the usage statement.
  • The Rank Tracker's costs follow the same rule: the estimate before a run, the cost of each rank check, and the DataForSEO balance in the Signal that warns when it runs low.
v3.34October 2026
Update

Query fan-outs: Peec AI's recorded searches, as a separate source

For a client imported from Peec AI, the Query fanouts page and the MCP connector now also show the sub-queries Peec recorded in its own chats: mostly in the engines' apps, logged out, and for some engines through the model's API. They are labelled as Peec's and never added to our own.

  • A switch on the page, Our capture / Peec, appears for Peec-imported clients. The Peec view separates web searches from Peec's shopping lookups, lists the products Peec recorded, counts Peec chats rather than answers, and marks the engines Peec ran through an API.
  • Imported in the background every hour, apart from Sync and the daily refresh: the first import reads the last 90 days, each later one continues from the last whole day read in full and re-reads the three days before it. A large history takes a few hours, and the page says while it is catching up. Rows older than 400 days are deleted every day, and disconnecting Peec deletes all of them at once. CrunchJunkie reads only what the client's own Peec project holds, with the client's key, and scrapes nothing itself.
  • Never pooled: our fan-out counts, signals, Search Console column and Content Briefs read only our own capture. In MCP, get_query_fanouts takes fanoutSource "peec" (default "native"), peecQueryKind search or shopping, and limit.
  • The Peec connection is now watched like every other connector: each Peec response is checked for deprecation notices, and Peec's API specification is compared every day for changes to the calls we make.
v3.33October 2026
Fix

Google Ads: an account you can no longer read says so

When the connected Google user lost access to an ad account, for example after being taken off the manager account, that account's widgets came back empty and its KPI tiles read 0, which looked like a quiet month. They now say the figures are missing.

  • In a report in the app such a widget reads “No access”, with the account and Google's error code, or “Not loaded” when Google refused the request for another reason; the builder preview names the account. After the next daily check the report shows a banner, and the client's Google Ads source on Clients reads “No access” instead of Connected. The banner and the label are for your team only.
  • On shared links, in present mode and in the PDFs CrunchJunkie renders, the widget reads “Data unavailable” and says the data is missing, not zero, without naming the account or the reason. If that PDF render fails and the report page falls back to your browser's print, the PDF shows your team's wording instead. An “All channels” widget that had to leave an account out says so underneath: by name for your team, as a count for clients.
  • AI summaries leave such a widget out and note only how many accounts had no data for the period, never why. A summary written while an account could not be read counts as out of date once its figures can be read again, so a scheduled email writes it again.
  • For each Google Ads account, CrunchJunkie now searches once for a manager account that can read it and keeps the one that answered, instead of trying every manager account again on each request. Once access is granted again, the figures can take up to 10 minutes to come back, and the banner clears after the next daily check.
  • For developers: in GET /api/v1/reports/{id}/data such a widget is null, and meta.unavailable gives the reason (no_access or error) and Google's code. The MCP tool get_report_data returns the same under _meta.unavailable.
v3.32October 2026
Fix

KPI tiles show a change from 0, and “No prior data” only when there is none

A KPI tile could not show a change from a previous value of 0: lost impression share going from 0 % to 12 %, or conversions from 0 to 5, showed no change on the tile while the table below showed it. The report data now tells a real 0 apart from a missing comparison, and tiles follow the same rule as tables.

  • From a real 0, a rate changes in points (+12.0 pts), and the Absolute and Both formats show the absolute change (+5). There is no percentage change from 0, so none is shown, as in tables.
  • “No prior data” means there is nothing to compare with: no comparison period, a comparison period the source could not be read for, no earlier scan, audit or rank check, or a figure that only exists as it stands today. Merchant Center catalog counts, the Business Profile review total and rating, and Facebook and Instagram follower totals no longer compare today's number with itself, and a GEO score compares with the previous audit only when the report has a comparison period.
  • A widget set to compare with nothing shows neither a change nor “No prior data”. When a source cannot be read for the current period, its figures show “—” instead of 0, with no change, and a widget none of whose figures could be read says the data could not be loaded. An “All channels” widget leaves that account out of its KPIs and its chart and names it for your team (clients see how many accounts were left out), and a goal shows “—” instead of adding 0 for it.
  • The same in the app, on shared links, in PDFs and in the builder preview. AI summaries are told that there is no prior data instead of reading a 0, and summaries written before this change are not marked as outdated because of it.
  • For developers: in GET /api/v1/reports/{id}/data and the MCP tool get_report_data, a KPI's prev is null when there is nothing to compare with (no comparison period, no earlier data, a comparison period that could not be read, or a figure that only exists as it stands today) and a number, 0 included, when the comparison period was measured. Every KPI widget carries prevNull: true. A blended prev is null when a channel that counts now has no previous value. A KPI's value is null when there is no figure: the read failed, or the value cannot be computed (for example cost per conversion with 0 conversions).
v3.31October 2026
Update

Query fan-outs: Search Console in two tiers, brands and recurring words in the searches

The Query fan-outs page now says how its searches were made, matches more of them to your Search Console honestly, says so when Search Console could not be read, and shows which brands and word sequences the engines keep searching for.

  • A line at the top names the source: searches each model ran via its provider's official API, with no login and no memory, for your market, with the model and the scan dates. They are not a transcript of anyone's session in ChatGPT or another assistant app.
  • The Google column matches a search when it is the same string once only quotes, case, accents and punctuation are ignored, so an engine's "crunchjunkie" in quotes now meets your crunchjunkie row. A search with an operator such as site: or -term is narrower than its words and never counts as an exact match. A shorter Search Console query whose every word is in the search shows separately as a similar query, in its own words and with the engine's operator, never as your rank; with several, impressions are added up and the position is weighted by impressions. A Google rank only exists for searches people also type into Google.
  • When Search Console cannot be read, the page names each property and why (access refused, or an error from Google's API) instead of showing no matches. Before, an expired connection looked like a connected one with nothing in common.
  • New panels: brands named inside the searches (yours and each competitor's, in searches and answers) and recurring two- and three-word sequences, each as n of all searches. Filters for prompt type (Shopping, from the prompt's category) and topic (prompt tags), with a group-by-topic view. The MCP tool returns the same, takes a limit of up to 200 rows (50 by default) and the same filters.
v3.30October 2026
Update

The app on a phone

On a phone the app had no layout of its own. Its menus kept their desktop width side by side, so on a project's settings the project menu covered the Discard button, the Save bar could not be reached, and the trial badge sat over the last field. Below 768 pixels the app now has a phone layout. On a computer nothing changes.

  • The main menu and an AI Visibility project's menu open from buttons in a slim bar at the top and close when you pick a page. They work from a keyboard too, and Escape closes them.
  • Nothing floats over the page any more on a phone or a tablet: the trial status sits in a bar at the top, live chat opens from the menu, and Ask Crunch stays in the page header.
  • The Save bar on a project's settings and the running-scan bar span the screen, and their buttons stay in reach, also while a scan runs.
  • Pages no longer scroll sideways. Wide tables scroll inside their own box. The reports list leaves out its Type column on a screen narrower than 1024 pixels, and on a phone it shows the Last updated date, the Frequency or the deletion date under the report name. A report shows KPI tiles two to a row on a narrower screen.
v3.29October 2026
Update

Meta Ads: an alert when an ad account stops delivering

Once a day CrunchJunkie reads every connected Meta ad account's status and its last eight days, and tells you in Signals when one has stopped delivering after a normal week, or when Meta reports a status in which its ads cannot run, such as an unsettled balance or a disabled account.

  • Judged on the account's own day, three hours after its midnight. A normal week means spend on at least 5 of the 7 days before, a median of at least 100 impressions a day, and delivery on the same weekday a week earlier, so a weekdays-only account is not flagged at the weekend. A planned day off, such as a public holiday, can still raise it.
  • The signal names the campaigns that were delivering and what they spent. It stays open while the account is dark, clears itself on the first day it delivers again, and once dismissed stays dismissed for that stop. An automation can send it by email, to Slack or to a webhook the same morning.
  • Goals and the cross-channel signals show no data when a source they depend on did not answer, instead of a total that silently leaves a channel out, and a Meta connection whose login has expired is not asked at all.
  • Only the daily impressions and spend the check needs are stored, for two weeks. An account Meta keeps refusing is checked less often; after five refusals the check stops and the owner gets one email. It resumes as soon as Meta Ads is reconnected.
v3.28October 2026
Update

AI summaries can point to Google Ads account changes

An executive summary of a month in which the budget was raised could not say so: only the two change presets read the Google Ads change history. Now the other summaries read the period's account changes too, when the report has Google Ads figures and the account was changed in the period.

  • Read by the executive summary, Campaign insights, Wins, Issues, Action plan, a custom question, and “Analyse widget above/below” on a Google Ads widget. The summaries written for a scheduled email and for a monthly copy read them the same way.
  • Only the 12 most significant changes go in: budget, bidding and status first, then keywords and targeting, minor edits such as renames last. They come from the stored change history of the report's Google Ads account, never from Google live. Who made a change is a role, such as a person or a script, never an email address.
  • Crunch mentions a change only where it plausibly explains a movement in the figures, and then says it coincides with or likely contributed to it, never that it caused it.
  • The “Based on” line under a summary says how many account changes it read, for example “· 12 of 45 account changes”, or “· 3 account changes” when it read them all.
v3.27October 2026
Update

The usage statement shows what your AI checks cost

The usage statement under Settings → Billing counted scans and checks, but no money. It now shows what the checks cost you, in the currency each cost is billed in, and keeps the two kinds of cost apart.

  • Checks on your own provider keys show “≈ cost on your own provider bill” in US dollars on every row, on the total, in the PDF and in the CSV: each scan's tokens at the provider's list price when the scan ran, plus its search fees, with the day the price table was last reviewed. It is an estimate. Your provider's bill is authoritative and can differ, mostly through search and grounding fees, cached tokens, discounts and monthly plans such as SerpAPI's. Scans from before 3 July 2026, when the ledger began recording whose key ran a scan, show “—” and are not counted.
  • Managed AI checks read “included” on the total, or show the overage so far in your billing currency, euros or dollars: the same figure as the meter above. It appears once, because overage belongs to the whole period. The dollar estimate and the overage are never added together.
  • The CSV gains two columns at the end, own_key_est_cost_usd and own_key_cost_note, so sheets built on the old file keep working. The billing meter shows the estimate under its BYOK figure, and the connector's get_usage returns it as byokCost.
  • “Last 30 days” and “Last 90 days” now count whole UTC days ending today, from 00:00 UTC, the way the rest of the app counts days, and “Previous period” covers at most 31 days. Totals for those ranges can come out slightly lower than before, because the first day no longer starts at the hour you opened the page.
v3.26October 2026
Fix

A refused AI key now says why

When Google refused a Gemini key, we said the key was probably older than 28 May 2026 and should be replaced. That was wrong for a new key whose Google project had a billing problem, the Gemini API switched off, or a key restriction. Now the key check, the Home page and the scan alerts all name Google's actual reason, with the step that fixes it.

  • Gemini: the reasons named include a billing account that is disabled, closed or not finished, Prepay credit at $0, the Generative Language API switched off, a website, IP or app restriction on the key, an API restriction that leaves out Gemini, a free tier Google won't serve, a project Google has blocked, a quota of 0 for the model, and a key that was cut off when copying. The 28 May cut-off is now named only when Google says the key itself is not valid.
  • Every other provider (OpenAI, Anthropic, xAI, Perplexity, DeepSeek, Meta AI, SerpApi) now says whether the key is invalid, the account has no credit, the provider is only rate-limiting it, or the provider couldn't be reached, instead of “Invalid key” for all of them. When the answer fits none of these, you see the provider's own words, with any key removed.
  • A key the provider is only rate-limiting is saved, with a note, rather than refused.
  • These messages are now in your language. Until now the message shown when saving a key was always in English.
v3.25October 2026
Update

AI summaries in reports stay with their numbers

An AI summary in a report used to remember only the name of its period. A summary written for “last month” in September still counted as current in October, so a scheduled PDF could print August's commentary over September's numbers. And a summary written on the 1st kept its figures after Google Ads had credited late conversions for the same month, next to tables that already showed the new ones. Summaries now record the dates and the figures they were written from.

  • When a summary was written for another period, the report, the shared link and the PDF fold it down to one line naming that period; a rolling period that has only moved on keeps its text under a dated note. When the figures of its own period, or its comparison period, have changed since, it stays, under a line giving the day it was written. Readers see that line only for a material change (3 %, and at least one for conversions and counts), so late-reporting data does not leave a note for weeks.
  • Before a scheduled email goes out, and when you press Send for the report's own period, a summary that no longer fits the period being sent is written again, with the same task and in the report's language, so the PDF and the link carry current text. Where it can, this happens in the hours before a scheduled send, so the email is not held up. A switch in the schedule panel turns it off and shows roughly what it uses: one assistant message per summary per send on Managed AI, listed as "Report emails" in the usage statement. Report emails stop at 80 % of the month's messages so your team keeps the rest; a summary that can't be written again is marked as above when it no longer matches.
  • White-label: the CrunchJunkie mascot no longer appears on AI summaries in shared links, PDFs and present mode, the same as the logo and the name.
  • A report template no longer carries the AI summary of the report it was saved from, so a report made from it for another client starts without one.
v3.24October 2026
Update

Report emails and PDFs name the period they cover, in the report's language

A report email said “here's your Google Ads report for last month”, and its PDF was headed “Last month”, which stops being true the day the next month starts. Both now name the period itself, such as “September 2026” or “1 – 15 Sept 2026”, in the report's language. The PDF of a German report also printed English words and English decimal points next to German numbers. It now reads German throughout, and Spanish and French reports read Spanish and French.

  • The subject and the message name the resolved period: the attached PDF's, or, without a PDF, the one the link opens on. Scheduled emails use the period of the day they are sent for. The suggested message no longer tells the client to download a PDF from the link when the PDF is attached; the line under the button says which applies.
  • The PDF's page header and file name give the client, the report and the period once each. A report called “Acme · Google Ads Report · September 2026” is no longer headed “Acme · Acme · Google Ads Report · September 2026 · Last month”. A cover subtitle that repeats the title is left out.
  • KPI tiles now show the change of a rate in percentage points and the change of a count or an amount in percent, as the tables already did. A CTR that went from 2.1 % to 2.5 % reads +0.4 pts on the tile and in the table, not +19.0 %. The widget's Comparison format setting still overrides this. GEO audit scores are scores out of 100 and change in points too. Tiles do not show a change from a previous value of 0 yet, because a tile cannot tell that 0 from missing data; tables do, in points or as an absolute change.
  • Chart legends, table headers, metric names, change chips and the shared view's own buttons and messages follow the report's language and its number format, for example “+0,4 Pkt.” and “+25,0 %” in German. In tables, a rise in lost impression share, invalid clicks, unsubscribes or bounces is now red, as it already was on the tiles.
  • A PDF downloaded or emailed right after choosing “N days up to today” covered the previous month instead of those days, and changing the comparison then saved that placeholder, which the live link and scheduled emails read as the previous month. Both now use the days on screen, and the placeholder is never saved. A report that already has it saved keeps sending the previous month, as it always did, and now shows the previous month in the app too.
  • Charts are drawn without animation in a PDF and in a print, so a donut is no longer captured half-drawn. A chart card no longer repeats its title as its caption, such as “Clicks by device” twice.
v3.23October 2026
Update

Dates and scheduled emails follow the workspace time zone

Report date ranges and scheduled emails now follow the workspace's time zone, set under Settings → Preferences, where every time zone can be picked, Pacific/Auckland included. Until now both ran on UTC. In Auckland that meant "yesterday" was the day before yesterday until 1 pm, and on the 1st of a month "last month" was the month before last.

  • Date ranges are counted in the workspace's time zone wherever a report is read: in the app, on shared links, in PDFs and scheduled emails, in the API and in the MCP connector. For a workspace far from UTC a range can therefore move by a day compared with before. Each source still reads the dates in its own reporting time zone, as before: Google Ads in the ad account's, GA4 in the property's, Search Console in US Pacific time. AI visibility keeps counting UTC days, because scans are stored by UTC day.
  • New email schedules send on their day and hour in the workspace's time zone, daylight saving included. Existing schedules keep running on UTC, as they were set. The schedule panel shows what that time is in your zone and the next send, and switches a schedule to your zone with one click.
  • Scheduled emails are now prepared and sent up to six at a time instead of one after another. A send that cannot go out at its hour is retried every hour for up to a day on a weekly schedule and three days on a monthly one, instead of being skipped for the period. A retry never sends a report twice.
  • Fixed: saving a schedule after it had sent could make the report go out a second time in the same period.
v3.22October 2026
Fix

Clients whose reports were shared can now be deleted

Deleting a client failed with “Could not delete client.” as soon as one of its reports had been shared, or sent on a schedule, which shares it too: the share link held on to the report, and the report to the client. A client is now deleted in one step with everything that belongs to it, and if any part fails, nothing is deleted.

  • What goes with it: its reports with their share links and schedules, its data sources and the figures imported through them, its goals and its AI Visibility history. The confirmation now says so.
  • Its Rank Tracker keywords and ranking history go too.
  • Open signals about the client are marked resolved, automations set up for that client alone are removed with their pending approvals, and a scan still running for it is stopped. AI checks it has already used still count in this month's usage.
  • The same fix for Delete permanently in Deleted reports, which failed for any report that had been shared or sent.
v3.21October 2026
Update

Google ranking updates, marked on the charts

Search Console charts in reports now show when Google rolled out a ranking update: a shaded band from the day it began to the day Google said it was complete, with its name and dates under the chart. The band shows timing only, not a cause. A line can move during an update for reasons of its own, and an update can move nothing.

  • The dates come from Google's Search Status Dashboard: core, spam and other ranking updates for web search. Discover updates are left out, because the charts show web search, and so are incidents Google calls a ranking issue rather than an update. An update that is still rolling out is marked as ongoing.
  • On by default, in the app, on shared links and in PDFs. To hide the bands on one chart, switch off Show Google ranking updates in its settings.
  • Fixed: Timeline notes shared with the client now appear under every AI Visibility line and bar chart, in the app, on shared links and in PDFs. Before, the app showed them only under line charts and the shared link only under bar charts.
  • In the Rank Tracker the same bands sit on the chart above the keyword table and on rank charts in reports, for Google desktop and mobile. Bing, Google's local list and Google Maps get none.
v3.20October 2026
Fix

AI traffic from GA4 now counts tagged links

AI traffic from GA4 recognised a visit by the host an assistant sent it from. When a link carries a utm_source, GA4 files the visit under that tag instead, and assistants have started tagging their links: links ChatGPT cites have been seen tagged utm_source=openai, and Gemini links utm_source=gemini (Plausible, September 2026). Those visits were missing from AI traffic and from AI → Conversions. They are counted now.

  • A session counts as AI traffic when its source belongs to an assistant, as a host or as a tag, or when GA4 itself has given it the medium ai-assistant. New on the list: the gemini, openai, chatgpt and copilot tags, plus copilot.com, pplx.ai, x.ai and meta.ai. A session that meets both rules is counted once.
  • Clicks tagged with a paid medium (cpc, ppc, paid and the like), a display medium (display, banner and the like), an email medium or affiliate are not counted, even under an assistant's name, so a ChatGPT Ads click tagged utm_source=chatgpt with a cpc medium stays with ChatGPT Ads. An ad click that carries no tag arrives as the assistant's host and cannot be told apart from an earned one. A click tagged with an assistant's host and a paid medium, such as utm_source=chatgpt.com with cpc, used to be counted as AI traffic and no longer is.
  • Tables and donuts by AI Source show one row per assistant: gemini.google.com and the gemini tag, in whatever case it was typed, both read as Gemini. GA4 calculates each row over all of the assistant's sessions, so Users and rates are its own figures, not sums or averages. openai.com, x.ai and bing.com are company sites or hosts that are not only an assistant, and keep their own names.
  • Reports ask GA4 when they are opened, so this applies to earlier periods too: AI sessions, conversions and revenue for past months can be higher when you reopen a report than they were before, and lower only where clicks tagged with an assistant's host and a paid, display, email or affiliate medium had been counted. Saved AI summaries and PDFs already sent keep their figures.
v3.19October 2026
Fix

Perplexity now answers on GPT-6 Luna

Since 26 September 2026, Perplexity has answered our scans with OpenAI's GPT-6 Luna (before: GPT-5.6 Luna). We ask Perplexity through a preset of its Agent API, and Perplexity decides which model a preset uses; in September it moved the preset to the GPT-6 family.

  • A newer model answers differently, so expect a step in your Perplexity numbers on 26 September. It is the measurement following the product, not a change in your visibility, and Perplexity figures from before and after that date are not directly comparable.
  • Every project that scans Perplexity gets a model note on its Timeline for that day. Our weekly model check first saw the switch on 28 September and put the note there; such notes are moved to 26 September, the day of the first answer from the new model.
v3.18October 2026
Update

Google Ads change history

Reports can now show what changed in a Google Ads account during the period, and who changed it. Google keeps this history for 30 days; CrunchJunkie now stores it every night, so any report period can show it.

  • A new Change history widget: date, campaign and ad group, the old and new value (budget €50 → €80) and who made the change — a person, an automated rule, a script or an applied Google recommendation.
  • Filter by level and by who made the change. It follows the report period or its own date range, and always states the total.
  • Your team sees the email of whoever made a change. Shared links and PDFs show “Your agency” instead.
  • Add it from the widget palette, or ask Crunch or Draft with AI for it — it is never added to a report by default. Crunch AI summaries read it with role labels, never an email address.
v3.17October 2026
Update

AI summaries in monthly copies

A monthly copy now arrives with its AI summary. It is written for the copy's month from the copy's own numbers, so a shared link or PDF of the copy carries it from the start.

  • Each AI widget is written with its own task in the report's language, as the report writes it when the copy is opened; a widget with a saved custom question is asked that question, as Send would ask it.
  • It runs on the workspace's AI key, or on Managed AI within the plan's monthly assistant messages: one message per summary.
  • If a summary cannot be written then (no AI key, the month's assistant messages used up, a provider error or no data yet), the widget stays empty and is written from the copy, as before. The copy email and the Create now panel say which it was.
v3.16October 2026
Update

Monthly report copies

A report can now copy itself at the start of each month, for agencies that keep one report per client per month. Set it up under Monthly copy in the report.

  • Pick the day of the month. On that day, in the workspace timezone, the report is copied with the month that just ended as fixed dates. A comparison with the previous period becomes the whole previous month, so a September copy compares September with August.
  • The name follows a pattern with placeholders for the month, year, client and report name. A name that already contains a month, such as "Google Ads Report - Juli 2026", is turned into the pattern for you, and the month is written in the report's language.
  • Each month of a report is copied once, even when a run repeats or the rule is set up again, and a day missed through an outage is made up later in the same month. The copy has no schedule of its own.
  • Reports → Scheduled lists the rules beside the scheduled emails, with the next copy and the last one. Whoever set up a rule gets an email when the schedule makes a copy.
v3.15October 2026
Update

Rank Tracker without a DataForSEO account

The Rank Tracker can now run on CrunchJunkie's DataForSEO account, paid from a monthly budget, for workspaces that would rather not open an account of their own.

  • Choose a monthly budget under Billing. Each search is charged to it at twice what DataForSEO charges.
  • A run starts only when the budget left covers the most it can cost, so it never stops half way. Billing shows what was charged, by client, list and day.
  • Your own DataForSEO account, when connected, always comes first.
  • A signal warns before the budget runs out, and when a scheduled run could not start.
v3.14October 2026
Fix

Rank Tracker: like-for-like changes, the full results page, AI Overview sources

Google answers the same search with a short results page or a full one, and they are different result sets: on 2 Oct the short page for "ads agentur hamburg" put an SEO agency first and a Facebook-ads agency second, the full one showed the Google Ads agencies a searcher expects. The Rank Tracker now measures like with like and asks for the full page.

  • A change is measured against the last check that got the same kind of page; a check of the other kind in between is skipped. On our own mobile list on 2 Oct, "not comparable" fell from 37 of 60 keywords to 11; those 11 had only ever had short pages before.
  • A search asked for 60 results or more that comes back as the short page is asked once more, ten minutes later. The evidence panel says when that happened and how many results the first answer had. The second ask is billed like any check, and the most a check can cost includes it.
  • AI Overviews that Google loads after the page now come with their sources, so "cited" or "not cited" can be read where it said "sources not read". This adds $0.0006 to each Google check.
  • Clearer page: the chart shows the keywords that rank, with how many of the checked keywords that is above each bar; the sparkline draws checks of the other page kind as hollow points; ranking pages wrap at / and -; the last check is dated in words.
v3.13October 2026
Fix

Search Console tables show the rows that matter

A Search Console table used to keep its top rows by clicks, whatever it showed first, and where clicks tied (every query without a click) the cut was arbitrary. It now orders the rows by what the table shows, then applies the row limit.

  • Tables and donuts are ordered by their first metric, best first (for Avg. Position, position 1 first), and a tie goes to the row with more impressions. A 500-row table of queries by impressions now holds the 500 queries with the most impressions.
  • The Sort setting works on Search Console tables and donuts: any metric the widget shows, highest or lowest first, applied before the row limit.
  • The Sort setting now appears only where a table follows it. Before, it showed on every widget and only the AI Visibility brand ranking read it.
  • In the comparison period a row is looked up among all of that period's rows, so a query that ranked lower last month shows last month's numbers instead of "—".
  • Assistants and the API can fetch one widget instead of the whole report: widgetIds on get_report_data and on GET /v1/reports/{id}/data.
v3.12October 2026
Update

Rank Tracker: the pages behind every domain, and which ones AI cites

In Found in the results, a domain now opens to its pages that rank: each page with its title, the keywords it ranks for and its position, next to where the client's own site is on the same results list.

  • For a directory or a list article, the opened domain shows the exact page worth being listed on.
  • For clients with AI Visibility, a Cited by AI column counts how many of the last 30 days' AI answers cited a page of the domain, with the number of answers it is counted among.
  • Opened domains mark the exact pages AI engines cited, and a filter narrows the list to the domains that rank and are cited.
  • All of it reads stored results and answers: no search is sent and nothing is charged.
v3.11September 2026
Update

ChatGPT Ads: purchases, purchase value and ROAS

Since OpenAI changed its reporting API in September, ChatGPT Ads conversions showed a dash in every report: the API now accepts only whole days in the ad account's timezone, and our requests used UTC days. The connector now asks for the account's days, and it reports the purchase data OpenAI added at the same time.

  • New metrics: Purchases, Purchase value, Cost per purchase and ROAS, plus Conversions split into click-through and view-through. An account that has never sent a purchase event shows a dash, not a zero.
  • Conversions count within 30 days of a click or 1 day of a view, dated by the day of that click or view. OpenAI moved its defaults to these windows in September; CrunchJunkie now sends them with every request, so a later change to the defaults cannot move your reports.
  • Conversion rate divides click-through conversions by clicks, because a view-through conversion has no click behind it.
  • Daily charts and the Day table show conversions, and ChatGPT Ads purchase value counts towards conversion value and ROAS in all-channel reports.
  • All ChatGPT Ads numbers, not only conversions, now follow the ad account's days instead of UTC, so each day lines up with Ads Manager.
v3.10September 2026
Major

Rank Tracker: alerts you can trust, and rankings in the digests

The Rank Tracker now raises signals — and only for changes a second check has confirmed. One check is one sample; an alert on a single reading cries wolf.

  • When the weekly check would raise a signal, those keywords are checked again within the hour. Only what both readings agree on is raised: keywords leaving or entering the top 10 or top 3, a competitor moving above the client on page one, a different page ranking, and Google's AI Overview starting or stopping to cite the site.
  • The second reading costs a few cents on your DataForSEO account, is its own line in the cost ledger, and never changes a position, a chart or a report.
  • Four ready-made automations under Search rankings, including an AI Overview citation lost → action plan for your approval. Alerts go out within minutes of the confirmation, by email (in each recipient's language), Slack or webhook.
  • Warnings before the checks stop: a DataForSEO balance that will not last three more weeks, or a scheduled run that stopped or lost many checks.
  • The Monday digest has a Rankings section per client, and a client digest can include rankings (opt-in, approved again before it goes out).
v3.9September 2026
Update

Managed AI: Perplexity now counts as one check

From 30 September a Perplexity answer uses one check of a Managed AI package, not three. Since its move to the Agent API in August, Perplexity has run on a much cheaper model, so the premium weighting no longer fits it.

  • Premium engines are now ChatGPT, Claude and Grok, at three checks each. Every other engine, Perplexity included, counts one.
  • The recommended Balanced setup (ChatGPT, Perplexity, Gemini, Google AI Overviews) now uses six checks per prompt and pass instead of eight, so the same package covers a third more scans.
  • Checks counted before the change stay as they were. The usage statement marks the Perplexity row when a period holds both.
  • Perplexity no longer needs the premium switch in Settings → Billing: on a Managed AI package it now runs with premium models turned off, at one check an answer.
v3.8September 2026
Major

Rank Tracker: Google, Bing and local positions

Track where a client's site stands for the keywords you choose, on your own DataForSEO account. Every position keeps the results list it was read from.

  • Google and Bing, desktop and mobile, from a country, a city or a postcode, checked once a week with a manual refresh in between. Bing can be pointed at a country or region only; a city keyword is searched for the whole country and says so.
  • Local results as three separate lists: the local pack, the longer list behind it and Google Maps. A business is matched by its Google business id or its website, never by its name.
  • Up to ten competitors per client at no extra cost: their positions are read from the same results list.
  • The cost is shown before anything runs. DataForSEO charges your account per page of results; we add nothing and set no keyword limit.
  • Rankings in reports (a new data source with KPI, chart and table widgets) and ten tools for AI assistants through the MCP connector.
v3.7September 2026
Fix

GEO Audit: a full page sample on every site

Three accuracy fixes to the GEO Audit. Scores can move on your next audit because more of the site is read; stored audits are unchanged.

  • The audit now finds pages through every sitemap a site publishes: sitemap indexes (the WordPress default), sitemaps declared in robots.txt, and the homepage's own links when there is no sitemap. Before, a site with a sitemap index was measured on its homepage alone. A leading language folder such as /de/ no longer counts as one section, so the sample spreads across blog, services and case studies.
  • A page that refuses or fails our request (403, 429, a server error, no answer) is left out of the sample instead of being scored as a bad page; a 404 from your own sitemap still counts. The free audit no longer scores a site whose homepage answers with an error or a hosting placeholder. It says so instead.
  • Agent Resource Discovery follows the current spec (v0.91): the audit looks for ard.json and rel="ard" as well as the earlier ai-catalog.json, and tells you which one Lighthouse 13.5 can see. Still display-only, never scored.
v3.6September 2026
Major

Mailchimp, refresh-first briefs, an assistant allowance

A new email connector, a Content Brief that checks your existing pages before proposing a new one, and a clear monthly allowance for the assistant on the included AI.

  • Mailchimp joins as the 15th connector. Sign in with Mailchimp or paste an API key, then report sent campaigns by campaign, audience or send day: delivered, opens net of Apple Mail Privacy Protection (the proxy-excluded figure, with the machine opens shown separately), clicks by people not links, bounces, unsubscribes, complaints and store revenue. Rates are pooled, never averaged.
  • Content Briefs now start with a decision: when Search Console is connected, the brief checks whether a page of yours already ranks in Google's top 20 for the searches behind the prompt and opens with “Refresh this page” (URL, position, query, impressions) or “New page”. Without Search Console it claims nothing.
  • Ask Crunch, report analysis and automatic summaries on the included AI now have a monthly message allowance per plan (from 150 on Solo to unlimited on Scale; 60 during a trial). Teams on their own AI key are unaffected. The billing page shows used and remaining. Perception re-analysis waits an hour between runs unless the fact list changed.
v3.5September 2026
Fix

Accuracy: whole answers, own domains, citation markers

Three corrections to how AI answers are read and reported. Each one can move a number; none of them changes stored answers.

  • Mention extraction now reads the whole answer — up to 12,000 characters instead of the first 4,000. Brands named late in a long answer (typically Meta AI and Perplexity) are now counted. From 25 September 2026 visibility and mention figures can step up slightly; scans before that date are unchanged.
  • Citation markers an engine writes into its answer (Perplexity's “[web:3]”, bare “[3]”, ChatGPT's “【3†source】”) are removed before the extraction model reads the text. A marker could be mistaken for a brand name; the stored answer itself is untouched.
  • The Cited URLs widget in reports and PDFs now classifies your pages against your whole own-domain list — every Owned domain, the audit domain, the client website and any brand alias written as a domain — exactly like the in-app URLs view. A second site you added as an alias no longer shows as third-party in the report.
v3.4September 2026
Update

Single sign-on, and Meta AI on its newest model

Your team can now sign in with the company login, and the Meta AI engine follows the model Meta is rolling out to its users.

  • Single sign-on (SSO) over OpenID Connect on Pro, Agency and Scale: connect Google Workspace, Microsoft Entra ID, Okta or any OIDC provider in Settings → SSO, prove your email domain with a DNS record, and your team signs in with the company login. New colleagues are added to the workspace on their first sign-in; password login keeps working. SAML is available on request on Scale.
  • Meta AI is tracked on Muse Spark 1.3 from 18 September 2026 (before: 1.1). A newer model answers differently, so expect a small step in your Meta AI numbers on that date — it is the measurement following the product, not a change in your visibility.
  • Our public profiles on GoodFirms, SoftwareSuggest and WebCatalog are now part of the verified-profile list AI engines read (llms.txt and the site's structured data).
v3.3September 2026
Major

Real PDF files, attached to every report email — and a new Query fan-outs page

The PDF export was rebuilt from the ground up, and the fan-outs page now tells you what the engines assume behind your prompts.

  • Download PDF produces a finished file in one click — no print dialog: a full-page cover, your widgets on the grid they have on screen, each section on a new page, a running header with client, report and period, and page numbers. Portrait or landscape; identical from the app and from a live link.
  • Scheduled and one-time report emails now carry that PDF as an attachment (on by default, with an "Attach PDF" switch), next to the live link that always shows current numbers.
  • Printing from the browser is fixed too: the header and footer bands are reserved on every page, so section banners and widget titles never disappear under them; charts inset their end points, label each point and scale their axes to the data.
  • Query fan-outs, redesigned: a headline strip (answers with fan-outs, distinct searches, site: lookups with your own count, dated searches), then the two signal panels, then a denser table with engine dots. Every tile, panel and column has a click tooltip that says what the number is and how to use it.
  • Three fan-out signals read straight off the engines' own searches: the words an engine added beyond your prompt (the intent it assumes — click a word to filter), the sites it looked up directly with a site: operator (your domain flagged when it is on the list), and the searches it dated with a year.
  • MCP: get_query_fanouts returns the same signals (site, siteOwn, years, added) per search plus a window-wide summary.
v3.2September 2026
Update

Peec parity, date ranges on Sources, and editing reports by pointing at a widget

A run of accuracy and workflow releases across AI Visibility and reporting.

  • Sources and URLs: pick any date range — the presets or a custom from–to window — and the Domains list, the chart and the URLs page all read the same slice, remembered per client.
  • Peec AI parity: a report widget filtered to a Peec tag shows Peec's own figures — brand list, Share of Voice, sentiment and position — imported once a day instead of recomputed from the chats.
  • Peec brand lists mirror automatically: every sync links Peec's brands to your competitors by name, alias or domain, adds the ones you don't track yet, and re-reads the chats — so a spelling difference can no longer show a top competitor at 0 %.
  • Edit with Crunch on any report widget: a pencil on every data widget opens the assistant bound to that widget, and sections can be added, renamed, moved or removed in plain language, with undo.
  • Ask Crunch shows its work — the workspace lookups behind an answer — and keeps your saved prompts as team chips.
  • Prompt discovery can start from Search Console: with a property connected, suggested prompts are grounded in the queries that already bring you traffic — labelled as Google demand, not AI demand.
  • MCP: the connector can now change a prompt's category, intent or active flag (update_tracking_prompt) — 34 tools in total, every write preview-confirmed.
  • Your light/dark choice now sticks: it is applied before the first paint, survives every reload, follows you across tabs, and the Settings buttons select a mode instead of toggling.
v3.1August 2026
Major

Google Business Profile — and a date range on every widget

A new local-reporting connector, plus far more control over the period each widget reports on.

  • Google Business Profile connector — profile views, calls, direction requests, website clicks, the searches that found you, and reviews with average rating, in the same report as your ads.
  • Per-widget date ranges: any widget can report on its own window instead of the report's — with comparison presets for the previous period, previous month or the same period last year, or a fully custom from–to range.
  • Conversion actions can be broken out by All conversions per action, and the table now honours your campaign and widget filters — so "conversions by action for campaigns containing X" matches Google Ads exactly.
  • Faster metric picking: search a widget's metrics by full name — typing "all conversions" now finds the abbreviated "All conv.", not just an exact match.
v3.0August 2026
Major

One brand, every AI engine, every market

AI visibility went deeper on every axis — a tenth answer engine, true multi-market tracking for a single brand, and analytics for the AI crawlers hitting your site.

  • Meta AI is now the tenth tracked answer engine, alongside ChatGPT, Gemini, Claude, Perplexity, Grok, DeepSeek, Google AI Overviews, Google AI Mode and Microsoft Copilot.
  • One client, many markets: set the market per prompt and track a single brand across every country it sells into — each prompt is scanned and pooled in its own market, never averaged into one meaningless figure.
  • New Markets comparison on the Overview — visibility, share of voice, sentiment and average position side by side per market — plus a switcher to scope the whole page to a single market.
  • Filter the Overview by prompt topic or tag, so a themed slice of prompts recomputes every metric on just those runs.
  • AI bot traffic: see which AI crawlers (GPTBot, ClaudeBot, PerplexityBot and more) actually reach your site, verified against each provider's published IP ranges — because access is not the same as a citation.
v2.9July 2026
Major

Reddit Ads reporting — live

Reddit Ads is now connectable end to end: OAuth connect, account picker, and every data point Reddit's reporting API serves — in reports, shared links, PDFs, the builder and Draft with AI.

  • Every available data point: the connector negotiates the field set with Reddit's API per account — metrics your account doesn't report show an em dash, never a fake zero
  • ~54 metrics: per-event pixel conversions (purchases, sign-ups, leads, add to cart, page visits…), app installs, video depth and community engagement
  • New video engagement funnel widget (views → 3s → 25/50/75/100%), plus the new "Reddit Ads — Conversions & Video" template alongside Full Overview
  • Scan transparency: click the failed-checks badge on Prompts for a per-engine breakdown — failed checks retry up to 3× and are never billed
  • Timeline notes now record prompt additions and removals (including through the MCP connector), so pooled-average steps stay explainable
v2.8June 2026
Major

AI Visibility — brand-level deep dive

Each brand now has its own dedicated visibility workspace with a persistent left-nav panel. Overview, Responses, Sources, Insights, Prompts, and Settings are each their own route — no more hunting through tabs.

  • Brand-level routes at /visibility/[clientId] with section sub-nav
  • Responses page: filter by All / Mentioned / Not mentioned / Mention gap
  • Sources page: domain bar chart with citation counts
  • Insights page: prioritised action cards with category filtering
  • Sidebar auto-highlights AI Visibility when inside any brand route
v2.7May 2026
Major

Google AI Overviews tracking

CrunchJunkie can now track whether your clients appear in Google AI Overviews — the AI-generated summaries at the top of search results. Requires a SerpAPI key.

  • New model: Google AI Overviews via SerpAPI
  • Visibility, position, and citation data for AI Overview appearances
  • Shown alongside ChatGPT, Gemini, and Perplexity in trend charts
v2.6April 2026
Major

Competitive quadrant chart

A new scatter chart plots all tracked brands on a Visibility vs Sentiment axis — instantly showing who leads, who lags, and who is controversial. Only appears when two or more brands have data.

  • Quadrant labels: Leaders, Niche, Controversial, Laggers
  • Hover tooltips with exact scores
  • Uses the same brand color palette as trend lines
v2.5March 2026
Update

Dark mode

Full dark mode support across every page — reports, dashboard, monitoring, and AI Visibility. Toggle it in Settings; your choice is remembered in this browser.

  • All CSS custom properties respect data-theme='dark'
  • Charts, cards, and modals all dark-mode aware
  • Charts, tables and PDF exports all follow the active theme
  • Preference remembered per browser
v2.4February 2026
Update

Prompt performance sparklines

The Overview tab now shows a sparkline bar for each tracked prompt — 14 days of daily mention rate visualised as a bar column. Green = mentioned in more than half of runs, grey = not mentioned.

  • Trend arrow (up/down) comparing first and second half of the period
  • Mention rate percentage at the right edge
  • Sorted by highest mention rate by default
  • Colour-coded category dots (Discovery / Brand / Competitor)
v2.3January 2026
Update

Grok and DeepSeek support

Two new AI models are available for visibility tracking: Grok (xAI) and DeepSeek. Both require an API key added in Settings → AI Visibility Keys.

  • Grok 3 via xAI API
  • DeepSeek Chat
  • Both appear in model filter dropdowns and trend charts
v2.2December 2025
Fix

Report delivery and scheduler fixes

Several edge cases in the monthly scheduler were causing reports to send with stale data or not send at all for workspaces in certain timezones.

  • Fixed UTC vs local timezone offset in cron schedule
  • PDF generation no longer fails when a widget has no data for the period
  • Re-send button in delivery log now works for failed sends
  • Improved error messages when an integration token expires mid-run
v2.1November 2025
Update

AI Visibility perception tab

A new Perception tab shows the descriptive terms AI models actually use when they mention a brand — pulled verbatim from each answer, ranked by frequency per brand, with the terms distinctive to a single brand highlighted.

  • Tag cloud sized by frequency — bigger = mentioned more often
  • Shown per brand including competitors
  • Filters to the selected time window
  • Attribute extraction runs server-side on each scan result
v2.0October 2025
Major

AI Visibility launch

CrunchJunkie now tracks how often your clients appear in ChatGPT, Gemini, and Perplexity responses. Daily automated scans, trend charts, and competitor benchmarking — the first agency-grade AI visibility tool.

  • Visibility %, Avg. Position, Sentiment, Share of Voice metrics
  • Multi-model tracking: ChatGPT (web search), Gemini, Perplexity Sonar Pro, Claude
  • Competitor benchmarking on the same chart
  • Prompt management by category (Discovery / Brand / Competitor)
  • Daily and weekly automated scan schedules
  • CSV export of all snapshot data

Want early access to new features?

Every plan gets access to the full product. We ship fast and tell customers first.