A supplier sends you a price list. A few thousand rows, a UPC column, a cost column, maybe a case pack column if you are lucky. Somewhere in there are the twenty products worth buying. Finding them means matching every barcode to an Amazon listing, pulling the buy box and fees, applying your own costs and checking whether your account can list each one.
Doing that by hand takes days. Most sellers sort by brand, check the names they recognize and miss the rest. An AI assistant connected to Arbitrage Stalker can run the whole list, and it tells you which rows need a human look. Below is the workflow, plus the places it goes wrong.
Two ways in: paste UPCs or upload the list
The size of the job decides which tool runs.
Paste a handful of UPCs
For a short list, paste the barcodes into Claude or ChatGPT and say "match these UPCs." The assistant calls match_upc, which takes up to 100 UPC, EAN or GTIN codes per call and returns the ASIN for each match with its cached title, brand, rank and buy box.
Each code comes back with a status:
- matched: one ASIN.
- multiple: several listings share the barcode. Check pack size before buying.
- no_match: Amazon has no listing for it.
- invalid: not a barcode.
- pending: not looked up this time. Ask again with only those.
One detail I like: 11-digit codes get read as UPCs that lost their leading zero in a spreadsheet. Excel strips that zero all the time, and the tool fixes it instead of calling the row invalid.
Upload the whole supplier price list
For a full price list, ask the assistant to upload it. wholesale_upload works like the Wholesale page in the app. It takes the CSV text or structured rows, up to 5,000 rows and 5 MB per list, and runs in stages in the background:
- Parsing the file.
- Matching each barcode or ASIN to an Amazon listing.
- Pricing every match with the live buy box, Amazon fees, profit, ROI and listing eligibility for your own seller account.
The assistant checks progress with wholesale_status. Status flips to ready once matching ends, but pricing keeps running after that, so the assistant waits for the finished flag. A 5,000-row list can take a few hours to price. Start it in the morning and read the results in the afternoon.
If your supplier file runs past 5,000 rows, split it into parts and upload each one.
Get the cost column right
The single biggest error in price-list analysis is unit cost. Suppliers list the price for one pack or one case. If a case of 12 costs $48 and you treat $48 as the unit cost, every row looks like a loss. If you treat a multipack listing as one unit, every row looks like a winner.
The upload separates the two. Cost is the price paid for one pack as the supplier lists it, and pack size is the units in that pack. Unit cost is cost divided by pack size. Tell the assistant which column is which: "cost is per case, case pack is in column F." Also tell it to send identifiers as text so leading zeros survive.
Read the results by queue
Once pricing finishes, wholesale_results returns the rows in review queues, the same ones the Wholesale page shows:
- Profitable: profit above zero, ROI at or above your floor (20% by default, and you can set your own), not restricted.
- Needs pricing: matched but not priced yet.
- Manual match: no ASIN found.
- Multiple: the barcode matched several ASINs, with the candidates listed.
- Gated: your account cannot list it right now.
- Approved and dismissed: rows you already acted on in the app.
Each row carries the supplier identifier, unit cost, matched ASIN, buy box, total Amazon fees, estimated profit and ROI per unit, and eligibility for your account. Profit and ROI are per unit after Amazon fees and your saved prep and inbound costs, with ROI over unit cost.
Ask for what you want: "show me the profitable rows above 30% ROI, sorted by rank" or "how many rows came back gated, and which brands?"
Eligibility and profit on the rows that matter
Pricing already includes eligibility for your account. For rows you want a closer look at, or a list you matched with match_upc, the assistant can run check_eligibility on up to 100 ASINs at a time. Each one comes back BUY, APPLY with Amazon's approval link, SKIP, BAD_ASIN or PENDING. The tool never applies for you, because failed attempts count against you. For running eligibility across big lists, see checking Amazon eligibility in bulk.
For any BUY row you want to stress-test, calculate_profit runs the same calculator as the app. Ask "what does this one make if the buy box drops $3?" and you get exact numbers instead of a chatbot's guess. I explained why the guess goes wrong in why ChatGPT gets your FBA fees wrong.
Where it breaks: be honest about the limits
AI makes the grunt work fast. It does not make every row right. These are the spots I would check by hand before placing an order.
Pack size mismatches
A barcode can map to a single unit and to multipacks. The multiple queue catches the obvious ones, but a match on one ASIN can still be the wrong pack. Open the listing on anything you plan to buy in volume and confirm the unit count matches the supplier's.
No match does not mean no opportunity
A no_match row means Amazon has no listing for that barcode. That can be a product nobody sells on Amazon, or a product listed under a different code. Rows in manual match need a person to search for them, or you skip them.
Buy box is today's price
The profit on each row uses the live buy box at pricing time. That price moves. A row that looks good today can look bad after three more sellers jump on the listing. Check rank, offer count and price history on the rows you shortlist before you commit cash.
Gated rows might open up
A gated row is a no for your account today. Wholesale is where invoices from an authorized supplier can get you approved, so a gated brand on a list from a real distributor is worth a second look. That decision stays with you.
You need a connected seller account
Pricing and eligibility run on your own connected Amazon seller account. Without one, a price list is not matched or priced, and the assistant says so. Barcode matching with match_upc still resolves codes already in the cache. The rest come back pending.
Supplier data is messy
Typos in UPCs, merged cells, prices with currency symbols, costs that include shipping on one line and not the next. The upload detects comma, semicolon, tab and pipe delimiters, but it cannot fix a wrong number. Skim the file before you send it.
Wholesale versus arbitrage math
Price-list analysis is a different job from flipping retail clearance. You buy in case packs, you often need an account with the distributor, and your margin depends on volume and repeat orders. I covered how the two models compare in online arbitrage vs wholesale, and how to find and open supplier accounts in Amazon FBA wholesale sourcing.
Prompts to copy
- "Match these UPCs and flag any that match more than one listing."
- "Upload this supplier price list. Cost is per case, case pack is in the Pack column, supplier is the one in the filename."
- "Is my price list done pricing yet?"
- "Show the profitable rows above 30% ROI, sorted by rank, with brand."
- "List the gated rows grouped by brand."
- "Which rows need a manual match?"
Set it up
- Create an Arbitrage Stalker account and connect your Amazon seller account so pricing and eligibility run against it.
- Save your real prep and inbound costs in Settings. Every profit figure uses them.
- Add
https://app.arbitragestalker.com/mcpas a custom connector in Claude or ChatGPT and click Allow. The Arbitrage Stalker MCP setup page has the steps for each app. - Paste your next supplier file and ask for the profitable rows.
Every paid plan includes the MCP server and these tools. The pricing page has the plans. Read more about the tools behind the connector on the MCP server page for Amazon sellers.
Let the deals come to you
Arbitrage Stalker watches proven storefronts, scores every lead against your numbers, and tracks each deal to sold and rebuy. Capped feeds keep your finds exclusive.
Start your 7-day free trial