> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retailgrid.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Product updates

> See the latest Retailgrid releases, including new features, improvements, and bug fixes in each update cycle.

<Note>
  Subscribe to product updates via [RSS](https://docs.retailgrid.io/changelog/product-updates/rss.xml), or watch the **What's new** feed inside Retailgrid.
</Note>

<Update
  label="Jun 24, 2026"
  description="Cycle 11"
  tags={["Features", "Improvements", "Bug Fixes"]}
  rss={{
title: "Cycle 11 — Price approval workflow, grid autosave, and search by any attribute",
description: "Review and publish every agent-proposed price through a new approval workflow, find products by any attribute, and work in a grid that autosaves as you go — plus a redesigned Price Optimization output and store-level pricing refinements."
}}
>
  **Summary**: This cycle put pricing managers firmly in control. Agent-proposed prices now flow through a dedicated **price approval workflow** — review, adjust, bulk-approve, and publish in one click — and Price Optimization's output was redesigned around that flow. The grid got more livable too: search any product by any attribute, and stop worrying about losing work, because layout changes autosave automatically.

  ### Features

  * Added a **price approval workflow** — review, approve, reject, or override every price proposed by [Dynamic Pricing](/agents/dynamic-pricing) and [Price Optimization](/agents/price-optimization), with comments, filters, and bulk-approve, then publish in one click. See [Review and approve price changes](/agents/price-approval).
  * **Search by any attribute** in the grid — find a product by SKU, name, brand, EAN, supplier, category, or any custom field, without building a filter. See [Configure grid](/grids/configure-grid).

  ### Improvements

  * **Redesigned Price Optimization output** — recommendations now appear one value per cell, with a price type and effective date you set per recommendation and a clear explanation of why each price was proposed. See [Price Optimization](/agents/price-optimization).
  * **Grid autosave** — filtering, sorting, grouping, and column changes save automatically with a status-line confirmation; the "Leave site?" warning is gone. See [Configure grid](/grids/configure-grid).
  * **Store-level pricing refinements** — Sync Prices respects a chosen group column at the store-product level, and Price Relations can hold a structure across store attributes like pricing zones. See [Dynamic Pricing](/agents/dynamic-pricing).
  * **Price Optimization clusterization** — sparse-history SKUs borrow demand signal from clusters of similar items instead of dropping out.
  * **More room for the grid** — reclaimed vertical space so more product rows are visible at once.
  * **Aligned data model and API docs** on the Product vs SKU distinction — `item_id` is the SKU-level key, `product_id` groups related items. See [Datasets](/data-requirements/datasets).

  ### Bug Fixes

  * Fixed **grid list sorting** on the home page — the list now sorts predictably with a created-date default. See [Grids overview](/grids/overview).
  * Fixed **sorting and filtering on the image column**, with a placeholder for products that have no image.
</Update>

<Update
  label="Jun 7, 2026"
  description="Cycle 10"
  tags={["Features", "Improvements"]}
  rss={{
title: "Cycle 10 — Store-level pricing, the dashboard editor, and SKU time-series analytics",
description: "Retailgrid now prices at the SKU-Store level end to end — stores management, a SKU-Store grid view, store-scoped metrics and rules — plus a unified dashboard editor with an AI assistant, a time-series analytics panel for any SKU in the grid, and Rules Based Pricing renamed to Dynamic Pricing."
}}
>
  **Summary**: This cycle shipped store-level pricing end to end. You can now define your stores, markets, and channels in a dedicated Stores section, load per-store prices and costs by CSV or API, work in a SKU-Store grid view, and run pricing rules that respect each store's own competitor set and costs. Alongside it, Dashboards grew into a full editor — manual building and AI assistance on the same configuration — and the grid gained a time-series analytics panel that shows how any SKU's price, competitors, sales, and profit have moved over time.

  ### Features

  * Added **Stores management** — create and organize stores with country, currency, sales channel, and pricing zone, and group stores into pricing zones that share pricing logic. See [Manage stores](/stores/manage-stores).
  * Added a **SKU-Store grid view** — toggle between Product view (one row per product) and SKU-Store view (one row per product-store combination) with store columns, store-aware filters, and metrics computed per store. See [Product and SKU-Store grid views](/grids/sku-store-view).
  * **[Dynamic Pricing](/agents/dynamic-pricing)** now runs at the SKU-Store level — one recommended price per product-store combination, using each store's own competitor prices and costs, with rules targetable by country, channel, or pricing zone.
  * **Store-level data via the Public API** — ingest endpoints accept `store_id` alongside `product_id`, with `(product_id, store_id)` upsert semantics and full backward compatibility for product-level payloads. See the [API changelog](/api-reference/changelog).
  * Added a **SKU time-series analytics panel** in the grid — select a SKU to see Competitor Prices, Sales & Price, and Profit & Price over time (4–52 week windows, daily or weekly), with promo and below-cost markers and a profit-maximizing price view. See [SKU time-series analytics panel](/grids/sku-analytics-panel).
  * Added the **dashboard editor** — one place to build and modify dashboards, combining a manual builder (searchable widget picker, drag & drop layout, auto-save) with a **Dashboard Assistant** that adds, removes, or replaces widgets from a plain-language prompt. See [Dashboard editor](/dashboards/editor).

  ### Improvements

  * **Rules Based Pricing is now Dynamic Pricing** — same agent, same engine, clearer name. Existing configurations, runs, and output columns are unaffected, and old documentation links redirect.
  * Refreshed the **Dashboards home page** — built-in and custom dashboards in one list, with create, rename, and delete; built-in dashboards are now editable and can be reset to their defaults. See [Dashboards](/dashboards/overview).
  * Added **global dashboard filters** — Period, Category, Brand, and Competitor — applied consistently to every widget on the dashboard.
  * **Metrics are now computed at the SKU-Store grain** in BigQuery, so margin, price index, and competitor-gap figures reflect each store's own price, cost, and competitor set, with a product-level rollup for Product view. See the [Metrics glossary](/reference/metrics).
</Update>

<Update
  label="May 24, 2026"
  description="Cycle 8"
  tags={["Features", "Improvements", "Bug Fixes"]}
  rss={{
title: "Cycle 8 — Read-side API, AI dashboards, and smarter grid aggregation",
description: "The Public API now reads as well as writes (products, transactions, full grid exports), Dashboards can be generated from a prompt, and grid grouping picks sensible aggregation defaults per column type — all backed by a more reliable backend aggregation engine."
}}
>
  **Summary**: This cycle made Retailgrid feel more programmable and more analytical at the same time. The Public API gained outbound read endpoints — Products, Transactions, and a full Grid export — closing the inbound/outbound asymmetry that integrators have asked about since v1. Dashboards picked up an AI creation flow so analysts can describe what they want to see in plain language. And the grid grouping experience finally feels sensible out of the box: each column type now picks a meaningful default aggregation, and all aggregation runs on the backend so the numbers are correct even at full grid scale.

  ### Features

  * Shipped read endpoints on the **[Public API](/api-reference/introduction)** — `GET /v1/products`, `GET /v1/transactions`, `GET /v1/grids`, and `GET /v1/grids/{grid_id}/rows` — for ERP and BI ingestion. The grid export includes canonical, custom, and formula/calculated columns. See the [API changelog](/api-reference/changelog) for the full list.
  * Added **AI-driven dashboard creation** — describe the dashboard you want in plain language from the [Create with AI](/dashboards/create-with-ai) entry point on the [Dashboards](/dashboards/overview) page, review the example prompts, and save the generated view. *(v1 — single dashboard per prompt.)*
  * Added **Conditional Color Highlighting** to grid columns — drive cell color from a formula result or value condition (e.g. `IF({Margin} > 20, "High Margin", "Low Margin")`), much like Excel conditional formatting. Configure it from the column header menu in [Add Column](/grids/manage-columns).

  ### Improvements

  * The **[Runs](/runs/overview)** list's **Type** column now shows the agent name (e.g. **Pricing Strategy**) instead of the raw action name. Easier to scan, matches how you think about your runs.
  * **Smart default aggregation per column type** in the grid — sales sum, prices and margins average, identifiers count. Override per column from the column menu when you need a different rollup.
  * **Agents UI** in [Rules Based Pricing](/agents/rules-based-pricing) — separated **Config by AI** from the configuration tabs so it has its own surface above the tabs, and gave the [Price Analysis panel](/agents/rules-based-pricing#read-the-result) a polish pass (consistent 2-decimal formatting, cleaner labels, a margin-impact card trio).

  ### Bug Fixes

  * **Grid grouping aggregation** is now computed on the backend, so rolled-up values (Sum, Average, Count, Min, Max) are correct and consistent at any grid size — including large grids where the previous frontend implementation was unreliable.
</Update>

<Update
  label="May 17, 2026"
  description="Cycle 7"
  tags={["Features", "Improvements", "Bug Fixes", "Technical Updates"]}
  rss={{
title: "Cycle 7 — Multi-language UI, nightly grid refresh, and historical metrics in BigQuery",
description: "Retailgrid is now available in Finnish via a new language switcher, every grid refreshes automatically overnight, and all metrics — including static ones — now accumulate history in BigQuery."
}}
>
  **Summary**: This cycle made Retailgrid feel more responsive across three axes — language (a working **English / Finnish** switcher and a fully localized AG Grid chrome), data freshness (every grid now refreshes itself overnight, no manual replace needed), and observability (the in-app loader is now hard to miss). Under the hood, the static metrics that used to live in Cloud SQL now flow through BigQuery, so every metric — not just sales — accumulates a daily history.

  ### Features

  * Shipped **multi-language UI** powered by Crowdin. A language switcher in [Settings → Account](/settings/account) lets you pick **English** or **Finnish**; the entire app, including AG Grid headers, filter menus, and pagination, follows your selection. Your own data (product names, categories) is never translated.

  ### Improvements

  * **Nightly grid refresh**: every grid now refreshes automatically overnight with the latest data from your [Datasets](/data-requirements/datasets). Replaced datasets are picked up the next morning without any manual action.
  * The in-app **processing indicator** is now centered and more prominent — no more clicking around while a grid upload is still running. Only the agents that are actually in flight are shown in the loader.
  * [Pricing Strategy](/agents/pricing-strategy) runs now surface a **Download** button on the run progress card as soon as the deck is ready, so you can grab the Gamma link without drilling into [Runs](/runs/overview).
  * Static metrics like **Margin** and **Current Unit Margin** now keep a daily history in BigQuery alongside time-series metrics — unlocking future analytics that compare how every [metric](/reference/metrics) has moved over time, not just sales.

  ### Bug Fixes

  * In the [Grid creation flow](/grids/create-grid), pressing **Back** after a mapping error now returns you to the **Mapping** step with your selections preserved, instead of dropping you on the legacy upload screen. The legacy `/upload` route was also removed.

  ### Technical Updates

  * All transactional tables now stream from Cloud SQL into BigQuery on an ongoing basis, consolidating analytics on a single warehouse. No user-visible change today; this is the foundation for upcoming time-series dashboarding.
</Update>

<Update
  label="May 10, 2026"
  description="Cycle 6"
  tags={["Features", "Improvements"]}
  rss={{
title: "Cycle 6 — Pricing Strategy goes product, Single Select columns, and Runs polish",
description: "The Pricing Strategy agent now runs on real Grid data with seven timeframes, the grid gains a Single Select column type, and the Runs view picks up a default 7-day window plus an active-runs badge."
}}
>
  **Summary**: This cycle promoted the [Pricing Strategy](/agents/pricing-strategy) agent from prototype to product (real grid data, real account binding, full timeframe ladder), added Single Select / Status as a first-class grid column type, and tightened the Runs view with a default 7-day window and an active-jobs badge.

  ### Features

  * Promoted the **[Pricing Strategy](/agents/pricing-strategy)** agent to product: it now reads your **Account** company name and runs on real Grid data via BigQuery — no more placeholder numbers — and supports seven timeframes (last 7 / 30 / 90 days, QTD, YTD, T12M, Custom).
  * Added **Single Select / Status** as a column type in [Add Column](/grids/manage-columns), with auto-mapped colored pills — ideal for product roles, workflow states, and risk tiers.

  ### Improvements

  * The **[Runs](/runs/overview)** view now shows the **last 7 days** by default, with **Last 30 days** and **All time** controls when you need a wider window.
  * Added an **active-runs badge** to the Runs sidebar icon — a quick at-a-glance signal that something is still in flight.
  * Polished the **Price Analysis panel** in [Rules Based Pricing](/agents/rules-based-pricing): cleaner labels (**Start Price**, **Applied Rules**), consistent 2-decimal formatting, and a margin-impact card trio (new unit margin, pp change, relative change).
</Update>

<Update
  label="Apr 30, 2026"
  description="Cycle 5"
  tags={["Features", "Improvements", "Bug Fixes", "API"]}
  rss={{
title: "Cycle 5 — Public REST API, Pricing Strategy agent, and rule traceability",
description: "Programmatic data ingestion via the public REST API, a Rules-Based Price Insights Panel, the new Pricing Strategy agent, and a cleaner Agents UI."
}}
>
  **Summary**: This cycle shipped the public REST API for data ingestion, surfaced pricing-rule traceability in the right Insights Panel, added richer column-type support to the grid, introduced the Pricing Strategy agent, and cleaned up the MVP UI ahead of the v1 demo.

  ### Features

  * Shipped the **public [REST API v1](/api-reference/introduction)** for Products and Transactions data ingestion, so retailers can load and maintain data programmatically without manual CSV uploads.
  * Added a **Rules Based Price Insights Panel** — click any calculated rules-based price in the grid to see the pricing trace, applied rules, and any violated rules for that row.
  * Added **Analytical Metric** as a third column type in the Add Column flow, so you can pick from a curated list of pre-built [retail metrics](/reference/metrics) (margin, revenue, price index, elasticity).
  * Added the **[Pricing Strategy](/agents/pricing-strategy)** agent — generates an AI-powered pricing strategy presentation directly from your retail data.

  ### Improvements

  * Refreshed the [Agents](/agents/overview) selection UI: removed Credits / Buy Credits placeholders and per-agent pricing, regrouped agents to match the new structure.
  * Removed credits, billing, and Team placeholder sections from UI Settings ahead of MVP.

  ### Bug Fixes

  * Fixed the Group column disappearing from view after applying Group By in the grid.
  * Fixed columns (notably Product URL and Image URL) disappearing from the grid after running the [Rules-Based Pricing](/agents/rules-based-pricing) agent.
</Update>

<Update
  label="Apr 13, 2026"
  description="Cycle 4"
  tags={["Features", "Improvements", "Bug Fixes", "Technical Updates"]}
  rss={{
title: "Cycle 4 — AI-assisted rules, reusable action configs, and large-grid reliability",
description: "AI-powered rule creation, save and load for action configurations, refreshed Actions UI, and reliability fixes for grids around 200k rows."
}}
>
  **Summary**: This cycle focused on making [Rules-Based Pricing](/agents/rules-based-pricing) faster, more reliable, and easier to use. We shipped AI-assisted rule setup, reusable action configs, several UX improvements, and fixes for large-grid and session reliability issues.

  ### Features

  * Added **AI-powered rule creation**, so you can describe a pricing rule in plain language and review the generated setup before saving.
  * Added **save and load for action configurations**, making it easier to reuse pricing setups.
  * Improved rule setup with **context-aware column selection and search**, so only relevant fields are shown for each rule type.

  ### Improvements

  * Refreshed the Actions UI to better match the Retailgrid design system and improve consistency across the flow.
  * Moved advanced rule parameters behind a cleaner expandable section to reduce UI clutter.
  * Improved app availability so the product stays responsive instead of needing to wake up after inactivity.

  ### Bug Fixes

  * Fixed grid creation filters so they apply correctly and update previews as expected.
  * Fixed failures when working with very large grids, including datasets around 200k rows.
  * Fixed Rules-Based Pricing execution being blocked by another job.
  * Fixed rounding behavior in Rules-Based Pricing so rule order and rounding work together more predictably.
  * Added automatic logout after long inactivity for better session security and more reliable timeout behavior.

  ### Technical Updates

  * Reduced memory issues in Rules-Based Pricing runs on large datasets.
  * Prevented database connection exhaustion in production to improve backend stability.
</Update>

<Update
  label="Apr 5, 2026"
  description="Cycle 3"
  tags={["Features", "Improvements", "Bug Fixes", "Technical Updates"]}
  rss={{
title: "Cycle 3 — Competitor pricing view, Price Range column, and GCP migration",
description: "Major Market Data UI improvements, a new Price Range column, smarter Columns panel, and production migration to Google Cloud."
}}
>
  **Summary**: This cycle focused on making competitor pricing workflows much more usable and trustworthy. We shipped major Market Data UI improvements, added clearer pricing visuals, and fixed several pricing and data accuracy issues.

  ### Features

  * Added a new **competitor pricing view** in the grid, so you can compare [competitor prices](/data-requirements/competitors) directly in-row and open source links faster.
  * Added a visual **Price Range** column showing min/max competitor prices and where the current price sits in the market range.
  * Improved the [Columns panel](/grids/manage-columns) with grouped sections, search, expand/collapse, and bulk show/hide controls for faster navigation in large datasets.
  * Added column type icons to make editable, formula, and AI-generated columns easier to distinguish.

  ### Improvements

  * Moved the [Export](/grids/export) button to a more accessible position in the toolbar.
  * Renamed "Load Data" to "Upload Data" for clearer terminology.
  * Improved competitor matching by prioritizing Product ID before falling back to SKU.

  ### Bug Fixes

  * Fixed incorrect competitor price indicator colors so market position is shown accurately.
  * Fixed stale Zooplus competitor prices so the latest value is displayed.
  * Corrected competitor gap and undercut percentage calculations.
  * Fixed missing "Last updated" values in [Datasets](/data-requirements/datasets).
  * Improved rule-based pricing rounding so rounded prices stay within the feasible range.

  ### Technical Updates

  * Migrated production infrastructure to Google Cloud.
  * Set up profiling and telemetry foundations to improve performance analysis and debugging.
</Update>

<Update
  label="Mar 29, 2026"
  description="Cycle 2"
  tags={["Features", "Improvements", "Bug Fixes"]}
  rss={{
title: "Cycle 2 — Rules-based pricing flow and Datasets management",
description: "Visual rules configuration with multiple rule types and ordering, plus a dedicated Datasets page for managing imported files."
}}
>
  **Summary**: This cycle shipped major usability improvements across pricing, data management, and grid workflows. You can now configure pricing rules visually, manage datasets directly in the app, and work with clearer grid controls and data signals.

  ### Features

  * **[Rules-based pricing](/agents/rules-based-pricing)**: Shipped a full rules configuration flow with support for multiple rule types, rule ordering, conditions, enable/disable controls, and action execution.
  * **[Datasets management](/data-requirements/datasets)**: Added a dedicated datasets page for uploading, viewing, downloading, replacing, and deleting imported files, with status tracking and row counts.

  ### Improvements

  * Added a derived **promo flag** (`is_promo`) to support filtering, rules, and downstream workflows involving promotional items.
  * Updated the grid to show **filtered vs total row count**, making it easier to understand active filters at a glance.
  * Made **[Add Column](/grids/manage-columns)** easier to access from the main menu.
  * Improved CSV import behavior by **removing automatic grid creation**, giving users more control during import flows.

  ### Bug Fixes

  * Fixed import behavior so CSV uploads no longer create grids automatically in the background.
</Update>
