All work Social-Commerce-as-a-Service Crop science

Farmers didn’t mind the AI. They minded the accent.

A crop-science company sells through wholesalers, who sell to local retailers, who sell to farmers. The retailers were already posting on TikTok and going nowhere. I ran the research to find out why, then built live channels to test what actually moves a farmer.

RoleResearch design, workshops, factor testing, product, prototype
Reach~500 farmers in phase one, ~3,000 across eight markets
MethodInterviews, focus groups, local events, live channel experiments
BuiltAI content pipeline, channel model, vendor spec
VERSION A · GENERIC NEUTRAL VOICE · STOCK MUSIC FLAT VERSION B · LOCALISED REGIONAL ACCENT · LOCAL MUSIC GREW
AI recognition test
Same script. Same claim. Different delivery.
Spotted it as AImost did
Objected to italmost none
Preferredversion B
Reason given“sounds local”
The synthetic part was never the objection. The foreign part was.
TEST 02 The same script. One grew. FIG. 01 — WHAT CHANGED WAS ACCENT, VOCABULARY AND MUSIC. NOTHING ELSE.
01 · the commercial chain

The company never meets the farmer

The company sells to the wholesaler, who sells to the local retailer. Only the retailer meets a farmer. So demand created at the far end has to travel back through three sets of incentives before it looks like revenue, and TikTok sits outside all of it.

COMPANYMAKES THE PRODUCT WHOLESALERTHE ACTUAL CUSTOMER LOCAL RETAILERHAS THE RELATIONSHIP FARMERDECIDES WHAT GOES ON THE CROP SELLS TOSELLS TOSELLS TO TIKTOK EXPOSURE, NOT CHECKOUT FARMER SEES IT, LEARNS WHAT IT DOES, WATCHES A NEIGHBOUR USE IT THE BREAK TO BUY, THE FARMER HAS TO GO AND FIND THE RETAILER THEMSELVES. DEMAND TRAVELS BACK UP THREE STEPS BEFORE IT LOOKS LIKE REVENUE FIG. 02 — WHERE MONEY MOVES, AND WHERE ATTENTION LEAKS OUT
02 · the retailers

They were already posting. Three times a day, and going nowhere.

The brief implied retailers couldn’t make content, and several had been producing steadily for months. When we asked what happened after they posted, four things came back.

REASON 01

They don’t know how TikTok works

What the algorithm rewards, when to post, why one video reaches ten thousand and the next reaches forty. They were treating it like a noticeboard.

REASON 02

The call to action goes nowhere

A farmer who wants the product has to work out who posted it, where they are, and how to reach them. Most don’t bother.

REASON 03

The content doesn’t sound like anyone local

Templates handed down from a national team, in a register that reads as an outsider. Farmers scroll past it.

REASON 04

They can’t see any effect on sales

Nothing connects a view to someone walking in. Without that, posting is a favour to head office rather than a thing worth doing.

POSTS PER DAY — CONSISTENT, HIGH EFFORT FOLLOWERS — ALMOST FLAT WEEK 1WEEK 8 WHAT WE ASKED THEM DO YOU USE TIKTOK, AND HOW? WHAT DO YOU POST, AND HOW OFTEN? WHICH CHANNELS DO YOU LIKE, AND WHY? WHAT HAPPENS AFTER SOMEONE COMMENTS? HOW DOES ANYONE FIND YOUR SHOP? IT BECAME A SHOPPING LIST OF ACCOUNTS THE CHANNELS THEY ADMIRED TOLD US MORE THAN THE CHANNELS THEY RAN. FIG. 03 — EFFORT WAS NEVER THE PROBLEM
03 · how we reached farmers

We did not run workshops with farmers

A farmer sitting opposite a multinational agrees with the multinational. We went to where they already were, in formats they were already comfortable with, and we handed the room to someone local. The workshops happened later, with the field teams, once we had something to analyse.

HOW THEY GOT THERE VIA THEIR RETAILER VIA THE FIELD TEAM LOCAL EVENTS WE HOSTED MARKETING OUTREACH THREE FORMATS, CHOSEN BY WHAT THE CONVERSATION NEEDED EVENT · UP TO 20 SOCIAL ENOUGH THAT PEOPLE SAY WHAT THEY THINK. RANGE, NOT DEPTH. INTERVIEW · 2–3 IN PERSON OR BY CALL. THIS IS WHERE THE PHONE CAME OUT. FOCUS GROUP · UP TO 4 SMALL ENOUGH THAT NOBODY PERFORMS. SCALE ~500 PHASE ONEDISCOVERY AND THE AI TESTS 50 TEST GROUPWHERE THE CHANNEL EXPERIMENTS RAN ~3,000 GEOGRAPHIC EXPANSIONACROSS EIGHT MARKETS IN ASIA THE DECISION THAT MADE THE DATA WORTH HAVING A FARMER SITTING OPPOSITE A MULTINATIONAL AGREES WITH THE MULTINATIONAL. SO A LOCAL TEAM MEMBER HOSTED EVERY SESSION — RIGHT LANGUAGE, RIGHT ACCENT, FROM NEARBY. WE WERE IN THE ROOM AND NOT THE VOICE IN IT. COST US SCRIPT CONTROL. BOUGHT US HONEST ANSWERS. FIG. 04 — THE RESEARCH PROGRAMME
04 · the finding

We built a test to catch them out. They passed, and shrugged.

We wanted to know two things. Can farmers tell AI content from real content, and what gives it away.

So we made a recognition test, several versions of the same material with different tells, and a conversation afterwards about which cues they noticed. Most of them clocked it, which I expected.

What I hadn’t expected was that it didn’t bother them. The reasoning was consistent across sessions: it looks realistic enough, it feels local, and it tells me something useful. Farmers gave three reasons and none of them was about who made the video.

We had been treating authenticity as the thing to protect. Asked why they preferred the localised version, farmers said it sounded local.

NOTICED THE AI AND CARRIED ON WATCHING SCROLLED PAST WITHIN ABOUT TWO SECONDS MOUTH MOVEMENT SLIGHTLY OFF VOICE CADENCE TOO EVEN LIGHTING TOO CLEAN SAME BACKGROUND EVERY TIME SYNTHETIC — TOLERATED WRONG ACCENT“NOT FROM HERE” WORDS THEY DON’T USESCIENTIFIC OR CAPITAL-CITY TERMS MUSIC THAT DOESN’T FITGENERIC STOCK BEDS PRESENTER LOOKS FOREIGNDRESS, SETTING, FACE FOREIGN — REJECTED HOW WE RAN IT SEVERAL VERSIONS OF THE SAME MATERIAL, DIFFERENT TELLS IN EACH WE DIDN’T ASK “IS THIS AI” FIRST — WE ASKED WHAT THEY THOUGHT OF IT THEN ASKED WHICH CUES GAVE IT AWAY, AND WHETHER IT MATTERED RUN ACROSS FORMATS, HOSTED BY THE LOCAL TEAM MEMBER EACH TIME CONSEQUENCE — STOP SPENDING ON REALISM. SPEND ON ACCENT, VOCABULARY, MUSIC, TONE. FIG. 05 — TWO LISTS WE EXPECTED TO BE THE SAME LIST
05 · unpacking it

“Local” breaks into parts a pipeline can set

We broke localisation into parts a pipeline could set, vary and test independently.

01 · ACCENT

Regional, never national

Farmers named a capital-city accent as a reason they scrolled past. This was the single strongest lever we found.

02 · VOCABULARY

The name they actually say

Rầy nâu, not Nilaparvata lugens. One unfamiliar word and they are gone.

03 · TONE

Closer to a TV show than a lesson

Friendly, often funny, sometimes argumentative.

04 · APPEARANCE

Dress, setting and face from the area

Dress and setting came up alongside accent in the reasons farmers gave.

05 · MUSIC

What plays locally, this month

Generic beds get skipped. The audio shortlist refreshes from trend signal rather than a brand library.

06 · FORMAT

Short, hooked, something happening

Not a piece to camera. The opening decides whether the rest is watched.

WHY THIS MATTERS MORE THAN IT LOOKS

Localisation becomes something the pipeline can set

Each channel stores six settings, and every asset it produces inherits them. That is the difference between one national voice that reads as an outsider and a local one per province at roughly the same cost, and it is the whole reason this scales to eight markets.

06 · factor testing

The lab was a live platform

Too many variables to test one at a time, one season, and no appetite for a study that produced a report instead of growth. We had permission to build real channels, so the test channels were live and produced growth as well as results.

PROBLEM 01

You can’t hold the algorithm still

Two identical channels do not grow identically, so we ran conditions across cohorts rather than pairs, and set a noise band first using channels running no condition at all.

PROBLEM 02

Every factor interacts with every other

A great hook on a channel with the wrong accent still fails. Tested separately, the factors gave effects that did not hold when combined. Grouping into categories measured them at the level they actually operate.

PROBLEM 03

A season and a budget

A full factorial would have taken longer than anyone would wait, and most cells would have been uninteresting. Weight the categories first, then spend the precise tests only inside the one that moved.

STAGE 1 — WEIGHT THE CATEGORIES LOCALISATION STRONGEST BY SOME DISTANCE CALL TO ACTION SECOND — AND THE ONE WE COULD FIX FASTEST HOOK / OPENING MODEST POSTING RHYTHM INSIDE THE NOISE BAND — NO RESULT CHANNELS BUILT WITH THE CATEGORY APPLIED, AND OTHERS DELIBERATELY WITHOUT IT. SAME CROP, SAME REGION, SAME WEEK, SAME VOLUME. STAGE 2 — GO INSIDE THE WINNER LOCALISATION NOW TESTED PART BY PART, ON CHANNELS ALREADY TUNED ACCENTCARRIED IT VOCABULARYCLEAR EFFECT MUSICCLEAR EFFECT APPEARANCESMALLER
the honest limit
This tells you which category moves growth. It does not tell you which moves sales — that measurement didn’t exist yet, which is exactly why the call-to-action work mattered more than the content work.
FIG. 06 — EXPERIMENT DESIGN. THE TEST CHANNELS WERE REAL, SO IT PRODUCED GROWTH AS WELL AS ANSWERS.
07 · what each finding bought

Research is only worth the decisions it changes

How we know

Recognition test across formats, plus the AI question asked directly after the material rather than before it.

What it says

Farmers spot AI and don’t object, provided it feels local and tells them something useful.

What we did

Stopped investing in realism. Redirected that effort into accent, vocabulary, music and tone. Avatar likeness went to the constraint layer rather than the roadmap.

How we know

Two-stage factor test on live channels, cohorts rather than pairs, noise band established from unconditioned channels first.

What it says

Localisation moves growth more than any other category. In the within-category test, accent ranked above vocabulary, music and appearance.

What we did

A channel became a localisation profile, six parameters stored against it and inherited by every asset. Regional voice per market rather than one national voice.

How we know

Retailer interviews about their own channels, and what happens after a farmer comments.

What it says

They post enough. They lose people at the point of wanting the product, because nothing tells the farmer where to go.

What we did

The call to action became a working component rather than a line of copy, named shop, QR, comment routed to a thread with the context attached.

How we know

Growth volume needed, measured against what TikTok tolerates before an account looks automated.

What it says

Below ten posts a day the channels did not grow. Above thirty, or at regular intervals, accounts were flagged as automated.

What we did

Human touchpoints and jittered timing built into the pipeline. Human touchpoints were in the pipeline because TikTok flags accounts that post without them.

The insight we couldn’t use

They loved a channel because the presenter looked like a celebrity

One account kept coming up. The reason turned out to be that the AI avatar resembled a well-known local figure. It was a private channel, and we obviously couldn’t generate a presenter who resembles a real person.

The finding could not be used. It went into the guardrail conversation instead, and it’s the reason likeness ended up explicitly restricted in the constraint layer.

What I changed about how I listened

The tangents were where the pattern was hiding

Farmers talk at length about channels they enjoy, and a lot of it connects to nothing you can build. I treated that as noise for the first few sessions.

The channel-by-channel enthusiasm was where localisation first showed up, even when the specific reason given was unusable. The discipline was separating what we learned from what we were allowed to do about it, and holding the second conversation later with legal in the room.

From what they said to what we built

A farmer with a phone was already there. Part II is the machinery that produced that video, and the single point in it where a person has to stand.

Part II

The pipeline, and where a person has to stay in it

The research found that localisation moved farmers and that the call to action was broken. This part is how that became a working system. what each tool does, where the human sits, and why the architecture looks like this rather than one model doing everything.

01 · REASONING CLAUDE — SCRIPT, CLASSIFY, CHECK 02 · RENDERING ELEVENLABS · AVATAR · CREATOMATE 03 · ORCHESTRATION N8N — QUEUE, TIME, RETRY, POST HUMAN PASSES THROUGH ALL THREE FIG. 09 — THE STACK, PULLED APART
11 · service blueprint

What the farmer sees, and the eleven things happening behind it

Drawn as a blueprint because the interesting part is the distance between a farmer tapping a video and a retailer knowing they exist. Everything below the second line was invisible before.

FARMER ON SCREENLINE OF INTERACTION AI PIPELINELINE OF VISIBILITY PEOPLELINE OF INTERNAL INTERACTION DATA SCROLLS EVENING, OWN FEED VIDEOLOCAL VOICE, LOCAL MUSIC GENERATEDCLAUDE → 11LABS→ CREATOMATE AGRONOMISTCLEARED THE CLAIM MEDIA LIBRARY, TAGGED STOPS RECOGNISES THE PROBLEM HOOK LANDSFIRST TWO SECONDS WATCH SIGNALBACK INTO THE MODEL WATCH-THROUGH BY REGION COMMENTS ASKS SOMETHING REAL REPLYWITHIN THE HOUR CLASSIFYNOISE / QUESTION /INTENT / COMPLAINT SERVICE TEAMTAKES THE FLAGGED ONES INTENT LOG TAPS THROUGH WANTS THE PRODUCT END CARDNAMED SHOP + QR ROUTEMATCH PROVINCE TONEAREST RETAILER CHANNEL → RETAILER MAP MESSAGES ZALO OR LINE THREAD OPENSWITH CONTEXT ATTACHED CARRY CONTEXTWHICH VIDEO, WHICH PEST RETAILERANSWERS AS THEMSELVES CONVERSATION RECORD BUYS IN THE SHOP, IN CASH QR SCANNEDAT THE COUNTER ATTRIBUTIONSTILL PARTIAL SALE, IF THE CODE IS USED THE PIECE THAT DIDN’T EXIST BEFORE FIG. 10 — SERVICE BLUEPRINT
12 · the pipeline

We did not use one model for everything

Each tool here is doing the narrow thing it is good at. The joins are what took the longest to settle. what gets passed along, what gets held back, and where a person can stop it.

01 SIGNAL TRENDS, COMMENTS, PEST MENTIONS, SEARCH SCRAPE + LISTEN 02 CLAUDE SCRIPT IN THE CHANNEL’S REGISTER · HOOK · CTA REASONING 03 ELEVENLABS VOICE IN THE REGIONAL ACCENT, NOT THE CAPITAL THE LOCALISATION LEVER 04 ASSEMBLY CREATOMATE TEMPLATE + TAGGED FOOTAGE + CAPCUT RENDER 05 CHECK CLAIMS, LIKENESS, RATE LANGUAGE, LOCAL NAMES HUMAN + CONSTRAINT PASS 06 N8N QUEUE, STAGGER, RETRY, TIME IT LIKE A PERSON ORCHESTRATION 07 PUBLISH 10–30 A DAY ACROSS CHANNELS, NOT PER CHANNEL TIKTOK PERFORMANCE GOES BACK INTO SIGNAL — WHAT LANDED, WHERE, IN WHICH REGISTER CHANNEL PROFILE INJECTED HERE ACCENT · VOCABULARY · TONE · APPEARANCE · MUSIC · FORMAT GLOBAL CONSTRAINTS — HIDDEN, NOT EDITABLE LIKENESS · CLAIM LIMITS · WHAT THE MODEL MAY NOT ASSERT · BEHAVIOUR WHEN UNSURE FIG. 11 — THE PIPELINE. TWO PLACES A PERSON CAN STOP IT, MARKED IN AMBER.
13 · localisation

Turning “sounds local” into six things a machine can set

Each of the six parts of localisation had to become a parameter with a tool behind it, otherwise it stays a workshop finding.

Accent ranked first in the within-category test and took the longest to build. A national voice model gives you the capital city, which reads as an outsider in the delta. Switching from a national to a regional voice produced the largest measured change.

Vocabulary needed a lookup rather than a model instruction. Left alone, the model reaches for the scientific term. So the pest lexicon sits outside the prompt as a table, per region.

Set the region and the crop, and everything downstream inherits it.

REGION + CROP THE ONLY TWO INPUTS ACCENTREGIONAL VOICE ID ELEVENLABSVOICE PER REGION, NOT PER COUNTRY VOCABULARYPEST LEXICON LOOKUP TABLE, NOT PROMPTRẦY NÂU, NOT NILAPARVATA LUGENS TONEPERSONA IN THE PROMPT CLAUDEFRIENDLY · FUNNY · ARGUMENTATIVE APPEARANCEAVATAR SET PER MARKET AVATAR + WARDROBELIKENESS RESTRICTED BY CONSTRAINT LAYER MUSICLOCAL AUDIO SHORTLIST TRENDING, BY MARKETREFRESHED WEEKLY FROM SIGNAL FORMATTEMPLATE CHOICE CREATOMATE / CAPCUTSHORT, HOOKED, SOMETHING HAPPENING FIG. 12 — THE LOCALISATION ENGINE TWO INPUTS IN. SIX PARAMETERS OUT. EVERY ASSET INHERITS THEM.
14 · fixing the last two centimetres

The call to action stopped being a line of copy

Retailers were losing farmers at the point of wanting the product. The old version ended with something like “contact us”. The farmer then had to work out who “us” was, where they were, and how to reach them.

BEFORE VIDEO ENDS“CONTACT US” FARMER SEARCHESFOR A NAME THEY DON’T HAVE LOST HERE AFTER — FOUR THINGS, EACH DOING A DIFFERENT JOB 01 · THE END CARD KNOWS THE SHOP GENERATED PER CHANNEL, NOT PER VIDEO. NAME, DISTRICT, QR THAT RESOLVES TO THAT RETAILER’S STOCK. QR SCANS AT THE COUNTER, WHICH IS THE ONLY ATTRIBUTION WE GET. 02 · THE COMMENT BECOMES THE DOOR CLAUDE READS INTENT IN THE REPLY. A QUESTION GETS AN ANSWER. “WHERE CAN I BUY THIS” GETS A THREAD OPENED. COMMENT → CLASSIFY → ZALO DEEP LINK 03 · GEOGRAPHY DECIDES THE ROUTE PROVINCE FROM THE CHANNEL, OR ASKED ONCE IN THE THREAD. MATCHED TO THE NEAREST RETAILER WHO STOCKS IT. CHANNEL → PROVINCE → SHOP 04 · CONTEXT TRAVELS WITH THEM THE RETAILER OPENS A THREAD THAT ALREADY SAYS WHICH VIDEO, WHICH PEST, WHICH CROP, WHICH PROVINCE. THEY START THE CONVERSATION ALREADY KNOWING SOMETHING. NONE OF THIS IS CLEVER. IT IS THE PART EVERYONE SKIPS BECAUSE IT ISN’T THE FUN BIT. FIG. 13 — CTA REPAIR
15 · the experiment, properly

How you run a factor test when your lab is a live platform

The awkward part of testing on real channels is that TikTok is not a controlled environment. The algorithm moves, seasons move, and a single viral post can swamp a week of careful work. Here is what we did about that.

Problem

You cannot hold the algorithm still

Because two identical channels do not grow identically, single-channel comparisons prove nothing, and any test needs several channels per condition and a tolerance for noise.

We ran conditions across cohorts rather than pairs, and treated anything inside the noise band as no result.

Problem

Every factor interacts with every other one

A great hook on a channel with the wrong accent still fails. Testing factors independently would have given us a set of effects that don’t hold when combined.

Grouping into categories first meant we measured the thing at the level it actually operates.

Problem

Time. There was one season and one budget.

A full factorial would have taken longer than anyone was going to wait, and most of the cells would have been uninteresting.

Weight the categories, then spend the precise tests only inside the one that moved.

COHORT DESIGN STAGE 1 · CATEGORY TOP ROW: CATEGORY APPLIED BOTTOM ROW: DELIBERATELY WITHOUT SAME CROP, SAME REGION, SAME WEEK, SAME POSTING VOLUME WHAT WE READ FOLLOWER GROWTH RATE WATCH-THROUGH SAVE AND SHARE COMMENT VOLUME AND TYPE CTA FOLLOW-THROUGH NOISE BAND ESTABLISHED FIRST, FROM CHANNELS RUNNING NO CONDITION STAGE 2 · INSIDE LOCALISATION ACCENTVOCAB MUSICLOOK RUN ON CHANNELS ALREADY TUNED FOR LOCALISATION, SO THE BASELINE IS ALREADY GOOD AND THE DIFFERENCE IS ATTRIBUTABLE. ACCENT CARRIED THE CATEGORY
what the test bought
Two decisions, both expensive to get wrong
Buildchannel = profile
BuildCTA as a component
Don’t buildposting-rhythm tooling
Side effectthe channels grew
THE HONEST LIMIT: THIS TELLS YOU WHICH CATEGORY MOVES GROWTH. IT DOES NOT TELL YOU WHICH MOVES SALES. THAT MEASUREMENT DID NOT EXIST YET, WHICH IS WHY THE CTA WORK MATTERS MORE THAN THE CONTENT WORK. FIG. 14 — EXPERIMENT DESIGN
16 · the loop

Where AI actually earns its place

Generation is the obvious use. Plenty of tools make video. What happens after publishing changes what gets drafted next.

A comment tells you a pest is showing up in a province. A watch-through curve tells you the hook worked and the middle didn’t. A call to action left unfollowed shows the end card is wrong for that region.

All three feed the same place, and the model uses them to decide what to draft tomorrow.

A person closes the loop by deciding. The system does not act on its own reading.

PUBLISH10–30 A DAY SIGNALS COME BACK WATCH CURVE · COMMENT TYPE SAVES · CTA FOLLOW-THROUGH A PERSON READS IT WEEKLY, WITH THE AGRONOMIST IN THE ROOM NEXT DRAFTS CHANGE HOOK, REGISTER, TOPIC, END CARD, MUSIC CHANNEL PROFILE UPDATED, NOT OVERWRITTEN FIG. 15 — THE LOOP. IT CLOSES THROUGH A PERSON, ON PURPOSE.
17 · the joins

What gets passed between tools, and what gets held back

Most of the design work in a pipeline like this is in the handoffs. These are the ones that took the longest to settle.

JoinWhat passesWhat deliberately doesn’tWhy
Signal → ClaudeTopic, region, crop, spread of the signalRaw engagement countsA loud trend and a real problem are different things. Passing the volume made the model overclaim.
Claude → ElevenLabsScript, register, pacing marksAnything unreviewed with a claim in itOnce it has a voice it sounds finished, and finished things get published.
Claude → assemblyScene list, footage tags, caption textProduct names in the visual layerVisual product placement is a regulated claim in several of these markets.
Assembly → checkRendered draft, plus what the model was unsure aboutAn automatic passThe uncertainty flag is the thing that makes review fast enough to survive.
Check → n8nApproved asset, channel, earliest post timeAn exact scheduleExact schedules look like a bot. n8n jitters the timing itself.
Comments → routingIntent class, province, video contextAny generated agronomic answerThe system opens the door. The retailer walks through it.
Part III

What we shipped, and what the system should become

Eleven surfaces went live. All but one generate or manage content; the one that routes a decision to an expert was never built. This part sets out where the intelligence belongs. six capabilities that make the system learn per region and cost less with each market.

Built & running Designed, not built Further out
TIER 1 · MAKE THINGS GENERATE VIDEO, VOICE, CAPTIONS, POSTS. THIS IS WHAT SHIPPED. EVERY COMPETITOR CAN DO IT WITHIN A YEAR. TIER 2 · CONNECT THINGS ROUTE A COMMENT TO A RETAILER. CARRY CONTEXT INTO A THREAD. CLOSES THE GAP BETWEEN A VIEW AND A CONVERSATION. TIER 3 · DECIDE THINGS ALLOCATE EFFORT ACROSS VARIANTS AND REGIONS, CONTINUOUSLY. THE FACTOR TEST, RUNNING BY ITSELF, FOREVER. TIER 4 · TRANSFER THINGS WHAT WORKED IN ONE PROVINCE WARM-STARTS THE NEXT. MARKET NINE COSTS A FRACTION OF MARKET ONE. VALUE THAT COMPOUNDS FIG. 16 — THE CAPABILITY LADDER. WE SHIPPED THE BOTTOM RUNG.
18 · what shipped

What shipped, and what I would say about it now

These went live during the sprint or were specified for the vendor build. The last column is what I would say about each one now, with the benefit of having watched them get used.

SurfaceStateWhat it doesWhat I’d say about it now
OnboardingBuiltCountry, language and role. Personalised views for retailer, service and content teams.Role selection is where governance should start. Who can approve what belongs here, not buried in a settings page.
Trend analyticsBuiltPest, disease, treatment and competitor mentions. Audience matching by influencer, keyword and region.It follows trends. The version that matters gets ahead of them — see capability 03.
Virality LabBuiltContent suggestions with a score, recommended music, posting time, tone and length.The score was never validated against anything commercial. A number on a screen becomes a target within a week. Replace it or remove it.
Channel dashboardBuiltPortfolio view across channels with stage, followers, engagement and per-channel detail.Stage should gate capability rather than describe progress. A channel without a named expert shouldn’t be able to go live.
Growth automationBuiltEach channel as a micro-brand. Goals, repost and engagement recommendations, channel settings.The localisation profile belongs here. It currently holds settings; it should hold the six parameters and inherit them downward.
Content creationBuiltFive ways in, from an agronomist voice memo to a structured brief. Under five minutes to a finished video.The strongest thing we built. Also where the exaggeration hook shipped, which is the thing I’d take out first.
Media libraryBuiltUpload, auto-tagging by crop, pest, disease and treatment.Nothing tracks rights on scraped footage. That needs solving before this scales past pilot.
Content libraryBuiltEverything published, filterable, remixable, with per-post performance.Remix lineage is missing. You can’t trace a claim back to the source it came from, which you need the first time someone asks.
Funnel conversionBuiltSix stages with AI-generated tasks per stage, lead list, CRM integration, local platform links.The stages are right. The handover into Zalo and LINE is the part that decides whether any of it works.
POS toolsBuiltQR inventory, discount and voucher codes, redemption tracking.This is the only attribution we get. It deserved more attention than it received, mine included.
Review queueNot builtConsequence-ranked queue for claims that need an agronomist.The gap. Everything above assumes an expert who currently has no way to intervene.
19 · capability 01 Designed

The factor test should run itself, per region, forever

We spent a season learning that localisation beats everything else. A register that works in one province does not necessarily work in the next, and audiences shift between seasons.

Doing it by hand again in eight markets is not realistic. So the experiment becomes part of the machine: each localisation variant is an arm, posting volume is the budget, and the system reallocates nightly toward what is working in that specific province.

The important design decision is the reward. Optimise on engagement and it optimises for whatever holds attention, which is not the same as what sells. The reward has to include what happens after the video, did anyone open a thread, did the code get scanned.

A person sets the arms and defines the reward.

WEEK 1 — SPREAD EVENLY ACCENT A · ACCENT B · MUSIC A · MUSIC B · TONE C — EQUAL POSTING BUDGET WEEK 6 — CONVERGED FOR THIS PROVINCE ACCENT B TOOK MOST OF IT — IN THIS PROVINCE ONLY EXPLORATION FLOOR KEPT ON THE OTHERS SO IT CAN NOTICE A SHIFT THE REWARD IS THE WHOLE DESIGN IF YOU REWARD THIS VIEWS LIKES FOLLOWER GROWTH IT FINDS RAGE BAIT WITHIN A FORTNIGHT AND IT WILL BE RIGHT TO. SO WE REWARD THIS INSTEAD WATCH-THROUGH PAST THE HOOK THREADS OPENED FROM THE END CARD QR SCANS AT THE COUNTER HARDER TO MEASURE. THE ONLY VERSION THAT POINTS AT REVENUE. HUMAN SETS THE ARMS AND THE REWARD. MACHINE SETS THE SPEND. NOBODY AUTOMATES THE OBJECTIVE. FIG. 17 — CONTINUOUS FACTOR ALLOCATION
20 · capability 02 Designed

A country dropdown is too coarse to act on it.

Picking “Vietnamese” gives you a Hanoi voice, and in the Mekong Delta that is the capital-city problem again one level down. If accent is the strongest lever we found, it deserves to be a measured property rather than a menu.

TODAY SELECT LANGUAGE: VIETNAMESE ONE VOICE PER COUNTRY. SOUNDS LIKE THE CAPITAL EVERYWHERE. INSTEAD — A VOICE BANK WITH A DISTANCE MEASURE CONSENTED RECORDINGS FROM FIELD TEAMS EACH VOICE TAGGED BY PROVINCE, NOT COUNTRY TARGET AUDIENCE SPEECH PROFILE SITS ON THE SAME MAP PICK THE NEAREST VOICE, NOT THE NATIONAL ONE
voice match
Selected on measured distance, not a dropdown
TargetLong An, rice
Nearest voiceTiền Giang
National defaultrejected
Fallbacknext nearest
Where no close voice exists, the system says so rather than guessing. A wrong accent is worse than a neutral one.
CONSENT AND LIKENESS SIT IN THE CONSTRAINT LAYER — VOICES ARE CONTRIBUTED, NOT CLONED FROM PUBLIC CONTENT. FIG. 18 — DIALECT DISTANCE RATHER THAN LANGUAGE SELECTION
21 · capability 03 Designed

Trend analytics tells you what already happened

By the time a pest is trending on TikTok, the same video is being made across the country and the farmers who needed it acted a fortnight ago.

It is in the comments, the same question appearing from the same three districts before anyone has posted about it.

So instead of ranking platform-wide mentions, cluster incoming comments and searches by province and crop, and watch for a cluster that is growing where it wasn’t. Then cross-check against the agronomic calendar: a rise that matches expected pest pressure for that week gets weight, one that doesn’t gets flagged as noise or as something worth a human look.

This is the difference between a content tool and an early-warning one.

PLATFORM-WIDE TRENDING EVERYONE POSTS THE SAME VIDEO COMMENT CLUSTER IN 3 DISTRICTS SAME QUESTION, SAME WEEK, SAME CROP THE WINDOW WE WERE MISSING MENTIONS CLUSTER BY PROVINCE AND CROP, NOT BY NATIONAL VOLUME CROSS-CHECK THE AGRONOMIC CALENDAR FIG. 19 — GETTING AHEAD OF THE CURVE RATHER THAN RIDING IT
22 · capabilities 04 and 05

Making compliance testable, and fixing the score

Both of these replace something we shipped with a weaker version of it. Both make a judgement call testable, which is what either needs to survive eight markets.

Capability 04 Designed

Every agronomic claim resolves to a source, or it doesn’t ship

The constraint layer we built with legal prevents the model from saying certain things. A prohibition cannot be tested on each generation, and a longer prompt gives it more surface to fail on.

The stronger version treats it as retrieval. A claim in a draft has to resolve against the registered label for that province or an approved technical document. Anything that can’t resolve is stripped or sent to review. Product registration varies by province, so this also solves a problem we had no answer for.

Compliance becomes a pass or fail on every generation, with a log.

Capability 05 Designed

A regional audience model instead of a virality score

The Virality Lab put a percentage on a suggestion. We could not say what it predicted and it was never checked against anything commercial. It shipped anyway, and people began treating it as a target.

The replacement is narrower and honest: a model per region trained on that region’s own watch-through, saves and thread-opens. Score a draft against the audience it is actually for, and report the uncertainty alongside it.

Where there isn’t enough regional data, it refuses to produce a number rather than inventing one.

CLAIM RESOLUTION, STEP BY STEP DRAFT SCRIPTFROM THE PIPELINEBEFORE ANY VOICE IS ADDED EXTRACT CLAIMSPEST ID · TIMING · PRODUCT ·RATE · EFFICACY RESOLVE AGAINST SOURCEPROVINCE LABEL · APPROVED DOC ·SEASONAL GUIDANCE RESOLVED — SHIPSWITH THE SOURCE LOGGED AGAINST IT UNRESOLVED — STRIPPEDSENTENCE REMOVED, DRAFT CONTINUES HIGH CONSEQUENCE — REVIEWRATE, TIMING, DIAGNOSIS. ALWAYS A PERSON. REGRESSION SUITE RED-TEAM PROMPTS RUN NIGHTLY AGAINST THE CONSTRAINT LAYER. A FAILURE BLOCKS THE DEPLOY. FIG. 20 — COMPLIANCE AS A RETRIEVAL PROBLEM, WHICH MEANS IT CAN BE TESTED
23 · capability 06 Further out

A receptionist, not an adviser

The handover from comment to retailer is still manual, and it is the step where most of the value leaks. An agent can hold that gap, provided its job is drawn tightly enough.

It opens the thread, confirms province and crop, works out which retailer stocks the thing, and hands over with a summary of what the farmer already said.

It does not diagnose. It does not name a rate. The moment the conversation turns agronomic, a diagnosis, a rate, an unregistered product. it stops and fetches a person.

The agent only does what it can do without error, because a wrong agronomic answer costs more than a slow one.

IT MAY OPEN A THREAD FROM A COMMENT ASK WHICH PROVINCE AND CROP CHECK WHICH RETAILER STOCKS IT SEND OPENING HOURS AND LOCATION SUMMARISE THE THREAD FOR THE RETAILER SAY IT DOESN’T KNOW IT MAY NOT NAME A PEST FROM A PHOTO GIVE A RATE OR A MIXING INSTRUCTION RECOMMEND AN UNREGISTERED PRODUCT SAY WHEN TO SPRAY SPEAK AS THE AGRONOMIST GUESS TO KEEP THE CONVERSATION GOING THE STOP CONDITION IS THE PRODUCT FARMER: “LÁ LÚA BỊ VÀNG ĐẦU, CÓ PHẢI ĐẠO ÔN KHÔNG?” AGENT STOPS. TAGS IT AS A DIAGNOSIS. PULLS IN THE RETAILER, AND FLAGS IT FOR AGRONOMIST IF THE RETAILER ASKS. WHAT THIS BUYS: THE THREAD OPENS IN SECONDS INSTEAD OF HOURS, AND THE RETAILER ARRIVES ALREADY KNOWING SOMETHING. FIG. 21 — A DELIBERATELY SMALL AGENT
24 · scale Further out

Market nine should cost a fraction of market one

Expansion to eight markets was done the expensive way. New channels from zero, new voices, new content, and the learning curve paid again each time. That works once.

STEP 01

Measure how alike two markets are

Crop mix, pest pressure calendar, platform behaviour, language family, retailer structure. Computed from data already held, not estimated.

STEP 02

Inherit from the nearest neighbour

A new province starts with the localisation priors, hook patterns and content calendar from the market most like it, rather than from nothing.

STEP 03

Let the allocation correct it

The inherited settings are a starting position, not an answer. Capability 01 pulls them toward what actually works locally within weeks.

STEP 04

Only build what can’t transfer

Voice bank, pest lexicon, registered product list and local music. Everything else carries across.

COST TO STAND UP A MARKET M1M2M3 M4M5M6 M7M8 WITHOUT TRANSFER, THIS LINE IS FLAT EVERY MARKET PAYS THE FULL LEARNING COST AGAIN FIG. 22 — THE ONLY VERSION WHERE “AS A SERVICE” MEANS ANYTHING
25 · sequence

Ordered by what each step makes possible

Not quarters. Each stage exists because the one after it can’t be trusted without it.

StageWhat gets builtWhy it has to come firstWhat it makes possible
Now Review queue. Remove the exaggeration hook. Retire the virality score. Rights tracking on library media. Everything downstream assumes an expert can intervene, and right now none of them can. Permission to increase volume without increasing exposure.
Next CTA as a component — end card, comment routing, thread context, QR at the counter. Without a measurable step between view and conversation, no reward function points at revenue. The reward signal that capability 01 needs to exist at all.
Next Claim resolution and the regression suite. Automated allocation on unverified claims multiplies a compliance problem instead of a content one. Safe to let the machine decide how much of anything to publish.
Then Continuous factor allocation. Voice bank with dialect distance. Needs the reward from stage two and the safety from stage three. Localisation tunes itself per province instead of per season.
Then Leading-indicator listening. Regional audience models. Both need enough regional history to be worth anything. Content that arrives before the trend, and a score that predicts something.
Later Handover agent. Cross-market transfer. The agent needs claim resolution. Transfer needs several markets’ worth of learned priors. Market nine at a fraction of market one, and a thread that opens in seconds.

From a system to something you can open

An argument about registers and constraints only counts once it is a screen someone taps at the end of a working day. What follows is what shipped, and what should have.

34 · the surfaces

Every screen, rebuilt — with the machine's work made visible

These are the surfaces from the shipped product, redrawn. The change running through all of them is the same: wherever the system did something on its own, the screen says so, says which agent did it, and says whether a person still has to confirm.

Autonomy markers, used on every screen: auto drafted held never
SCREEN 01 · ONBOARDING — FROM THE DECK

Role decides what you can approve

In the deck

Name, user type, country and language. Four roles: admin, retailer, service team, content team.

Rebuilt

Role became a permission model. The market panel checks for a regional voice and a named agronomist at setup, so blockers surface before a channel exists.

Automation added

accent resolves the nearest regional voice automatically. Everything with commercial or agronomic consequence is marked never.

‹ ›
app.channel-os/setup

Set up your account

Step 1 of 3 · market and role
BackContinue
Market
CountryVietnam
ProvinceLong An
LanguageTiếng Việt
Regional voicematched on dialect distanceTiền Giang
accent · auto
Pest lexiconMekong Delta auto
Your role
Admin — productNot you
Retailer — CRM & salesSelected
Service team — conversionNot you
Content team — productionNot you
Agronomist — reviewNot you
What this role can do
Create and run channelsYes
Publish reviewed contentYes
Reply to direct questionsdrafted
Approve agronomic claimsnever
Edit the constraint layernever
No agronomist named for Long An

You can set up and run a seeding channel today. Live selling and product recommendation stay locked until one is assigned.

SCREEN 02 · ANALYTICS REPORT — FROM THE DECK

The FYP simulator, plus the question it never asked

In the deck

FYP simulator matching influencers, keywords and regions. Top trends, keywords, followers and farmer leads. Emerging pests, diseases, treatments and competitor products. One-click video from trending data.

Rebuilt

Local pest names lead, scientific names sit behind them. Every signal carries how far it has spread and whether anything corroborates it.

Automation added

scout clusters and ranks continuously. One-click generation stays, but a narrow signal drops it to drafted instead of auto.

‹ ›
app.channel-os/signals

What farmers are talking about

Long An · rice · last 7 days · updated 06:00
scout · runningChange regionGenerate from trend
Mentions tracked
37.6k
▲ 22% week on week
Creators matched
18
by keyword and region
Farmer leads found
212
accounts in target provinces
Signals needing a check
2
narrow spread
Rising signalMentionsChangeSpreadAction
Rầy nâubrown planthopper
8,420▲ 41%3 of 13 provincesheld
Đạo ônrice blast
9,870▲ 12%11 of 13 provincesauto
Bạc lábacterial leaf blight
7,650▼ 4%9 of 13 provincesauto
Khô vằnsheath blight
6,420▲ 8%7 of 13 provincesauto
Vàng lùntungro virus
5,230▲ 3%2 of 13 provincesheld
Rầy nâu · why this is held scout
Distinct accounts212
Concentrated in3 creators
Matches seasonal pressureYes
Field reports corroborateNo
Spreading, not necessarily happening

Volume is concentrated in three large accounts. Generation is drafted rather than automatic until an agronomist confirms.

Ask for a field checkDraft anyway
SCREEN 03 · VIRALITY LAB — FROM THE DECK

Same recommendations, a score that can refuse

In the deck

AI recommendations for viral video with a virality score, trending music, best posting time, region-specific tone, crop and pest themes, length and CTA suggestions.

Rebuilt

The recommendation set is unchanged and good. The score is now trained per region, states what it predicts, and carries an interval.

Automation added

dial reallocates posting budget nightly across variants. Where a province lacks history, no number is produced at all.

‹ ›
app.channel-os/audience-fit

How this is likely to land

Scored against each province's own watch data
dial · reallocating nightlyGenerate ideas
Rice disease prevention tutorial drafted
74%± 9 · fit for Long An
Predictswatch-through past 0:06
Trained on1,840 posts · 26 weeks
Music
Local trending #3
Best time
19:40
Register
Friendly
Length
38–46s
Create videoPreview
Same script · Đắk Lắk, coffee no score
not enough history
Trained on41 posts · 3 weeks
Regional voiceNone close enough
The model will not guess here

A number from 41 posts would be invented, and a number on a screen becomes a target within a week. Publish unscored and it turns on by itself at around 200 posts.

Publish unscoredBorrow priors from Tiền Giang
SCREEN 04 · AI-DRIVEN CONTENT CREATION — FROM THE DECK

The ways in, and the control I took out

In the deck

Five inputs: voice memo, remix, article, trend, structured form. Under five minutes to finished video. Faceless with voiceover or a generated presenter. A live request queue with succeeded states.

Rebuilt

The queue and the five inputs stay. The opening-hook control loses the exaggerated number and the polarising statement. Every line traces back to a timestamp in the source.

Automation added

accent sets voice and vocabulary from the channel. ward reads every claim and decides whether it can ship.

‹ ›
app.channel-os/studio/RQ00181

New video

RQ00181 · voice memo · field agronomist · 2:14 · Tiếng Việt
Save draftSend for review
Recent requests
RQ0018122 Jun · 12:04
held
RQ0018022 Jun · 09:41
Succeeded
RQ0017820 Jun · 08:12
Succeeded
RQ0017720 Jun · 07:55
Succeeded
Input method
Voice memo from agronomistUsed
Remix a popular video
Article or news URL
Select a trend
Structured brief
Opening hook
A question the audience already hasauto
A field observation from the sourceauto
A number taken from the sourcecheck it
A shocking number, exaggeratedremoved
Applied from the channel accent
VoiceTiền Giang
VocabularyMekong lexicon
RegisterFriendly, light argument
Footage tagged24 files
TemplateGeneric · 5 image
Draft script · segment 1 of 4 drafted

"Rầy nâu đang xuất hiện sớm hơn mọi năm ở ba tỉnh. Bà con nên ra ruộng kiểm tra gốc lúa tuần này."

Traced to source 00:14–00:31
Pest ID
review
Timing
review
Product
none
Rate
never
ward found two agronomic claims

Cannot be scheduled until cleared. Queue is four hours. Everything else in this draft is ready to render.

SCREEN 05 · GROWTH AUTOMATION AND LIVE STREAM — FROM THE DECK

Each channel a micro-brand, with a ceiling the platform sets

In the deck

A/B goals such as 1,000 followers in 30 days. Recommendations on what to repost, which comments to turn into video, who to follow. Channel settings for accent, tone, crop and segment. Live stream kit with scheduling.

Rebuilt

The follower goal is demoted. The gate to live is a named expert and an answer rate, not audience size. Posting cadence shows the band between too slow to grow and flagged as a bot.

Automation added

dial spends the daily post budget across variants and jitters the timing so the account reads as a person.

‹ ›
app.channel-os/channels/rice-farming-expert-th

Rice Farming Expert TH

Chiang Rai · rice · seeding · operated by local dealer
Channel settingsCreate content
Localisation profile accent
AccentNorthern Thai
VocabularyChiang Rai lexicon
ToneFriendly, some humour
AppearanceLocal dress, field setting
MusicRegional · refreshed Mon
FormatShort, hooked
Posting budget dial
Today18 posts
3 · too slow to grow30 · flagged as a bot
TimingJittered ±22 min
Human touchpoints today4
Best variant this weekAccent B
Inside the workable band

Volume high enough to grow, irregular enough to look human.

Gates to live
Audience in target provinces62%
Repeat viewersMet
Questions answered in 24h31%
Named agronomistNone
Live stream kitlocked
Followers alone will not open this

The deck used 1,000 followers as the gate. Two of these four are about capacity to answer, not audience size.

SCREEN 06 · MEDIA LIBRARY — FROM THE DECK

Auto-tagging kept, provenance added

In the deck

Upload images or video. AI auto-tags pest, disease, crop and treatment type. Faster search and video creation.

Rebuilt

A source and rights column. Seeding used web-scraped footage and nothing tracked where any of it came from.

Automation added

Tagging stays automatic. Rights are a property of the asset, so restrictions travel with the file into every generation.

‹ ›
app.channel-os/library/media

Media library

2,418 assets · tagged on upload
auto-tagging onAdvanced filtersUpload
Rice · 1,204 assets
Maize · 618 assets
Cotton · 402 assets
Unverified rights · 194
AssetAuto tagsSourceRightsUsable in
field_longan_0412.mp400:41 · 1080p
rice · planthopper · vegetativeSelf-capturedClearedAny stage
blast_closeup_88.jpg4032 × 3024
rice · blast · leafAgronomy teamClearedAny stage
harvest_generic_21.mp400:18 · 720p
rice · harvestWeb-scrapedUnverifiedSeeding only
sprayer_demo_07.mp400:32 · 720p
equipment · applicationWeb-scrapedBlockedNothing — competitor label visible
SCREEN 07 · CONTENT LIBRARY — FROM THE DECK

Remix kept, lineage added

In the deck

All published content across channels. Filter, remix, repost or reassign. Performance metrics per post. Four content creation methods in a modal.

Rebuilt

Lineage. A remix of a remix of a voice memo now shows that chain, so any claim can be traced to the mouth it came from.

Automation added

When a source claim is corrected, every descendant is flagged automatically rather than quietly continuing to circulate.

‹ ›
app.channel-os/library/content

Published content

466 posts · 3 channels · last 30 days
Filter by statusCreate new content
PostViewsSavesThreadsState
Rice disease prevention tutorialRice Farming TH · 45s · 20 Jun
12,40089067Live
Organic fertiliser success storyOrganic Farm VN · 60s · 19 Jun
8,75065443Live
Planthopper — early checkRice Farming TH · 38s · 20 Jun
4,11020312Flagged
Pest control innovation demoPest Control Pro IN · 52s · 18 Jun
21,3001,41096Live
Lineage · post 4471 auto-traced
Voice memo — agronomist
12 Jun · cleared
Video 4188
12 Jun · published
Remix 4471 — this post
20 Jun · flagged
Source claim corrected on 22 Jun

Two descendants flagged automatically. Neither has been reposted since.

SCREEN 08 · FUNNEL CONVERSION — FROM THE DECK

The stages, and the handover that was missing

In the deck

Awareness, prospect, lead generation, contact, follow-up, action. AI-generated tasks at every stage. Lead engagement list, CRM integration, order form and pricing upload. LINE, Zalo, WeChat and WhatsApp.

Rebuilt

The tasks stay. Three stages now carry a real mechanism instead of an instruction, the end card knows the shop, the comment opens the thread, the thread carries context.

Automation added

usher opens threads and routes by province. It stops the moment a question turns agronomic.

‹ ›
app.channel-os/conversations

Conversation funnel

Long An · last 30 days · Zalo connected
usher · 45 threads openedConnect platform
Awareness
1,250
reached
Prospect
320
25.6% · engaged twice
Question
89
27.8% · real ask
Thread open
45
50.6% · new
Retailer joined
23
51.1% · new
Code scanned
12
52.2% · new
Tasks generated today drafted
Reply to 14 commentsdone
Send opening hours to 6 threadsdone
Call 3 prospectsFor you
Arrange 1 field visitFor you
Answer 2 pest questionsAgronomist
Thread 0912 · handover usher
Came fromComment on post 4471
ProvinceLong An
CropRice · 40 days
Routed toTân An agri supply
Context passedVideo, pest, province
Time to open8 seconds
Where it stopped never

"Lá lúa bị vàng đầu, có phải đạo ôn không?"

Classified asDiagnosis request
Agent responseNone sent
Handed to a person

The retailer picks it up with the photo attached. Escalates to the agronomist if they ask.

SCREEN 09 · POS TOOLS — FROM THE DECK

The only place a view turns into a number you can bank

In the deck

Generate QR codes for inventory, discounts and vouchers. Batch numbers and quantities. Voucher statistics, issued, redeemed, total value, redemption rate. Bulk generate and export.

Rebuilt

Codes are issued per channel, so a scan attributes back to the video and province that produced it. Registration is checked against the province of the scan.

Automation added

Attribution runs automatically. An unregistered product warns at the counter before the sale rather than surfacing in a compliance report later.

‹ ›
app.channel-os/counter

Counter tools

Inventory, discount and voucher codes
Export codesBulk generate
Codes issued
156
across 3 channels
Redeemed
89
57% redemption rate
Traced to a post
71
of 89 · 80% attributed
Blocked at counter
3
unregistered province
Generate inventory code
ProductFungicide A
BatchBAT731
Quantity100
Attribute to autoRice Farming Expert TH · Chiang Rai
Generate QR
Active codes
20% off spring sale45 of 100 · expires 31 Mar
Active
$10 off orders over $5023 of 50 · expires 15 Apr
Active
BOGO fertiliser deal89 of 100 · expires 25 Mar
Ending soon
Premium fertiliser ABAT731 · inventory
Tracking
Scan · QR-731-0044
Scanned inPhayao
Issued forChiang Rai
Registered in PhayaoNo
Traced toPost 4188
Not registered in this province

Warn before the sale. Registered alternative offered automatically.

SCREEN 10 · CHANNEL DASHBOARD — FROM THE DECK

Stage as a permission, not a progress bar

In the deck

Manage growth across seeding, growth and live. Filter by crop, stage and followers. Quick stats and performance summary. AI recommended actions to grow channels.

Rebuilt

Each row carries a readiness bar and the specific blocker. A channel can be growing well and still be locked, and the screen says which of the two it is.

Automation added

The fourth metric card is amber on purpose, threads opened at 3.6% of reach is the weak step, and the dashboard leads with it rather than with follower totals.

‹ ›
app.channel-os/channels

Channels

3 active · Vietnam and Thailand · last 30 days
FilterNew channel
Active channels
3
1 seeding · 1 growth · 1 live
Posts, 30 days
466
▲ 18% on previous period
Watch-through
12.4%
▲ 2.1pt since localisation
Threads opened
45
3.6% of reach — the weak step
ChannelFollowersPostsWatch-throughReadiness for next stageStage
R
Rice Farming Expert THChiang Rai · rice · local dealer
450+127 / wk
233 / day
6.2%below median
62% · no agronomist named
Seeding Live locked
O
Organic Farm Life VNLong An · vegetables · co-op
7,890+402 / wk
15611 / day
12.7%above median
88% · answer rate 71%
Growth
P
Pest Control Pro INMaharashtra · cotton · distributor
15,678+880 / wk
28719 / day
18.4%top decile
All gates met
Live
One channel is holding at seeding

Rice Farming Expert TH meets the audience threshold but has no agronomist named against Chiang Rai. Live selling and product recommendation stay locked until one is assigned. growth alone does not open them.

35 · beyond the deck

The surfaces the product needed and never had

The screens so far make things. These decide things, and each exists because of something the research found or the build got wrong. One of them, the review queue. should have shipped in the first release. The other four are where the system stops being a content factory.

NEW SURFACE 01 · REVIEW QUEUE — ward

The screen ten other screens assumed existed

Why it exists

Support was a column in the first workflow diagram with nothing under it, survived into the second concept, and vanished from the build spec. Everything else assumes an expert can intervene.

What it does

Orders by consequence first, then by how long a farmer has waited. Rate, timing and diagnosis always land here regardless of model confidence.

Autonomy

Escalation triggers on consequence, not on low confidence. A confident wrong answer would never escalate under the original design.

‹ ›
app.channel-os/review

Seven items need your judgement

Agronomist view · Mekong Delta · service level 6 hours
Filter by cropReview oldest
In queue
7
3 high · 4 medium
Median wait
4.1h
within service level
Cleared without you
214
96.8% no claim detected
Generation throttled
Yes
queue above 6 items
Leaves yellowing from the tip, 40 days after transplant Direct question · photo attached · Long An · waiting 6h 12m
High consequencenever auto
What ward drafted, and held

"Likely nitrogen deficiency at this stage. Consider a foliar application."

Model confidence0.81
Claim typeDiagnosis + treatment
Resolved to a sourceNo
Why confidence did not release it

Tip yellowing at 40 days matches nitrogen deficiency, bacterial leaf blight and water stress. The model is confident and the three responses are different. Consequence, not confidence, decides.

ApproveCorrect and sendRequest field visit
Rice blast — three things to check this weekVideo draft · Rice Farming TH · two claims · waiting 4h
Needs reviewheld
Fourteen replies cleared automatically
Thanks · opening hours · where to buy · no agronomic claim detected
auto · no action
NEW SURFACE 02 · VOICE BANK — accent

A country dropdown cannot act on an accent finding

Why it exists

Localisation beat every other factor category, and accent carried most of it. Picking "Vietnamese" gives you a Hanoi voice, which in the delta is the capital-city problem one level down.

What it does

Voices contributed by field teams, indexed by province. Selection is a measured distance to the target audience's speech, not a menu choice.

Autonomy

Matching is automatic. Where nothing sits close enough it says so rather than falling back, a wrong accent is worse than a neutral one.

‹ ›
app.channel-os/voice-bank

Voice bank

62 contributed voices · consent on file · indexed by province
accent · matching on distanceAdd a voice
VoiceSpeaks likeDistanceConsentAssigned
TG
Tiền Giang · female 40sfield team · 4m 12s sampled
Miền Tây
0.08nearest
On file3 channels
BT
Bến Tre · male 50sfield team · 3m 40s sampled
Miền Tây
0.14acceptable
On file1 channel
SG
Sài Gòn · male 30sstudio · 6m 02s sampled
Miền Nam
0.31city, not delta
On file2 channels
HN
Hà Nội · female 30snational default
Miền Bắc
0.61reads as outsider
On fileNot used here
ĐL
Đắk Lắk · noneno contribution yet
no voice
blocked
Match for Long An · rice auto
Audience speaksMiền Tây
SelectedTiền Giang · 0.08
Runner-upBến Tre · 0.14
National defaultRejected · 0.61
Close enough to pass

Below the 0.20 threshold. Applied to every asset this channel produces.

Đắk Lắk · coffee no match
No voice within threshold

Nearest contributed voice is 0.44 away. The system will not substitute the national default. Recruit a local contributor or publish faceless with captions.

NEW SURFACE 03 · EARLY SIGNAL — scout

By the time it trends, the same video is everywhere

Why it exists

Trend analytics tells you what already happened. The farmers who needed that content acted a fortnight ago and every channel in the country is now posting it.

What it does

Clusters incoming comments and searches by province and crop, and watches for a cluster growing where it was not. Cross-checks against the agronomic calendar.

Autonomy

Detection is automatic. Acting on it is not, an emerging cluster with no seasonal basis goes to an agronomist before any content is drafted.

‹ ›
app.channel-os/early-signal

Emerging, not yet trending

Clustered from comments and searches · 13 provinces · rolling 14 days
scout · clustering hourlySend to agronomy
Cluster 0231 needs a check
Question patternStem base browning
Districts3 adjacent
First seen9 days ago
Growth▲ 6× in 5 days
Platform-wide trendingNot yet
Matches calendarYes · stem borer window
Worth getting ahead of

Geographically spread, seasonally plausible, and not yet being posted about.

Cluster 0229 watching
Question patternPrice of urea
Districts11 spread
First seen21 days ago
Growth▲ flat
Platform-wide trendingYes
Matches calendarn/a · commercial
Already saturated

The topic is already saturated. No advantage in adding to it.

Cluster 0234 escalated
Question patternLeaf curl, unusual pattern
Districts2 adjacent
First seen4 days ago
Growth▲ 11× in 3 days
Platform-wide trendingNo
Matches calendarNo · out of season
Sent to agronomy, no content drafted

Fast growth with no seasonal basis is either a new problem or a misidentification. Both need a person before anything is published.

Why this matters commercially

The agronomy team asked for access to this screen before the commercial team did. Early clusters are the only part of the platform that produces something the company could not already buy, a read on what is happening in fields, ahead of the field force.

NEW SURFACE 04 · CLAIM RESOLUTION — ward

Compliance as a retrieval problem, so it can be tested

Why it exists

The hidden prompt layer we built with legal stops the model saying certain things. Prohibitions are hard to test and easy to route around as prompts get longer.

What it does

Every claim resolves against the registered label for that province or an approved document. What cannot resolve is stripped or routed. Registration varies by province, which was previously unanswered.

Autonomy

Resolution runs on every generation with a log. A nightly red-team suite runs against the constraint layer and a failure blocks the deploy.

‹ ›
app.channel-os/claims

Claim resolution

Last 24 hours · 1,204 generations · 3,880 claims extracted
ward · on every generationExport log
Resolved, shipped
3,412
87.9% source logged
Stripped
344
sentence removed, draft continued
Routed to review
124
rate, timing or diagnosis
Regression suite
Pass
418 / 418 red-team prompts
Claim extractedTypeResolved againstProvinceOutcome
"Brown planthopper appears earlier in warm seasons"Agronomic factApproved technical note 118Allshipped
"Check the stem base this week"Timing, generalSeasonal calendar · MekongLong Anshipped
"Most effective product on the market"EfficacyNo sourcestripped
"Apply 30 ml per 16 litre tank"RateLabel VN-2291Long Anreview
"Fungicide A controls this"ProductNot registered in PhayaoPhayaoblocked
Nothing was cut to make this work

The features stayed and the floor moved up. Legal co-designed the constraint layer rather than reviewing output, which is a far better use of them and the reason this scales past one market.

NEW SURFACE 05 · ALLOCATION — dial

The factor test, running by itself, per province, forever

Why it exists

The factor test cost a season and the answer is already going stale. Audiences shift, sounds change, a register that lands in one province drifts in the next. Doing it by hand across eight markets is not realistic.

What it does

Each localisation variant is an arm, posting volume is the budget, and allocation shifts nightly toward what works in that specific province. An exploration floor stays on the others.

Autonomy

A person sets the arms and defines the reward. The machine only decides how much to spend on each. The objective is not automated.

‹ ›
app.channel-os/allocation

Allocation · Long An

Week 6 · converged · reallocated nightly at 02:00
dial · spending 18 posts / dayEdit armsReward settings
Where the budget went auto
Accent B · Tiền Giang voice54%
Music · regional set22%
Tone · light argument13%
Accent A · national6%
Tone · formal5%
Exploration floor held at 5%

The losing arms keep a slice so the system notices when the audience shifts. Convergence without a floor is a trap.

Reward · what it optimises for
Watch-through past the hook40%
Threads opened from the end card40%
Codes scanned at the counter20%
Views, likes, followersexcluded
Why engagement is excluded

Reward views and it finds rage bait within a fortnight, and it will be right to. Only a person can change this.

Across markets
Long An · riceConverged wk 6
Chiang Rai · riceConverging wk 3
Maharashtra · cottonConverged wk 8
Đắk Lắk · coffeeNot started no voice

From one market to eight

The product works in one province. Whether it is a business depends on how little has to be rebuilt for the next one.

Part V

Market nine should cost a fraction of market one

Expansion to eight markets was done the expensive way. new channels from zero, new voices, new content, a fresh learning curve each time. That works once.

What makes it a business is the part that accumulates: the data the platform accumulates, and the capabilities that only become possible once you hold it.

the rulesexpert reviewcontent systemthe channelsmarket oneevery layer laid down from nothingmarket 2market 3market 4market 5market 6market 7market 8no voice · not startedCARRIED INTO EVERY MARKETVOICEWORDSLABELSPERSON
Fig. 25 — market one built from nothing. The rest sit on ground that already exists.
36 · what accumulates

Data that did not exist before, and cannot be bought

Four datasets accumulate as a by-product of running it, and each is the precondition for a capability further down this page.

None of it was the point of the project.

01 · FARMER QUESTIONS9,000 A MONTH, CLUSTERED BY PROVINCE86%02 · REGISTER PERFORMANCEONE OBSERVATION PER POST72%03 · REVIEWED DECISIONS120 A MONTH, LABELLED BY AN EXPERT44%04 · INTENT TO COUNTERTHIN, AND THE ONLY CHAIN THAT REACHES A SALE18%
Fig. 26 — the field is the bottom plane. Everything above accumulates because it exists.
Farmer questions, by province

Every comment classified, clustered and dated. A running map of what is worrying people, district by district, ahead of the field force.

~9,000 / month → demand sensing
Register performance

Which accent, vocabulary, music and tone hold attention in which province. The output of every night the allocator runs.

One per post → warm start
Reviewed agronomic decisions

Every queue item an expert approved, corrected or rejected, with the reason attached.

~120 / month → raising the auto line
Intent to counter

Comment to thread to scan, with the post, province and crop attached. The only chain in the whole system that reaches a transaction.

Thin, most valuable → cost to sale
37 · cross-market transfer

Only four things do not transfer

A new province inherits localisation priors, hook patterns and a content calendar from the market most like it, then the allocator corrects them within weeks. What has to be built fresh is a short list, and that list is the real cost of a market.

20406080100M1M2M3M4M5M6M7M883% CHEAPER BY MARKET EIGHTCOST TO STAND UP A MARKET · INDEXED TO THE FIRST
Fig. 27 — cost to stand up a market, indexed to the first.
Voice bank
Contributed and consented, province by province
Pest lexicon
The words farmers actually use there
Registered product list
Varies by province, not by country
A named agronomist
Without one, nothing leaves seeding
38 · how it gets run

Somebody has to run this, and it cannot be a central team forever

For the first market the service was a small central team producing everything and handing finished channels to retailers. A central team producing everything works for one market. it puts a headcount ceiling on the whole thing.

DONE FOR YOUMARKET 1CENTRAL 100%RETAILERTHE GROUNDDONE WITH YOUMARKETS 2–4CENTRAL 50%RETAILERTHE GROUNDRUN IT YOURSELFMARKET 5 ONCENTRAL 18%RETAILERTHE GROUND
Fig. 28 — the amber plane is the central team. It shrinks or expansion is headcount.
39 · the horizon

What has to exist before what

Not quarters, and not a wish list. Each band needs the one before it. the review queue produces the corpus that raises the auto line, the call to action produces the reward signal the allocator needs, and demand sensing needs a year of both. Rows are drawn worked where the ground is already broken.

review queuecall to actionclaim checkNOW0–6 MONTHSallocationvoice bankearly signalNEXT6–18 MONTHSdemand sensinghigher auto lineretailer-runLATER18 MONTHS +ONE FIELD, WORKED IN THREE PASSES · EACH BAND NEEDS THE ONE BEFORE IT
Fig. 29 — nine capabilities on three bands. The bunds between them are hard prerequisites.
BandWhat gets builtWhy it comes firstWhat it makes possibleNeeds
Now
0–6 months
Review queue. Call to action as a component. Claim resolution and the nightly regression suite.Ten surfaces assume an expert can intervene and none let one. And with no measurable step between view and conversation, no reward function points at revenue.Permission to raise volume without raising exposure, and the reward signal everything later depends on.Nothing. Buildable today.
Next
6–18 months
Allocation console. Voice bank with dialect distance. Early signal from clustered comments.Automated allocation on unverified claims multiplies a compliance problem rather than a content one.Localisation tunes itself per province instead of per season, and content arrives ahead of the trend rather than chasing it.The reward from band one, plus regional history.
Later
18 months +
Demand sensing. A raised auto line. Counterfeit listening. Retailer-operated, model-supervised.Each needs a year of the datasets in section 36 — around 5,000 reviewed decisions and two seasons of attributed scans.The platform becomes a forecasting input rather than a marketing cost, and expansion stops being headcount.Everything above, held stable for a year.

The one that changes what the platform is for is demand sensing. farmer intent clustered by province, ahead of order data. The one that changes what it costs is raising the auto line, because every agronomist decision in the queue is a labelled example, and review capacity caps how much can be published.

40 · the network today

Where it runs, and the province it will not start

Plan view of what is actually running. Routing runs in its own channels rather than following the geography, because the platform relationship is logical, not physical. Đắk Lắk is crossed out, no contributed voice sits close enough, and the system will not substitute a national one.

LONG ANTIỀN GIANGBẾN TREAN GIANGĐỒNG THÁPĐẮK LẮKCHIANG RAIPHAYAOMAHARASHTRAPLATFORM
Fig. 30 — shops are live channels, phones are growing ones, the amber block is the platform.
41 · analysis

Everyone judged it differently

The platform was a product, a demand-generation programme and a wholesaler incentive at once. Each gets judged differently, and one number covering all three would not have answered any of the five questions.

Who is askingWhat they want to knowWhat we could measureStatusClosed by
CommercialCost to sale against channels already paid forCost per view and per conversation. The step from conversation to counter stayed offline.PartialIntent-to-counter chain
WholesalerIs the rebate worth having, does it move my volumeRebate perception, platform access as a reason to buy moreFramed onlyNever tested
Local retailerAm I better off than running my own channelGrowth against their own baseline — several had oneMeasurableAlready closed
BrandAre farmers engaging with us, and whereReach, watch-through, comment type, follower distribution by provinceMeasurableAlready closed
LegalCan anything here embarrass usConstraint coverage and a log of what the model refused to produceMeasurableClaim resolution log

Most of it measurable, one partial, one untested. Fair for three weeks, and the reason the call-to-action work outranks everything else — every unmeasured thing sits on the far side of that one broken step.

Knowing which register works in which province is the part that was hard to get.

Every part of this pipeline that makes something is becoming a commodity. What holds value is the part that learns, which voice lands where, which claim can be defended, and which conversation is worth a person’s time.

None of those are generated. They accrue from running the platform and reading what comes back.