OriginRadarFactory · Demand · GapToday's queue

How the desk works

Scoring, sources, and what “whitespace” means

OriginRadar is an opportunity desk, not a store. Each card is a SKU that is moving in China factory channels, then tested against demand (search + social) and against whether North America, Southeast Asia, and Europe already sell a comparable item.

Opportunity score (0–100)

Price gap

Margin % = (regional average retail − estimated landed cost) / retail. Landed cost is factory unit + typical DDP/postage + a duty buffer. Whitespace cells use a projected retail from category comps so you still see a theoretical gap.

Sources

Factory layer: 1688, Pinduoduo, Alibaba, Taobao. Demand layer: Google search interest, TikTok, Xiaohongshu (小红书), Instagram, YouTube, X. Market layer: Amazon US/EU, Walmart, Shopify/DTC, Shopee, Lazada, TikTok Shop, and regional specialists (Bol, Notino, Leroy Merlin).

Official 1688, TikTok Creative Center, and Xiaohongshu APIs need commercial keys. The current snapshot is a research-backed desk as of 5 Sep 2026 with a pluggable adapter for live refresh. Treat numbers as directional for sourcing, not as a purchase order.

Price zone

Each market gets a floor / recommended / ceiling. Floor is landed cost divided by 0.62 (about 38% gross after freight and duty — ads and returns still come out of that). Whitespace recommended prices use category comps. Competitive markets shade the going average. Saturated markets hug the low end and are often marked tight. Generate writes the best-region recommended price as storefront retail.

Customization and overseas address

Every factory pack records whether the mill will do logo / color / retail-box OEM, the custom MOQ, whether a sample can ship to an overseas address, and how export actually works: factory DDP, agent DDP after EXW, or EXW-only (no overseas consignee — typical for cosmetics and heavy sanitary electrical).

Daily queue

/queue is the working deck: eight ranked SKUs for the UTC day. Generate sources the listing, Collect keeps a shortlist, Discard hides a SKU until tomorrow. State lives in the same SQLite file as sourced listings.

Deploy and HX monitoring

Vercel hosts the radar UI (Root Directory origin-radar). DigitalOcean App Platform (.do/app.yaml) is the persistent host for Generate and SQLite. HX bots should poll /api/health and /api/hx; viewership ingest is /api/hx/viewership.

Generate → database → storefront

On any recommendation, click Generate listing. OriginRadar builds a 1688-shaped pack (gallery, HTML description, specifications, factory terms of use, MOQ price tiers) and writes it to SQLite at data/storefront.sqlite, with images under public/sourced/<slug>/. If ALIBABA_1688_APP_KEY, ALIBABA_1688_APP_SECRET, and ALIBABA_1688_ACCESS_TOKEN are set, the generator calls alibaba.product.get and overwrites title/images from the live offer. Export Shopify CSV from /storefront when you are ready to stand up the shop.