Inventory CSV Diff & Stock Change Checker
Pricing
from $0.007 / comparison completed
Inventory CSV Diff & Stock Change Checker
Compare two inventory CSV files by SKU or SKU + warehouse. Find stock drops, items going to zero, added or removed SKUs, and duplicate entries before a stock update. Try the built-in example without files; get an HTML report, CSV findings, and JSON.
Pricing
from $0.007 / comparison completed
Rating
0.0
(0)
Developer
Lasse
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Compare your current inventory CSV with the next supplier or warehouse snapshot. Find stock drops, items going to zero, added or removed SKUs, and duplicate entries before applying the update. Download an HTML review report, CSV findings, and JSON for your automation.
Try it without preparing files: click Try for free, leave Try the built-in example checked, and press Start. Open Review report (HTML) when the run finishes. The three-row example costs $0.01008 on the Free plan at up to 1 GB of memory under the rates below. Normal event pricing applies to the example.
See what the example finds
| SKU | Current stock | Proposed stock | Result |
|---|---|---|---|
| DEMO-COF-001 | 12 | 0 | 100% stock drop and stock going to zero |
| DEMO-MUG-002 | 5 | 5 | Unchanged; no finding |
| DEMO-TEE-003 | Absent | 8 | Added SKU |
The report returns Review required, 3 evaluated rows, and 3 findings. One row can trigger several findings without extra row charges. The example is labeled as built-in sample data in the report.
Use this for supplier feeds, warehouse exports, or an inventory workflow where you already have two snapshots. It compares your files and leaves the stock update to you. No store or ERP credentials are needed.
Compare your own inventory CSV files
- Turn Try the built-in example off.
- Choose SKU + Stock columns if both files have those exact headers. Choose Custom columns / multiple warehouses if headers differ or each SKU has separate warehouse quantities.
- Upload the Current inventory CSV and Next inventory CSV.
- Check Both snapshots cover the same complete scope. Both files must describe the same supplier, warehouse, or other declared scope; a partial update file is unsuitable for inferring additions and removals.
- Keep the default review rules or change the thresholds, then press Start.
- Open Review report (HTML). Download Findings (CSV) for a spreadsheet or Comparison report (JSON) for your workflow.
For the standard profile, use these headers. This is the example current snapshot:
SKU,StockDEMO-COF-001,12DEMO-MUG-002,5
The example next snapshot is:
SKU,StockDEMO-COF-001,0DEMO-MUG-002,5DEMO-TEE-003,8
Paste CSV text, use public HTTPS CSV URLs, or select Apify datasets under the alternative-source sections. Choose exactly one source for each side.
Pricing
Pay per event, with platform usage included. All prices below are USD per event, not per 1,000 events.
| Event | Free | Starter | Scale | Business |
|---|---|---|---|---|
comparison-completed | $0.01 | $0.009 | $0.008 | $0.007 |
row-evaluated | $0.00001 | $0.00001 | $0.00001 | $0.00001 |
apify-actor-start | $0.00005 | $0.00005 | $0.00005 | $0.00005 |
- Comparison: charged once when a completed report evaluates at least one proposed row.
- Rows: one event per evaluated proposed row, including unchanged rows and valid additions. Multiple findings on one row still count as one row event. Removed rows and uncheckable rows do not add row events.
- Start: charged by Apify, including failed runs. One event at up to 1 GB; higher memory adds start events.
| Example, at up to 1 GB | Free | Starter | Scale | Business |
|---|---|---|---|---|
| Built-in example: 3 evaluated rows | $0.01008 | $0.00908 | $0.00808 | $0.00708 |
| Comparison: 1,000 evaluated rows | $0.02005 | $0.01905 | $0.01805 | $0.01705 |
Maximum cost per run is a spending cap, not a minimum bill. The minimum allowed cap is $0.011. That covers the built-in example at up to 1 GB; a 1,000-row comparison on Free needs at least $0.02005, so use $0.021 or more.
The Actor checks the complete comparison cost before delivering and charging the custom events. Insufficient-budget runs incur no custom comparison or row charges; the Apify start event still applies. The Pricing tab is authoritative.
What is checked
| Check | Default behavior |
|---|---|
| Stock drop | Flag a decrease strictly over 50% from a positive current quantity |
| Stock increase | Flag an increase strictly over 200% from a positive current quantity |
| Stock goes to zero | Flag a positive quantity changing to zero |
| Added or removed identity | Flag entries present in only one complete snapshot |
| Duplicates or invalid rows | Report them as uncheckable; do not choose a matching row |
| Warehouse identity | With location mapping, compare SKU + location separately |
SKU matching is exact and case-sensitive. Quantities must be signed whole numbers in the supported 32-bit range. Blank quantities, decimal quantities, and stock-status words are uncheckable. Percentage checks require a positive current quantity.
A generic spreadsheet diff lists changed cells. This Actor matches inventory identities and applies your stock-review rules.
Custom columns and multiple warehouses
Choose Custom columns / multiple warehouses and map SKU, Quantity, and optional Warehouse / location independently for each file. For example, the current file can use item_code, available, and warehouse, while the next file uses sku, qty, and warehouse_id.
Map location on both sides or neither. The same SKU in Oslo and Bergen is then two separate inventory identities. Quantities are not added together across warehouses.
Reports and result status
| Output | Use |
|---|---|
| Review report (HTML) | Read the status, coverage, counts, and individual findings |
| Findings (CSV) | Open the retained findings in a spreadsheet |
| Comparison report (JSON) | Use the canonical report in an integration |
| Dataset report | Read the same JSON report through Apify datasets |
| Run metadata | Inspect execution and billing details |
| Status | Meaning |
|---|---|
review_required | The checks found changes to review |
no_findings | The supported checks found no review items |
incomplete | Rows were uncheckable or finding details were capped |
no_changes | Both snapshots contained no data rows |
Up to 100,000 data records per file are supported within the size limits. Uploaded and remote files are limited to 10 MB each; pasted CSV to 512 KB each. The finding list retains at most 1,000 entries while keeping the total counts.
The Actor does not synchronize stock, connect to live inventory, repair files, or approve updates. A report with no findings does not guarantee that a later update is safe.
API and recurring checks
The published Actor name is overbifrost/inventory-csv-diff-stock-change-checker. Keep Try the built-in example off when providing your own sources.
JavaScript example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('overbifrost/inventory-csv-diff-stock-change-checker').call({ demoMode: true }, { maxTotalChargeUsd: 0.011, memory: 512 });if (run.status !== 'SUCCEEDED') {throw new Error(`Comparison failed: ${run.status}`);}const result = await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('OUTPUT');console.log(result.value);
n8n and Make
Use an HTTP request to:
POST https://api.apify.com/v2/acts/overbifrost~inventory-csv-diff-stock-change-checker/run-sync-get-dataset-items?maxTotalChargeUsd=0.011&memory=512
Authenticate with an Authorization: Bearer header using your Apify token, set Content-Type: application/json, and use {"demoMode":true} as the first request body. For real comparisons, send the two snapshots and required confirmation, and increase the cost cap for the expected evaluated rows.
A successful response contains an array with one comparison report. Route review_required and incomplete to a human review step before your separate stock-update process.
Saved snapshots and scheduled runs
Save a named baseline to reuse a validated current snapshot. Save comparison input as an Apify Task and use an Apify Schedule for recurring checks. Comparing does not automatically advance the saved baseline. An optional webhook can send a small summary for selected result statuses.
FAQ and support
Can I compare a partial update with a full inventory export?
Additions and removals require both files to cover the same complete scope. Do not check the confirmation for a partial delta feed.
Do I need to write code or provide store credentials?
For uploads, use the Apify input form. No store login or ERP connection is used. API integrations need an Apify token.
Why does my first run use example data?
Try the built-in example is preselected so you can inspect a report before preparing files. Turn it off before using your own sources; example mode and customer sources cannot be combined.
What should I check if the comparison fails?
Turn the example off for real files, choose one source per side, check the complete-snapshot confirmation, and verify the selected headers or mappings. Also check the CSV delimiter and run cost cap. Open the error record for the exact error code.
Where can I get help?
Use the Actor's Issues tab. Include the run ID and error code when available; you do not need to include private inventory files in a public issue.
This Actor is part of SKUFuse — Stock Keeping Unit Fuse. For product-catalog imports, see Shopify CSV Import Checker & Catalog Diff and WooCommerce CSV Import Checker & Catalog Diff.