Every time a seller opens Scout and sees a product flagged as "promising," the implicit question is the same: what decided that score? This post answers that directly, not as a pitch, but because the methodology is what you need to understand in order to use the tool well.
The problem we are solving
Importers sourcing from 1688 face the same bottleneck: thousands of listings, no time to evaluate each one, and most decisions falling back on "it looks like it is selling" or gut feel. The gap is not information. Information exists on 1688, on Shopee, on TikTok Shop. The gap is a way to combine scattered signals into a judgment you can act on quickly.
Scout does not replace a shop owner's judgment. It compresses the time from "is this SKU even worth considering" to a sortable answer in seconds rather than tens of minutes.
The score is not a single number
The score shown in Scout is the output of three signal groups, each calculated separately and then combined with weights. We call them the three axes: demand, margin, and risk.
The interface shows a total score. But the three axes are displayed individually so you can see where the total came from. A product scoring 75 because demand is strong but margin is thin is a very different situation from a product scoring 75 because margin is solid but demand is moderate. Same total, different required strategy.
Axis one: Demand
We do not use video views or likes. Those measure entertainment, not purchase intent.
The demand signals in Scout come from:
- Actual units sold and their velocity. The absolute count matters less than the rate of change. A product moving from 500 to 2,000 units in three weeks scores higher on demand than a product stuck at 5,000 units for two months with no movement.
- Dispersion across shops. When multiple distinct shops all move the same SKU, demand lives in the product rather than in one shop's channel. A single shop capturing 90 percent of volume is a channel-dependency signal, not a product signal.
- Cross-platform footprint. A product with signals on both TikTok Shop and Shopee shows demand that is not locked to one content format or one buyer profile. Single-platform demand carries higher fade risk.
The demand axis also applies a seasonality adjustment. A product that sells strongly in summer but is currently entering autumn receives a lower seasonal score even if the absolute number still looks respectable.
Axis two: Margin
This is the axis where Scout differs most from a manual scan, because we do not use the 1688 price as the margin base. The 1688 price is the starting point, not the real landed cost.
Margin in Scout is built from estimated true landed cost, which includes:
- The product price on 1688, converted to VND at the current rate (around VND 3,600 per yuan at the time of writing, though you should check this when you calculate, as it shifts).
- Freight to Vietnam, calculated by actual weight or volumetric weight depending on product type. Bulky light goods typically get billed on volume, which pushes landed cost up materially.
- Platform fees and last-mile shipping to the buyer, varying by platform. Platform fees differ by category and shop tier, so Scout uses a typical range as the estimate.
- Expected shrinkage: the typical defect and return rate for that category, allocated per unit.
The margin score reflects the estimated gross margin after landing relative to the average selling price of that SKU on the platform. It is not a precise financial figure, because advertising cost, warehouse overhead, and several fixed items are outside our data. But it filters out SKUs where, once freight and platform fees are added in, there is no room left for a profit.
During the closed beta from late 2025, we kept seeing the same pattern: shop owners drawn to SKUs with high demand scores but low margin scores. When we dug in, those were usually bulky goods or low-ticket items billed on volumetric weight. If you only look at the total score, you miss that. That is why we keep the three axes visible separately.
Axis three: Risk
Strong demand and solid margin can still be a trap if risk is not priced in. The risk axis in Scout pulls down the total score when these signals appear:
- Saturation. The more shops selling the same SKU, the higher the saturation risk score. More specifically, when the price band across platform listings starts to compress toward the estimated landed cost, a price-war signal is triggered.
- Low entry barrier. If 1688 has many suppliers selling the exact same item at near-identical prices, the barrier to entry approaches zero, and a wave of new importers can appear within weeks. This does not disqualify a SKU, but it lowers the risk score and signals that you need a differentiation angle before ordering.
- Single-supplier dependence. A SKU with only one supplier on 1688 carries high supply-chain risk. If that factory stops producing or raises prices, your supply is cut immediately.
- Brand-infringement flags. We run basic checks on product names and images to flag SKUs that look like counterfeit versions of established brands. Not a legal system, but enough to surface early warnings.
Why three axes instead of one total
When we tested early Scout versions with beta users, the single-score version created a problem: users treated the number as authoritative and stopped asking further questions. A SKU that scored high due to a short demand spike combined with average margin got "looks good" reactions from users, when reading each axis separately made it clear that ordering in volume was a meaningful risk.
Three axes force one extra step of reading. Not because we want friction for its own sake, but because the final call needs context. Scout scores the product. The shop owner still knows whether they have warehouse space, whether they have the capital for a test batch, and whether their channel can actually move that SKU. None of that is in our data.
Margin Engine v0.2 and what changed
In February 2026, we shipped Margin Engine v0.2 with two main changes to how margin is calculated.
First, we moved from a flat freight rate to an estimated volumetric freight rate per product category. The previous version used one average rate for everything, which caused small light goods to be underpriced on freight (cheaper than reality) and bulky goods to look more profitable than they were. With v0.2, each category is grouped by typical weight and size, which reduced margin estimation error substantially.
Second, we added category-level return-rate adjustments. Apparel, low-cost electronics, and decor items have clearly different return rates, and the old version did not separate them. This affects the shrinkage loaded into landed cost and pulled the margin estimate for some categories down to a more honest level.
What Scout does not do
We want to be direct about this, because it has come up with users.
Scout does not forecast future prices. Demand signals reflect current conditions and recent trajectory, not what will happen three months out.
Scout does not know your sales channel. A high-scoring SKU that needs heavy ad spend to move, paired with a weak channel, is a separate problem the total score cannot solve.
Scout does not replace sampling. The margin score is built from platform and 1688 listing data, not from physical quality checks. Real margin can run lower if a specific SKU has a higher defect rate than the category average.
If a SKU clears the Scout filter, the next step is still: contact the supplier, request a sample, and recalculate landed cost with real numbers. Scout shortens the list worth examining. It does not make the decision for you.
Bottom line
Three axes, weighted signals, and a synthesis into one sortable score: that is the framework we are running and still improving. Not perfect, but substantially faster than evaluating SKUs one by one manually. The most important thing when using Scout is to read all three axes rather than just the total, and to keep the final call on your side.