Proposal & System Spec · v0.9

Signal Shelf

A cross-platform trend-intelligence system that turns Google, TikTok, YouTube, Facebook and Threads chatter — cross-checked against Shopee's own search trends — into ranked, ready-to-brief product opportunities.

Owner
MCN Growth / Trend Lab
Market
geo = VN
Audience
Ops & Creators
Status
Draft for review
Date
2026-08-12
00

Summary

What the system does, in one paragraph and one transformation.

Five public platforms surface what Vietnam is paying attention to; Shopee's own search trends say what people are ready to buy. Most of the rest is news noise with zero shopping intent. This system filters that out automatically and converts what survives into fields a creator can act on the same day — user need, Shopee niche + products, a seed keyword, and finally the specific SKUs to feature, joined from our own product big data. Everything ranked, nothing hand-sorted.

Input raw trend + cross-platform signal
Output 1 user need 2 Shopee niche + products 3 seed keyword 4 ranked deals (SKUs + links)
± score /100 + band
5+1
public platforms, plus Shopee's own search data
~70%
of raw trends auto-dropped as non-shoppable
/100
Opportunity Score on every survivor
<24h
from trend spike to creator brief
01

Problem & opportunity

Why a manual, single-platform approach leaves money on the table.

Opportunity

An automated pipeline that ingests all five platforms nightly, discards the noise, and hands Ops a ranked shortlist of scored product opportunities — each already mapped to a Shopee niche and a ready-to-paste search keyword — before the market has moved.

02

The signal model

Each source occupies a distinct stage of a demand funnel, from first whisper to money at the till. We don't treat their numbers as equal — we treat them as different grades of evidence, and weight them accordingly in the score.

Platform / stageWeightRole in the decision
EmergenceThreads
0.6×
Leading indicator — what's bubbling up
Early conversation and sentiment, often before search volume forms. Thin in Vietnam today, so weighted low but valuable as a first whisper.
ResearchYouTube
0.9×
Consideration — people are evaluating
Reviews, unboxings, hauls and tutorials mean a category is in an active buying cycle, not just being talked about.
IntentGoogle Search
1.0×
Demand validation — are they actively searching?
Trending Now plus rising related queries confirm quantified pull. The backbone number and the best source of long-tail keyword variants.
ProofFacebook
1.0×
Monetisation proof — money is already moving
Ad Library shows which products advertisers are spending on right now; buy/sell groups show grassroots demand. Confirms a market that already pays.
Discovery → buyTikTok
1.2×
Commercial confirmation — native product demand
Creative Center trends plus TikTok Shop best-sellers are the closest thing to live purchase data on the open web.
ConversionShopee search
1.5×
On-platform intent — demand at the till
Shopee's own top searches, rising keywords and autocomplete are people shopping on the shelf you sell from. No inference required, and no other MCN signal is closer to a transaction. Highest weight, and the final validator for every seed keyword.
Rule

Shopee rising search + any one upstream platform fast-tracks straight to a brief — demand is already at the till and you only need the story. Google intent + one of {YouTube research, TikTok commercial} clears the bar without it. A single-source spike with no commercial echo stays noise until a second source confirms it.

Supply gap

Shopee search does double duty: paired with catalogue depth it exposes the gap between demand and supply. Rising Shopee searches against thin, poorly-listed or out-of-stock results is the highest-margin signal in the whole system — real buyers, no competition. Flag these separately; they outrank a bigger trend in a saturated category.

03

Pipeline architecture

A nightly batch job: ingest everything, normalise to one shape, filter the noise, map survivors to product fields, score, and route. Ops wakes up to a ranked feed.

Stage 1IngestPull trend feeds from 5 platforms + Shopee top searches, geo=VN
Stage 2NormaliseOne schema; merge the same trend seen across sources
Stage 3ClassifyCommercial-intent filter — drop news and noise
Stage 4MapTrend → need → niche + products → seed keyword
Stage 5ValidateCheck keyword + supply gap against live Shopee search
Stage 6ScoreOpportunity Score /100, weighted by source
Stage 7Attach dealsJoin the product feed — top SKUs per opportunity (§07)
Stage 8RouteRanked feed → Ops review → creator brief
↳ dropped at stage 3 lottery · match scores · arrests · politics · obituaries · gold & crypto prices — archived rather than deleted, to train the classifier.
Build first

Stages 3 and 4 are the product; everything else is plumbing you can assemble from off-the-shelf tools. Stage 3 decides what is worth money, Stage 4 decides which money — the exact niche, products and keyword. Build and tune these two before widening the source list.

Shopee ×2

Shopee enters the pipeline twice, deliberately. At Stage 1 it's an input — its own top and rising searches are trend signal in their own right, and can surface an opportunity no public platform shows. At Stage 5 it's the validator — every generated keyword is checked against live results for volume, supply depth, price spread and commission before anything reaches a creator. Nothing ships on inference alone.

04

Data sources per platform

What we capture, how we pull it, and how often. Phase 1 favours official and free sources; paid analytics come online in Phase 2.

PlatformSignal capturedHow we pull itRefresh
Google SearchTrending Now feed; rising & related queries; interest over timeTrends CSV export · pytrends · SerpApi / DataForSEO Trends API for reliabilityDaily
TikTokTrending hashtags, sounds & creators; TikTok Shop best-sellers (VN)Creative Center (free) · Kalodata / FastMoss / EchoTik for Shop analyticsDaily
YouTubeMost-popular chart (regionCode=VN); review & haul velocity; autocompleteYouTube Data API v3 (official, free quota) · VidIQ / TubeBuddyDaily
FacebookProducts under active ad spend; buy/sell & deal-group demandMeta Ad Library API (free) · Content Library API · social listening for groupsDaily
ThreadsTrending topics; emerging Gen-Z conversation & sentimentThreads API (limited) · Talkwalker / Meltwater · manual scan in Phase 1Daily
Shopee anchorsource and validatorTop / rising search keywords; search autocomplete; category best-sellers & Flash Sale; trending affiliate productsShopee Ads keyword planner · search autocomplete endpoint · Affiliate & Open Platform API · seller-centre category reportsDaily
Shopeeenrichment passSupply depth, listing quality, stock, price bands, commission % per candidate keyword — the supply-gap calculationShopee Affiliate / Open Platform API · category catalogueOn demand
Shopee product feed internalour own big dataSKU-level sales, 6-month sales trends, commission, price, ratings, shop tier, category path — the deal layerInternal big-data platform (already in place) — see §07Daily
Reality check

Google and Facebook have no official "trending topics" API, and Threads' trending data is thin in Vietnam. Shopee's richest keyword data sits behind the Ads keyword planner and Seller Centre rather than a clean public API — so plan for an authenticated seller/affiliate account and a scraping-tolerant fallback for autocomplete. Budget for third-party providers (SerpApi, DataForSEO, Kalodata, a social-listening seat) and respect each platform's terms. These are line items, not free.

05

The conversion engine

The four moves that turn a raw trend string into the three output fields — Stages 3 and 4 in detail.

A

Classify commercial intent

Tag every trend and drop the dead ones. A lightweight LLM classifier plus keyword rules assign one label: news/event (drop), entertainment (weak — keep only if merchandisable), seasonal (strong), product-native (strongest, the query is nearly a product), evergreen-need (steady demand).

in raw term, sources, volumeout intent label + 0–25 intent scoreeffect drops ~70%
B

Infer the user need

For survivors, answer the job-to-be-done question: who is searching this, and what are they trying to accomplish? A football match becomes "fans want to watch and support at home." Admission results become "new students must equip a dorm and study setup." This is the empathy step that makes the product mapping non-obvious and defensible.

in classified trend + related queriesout one-line user need
C

Map to Shopee niche + products

Match the need against the Shopee category taxonomy to pick one niche and three to six concrete product types. A rules-plus-retrieval layer drives it: a curated need→category map for known patterns, semantic matching against the live catalogue for new ones. Output favours the 100k–500k₫ band and in-stock, high-commission items.

in user needout niche + product list, with price band & commission
D

Generate and validate the seed keyword

Produce the exact Vietnamese query a shopper would type into Shopee — not the news phrase. "việt nam vs campuchia" becomes áo đấu việt nam. Each candidate is then run against live Shopee search: does the keyword appear in Shopee's own rising searches, how many results come back, what's the price spread, the commission, and the supply gap? Kept, swapped or dropped on that evidence — never on the model's guess alone.

in niche + productsout 1–3 Shopee-validated seed keywords + supply-gap flag

Stage A cheat sheet

BucketTestActionExample from this week's VN feed
News / eventReports something; nothing to buyDrop & archivexổ số miền nam (2M+), arrests, obituaries
EntertainmentShow or celebrity; merch onlyKeep if merchandisableK-dramas, badly in love s2
SeasonalTime-boxed demand wavePrioritise — runway matterstra cứu xét tuyển (500K+), nghỉ lễ 2/9
Product-nativeQuery is nearly a productFast-trackiphone 15 pro, xe chạy điện, vua quạt
Evergreen-needSteady, recurring demandAlways-on inventorynước dừa, phone cases, fans
06

The Opportunity Score

Every survivor gets one number, 0–100, so Ops can rank a hundred candidates in seconds. Five weighted components; bar length shows each component's share.

Demand momentum
Cross-platform volume and growth rate. Rising beats big-but-flat.
30
Commercial intent
The Stage-A bucket. Product-native and seasonal score high; entertainment low; news is already gone.
25
Shopee fit & supply gap
Is the keyword rising in Shopee's own search? Real supply, in stock, in the 100k–500k₫ band — and scored up when demand outruns decent listings.
20
Monetisation
Affiliate commission % × expected order value. A high-commission niche outranks a slightly bigger one.
15
Content fit
Can a creator make a compelling video or live now, with enough runway to publish before the spike fades?
10
Score = 0.30·Momentum + 0.25·Intent + 0.20·ShopeeFit + 0.15·Monetisation + 0.10·ContentFit  ×  source-breadth multiplier (1.0–1.3)  ×  Shopee-confirmed (1.15)

Momentum sums each source's volume against its weight from §02, so the same raw number counts for more when it comes from Shopee or TikTok than from Threads. The Shopee-confirmed multiplier applies whenever the seed keyword is independently rising in Shopee's own search — the single strongest predictor in the model.

75–100
Go now
Auto-route to a creator brief. Ops confirms sourcing and assigns.
55–74
Test
Worth a low-cost creator test, or hold for a second platform to confirm.
0–54
Park
Held in the backlog and re-scored nightly — may climb as signals stack.
07

Product feed → deal suggestions

The trend layer stops at a keyword. Our internal Shopee product feed carries it the last mile — from "search this" to "push these exact SKUs." This section covers what the feed gives us, what it can't be trusted on, and how a deal gets scored.

What the feed contributes

Demand
Actual units moved, and the six-month shape of that movement — the only true sales evidence in the whole system.
historicalSoldunitsSoldmonthSalesTrends[]revenue
Economics
What the MCN actually earns per conversion. Commission is the gate — everything else is vanity without it.
commissionRatepriceminPricemaxPricesamePrice
Trust & safety
Whether it's safe to send a creator's audience here. Reputation damage costs more than any single deal earns.
ratingratingCountreviewRateshopTypeisOfficialShopisShopeeVerifiedfavorite
Join keys
The four-level category path is how a trend opportunity binds to real products. This is the hinge of the whole integration.
cateIdPathcateIdcateNames[]productName
Provenance
Listing age and origin. An eight-year-old listing's cumulative sales say nothing about demand this month.
genTimeapprovedDatecbOptionshopLocationbrandName
Delivery
What actually goes into the creator brief — the linkable product.
pidproductUrlimageUrlshopIdshopName
Missing

The feed has no stock level, no voucher or campaign data, and no shipping terms. That means "deal" in the discount sense can't be computed from this record alone — we can rank opportunity but not discount depth. Either add a live price-history snapshot to detect genuine markdowns, or restrict the wording in briefs to "trending product" rather than "deal." Recommend the former.

Data-quality gates — audited against your sample record

Product feeds lie in predictable ways, and the single record supplied demonstrates three of them. Every gate below exists because this record failed it.

pid 1482535296 — Ốp Lưng Điện Thoại iPhone Trong Suốt… 3 failures · quarantine + reject
revenue integrity ₫488.18m ÷ 488,180 = ₫1,000.00 exactly. Revenue is derived as price × units, not observed. It carries zero independent information and inherits every price error. Never rank on it
price plausibility ₫1.00k for an iPhone case, with minPrice = maxPrice and samePrice: true. A bait or decoy listing — real cases run ₫20k–80k. Ranking by revenue here understates true GMV by 20–80×. Quarantine
series integrity The six months sum to 528,51540,335 more than the all-time historicalSold of 488,180. April alone (490,740) exceeds the all-time total. Internally impossible. Quarantine
zero-month handling Two of six months are 0, interleaved with 31,985. That reads as a scrape gap or temporary delisting, not genuine zero demand. Treat zeros as missing, never as data. Impute, flag
affiliate viability commissionRate: 0.0. However well it sells, the MCN earns nothing. This is a hard reject, not a score penalty. Reject
listing recency genTime 2018-09-10 — nearly eight years old. Cumulative lifetime sales are not a demand signal for this month; only the cleaned recent window is. Downweight
shop trust Preferred + isShopeeVerified: 1, rating 4.96 across 97.64k ratings. The one dimension this record passes cleanly. Pass
Verdict — rejected at the commission gate, and quarantined twice over on data integrity. Worth stating plainly: the very first sample record from the feed would not reach a creator. That is the gates working, not a problem with the feed — but it does mean quality gating has to ship in Phase 1, not be deferred.

Derived fields to compute on ingest

Derived fieldComputationWhy it exists
units_intParse "488.18k" → 488180; handle k / m / b suffixes and the ₫ prefixEvery numeric arrives as a display string; nothing is sortable until parsed
recent_velocityMean of last 3 months, zeros treated as missing, anomalies winsorizedThe real demand number. Replaces historicalSold for ranking
momentumrecent 3 months ÷ prior 3 months, on the cleaned seriesRising beats big-but-flat — same principle as the trend layer
commission_valuecommissionRate × effective_price = ₫ earned per conversionThe number the MCN is actually optimising. A 3% cut of ₫400k beats 15% of ₫30k
price_percentileRank price within its cateId distribution across the full corpusDetects bait prices and outliers — you hold all Shopee data, so compute this per category
listing_age_daystoday − genTimeSeparates a fresh riser from an eight-year-old evergreen
quality_flags[]Set by the gates aboveDrives the quality multiplier; also the QA backlog for the data team

Hard gates — applied before any scoring

GateRuleSample record
Affiliate viablecommissionRate > 0Fail — 0.0
Creator-safe shopisOfficialShop = 1 OR (shopType ∈ {Mall, Preferred} AND isShopeeVerified = 1)Pass
Review credibilityrating ≥ 4.5 AND ratingCount ≥ 50 AND reviewRate within 3–35%Pass
Price plausibleprice within P10–P90 of its categoryQuarantine
Series integrityΣ months ≤ historicalSold AND max(month) ≤ historicalSoldQuarantine
Live listingNon-zero sales in at least 2 of the last 4 monthsMarginal

The Deal Score

Survivors of the gates are scored 0–100. This is a separate, product-level score — the Opportunity Score in §06 ranks trends, this ranks SKUs within a trend.

Sales velocity & momentum
Cleaned recent-3-month mean and its ratio to the prior three. Never raw historicalSold.
30
Commission value
₫ earned per conversion, as a percentile within the category. The MCN's actual P&L line.
25
Trust & conversion proof
Rating depth, review-rate sanity, shop tier, favourites. Protects creator credibility.
20
Price-band fit
Sits in the 100k–500k₫ impulse band, with a sane variant spread between min and max.
15
Trend match
Strength of the cateIdPath and semantic match to the parent opportunity's keyword.
10
DealScore = Σ(components)  ×  quality multiplier — clean 1.0 · flagged 0.8 · quarantined 0.0

Quality is a multiplier, not a component, and that is deliberate: a bad-data record with strong sales would otherwise average its way into a brief. Quarantine must be able to zero a deal outright.

Deal archetypes

Not every deal is suggested for the same reason, and different creators need different kinds. Each surfaced deal carries one archetype so the creator manager can match it to the right talent.

AMomentum riser
Sales accelerating sharply against a clean series. Highest upside, shortest window.
→ fast, reactive creators
BTrend-matched
Strong category and semantic match to a live Go-now opportunity from §06.
→ the default brief
CCommission arbitrage
Commission value well above its category median at comparable sales and trust.
→ margin-focused pushes
DSupply-gap filler
The §02 supply gap, resolved to SKU level: real demand, few credible listings.
→ highest margin, needs sourcing
EProven evergreen
Steady volume, deep ratings, no seasonality. Low ceiling, very low risk.
→ new or unproven creators

The join — where the two tracks meet

The trend pipeline and the product feed run as parallel lanes and meet at a single join. That join is the integration.

Lane ATrend signal
5 platforms + Shopee searchclassifyneedniche + keywordOpportunity Score
Lane BProduct feed
Shopee big dataparse & derivequality gateshard gatesDeal Score
JoinOpportunity × deals
match on cateIdPath + keyword semanticsattach top 3–5 SKUs per opportunitycreator brief with live links
Payoff

Before the join, a brief said "make a video about back-to-school, search balo laptop sinh viên." After it, the brief says "feature these four products, here are the affiliate links, this one is a momentum riser at ₫18k commission per sale." That difference is the whole reason to integrate the feed — it removes the creator's sourcing step entirely.

What a suggested deal looks like

IMG
Balo laptop chống nước 15.6" — ngăn chống sốc, cổng USB
289kcomm 8.5% = ₫24.6k/sale3mo 4.1k ↑ 2.3×4.87 · 12.4kMall
91A · Momentum riser
IMG
Đèn học LED chống cận — 3 chế độ, sạc USB, kẹp bàn
159kcomm 12% = ₫19.1k/sale3mo 2.8k ↑ 1.6×4.91 · 8.1kPreferred
84D · Supply-gap filler
IMG
Ốp Lưng Điện Thoại iPhone Trong Suốt Chống Sốc… — pid 1482535296
1.00kcomm 0% = ₫0/saleseries inconsistent★ 4.96 · 97.64kPreferred
Rejected at gate
08

Output & creator brief

One record per opportunity — the three headline fields the system exists to produce, plus the metadata Ops needs to act.

FieldMeaningExample value
trend_idMerged trend across platformsvn-2026-0812-backtoschool
sources[]Where it was seengoogle, tiktok, youtube, facebook, shopee
momentumVolume and growth, weighted by source500K+ · rising
shopee_confirmedKeyword independently rising in Shopee searchtrue
supply_gapDemand vs. quality listings availableModerate — 1.15× uplift
intent_bucketStage-A labelSeasonal
user_needOutput 1 — the job to be doneNew university students equipping a dorm and study setup
shopee_nicheOutput 2 — niche + productsDorm & study: laptop backpack, desk lamp, mini fan, storage
seed_keywordOutput 3 — paste into Shopee
deals[]Output 4 — ranked SKUs attached from the product feed4 products · top Deal Score 91 · ₫24.6k comm/sale
score0–100 plus band88  Go now
windowSeasonal runwaynow → mid-Sep
Brief

Any Go now record spawns a one-page creator brief automatically: the hook (why it's trending), the user need, the seed keyword, and the ranked SKUs from §07 with live affiliate links, prices and commission per sale — plus a publish-by date. The creator never sees the pipeline, and never has to source a product themselves; they just film.

09

Worked examples

The engine run end to end on four signals from this week's Vietnam feed — including one only Shopee's own search data would have caught — plus one the filter correctly kills. Click any keyword to copy it.

01Back-to-school · new university students 88Go now
Cross-platform signal
Google — tra cứu xét tuyển 2026 500K+, khai trường 20K+ YouTube — dorm-setup and laptop reviews TikTok — #nhậphọc hauls · FB — laptop deal ads Shopee — "balo laptop" rising in top searches; dorm bundles climbing category charts
User need
Students just admitted are leaving home and must equip a dorm and study setup before September.
Shopee niche + products
Dorm & study essentials — laptop backpack, desk lamp (đèn học), rechargeable mini fan, electric kettle, storage boxes, laptop stand.
Seed keywords
02ASEAN / AFF Cup 2026 football 82Go now · time-boxed
Cross-platform signal
Google — việt nam vs campuchia 500K+, Bukit Jalil semi-final 20K+ YouTube — highlights and "where to watch" TikTok — match clips, jersey hauls · FB — TV-box & jersey ads Shopee — "áo đấu việt nam" spiking; supply thin on kids' sizes
User need
Fans want to support the national team and watch matches at home or at viewing parties.
Shopee niche + products
Fan gear and home viewing — VN team jersey, hand flags, LED cheer sticks, Android TV box or streaming stick, mini projector, snack & cooler kit.
Seed keywords
03Livestream-commerce gear 79Go now
Cross-platform signal
Google — nguyễn phương hằng livestream 100K+ ("mega live") Google & TikTok — tiktok live 50K+ YouTube — "livestream setup" reviews · FB — seller groups Shopee — "đèn livestream" steadily rising; listings crowded but low-quality
User need
Sellers and creators want to equip themselves to livestream-sell as "mega live" goes mainstream. You sell into your own creator network.
Shopee niche + products
Livestream kit — ring light or LED panel, clip-on wireless mic, phone tripod, gimbal, green screen, phone cooling clip.
Seed keywords
04Heat & storm season Shopee-native find 76Go now
Cross-platform signal
Shopee — the origin signal: "quạt tích điện" and "áo mưa bộ" both climbing top searches, with a clear supply gap on mid-price rechargeable fans Google — only weak ambient support (vua quạt 10K+, nhiệt độ, bão) TikTok / YouTube / FB — nothing meaningful
User need
Coping with a heatwave and commuting by motorbike through storm season — practical, urgent, low-consideration purchases.
Shopee niche + products
Seasonal comfort & rain gear — rechargeable and misting fans, mini air cooler, cooling towel, two-piece poncho, waterproof phone and bag covers.
Seed keywords
Why this one matters No public trend platform would have surfaced this at a scoreable level. Shopee's own search data found it, and the supply gap is what pushed it past 75. This is the case that justifies adding Shopee as a source rather than only a validator.
xổ số miền nam — 2M+ searches Dropped at stage 3
Why it dies
The biggest number in the entire feed, and worth nothing. It's a lottery-results lookup: no product, no purchase intent, no cross-platform commercial echo. The classifier archives it and moves on — which is precisely how the filter earns its place against raw volume.
10

Rollout, roles & KPIs

Ship a working loop in two weeks on two platforms, then widen. Don't wait for all five to prove the model.

Phase 1 · weeks 1–2

Prove the model

Google + TikTok + Shopee
  • Semi-automated: pull feeds into a sheet
  • Shopee in from day one — top searches manually, as source and validator
  • Ship the product-feed quality gates — the sample record proves they can't wait
  • Hand-tune the Stage-A classifier and need→niche map
  • Manual join: attach 3–5 SKUs per opportunity by hand
  • Brief 3–5 creators, measure hit rate
Phase 2 · weeks 3–6

Automate and widen

+ YouTube + Facebook Ad Library
  • Nightly ingestion and scoring engine
  • Automate the opportunity × deals join on category path
  • Deal Score live; archetypes assigned automatically
  • Ranked dashboard and auto-generated briefs with links
  • Move from spreadsheet to database
Phase 3 · weeks 7+

Sharpen and learn

+ Threads + feedback loop
  • Add social listening for early signal
  • Feed conversion results back to re-weight the score
  • Auto-detect recurring seasonal patterns
  • Self-serve feed for the whole creator team

Who runs it

Data / pipeline engineer
Builds and maintains ingestion, scoring, the join and the dashboard.
one-time build + upkeep
Data quality owner
Works the quarantine backlog from §07 — bait prices, broken sales series, stale listings.
weekly · new in Phase 1
Trend analyst (Ops)
Reviews the ranked feed, approves Go-now picks, tunes the classifier.
daily · ~20 min
Category lead
Sources products on Shopee; confirms stock, price and commission.
daily
Creator manager
Dispatches auto-briefs and matches each trend to the right creator.
daily

How we know it works

Opportunities per week
≥ 15 scored Go / Test
Hit rate
% of picks that drive GMV
Time to brief
< 24h from spike
GMV per opportunity
trending up over time
Creator adoption
% of briefs published
Noise-drop accuracy
false drops < 5%
Deal gate pass rate
% of feed surviving quality gates
Commission per brief
₫/sale on attached SKUs
The moat

The feedback loop in Phase 3. Once you track which scored picks actually converted to GMV, the score stops being a guess and becomes a model trained on your own network's results — something no off-the-shelf trend tool can replicate.