Feed Delta Guard — Product Feed Regression Audit
Pricing
Pay per usage
Feed Delta Guard — Product Feed Regression Audit
Compare product-feed snapshots to flag price changes, missing products, duplicate IDs and availability changes. Supply JSON, CSV or TSV and get English or Japanese reports in JSON, CSV, HTML and dataset output.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
M TSUTSUMI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Security
Limited permissionsShare
Feed Delta Guard
Check product-feed snapshots before an import or catalog update. Feed Delta Guard highlights price changes, missing or added products, duplicate IDs and availability changes, with finding messages in English or Japanese. Supply your own JSON rows or CSV/TSV text; no website access is needed.
Start with two snapshots
Paste this synthetic example into the Actor input:
{"currentRows": [{"id": "SKU-001", "price": "70.00 USD", "availability": "out_of_stock"},{"id": "SKU-003", "price": "15.00 USD", "availability": "in_stock"}],"previousRows": [{"id": "SKU-001", "price": "100.00 USD", "availability": "in_stock"},{"id": "SKU-002", "price": "20.00 USD", "availability": "in_stock"}],"priceDropPercent": 20,"priceIncreasePercent": 50,"removalPercent": 20,"reportLanguage": "en"}
This example identifies SKU-001's price drop and availability change, SKU-002's removal and SKU-003's addition. The removal share also reaches the configured threshold. All example products are synthetic.
Provide exactly one of currentRows and currentCsv. For a comparison, also provide exactly one of previousRows and previousCsv. The baseline must be supplied explicitly on every run: it is not saved or automatically loaded from a previous run. Omit both previous fields for an initial audit; that checks current fields without inventing added or removed products. previousRows: [] is an explicit empty baseline. currentRows: [] is allowed and can reveal total product loss against a supplied baseline.
CSV and TSV input
Use CSV/TSV text with a header instead of JSON rows. Remove any prefilled currentRows before using currentCsv. For example:
{"currentCsv": "id,price,availability\nSKU-001,70.00 USD,out_of_stock\n","previousCsv": "id,price,availability\nSKU-001,100.00 USD,in_stock\n","delimiter": "comma","reportLanguage": "ja"}
For TSV, use tab characters (\t in JSON strings) and delimiter: "tab". The default auto detects comma or tab. Quoted CSV cells and multiline values are supported; malformed records fail validation. CSV record numbers start at 2 after the header and count logical records, including quoted multiline values as one record. JSON record numbers start at 1.
Map custom columns with idField, priceField, currencyField, availabilityField and gtinField. Defaults are id, price, currency, availability and gtin. Mappings must be distinct and are case-sensitive. Headers are trimmed; product ID values preserve case, whitespace and leading zeros exactly. IDs must be nonblank strings; numeric IDs are not converted.
Checks and settings
- Prices: non-negative plain decimals such as
100.00 USD, or100.00with a separatecurrencyfield ordefaultCurrency. Negative prices, comma separators and exponent notation are rejected as price findings. Missing prices produce warnings and prevent price comparison. Zero prices are flagged for review; relative growth from a zero baseline is not computed. - Price changes:
priceDropPercentdefaults to 20 andpriceIncreasePercentto 50. Thresholds are inclusive. Both prices must be valid and use the same currency. Currency changes are reported separately; there is no FX conversion. Currency validation checks three uppercase letters only, without consulting a currency registry. Conflicting inline and separate currencies are flagged. - Added and missing products: compare IDs between snapshots.
removalPercentdefaults to 20 and flags a removal share at or above that percentage of eligible previous products. - Duplicate IDs: report every duplicate copy in either snapshot. An ID duplicated in either snapshot is excluded from all difference comparisons and added/removed counts; it is never silently overwritten.
ambiguousIdsreports the number of these IDs. Rows with missing or non-string IDs are flagged and excluded from ID comparison. - Availability: flag changes and review values outside
in_stock,out_of_stock,preorderandbackorder. This compares supplied fields, not actual inventory. - Optional GTIN: when a nonempty
gtinis supplied, check a single string for 8, 12, 13 or 14 digits and its check digit, ignoring spaces and hyphens. Keep leading zeros by using strings. Changed GTIN values are also reported. Assignment, ownership and GS1 registration are not verified.
Use reportLanguage: "en" (default) or "ja" for English or Japanese finding messages. Field names and finding codes remain stable. Unknown top-level input options and invalid input structure fail the run rather than returning a partial audit.
Limits and completeness
Each snapshot supports at most 5,000 rows. The total input limit is 4 MiB of UTF-8 serialized JSON, including both snapshots, options and JSON-encoding overhead. Each row supports at most 64 columns, header names at most 200 characters and cells at most 4,096 characters. Use flat records, not nested objects or arrays. Inputs over these limits fail; input rows are not silently truncated.
maxFindings limits returned detail to 2,000 findings by default, configurable from 1 to 20,000. Full counts still cover all detected findings, including when detail is capped. Check findingsTotal, findingsReturned, findingsTruncated, severity totals and countsByCode in the summary. Errors take retention priority over warnings, then informational findings. JSON, CSV, HTML and dataset finding rows contain only retained details: a capped detail report is not exhaustive. reviewRequired indicates whether errors or warnings were found; a successful Actor run does not mean the feed is free of issues.
Get your results
- JSON: the key-value store record
OUTPUTcontainssummaryandfindings, including codes, severity, product ID, snapshot, record number and before/after evidence. - CSV:
FINDINGS.csvcontains retained findings with a UTF-8 BOM. Potential spreadsheet formulas receive a leading apostrophe for safer export; original evidence stays unchanged in JSON. - HTML:
REPORT.htmlis a standalone report with escaped input values, summary and retained findings. - Dataset: the default dataset contains one
kind=summaryrow followed bykind=findingrows. Filter bykindto select the rows you need.
Pricing
Pay per usage: you pay Apify platform usage charges for execution and storage under your Apify account's applicable rates. There is no additional report event fee; customer billing events are disabled for this release. Usage charges can apply even if the report has no findings or a run fails. There is no measured per-run cost or savings guarantee. Review your account's usage and limits when running the Actor.
Scope
Feed Delta Guard checks the data you supply. It does not fetch external websites, verify real inventory, validate images, establish product ownership, register offers, send messages or automatically schedule audits. It is not a complete Google Merchant Center specification validator and does not guarantee marketplace approval. Review findings before changing a catalog. These examples do not establish live cloud performance, customer demand or revenue.