Case · Yesward

Yesward: en konverteringsmotor som avgör när den ska tiga

Det mesta av konverteringsmjukvara belönas för att säga något. Den här måste förtjäna det – och tiga när den inte kan.

Skriv några raderAlla tre tjänster i detalj

[email protected]

Telefon+46 70 209 71 11

Kort svar

Yesward är en beslutsmotor för konvertering som jag designat och byggt. Den läser en köpresa med hög eftertanke, formar en preliminär hypotes om vad som hindrar den, och avgör sedan om en insats alls är motiverad. Oftast är den inte det, och då tiger systemet och antecknar varför det teg. När en insats är motiverad används den minsta som rimligen kan få resan vidare, och en permanent grupp besökare hålls utanför varje behandling så att effekten har något att mätas mot. Produkten är i tidigt pilotstadium: motorn fungerar, siffrorna den visar är illustrativa fixturer, och inget kundresultat är verifierat.

Argumentet som ledde fram till den

Ett seriöst retentionprogram gör två saker som ingen tycker är märkvärdiga. Det lägger en insats mot bevis – den här kunden, det här fönstret, det här skälet – och det läser resultatet mot en grupp som medvetet lämnas i fred. Båda är vardag på CRM-sidan av ett bolag. Ingen av dem är vardag på webbplatsen.

Asymmetrin är värd att stanna vid, för den handlar inte om teknik. Ingen senior person skulle godta ”vi mejlade alla och konverteringen gick upp” som belägg för någonting. På webben är någon variant av den meningen normal bevisnivå: en banner gick live, siffran rörde sig, och siffran rör sig varje vecka av elva andra skäl. Verktygen är mer avancerade än CRM-verktygen. Beviskravet är lägre.

Jag kunde ha skrivit det som en debattartikel och lämnat det där. Att bygga det var det ärligare provet, för ett argument om återhållsamhet som ingen kan implementera är bara smak. Håller disciplinen så tål den att göras till ett system med förvalda svar, grindar och en kontrollgrupp. Håller den inte blir det uppenbart ganska snabbt, och offentligt.

Roll
Grundare – designade, byggde och lanserade den
Produkt
Yesward.io – konverteringsbeslut för genomtänkta köp
Köpresor
Telekom, energi, försäkring, resor, dyrare handel
Metod
Regelmotor · insatstrappa · permanent kontrollgrupp
Stack
TypeScript · React · Cloudflare Workers · Durable Objects
Stadium
Fungerande motor, illustrativa data, ingen verifierad lyft

Tystnaden är det dyra beslutet

Varje insats gör av med något som inte syns i konverteringsrapporten. Besökarens uppmärksamhet, en del av tålamodet, och en liten mängd av det förtroende som gjorde att personen alls var beredd att ge sig in i ett genomtänkt köp. Säg något tillräckligt ofta och kostnaden lagras till en vana: den här sajten avbryter, så läs den inte noga.

Nästan inget system prissätter det. De som kommer närmast behandlar det som ett frekvenstak – säg något högst en gång per session – vilket är en budget snarare än en bedömning. Ett tak vet inte om just den här besökaren behövde något.

Vilket gör tigandet till det svårare tekniska problemet

Att besluta sig för att agera är enkelt: välj en trigger och avfyra. Att besluta sig för att inte agera kräver att systemet håller en ståndpunkt det inte kan verifiera – att den här besökaren mår bra, att tvekan på skärmen är vanlig eftertanke snarare än ett stopp, att den bästa tillgängliga åtgärden är ingen. Och ståndpunkten måste antecknas väl nog för att någon ska kunna invända mot den efteråt, för en tystnad som ingen kan granska går inte att skilja från ett system som helt enkelt var avstängt.

Tystnad i Yesward är därför ett beslut med kvitto, inte frånvaron av ett. Varje utvärdering som slutar med att ingenting visas skriver ner vad den såg, vilken grind som stoppade den och hur säker den var. Det enda valet är större delen av det som skiljer produkten från en regelmotor med en popup på slutet.

Den ärliga eftergiften: där insatsen är genuint allmängiltig – en fraktkostnadsrad varje besökare behöver, en upplysning lagen kräver – är det riktigt att säga den till alla, och då är den här maskineriet överbyggnad. Återhållsamhet förtjänar sin plats när hjälpen är specifik för en situation. Den förtjänar ingenting när hjälpen egentligen är information sidan borde burit hela tiden.

Vad som faktiskt finns i den

En regelmotor, skriven som en modul och importerad av allt som behöver fatta eller spela upp ett beslut: den interaktiva beslutspanelen, demonstrationsresan, och den edge-worker som skulle betjäna en skarp sajt. En implementation betyder att det en tänkbar kund provar i sin webbläsare är samma sak som skulle köra i produktion, i stället för en övertygande attrapp vid sidan om. Panelen är öppen, så påståendet går att kontrollera i stället för att bara hävdas – kör ett beslut genom motorn, och kvittot den skriver är samma objekt som workern hade skrivit.

Insatstrappan

Sju nivåer, från tystnad längst ner via en enda fråga, till rådgivande samtal och en verklig transaktion högst upp. Trappan finns för att ”ska vi gå in” och ”hur mycket” ska vara skilda frågor med skilda svar, och för att en operatör ska kunna sätta ett tak för hela systemet på en nivå som går att försvara. Den grundande omfattningen stannar med flit nära botten: tystnad upp till en fråga. De övre nivåerna är byggda som struktur och inte påslagna, för ett system som kan vidta en åtgärd på en kunds konto ska förtjäna det i en pilot, inte i en demo.

Deterministisk tilldelning till kontrollgrupp

Tilldelningen sker med en FNV-1a-hash av sessionen och policyn, vilket gör att samma besökare hamnar i samma arm vid varje utvärdering utan att något om personen behöver lagras för att det ska bli sant. Det spelar större roll än det låter: en tilldelning som glider mellan sidvisningar ger en kontrollgrupp som tyst förorenas, och det felet är osynligt i varje rapport systemet därefter producerar.

Ett kvitto för varje beslut

Varje beslut skriver en post – bevis, hypotes, utfall per grind, arm, och vad som visades eller inte visades – och varje post bär hashen av den föregående. Att manipulera en beslutshistorik bryter därför kedjan i stället för att gå igenom snyggt, och det finns en endpoint som går igenom kedjan och verifierar den. Tysta beslut, undertryckta beslut och beslut i kontrollgruppen skriver alla kvitton, och det är den delen som gör tystnaden granskningsbar snarare än bara påstådd.

Text som inte kan gå ut ogodkänd

Text som ska visas passerar en kontroll innan den når en besökare: godkända ytformer, och en lista på mönster som aldrig får förekomma – tidspress, påhittad brist, låtsaspersonalisering. Det är en liten modul och den finns där för att felet den förhindrar är det som skulle göra verklig skada. En beslutsmotor som kan skriva sin egen övertalande text i drift är en risk i funktionsförklädnad.

Byggd ensam, på Cloudflare Workers med ett Durable Object som håller beslutsläget, och den begränsningen formade designen mer än någon preferens gjorde. En person kan inte underhålla en tjänst per angelägenhet, så systemet måste bli ett litet antal delar som var och en gör något läsbart. Det utfallet skulle jag försvara även med ett team tillgängligt.

Ordningen grindarna körs i

Ett beslut är inte en bedömning utan en följd, och ordningen är designen. Varje grind kan bara stoppa förloppet eller minska vad som fortfarande är tillåtet; ingen av dem kan vidga det. Det starkaste systemet kan göra mot en besökare avgörs därför av den mest restriktiva grinden, inte av den mest spännande signalen.

  • Samtycke och behörighet först. Innan något bevis tolkas. En resa som inte tillåtit det här, eller som ligger utanför policyns omfattning, slutar här och bevisen granskas aldrig.
  • Bevis, sammanvägt till signaler. Råa händelser blir en liten uppsättning härledda signaler – takt, jämförelsebeteende, omkonfigurering, tvekan vid ett specifikt steg – och ingenting längre ner ser råflödet.
  • En preliminär friktionshypotes. Namngiven, med en säkerhet knuten till sig, och preliminär i stark mening: den är ett påstående om ett läge på en skärm, aldrig om en person.
  • Förtroendekostnad mot förväntat värde. Vad skulle det kosta att säga något här, och är den rimliga vinsten större. Det är grinden som producerar merparten av tystnaden, och den som saknar motsvarighet i verktygen den här ställer sig bredvid.
  • Ekonomi, efter kostnader. Bidrag snarare än konvertering, med kostnaden för insatsen och eventuellt incitament avdragen innan jämförelsen görs.
  • Tilldelning till kontrollgrupp, sist. En besökare i kontrollarmen behandlas precis som om systemet valt tystnad, och kvittot antecknar att beslutet fattades och hölls tillbaka – annars går kontrollgruppen inte att skilja från den tysta majoriteten.

Följden fallerar också i en bestämd riktning. Är bevisen tunna, säkerheten låg, samtyckesläget okänt, eller svarar inte edge-anropet i tid, blir utfallet tystnad – inte en förvald insats. Ett konverteringssystem vars felläge är att säga mer är ett system som kommer att säga mest just de dagar något är trasigt.

Hur den skulle behöva mätas

Mätdesignen är det som går att flytta mellan sammanhang, så den är skriven som en norm snarare än som ett resultat. En permanent kontrollgrupp inuti varje skarp policy – inte ett engångstest som tar slut, för frågan ”är det här fortfarande värt att göra” tar inte slut. En femtedel av behörig trafik är arbetssiffran, vilket är generöst för att upptäcka effekt och billigt i en resa där insatsen ändå bara utlöses på en minoritet av sessionerna.

Läst mot bidrag, inte mot konverteringar. En insats som flyttar en besökare till ett billigare abonnement som behålls i tre år slog en som stängde ett dyrare som sades upp i månad två, och ett konverteringsmått rapporterar dem likadant. Kostnaden för insatsen och eventuellt incitament dras av före jämförelsen, för en insats som bär sig i intäkt och förlorar pengar i marginal är ett misslyckande som ser ut som en vinst i varje instrumentpanel det förekommer i.

Och skyddsräcket som måste läsas samtidigt

Avvisningsgrad, upprepad avvisning och de frustrationssignaler motorn redan samlar in – lästa jämte ekonomin snarare än i en separat genomgång efter att det kommersiella fallet är gjort. För de kan röra sig i motsatta riktningar, och ett system som förbättrar marginalen medan det lär besökare att misstro sidan har producerat en siffra som betalas tillbaka senare, med ränta.

Inget av det kräver att man tror något om produkten. Det är en design, den går att granska, och den går att falsifiera – kontrollgruppen är mekanismen som gör att det jag byggt kan visas inte fungera, också av mig.

En kontrollgrupp som definieras före den första visningen är den enda version av det här som kan ge en siffra värd att citera.

Var mätningen mer intressant än produkten? Säg det.[email protected]

Vad jag skulle göra annorlunda

Tre saker, och den tredje svider, för regeln hade jag redan skrivit ner efter Tibber och bröt den sedan på min egen produkt.

Bygg det minsta som går att sälja, inte det största som går att visa

Jag byggde en sajt på trettiofem sidor, en operatörskonsol med fem vyer och en fullständig demonstrationsresa innan jag haft ett enda seriöst samtal med en köpare. Varje del går att försvara för sig och summan går inte att försvara: det är månader lagda på att få en position att se etablerad ut i stället för att ta reda på om någon vill ha den. Versionen som borde funnits först är beslutsmotorn, en sida som beskriver den, och en diagnos jag kunde köra på någons verkliga tratt för hand.

Låt köparna namnge kategorin

Jag valde en kategorifras – vinstmedvetna konverteringsbeslut – och byggde en hel sajts vokabulär ovanpå den innan jag prövat om någon säger den. Den är träffande, vilket är fällan: en fras kan beskriva produkten perfekt och ändå vara en man måste förklara varje gång, och en fras man måste förklara är en man måste försvara snarare än en som gör något arbete. Rätt ordning är tio samtal först, och orden köparna faktiskt använder blir orden på sidan.

Designa insatsen före motorn

Det här är samma regel jag skrev ner som stående lärdom efter Tibber – designa insatsen före prediktionen – och jag bröt den igen i samma form. Jag byggde maskineriet för att avgöra om en insats ska ske medan frågan om vad insatsen faktiskt säger fortfarande var förhållandevis vag. Det borde gått åt andra hållet: skriv de fyra eller fem svar en verklig resa behöver, och låt dem bestämma vad motorn måste kunna avgöra. Hälften av designvalen besvarar sig själva när det dokumentet finns, vilket är precis vad jag drog för slutsats förra gången.

Vad jag inte skulle ändra är att bygga den alls. Argumentet hade legat i huvudet i åratal och det finns ingen version av att pröva det som inte innebär att göra det verkligt. Det gav också något konsultarbetet har direkt nytta av: jag behöver inte längre beskriva återhållsamhet som en princip, för det finns ett körande system som visar vad alternativet kostar.

Vad en AI-genomlysning faktiskt tittar på

Vad den inte är

Värt att säga rakt ut, dels för att kategorin den ligger närmast har för vana att lova för mycket, dels för att begränsningarna är större delen av det som gör resten trovärdig.

  • Inte en chatbot. Samtal ligger högst i trappan och är inte påslaget. Förvalt är tystnad, och den grundande omfattningen når en fråga.
  • Inte ett popup-verktyg med bättre grafisk profil. Det som skiljer är beslutet och kontrollgruppen, inte ytan. Ett popup-verktyg utlöses av en trigger; det här utvärderar om det är motiverat att utlösas och håller en grupp utanför för att få veta.
  • Inte tränad prediktion. Det är en regelmotor med uttalade grindar och redovisad säkerhet. Statistiska komponenter kan förtjäna sin plats senare; det styrda beslutet är produkten, och att kalla en regelmotor för en modell vore den enklaste lögnen som står till buds här.
  • Inte belägg för något kommersiellt än. Siffrorna på produkten är deterministiska fixturer. En pilot med en verklig resa och en verklig kontrollgrupp är vad som skulle ersätta dem, och till dess handlar det ärliga anspråket om designen.

Gå och se den i drift

Tillgänglig för nya uppdrag

Skriv några rader

Om timingen stämmer – mejla mig direkt. Svaret kommer från mig – ingen autosvarare, ingen sekvens.

[email protected]