# Spot the Change > Compare two versions of the same table - last month's price list and this month's, two exports of a rota, two > stock counts. Paste or drop two CSV or tab-separated tables with a header row; the page finds the column that names > each row, lists every changed cell with its old and new value (and the difference and percentage for numbers), > every row and column added or removed, and writes the newer table out on a ledger page with the changes circled. A > metered run groups the changes into plain themes and flags the ones that look like mistakes - a price with an extra > digit, a negative count, a row that vanished from a stock count. Built on the SkillSafe skill > @googleworkspace/recipe-compare-sheet-tabs. https://spot-the-change.skillsafe.ai/ ## What is free - Reading both tables (commas, tabs or semicolons; quoted cells), up to 500 rows and 20 columns each. - Key detection (a column filled in, never repeated and mostly shared, preferring ID/Code/SKU/Name headers), or your own choice; rows are matched by position when there is none. - The exact change list, the ledger page (PNG, SVG) and the change-log CSV. - Three samples replay their saved explanations at no cost. ## The metered task One task, `changes`, on gpt-terra, metered per run. Input string fields: `task`, `goal`, `columns`, `key`, `counts`, `changes` (one line per change, each starting with its id: `c1.`, `c2.` ...), `change_count` and `not_sent`. The run sees only the change list, never the whole table. The reply is one JSON object: `verdict` (`check` when anything is flagged, else `routine`), `summary`, `groups` (each `title`, `ids`, `why`), `flags` (each `id`, `why`) and `note`. The page keeps only change ids it sent, puts every change in exactly one group, and warns when the reply quotes a number that does not appear in the tables. ## Links - API tutorial: https://spot-the-change.skillsafe.ai/api.html - Source skill: https://skillsafe.ai/skill/@googleworkspace/recipe-compare-sheet-tabs