<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[the product ledger]]></title><description><![CDATA[A dive into the strategies, insights, and innovations shaping product management and AI-driven business growth.]]></description><link>https://zalex.co</link><image><url>https://substackcdn.com/image/fetch/$s_!h7hf!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fad7e1086-332d-41f6-989a-39c64c5d0ea7_500x500.png</url><title>the product ledger</title><link>https://zalex.co</link></image><generator>Substack</generator><lastBuildDate>Sat, 09 May 2026 04:27:27 GMT</lastBuildDate><atom:link href="https://zalex.co/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Alex Zhezherau]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[alexzhezherov@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[alexzhezherov@substack.com]]></itunes:email><itunes:name><![CDATA[Alex Zhezheraú]]></itunes:name></itunes:owner><itunes:author><![CDATA[Alex Zhezheraú]]></itunes:author><googleplay:owner><![CDATA[alexzhezherov@substack.com]]></googleplay:owner><googleplay:email><![CDATA[alexzhezherov@substack.com]]></googleplay:email><googleplay:author><![CDATA[Alex Zhezheraú]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I Trained GPT in Google Sheets]]></title><description><![CDATA[Understanding transformers by building one the hard way]]></description><link>https://zalex.co/p/i-trained-gpt-in-google-sheets</link><guid isPermaLink="false">https://zalex.co/p/i-trained-gpt-in-google-sheets</guid><dc:creator><![CDATA[Alex Zhezheraú]]></dc:creator><pubDate>Fri, 17 Oct 2025 20:08:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/bea604a4-c529-4ae7-ac92-e64796311e4a_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I spent a month teaching Google Sheets to train a GPT model.</p><p>9 hours per training run. 19,000 parameters crawling through cells. Formula recalculations that made my laptop fan feel like it was Austin, TX in July. This was probably stupid.</p><p>But somewhere around week 3, watching numbers accumulate in cells I could actually click on and inspect, something clicked that never clicked before.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading the product ledger! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1><strong>The Problem</strong></h1><p>I&#8217;ve shipped deep learning models. Built agentic AI systems. LoRA-tuned GPTs. Read <em><a href="https://arxiv.org/pdf/1706.03762">Attention Is All You Need</a> </em>multiple times.</p><p>But I didn&#8217;t <em>fully</em> understand transformers &#8212; the architecture that the &#8220;T&#8221; in GPT (Generative Pre-trained Transformer) actually stands for.</p><p>There&#8217;s knowing how something works and <em><strong>understanding</strong></em> how it works. When you call <code>.backward()</code> in PyTorch, you&#8217;re abstracting away the entire learning process. Gradients flow. Weights update. You watch a loss curve decline.</p><p>That&#8217;s powerful for building systems. It&#8217;s terrible for building intuition.</p><p>Others have built transformer demos in spreadsheets (<a href="https://medium.com/%40harangpeter/building-a-transformer-in-excel-467a4a27608d">example</a>, <a href="https://www.byhand.ai/p/full-stack-transformer">another</a>). Those demonstrate the architecture with random weights. I wanted to know: could you actually train one? Implement backpropagation, update weights through gradient descent, and watch the model learn from scratch?</p><p>So I made Google Sheets do something it was never designed to do. Some people will say I could have spent this time vibe coding yet another B2B SaaS. Maybe Zuck will reach out with a $10m offer. We shall see.</p><h1><strong>Transformers in 60 Seconds</strong></h1><p>If you&#8217;re familiar with transformer architecture, skip this. If not, here&#8217;s what you need to know:</p><p>Transformers are pipelines that alternate between <strong>data converters</strong> and <strong>pattern finders</strong>. The whole architecture is repeatedly transforming how data is represented until the structure of meaning becomes trivial to detect.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1tBs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1tBs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png 424w, https://substackcdn.com/image/fetch/$s_!1tBs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png 848w, https://substackcdn.com/image/fetch/$s_!1tBs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png 1272w, https://substackcdn.com/image/fetch/$s_!1tBs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1tBs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png" width="1000" height="551" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:551,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157702,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1tBs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png 424w, https://substackcdn.com/image/fetch/$s_!1tBs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png 848w, https://substackcdn.com/image/fetch/$s_!1tBs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png 1272w, https://substackcdn.com/image/fetch/$s_!1tBs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f1e707-8a85-4be4-8d3a-af040f5b3ee9_1000x551.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Step 1: Embeddings &amp; Position.</strong> Words become numerical vectors (via tokenization). But transformers process all tokens simultaneously (no inherent order) so we add positional encoding. Think of it like row numbers in a spreadsheet: without them, the model can&#8217;t tell &#8220;<em>dog bites man</em>&#8221; from &#8220;<em>man bites dog</em>.&#8221;</p><p><strong>Step 2: Self-Attention (Focus &amp; Memory).</strong> Each word looks at every other word and decides which ones matter. Processing &#8220;<em>sat</em>&#8221; in &#8220;<em>The cat sat on the mat</em>&#8221;? The model figures out &#8220;<em>cat</em>&#8221; is the critical context &#8212; it&#8217;s the thing doing the sitting.</p><p>It works like search: <strong>Query</strong> (what you type into YouTube&#8217;s search bar) &#215; <strong>Key</strong> (the video descriptions, tags) = attention weights. Those weights mix the <strong>Values</strong> (videos themselves). The transformer computes how compatible each Query is with each Key (like a search engine ranking relevance) then combines the relevant Values.</p><p>This is how transformers build <strong>focus</strong> (attention weights) and <strong>memory</strong> (accessing context across the entire sequence).</p><p><strong>Step 3: Multi-head Attention.</strong> Runs this multiple times in parallel. One head finds subject-verb relationships. Another tracks modifiers. Another captures positional dependencies. The model discovers these roles during training.</p><p><strong>Step 4: Feed-Forward Layers.</strong> Extract patterns from what attention found. Think of attention as reformatting, feed-forward as pattern recognition.</p><h3><strong>Why transformers won</strong></h3><p>Before transformers, you chose between bad options. RNNs processed sequences one token at a time &#8212; slow to train, information faded over long distances. CNNs processed in parallel but only saw local patterns within their window size (hence used for image recognition). </p><p>Transformers eliminated the tradeoff. Every token can directly attend to every other token in one step. Processing &#8220;<em>The cat sat on the mat</em>&#8221;? An RNN passes information through each word sequentially. A transformer lets &#8220;<em>mat</em>&#8221; directly attend to &#8220;<em>cat</em>&#8221; &#8212; distance doesn&#8217;t matter.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZQnE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZQnE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png 424w, https://substackcdn.com/image/fetch/$s_!ZQnE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png 848w, https://substackcdn.com/image/fetch/$s_!ZQnE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png 1272w, https://substackcdn.com/image/fetch/$s_!ZQnE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZQnE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png" width="1000" height="551" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:551,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57662,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZQnE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png 424w, https://substackcdn.com/image/fetch/$s_!ZQnE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png 848w, https://substackcdn.com/image/fetch/$s_!ZQnE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png 1272w, https://substackcdn.com/image/fetch/$s_!ZQnE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51a07be1-88c1-4861-bc75-0a17d0a881f9_1000x551.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is why transformers scaled and everything else didn&#8217;t. Parallelization (+ more powerful chips) enabled faster training. Direct attention enabled longer contexts. Together they made ChatGPT, Claude, and every modern AI model possible.</p><h1><strong>What I Actually Built</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CCy5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CCy5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png 424w, https://substackcdn.com/image/fetch/$s_!CCy5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png 848w, https://substackcdn.com/image/fetch/$s_!CCy5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png 1272w, https://substackcdn.com/image/fetch/$s_!CCy5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CCy5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png" width="1230" height="1110" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1110,&quot;width&quot;:1230,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:967102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CCy5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png 424w, https://substackcdn.com/image/fetch/$s_!CCy5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png 848w, https://substackcdn.com/image/fetch/$s_!CCy5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png 1272w, https://substackcdn.com/image/fetch/$s_!CCy5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff639aed6-58df-40e2-97c7-3f411b815d74_1230x1110.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The architecture is a real GPT-style decoder-only transformer:</p><ul><li><p>1 transformer layer</p></li><li><p>2 attention heads (16-dimensional each)</p></li><li><p>32-dimensional embeddings</p></li><li><p>208-dimensional feedforward layer with GeLU activation</p></li><li><p>Sequence length of 8 tokens</p></li><li><p>50-word vocabulary</p></li><li><p>~19,000 trainable parameters</p></li></ul><p>For perspective, <a href="https://deepwiki.com/openai/gpt-2/6-model-information">GPT-2 Small</a> (OpenAI&#8217;s 2019 model) has 124 million parameters across 12 transformer layers with 768-dimensional embeddings and 12 attention heads. My spreadsheet version is roughly <strong>6,500 times smaller</strong>. But the architecture is identical: multi-head attention, feed-forward layers, tokenizer. The same mechanisms that power ChatGPT, just scaled down to fit in cells you can inspect.</p><p>All of it trained on 411 simple cooking instructions like &#8220;<em>heat big pan with the oil</em>&#8221; and &#8220;<em>mix two egg and flour in bowl</em>&#8221;. I deliberately chose a narrow niche with limited vocabulary &#8212; cooking verbs (heat, boil, mix, fry, bake), ingredients (egg, rice, chicken, butter, water), and kitchen items (pan, pot, bowl, plate, cup). The goal was to build something small enough that I could actually trace every operation and understand exactly what was happening.</p><p>The training setup:</p><ul><li><p>SGD with momentum (&#946; = 0.8)</p></li><li><p>Token frequency weighting (rare words get stronger gradient signals)</p></li><li><p>Tied embeddings between input and output</p></li><li><p>411 training examples (hard to generate more training data with 50-word vocab)</p></li></ul><p>Everything implemented in formulas across 11 sheets. Every gradient computed through formulas and iterative calculation. Every weight update visible in a cell you can click on and inspect.</p><div><hr></div><h4><strong>Quick training primer</strong> </h4><p><strong>Neural networks are giant formulas</strong> whose parameters (<strong>weights</strong>) are learned from data. They make predictions by combining inputs through layers of weighted connections, and <strong>learning</strong> means adjusting those weights to make predictions more accurate. A <strong>loss function</strong> measures how far the predictions are from the correct answers. <strong>Gradients</strong> show how each weight should change to reduce that loss, and <strong>backpropagation</strong> efficiently computes these gradients by working backward through layers of the network. An <strong>optimizer</strong> then updates the weights based on the gradients, deciding how big each adjustment should be. The process repeats over the dataset many times (called <strong>epochs</strong>) until the loss stops improving or the model reaches a satisfactory level of performance.</p><div><hr></div><h1><strong>What I Thought Would Happen</strong></h1><p>Weekend project. Maybe a week if backpropagation got messy due to spreadsheet iterative recalculations limitations.</p><p>The forward pass (model architecture setup) took 2-3 days. Matrix multiplications, softmax, attention heads, feed-forward network. Straightforward.</p><p>Backpropagation was harder but manageable. Chain formulas through every matrix, gradient accumulation, weight updates. I got it working.</p><p>The model didn&#8217;t learn.</p><h1><strong>What Actually Happened</strong></h1><p><em>Getting technical here &#8212; skip if you want.</em></p><p>A month of debugging. Not the code &#8212; the learning.</p><p>First version: 181 vocabulary tokens, 16-dimensional embeddings, single attention head, standard SGD. Loss declined for maybe 2 epochs. Then zigzagged. Then collapsed.</p><p>Each fix required reworking formulas, waiting for recalculation (5-7h full training run!!), watching the loss curve.</p><p><strong>Layer normalization:</strong> Some stabilization. Zigzagging continued.</p><p><strong>Momentum</strong>: First real win. Standard SGD updates weights based purely on current gradient: `W = W - &#945; * gradient`. Every example pushes wherever its gradient points. Erratic.</p><p>Momentum accumulates: `V = &#946; * V + &#945; * gradient`, then `W = W - V`. Multiple examples pushing the same direction? Momentum builds and accelerates. Oscillating gradients? Momentum dampens the zigzag. The optimizer was &#8220;<em>committing</em>&#8221; to directions that consistently improved loss. </p><p><strong>More capacity:</strong> Expanded from 16 to 32 dimensions. One &#8594; two attention heads. Significant spreadsheet rework &#8212; remapping formulas, expanding matrices. Marginal improvement.</p><p><strong>Token frequency weighting:</strong> The model predicted  &#8220;<em>END</em>&#8221; and &#8220;<em>the</em>&#8221; for everything. Literally everything. Most common token wins. Training longer didn&#8217;t help. Higher learning rates didn&#8217;t help.</p><p>I weighted the gradients. Common words like &#8220;<em>the</em>&#8221; and &#8220;<em>in</em>&#8221; get 2-5x weight. Rare words like &#8220;<em>girl</em>&#8221; and &#8220;<em>book</em>&#8221; get 10-25x weight.</p><p>Got a noticeable difference. The model learned the full vocabulary distribution. It predicted &#8220;<em>girl</em>&#8221; or &#8220;<em>boy</em>&#8221; in the right contexts instead of defaulting to &#8220;<em>the</em>&#8221;.</p><p><strong>Activation function:</strong> Switched from ReLU to GeLU. Incremental gains.</p><p><strong>The actual problem:</strong> After weeks of experiments, I stepped back and looked at the numbers. The problem was twofold.</p><ul><li><p><strong>First: too many tokens.</strong> 181 vocabulary tokens. ~19,000 parameters. Each token was getting barely any gradient signal. With only 19,000 parameters spread across 181 tokens, each token got noise instead of meaningful updates.</p></li><li><p><strong>Second: too many concepts.</strong> I initially trained on generic language: simple sentences like &#8220;girl reads a book&#8221; and &#8220;dog runs across the field.&#8221; Grammatically simple, but conceptually vast. Girls, dogs, books, fields, reading, running. Each concept needs its own embedding space, its own attention patterns, its own relationships. With 19,000 parameters, the model couldn&#8217;t learn all of these disparate concepts simultaneously. It was trying to understand the entire world with a calculator&#8217;s worth of capacity.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!65ah!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!65ah!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png 424w, https://substackcdn.com/image/fetch/$s_!65ah!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png 848w, https://substackcdn.com/image/fetch/$s_!65ah!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!65ah!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!65ah!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png" width="1456" height="1050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1050,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:669087,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!65ah!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png 424w, https://substackcdn.com/image/fetch/$s_!65ah!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png 848w, https://substackcdn.com/image/fetch/$s_!65ah!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!65ah!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6265215a-4aec-4613-b0aa-16e0af83b669_2064x1488.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></li></ul><p>I made two changes: reduced vocabulary to 50 tokens and switched to cooking instructions. One narrow domain. Cooking verbs (heat, boil, mix), ingredients (egg, rice, chicken), kitchen items (pan, pot, bowl). Dense, repetitive patterns. &#8220;Heat the pan,&#8221; &#8220;boil the water,&#8221; &#8220;mix the egg.&#8221; The same relationships appearing hundreds of times.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z6-b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z6-b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png 424w, https://substackcdn.com/image/fetch/$s_!z6-b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png 848w, https://substackcdn.com/image/fetch/$s_!z6-b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!z6-b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z6-b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png" width="1456" height="1084" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1084,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:673846,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!z6-b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png 424w, https://substackcdn.com/image/fetch/$s_!z6-b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png 848w, https://substackcdn.com/image/fetch/$s_!z6-b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png 1272w, https://substackcdn.com/image/fetch/$s_!z6-b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f00b9ed-843c-4cb3-8854-8562ba4fb7bc_1998x1488.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>This was the breakthrough!</strong></p><p>Here&#8217;s what frameworks hide: In PyTorch, when training fails, you tweak hyperparameters and guess. In the spreadsheet, I could see exactly how gradients distributed across vocabulary. With 181 tokens and generic concepts, each token got noise. With 50 tokens in a focused domain, each got meaningful, consistent updates. The model finally had enough capacity per concept to learn patterns.</p><h1><strong>What It Learned</strong></h1><p>9 hours of training. 5 epochs through 411 cooking instructions. Loss started at ~4.5, stabilized around 2.5-3.0. A 40% improvement.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9BAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9BAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png 424w, https://substackcdn.com/image/fetch/$s_!9BAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png 848w, https://substackcdn.com/image/fetch/$s_!9BAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!9BAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9BAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png" width="1456" height="856" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:856,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:611808,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!9BAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png 424w, https://substackcdn.com/image/fetch/$s_!9BAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png 848w, https://substackcdn.com/image/fetch/$s_!9BAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png 1272w, https://substackcdn.com/image/fetch/$s_!9BAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F329b370f-3d8a-4c01-a9e9-7cf798477a8e_1803x1060.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The two attention heads specialized without any explicit supervision.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fmLn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fmLn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png 424w, https://substackcdn.com/image/fetch/$s_!fmLn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png 848w, https://substackcdn.com/image/fetch/$s_!fmLn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png 1272w, https://substackcdn.com/image/fetch/$s_!fmLn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fmLn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png" width="519" height="364" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:364,&quot;width&quot;:519,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155000,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fmLn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png 424w, https://substackcdn.com/image/fetch/$s_!fmLn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png 848w, https://substackcdn.com/image/fetch/$s_!fmLn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png 1272w, https://substackcdn.com/image/fetch/$s_!fmLn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb6159f0-415e-45c0-b9d2-c7962a3b8037_519x364.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Head 1 learned syntax.</strong> It spreads attention smoothly across local context windows &#8212; 3-4 neighboring positions with weights around 0.15-0.35. Processing &#8220;<em>flour</em>&#8221; in &#8220;<em>mix two egg and flour in bowl</em>&#8221;? Head 1 distributes attention across &#8220;<em>two</em>&#8221; (0.199), &#8220;<em>and</em>&#8221; (0.269), &#8220;<em>flour</em>&#8221; (0.241). Grammatical structure.</p><p><strong>Head 2 learned semantics.</strong> Sharp, focused peaks on critical words. When &#8220;<em>two</em>&#8221; appears, Head 2 ignores the adjacent &#8220;<em>egg</em>&#8221; and locks 44% attention on the verb &#8220;<em>mix</em>,&#8221; 56% on itself. The model discovered that quantities modify actions, not just ingredients.</p><p>This pattern repeats. Ingredients attend back to cooking verbs: &#8220;<em>egg</em>&#8221; &#8594; &#8220;<em>mix</em>&#8221; (43%), &#8220;<em>flour</em>&#8221; &#8594; &#8220;<em>mix</em>&#8221; (22%). The word &#8220;and&#8221; coordinates between &#8220;<em>egg</em>&#8221; (28%) and &#8220;flour&#8221; (23%).</p><p>Head 1&#8217;s attention entropy averages ~1.8 (distributed). Head 2&#8217;s averages ~1.2 (focused). One tracks syntax. One extracts meaning.</p><h3><strong>Generation examples:</strong></h3><p>- <strong>&#8220;</strong><em><strong>heat the</strong></em><strong>&#8221;</strong> &#8594; &#8220;<em><strong>heat the pot pot chicken hot in chicken</strong></em>&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GavO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GavO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png 424w, https://substackcdn.com/image/fetch/$s_!GavO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png 848w, https://substackcdn.com/image/fetch/$s_!GavO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png 1272w, https://substackcdn.com/image/fetch/$s_!GavO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GavO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png" width="435" height="220" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ca33597-93f7-433f-b617-b351eee1e713_435x220.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:220,&quot;width&quot;:435,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25610,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GavO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png 424w, https://substackcdn.com/image/fetch/$s_!GavO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png 848w, https://substackcdn.com/image/fetch/$s_!GavO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png 1272w, https://substackcdn.com/image/fetch/$s_!GavO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ca33597-93f7-433f-b617-b351eee1e713_435x220.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>- <strong>&#8221;</strong><em><strong>boil</strong></em><strong>&#8221;</strong> &#8594; &#8220;<em><strong>boil the egg with chicken chicken</strong></em>&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XMIT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XMIT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png 424w, https://substackcdn.com/image/fetch/$s_!XMIT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png 848w, https://substackcdn.com/image/fetch/$s_!XMIT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png 1272w, https://substackcdn.com/image/fetch/$s_!XMIT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XMIT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png" width="430" height="218" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:218,&quot;width&quot;:430,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22533,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XMIT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png 424w, https://substackcdn.com/image/fetch/$s_!XMIT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png 848w, https://substackcdn.com/image/fetch/$s_!XMIT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png 1272w, https://substackcdn.com/image/fetch/$s_!XMIT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbc3d915-4800-4352-9d01-8cd2efd6bb03_430x218.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The model learned the template: <code>[verb] [article/quantity] [ingredient/tool] [preposition] [location/ingredient]</code>. It knows &#8220;<em>heat</em>&#8221; gets cookware. &#8220;<em>Boil</em>&#8221; gets ingredients. Prepositions connect phrases.</p><p>It also repeats words (&#8221;<em>pot pot</em>&#8221;), makes nonsensical combinations (&#8221;<em>chicken hot</em>&#8221;), and loops (&#8221;<em>chicken chicken</em>&#8221;). These are the expected limitations of 19,000 parameters trained on 411 examples.</p><p>Another example: <strong>&#8221;</strong><em>mix flour</em><strong>&#8221;</strong> &#8594; &#8220;<em>mix flour hot egg water pot</em>&#8221;. The model correctly maintains the cooking verb and ingredient, then generates a plausible expansion. It knows &#8220;<em>mix</em>&#8221; pairs with multiple ingredients (&#8221;<em>egg</em>&#8221;), uses liquids (&#8221;<em>water</em>&#8221;), and mentions containers (&#8221;<em>pot</em>&#8221;). The word &#8220;hot&#8221; is odd but reflects the model&#8217;s exposure to temperature-related cooking patterns. The sequence follows training structure even if it&#8217;s not quite human-level recipe writing. You can see both what the model learned (cooking domain structure, ingredient/tool relationships) and where its limitations show (random insertion of &#8220;<em>hot</em>&#8221;, no clear recipe coherence).</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ErrT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ErrT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif 424w, https://substackcdn.com/image/fetch/$s_!ErrT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif 848w, https://substackcdn.com/image/fetch/$s_!ErrT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif 1272w, https://substackcdn.com/image/fetch/$s_!ErrT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ErrT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif" width="428" height="216" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:216,&quot;width&quot;:428,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133193,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://zalex.co/i/176383464?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ErrT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif 424w, https://substackcdn.com/image/fetch/$s_!ErrT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif 848w, https://substackcdn.com/image/fetch/$s_!ErrT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif 1272w, https://substackcdn.com/image/fetch/$s_!ErrT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef6074ec-8bda-4912-88d3-24cadd08af29_428x216.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>For comparison, here&#8217;s how GPT evolved from 117 million parameters (GPT-1, 2018) to hundreds of billions (GPT-4.5, 2025):</p><div id="youtube2-Y8dcyoWQQA0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Y8dcyoWQQA0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Y8dcyoWQQA0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The spreadsheet model is 6,500 times smaller than even GPT-2 Small. But it learned enough to showcase how the architecture works. That modern AI (for all its apparent magic) is just matrix multiplications. And even a spreadsheet can implement those.</p><h1><strong>Why This Matters</strong></h1><p>Google Sheets will never compete with PyTorch. 9-hour training runs make that clear.</p><p>But when you implement backpropagation by hand, you understand the entire architecture differently. Every gradient is a number in a cell. Every weight update is visible. If your math is wrong, the model doesn&#8217;t learn. No stack traces. No helpful error messages. You trace through formulas yourself until you find it.</p><p>This is <strong>inefficient and incredibly valuable</strong>.</p><p>The architecture of modern AI is math, not magic. When you implement that math without abstractions, patterns emerge that frameworks keep invisible. </p><p>The best way to understand complex systems is to build them with constraints that force visibility.</p><p>In this case, that meant a spreadsheet.</p><h1><strong>Try It Yourself</strong></h1><p>The <strong><a href="https://docs.google.com/spreadsheets/d/1AxnvhPrEDM3gXQ6L_h-_4DIXw_VOGVk99tckKHepclg/edit?usp=sharing">GPT SHEET</a></strong> is public. You can explore every formula, modify the architecture, and watch the model generate text.</p><p>Note: This is the inference version only &#8212; you can run inference but not retrain it. The full training version with gradients and backpropagation is much heavier. If you want to experiment with training, DM me and I&#8217;ll share it.</p><h3><strong>Resources that made this possible:</strong></h3><p>- <a href="https://bbycroft.net/llm">LLM Visualization</a> - really good interactive 3D visualization of transformer architecture</p><p>- <a href="https://www.youtube.com/watch?v=kCc8FmEb1nY">Let&#8217;s build GPT: from scratch, in code, spelled out</a> - by OG Karpathy</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading the product ledger! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Train Smarter, Not Harder]]></title><description><![CDATA[How I fine-tuned OpenAI model with real and synthetic data]]></description><link>https://zalex.co/p/train-smarter-not-harder-how-i-trained</link><guid isPermaLink="false">https://zalex.co/p/train-smarter-not-harder-how-i-trained</guid><dc:creator><![CDATA[Alex Zhezheraú]]></dc:creator><pubDate>Mon, 23 Sep 2024 16:29:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4psH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4psH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4psH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!4psH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!4psH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!4psH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4psH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic" width="644" height="644" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:644,&quot;bytes&quot;:179878,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4psH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!4psH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!4psH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!4psH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e9c04a3-2ffc-4f88-bbd5-7d82d002cca0_1024x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>AI's rapid progress relies on three pillars: compute, advancements in foundational models, and data. Compute power, driven by Nvidia, lets AI crunch through massive amounts of information. Advanced algorithms from research labs give AI new ways to learn and understand.</p><p>But here's the kicker - I believe the key for position of power for companies (both in application development and model creation) will increasingly shift towards data ownership and quality. Data is the raw material AI needs to actually get smart. The leading foundational model companies have already scraped the entire web for publicly available data. Now, the next frontier lies in accessing and leveraging unique, high-quality datasets that aren't freely available online.</p><p>Companies like Scale.ai will create enormous enterprise value by developing systems to collect, curate, and leverage non-public data. Other players in this space, such as Labelbox and Snorkel AI, are working on data labeling and management solutions. Are there other options for businesses and researchers looking to enhance their AI models?</p><p>Here's the question I'm trying to answer: Can we accelerate models fine-tuning and improve an AI's ability to generate correct and contextually accurate responses by fine-tuning it with real-world and synthetic data? My hypothesis is that this hybrid approach will outperform models trained solely on real-world data or those relying on sophisticated prompt engineering with a base model.</p><p>Why does this matter? Well, high-quality, diverse real-world data for vertical use cases is hard to come by. It's limited, expensive to collect, and may not cover all scenarios needed for domain-specific applications. But what if we could supplement it with realistic synthetic data? We could fine-tune AI more effectively and efficiently.</p><p>In this post, I explain how I created a unique training dataset and fine-tuned the OpenAI-4o-mini model. I used OpenAI&#8217;s Instruction Fine-tuning approach, which improves the model&#8217;s performance by training it on a large set of examples tailored to specific tasks. As a result, the model delivers more consistent and accurate outcomes across a variety of situations.</p><h2><strong>Why the Future of LLM Training might be Combining Real and Synthetic Data</strong></h2><p>In my experience, real-world data is essential but has limitations. It's often messy, incomplete, and narrow in scope. That's where synthetic data comes in:</p><ol><li><p>Scalability: Rapidly generate large volumes of diverse data</p></li><li><p>Customization: Create scenarios tailored to specific use cases</p></li><li><p>Edge Cases: Produce examples of rare but important situations</p></li></ol><p>This approach is particularly valuable in vertical use cases, where we need to expose the model to a wide range of specific scenarios and interactions. </p><p>In my experiments (which may not generalize), this hybrid approach consistently outperformed both pure real-data training and sophisticated prompt engineering with a base model.</p><p>I use my CBT Therapy Counselor project as an example, but the principles apply to many fields.</p><h2><strong>The Data Strategy: How I Built a 500-Session Training Dataset</strong></h2><h3><strong>Real Data: 300+ Scraped and Transcribed Counselor Sessions</strong></h3><p>To build a solid foundation for the AI Therapy Counselor, I collected over 300 actual counseling sessions. Here's how I approached this:</p><p><strong>Data source</strong>: I scraped CBT therapy session role-play transcriptions from a well-known video hosting platform. This provided a diverse range of publicly available therapy simulations.</p><p><strong>Data processing</strong>: I cleaned and formatted the transcriptions into OpenAI&#8217;s .jsonl format, removing irrelevant information and standardizing the structure. </p><p>This real-world data approximated authentic CBT interactions, although it was not from actual therapy sessions. It formed the basis of my training set, anchoring the AI model in realistic scenarios. It also prepared the groundwork for synthetic data input in the project's next phase.</p><p>Overall, the flow chart below summarizes the synthetic therapy sessions.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BLJu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BLJu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png 424w, https://substackcdn.com/image/fetch/$s_!BLJu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png 848w, https://substackcdn.com/image/fetch/$s_!BLJu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png 1272w, https://substackcdn.com/image/fetch/$s_!BLJu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BLJu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png" width="728" height="115" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:230,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:93437,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!BLJu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png 424w, https://substackcdn.com/image/fetch/$s_!BLJu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png 848w, https://substackcdn.com/image/fetch/$s_!BLJu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png 1272w, https://substackcdn.com/image/fetch/$s_!BLJu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa3b59a1-94ca-4c16-9992-761987e0a600_3506x555.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3><strong>Synthetic Persona Generation</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z2bf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z2bf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png 424w, https://substackcdn.com/image/fetch/$s_!z2bf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png 848w, https://substackcdn.com/image/fetch/$s_!z2bf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png 1272w, https://substackcdn.com/image/fetch/$s_!z2bf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z2bf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png" width="868" height="283" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/91308aa0-d04d-4999-90cc-83a54bece526_868x283.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:283,&quot;width&quot;:868,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58228,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!z2bf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png 424w, https://substackcdn.com/image/fetch/$s_!z2bf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png 848w, https://substackcdn.com/image/fetch/$s_!z2bf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png 1272w, https://substackcdn.com/image/fetch/$s_!z2bf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F91308aa0-d04d-4999-90cc-83a54bece526_868x283.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I created a set of synthetic personas and counseling themes to expand beyond the limitations of real-world data. These were imaginary clients with varied backgrounds, personalities, and issues. This diversity was key to ensuring the AI could learn to interact with all kinds of people.</p><h3><strong>Creating Therapy Situations Based on Personas and Themes</strong></h3><p>Next, I created a separate script that generated unique therapy scenarios tailored to each synthetic person's character. For example:</p><blockquote><p>"summary": "This scenario focuses on the challenges faced by young adults in managing ADHD in both academic and social settings. It highlights common cognitive distortions that can exacerbate their difficulties.",</p><p>"cognitive_distortions": ["Mind Reading", "Jumping to Conclusions"],</p><p>"scenario": "Emily is a 22-year-old college student at a large university in New York City. She was diagnosed with ADHD during her sophomore year. Despite starting medication and attending therapy sessions, she faces overwhelming anxiety and self-doubt about her academic performance and social interactions. Recently, Emily had a hard time completing a group project because she felt that her suggestions were ignored by her teammates. During their last meeting, Emily perceived that her teammates' silence meant they thought her ideas were foolish (Mind Reading). Due to this belief, Emily withdrew from contributing further, convinced that she was right and that they didn't value her input. Additionally, she received a 75% on her latest exam, lower than her usual grades. She immediately thought that this slip meant she would fail the course and, eventually, be unable to graduate (Jumping to Conclusions). These thoughts have led Emily to consider skipping classes and withdrawing from social interactions altogether."</p></blockquote><blockquote><p>"summary": "A woman experiences a low sexual frequency in her marriage and fears it reflects a deeper issue.",</p><p>"cognitive_distortions": ["All-or-Nothing Thinking", "Catastrophizing"], </p><p>"scenario": "Anna, a 34-year-old woman living in Chicago, has been married to her husband, Marcus, for seven years. Throughout their marriage, they have only had sex four or five times. Anna's friends have told her that most men would have left her by now, which has fostered a belief that her marriage is failing. She often finds herself in all-or-nothing thinking, believing either their relationship is perfect or it is doomed, with no middle ground. Additionally, Anna tends to catastrophize the situation, fearing that Marcus will leave her soon if things don't change, even though he hasn't shown signs of wanting to leave. Anna suspects that she has a low sex drive or that neither she nor Marcus knows how to improve their sexual relationship. She wishes to feel more connected to Marcus and improve their intimacy but feels overwhelmed and doesn't know where to start."</p></blockquote><h3><strong>Generating High-Quality Synthetic Sessions</strong></h3><p>I created detailed therapy sessions based on these synthetic people and situations using another script that leveraged OpenAI API. I ensured these sessions were different lengths and covered various topics to help the AI learn to be flexible.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1q7q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1q7q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png 424w, https://substackcdn.com/image/fetch/$s_!1q7q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png 848w, https://substackcdn.com/image/fetch/$s_!1q7q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png 1272w, https://substackcdn.com/image/fetch/$s_!1q7q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1q7q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png" width="989" height="129" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:129,&quot;width&quot;:989,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66608,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1q7q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png 424w, https://substackcdn.com/image/fetch/$s_!1q7q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png 848w, https://substackcdn.com/image/fetch/$s_!1q7q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png 1272w, https://substackcdn.com/image/fetch/$s_!1q7q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F19ad4f62-612f-4d60-a46d-fbce3a45fb0d_989x129.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3><strong>Data Evaluation and Cleanup</strong></h3><p>I also knew that even synthetic data needed a critical eye. To ensure quality, I developed a separate script that used an LLM to rank and evaluate each generated session. This process flagged sessions for manual review, allowing me to clean up inconsistencies or unrealistic elements.</p><p>The result? A final dataset of 500 diverse, high-quality therapy sessions. This hybrid collection combined the authenticity of real therapy transcripts with the controlled variety of synthetic scenarios, creating a rich training ground for my fine-tuned AI model.</p><h2>Performance Analysis of Empathy and Relevance in Models</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VRDq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VRDq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!VRDq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!VRDq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!VRDq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VRDq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png" width="354" height="531" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:1000,&quot;resizeWidth&quot;:354,&quot;bytes&quot;:806290,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VRDq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png 424w, https://substackcdn.com/image/fetch/$s_!VRDq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png 848w, https://substackcdn.com/image/fetch/$s_!VRDq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!VRDq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7dc9324b-c8d3-4937-b444-26e50f26b3eb_1000x1500.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Model Selection</h3><p>To understand how well different training approaches worked, I tested three different models. I used the same standardized prompt for each model to make the comparison fair:</p><ul><li><p><strong>Base Foundational Model</strong> (GPT-4o-mini): This model wasn't fine-tuned at all. It used only the original training and some smart prompt engineering to generate responses.</p></li><li><p><strong>Real-Data Fine-Tuned Model</strong>: This version of GPT-4o-mini was fine-tuned using real counseling sessions that were transcribed. This helped provide realistic contexts for therapy interactions.</p></li><li><p><strong>Hybrid Fine-Tuned Model</strong>: This version of GPT-4o-mini was fine-tuned with both real data from counselor sessions and additional synthetic data. The synthetic data was used to add more variety, covering situations that weren't in the real data.</p></li></ul><h3>Quantitative Measurement Approach</h3><p>To evaluate these models with numbers, I followed these steps:</p><p>&#8226; <strong>Dataset Creation</strong>: I made a dataset of 50 unique therapy scenarios. These included different kinds of issues that people face, like anxiety, cognitive distortions, and problems in relationships.</p><p>&#8226; <strong>Simulated Conversations</strong>: Each of these 50 scenarios was used to create a conversation with each of the three models. The patient side of each conversation was simulated by GPT-4o to keep things consistent. Altogether, I had 150 conversations (50 for each model).</p><p>&#8226; <strong>Scoring Methodology</strong>: Each conversation was scored for empathy and relevance. I used a clear scoring prompt to evaluate the quality of the responses consistently and thoroughly.</p><p>&#8226; <strong>Data Analysis</strong>: I summarized the scores from all the conversations and analyzed them to see how each model performed, both in terms of average scores and how consistent those scores were. This analysis helped me understand the strengths and weaknesses of each model's ability to communicate effectively.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!trne!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!trne!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png 424w, https://substackcdn.com/image/fetch/$s_!trne!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png 848w, https://substackcdn.com/image/fetch/$s_!trne!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png 1272w, https://substackcdn.com/image/fetch/$s_!trne!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!trne!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png" width="1456" height="154" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:154,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:91794,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!trne!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png 424w, https://substackcdn.com/image/fetch/$s_!trne!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png 848w, https://substackcdn.com/image/fetch/$s_!trne!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png 1272w, https://substackcdn.com/image/fetch/$s_!trne!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b81abc8-b35a-44c3-9e0b-9a9e7e54cb8c_3525x372.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The hybrid model had the highest average scores for empathy and relevance, scoring 8.64 and 8.66, respectively. The base model scored 8.48 for empathy and 8.08 for relevance, while the real-data model scored 7.32 for empathy and 7.24 for relevance. These results suggest that using both real and synthetic data makes the model better at understanding users, leading to more empathetic and relevant responses.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bzaX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bzaX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png 424w, https://substackcdn.com/image/fetch/$s_!bzaX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png 848w, https://substackcdn.com/image/fetch/$s_!bzaX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png 1272w, https://substackcdn.com/image/fetch/$s_!bzaX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bzaX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png" width="1000" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60395,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bzaX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png 424w, https://substackcdn.com/image/fetch/$s_!bzaX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png 848w, https://substackcdn.com/image/fetch/$s_!bzaX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png 1272w, https://substackcdn.com/image/fetch/$s_!bzaX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F10ccc0b4-95e2-4c6c-b9d6-fa8b178a8499_1000x800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The real-data fine-tuned model had the lowest performance, and there might be few reasons for this. First, real-world data often has inconsistencies and noise, which makes it harder for the model to learn effectively. Also, real counseling sessions tend to focus on more common situations, meaning the model might struggle with less typical but still important issues. Because of this, the model fine-tuned only on real data wasn't as flexible in handling a wide variety of user inputs.</p><h3>Overall Insights from Model Analysis</h3><p>The analysis gave me some important insights into how the models compared to each other:</p><p>&#8226; <strong>Hybrid Model Performance</strong>: The hybrid model had the highest average and median scores for empathy, relevance, and combined metrics. This shows it was the best at delivering quality responses overall.</p><p>&#8226; <strong>Base Model Consistency</strong>: The base model had the most consistent scores for empathy, relevance, and overall performance. This could be because it wasn't affected by the variability that fine-tuning sometimes introduces.</p><p>&#8226; <strong>Real-Data Model Variability</strong>: The real-data model, even though it was trained on actual counseling sessions, showed a lot of variability in its performance. This was likely because of the inconsistencies in real-world data, which made its results less predictable compared to the other models.</p><p>These insights suggest that while fine-tuning with real data gives the model a sense of real-world context, it also makes the model's performance less consistent. On the other hand, the hybrid model, by adding diverse synthetic data, helps reduce some of these issues, resulting in more consistent and better-quality responses. However, there's still a chance that the hybrid model could overfit in some rare cases, especially when the synthetic data doesn&#8217;t fully capture real-world variability. To avoid this, using an even more diverse set of synthetic data might help ensure the model stays strong without overfitting to specific, less common scenarios.</p><h3>Initial Qualitative Testing and Real-World Validation</h3><p>To build on the quantitative findings, I analyzed around 200 real conversations between users and the AI Therapy Counselor, and these gave me some valuable insights into how the models performed.</p><p>From the initial testing, the hybrid model stood out as the best. It showed a deeper understanding of the therapy framework, used therapeutic techniques more effectively, and gave more contextually appropriate responses. Adding synthetic data really helped fill in the gaps, allowing the model to handle a much wider range of situations.</p><p>One of the biggest improvements I noticed was how well the hybrid model managed longer conversations. It knew when to shift topics or suggest wrapping up a session&#8212;an important skill in effective therapy. This real-world validation backed up what I found earlier: the hybrid model outperformed the other models.</p><p>The hybrid model excelled in several key areas:</p><ul><li><p>Identifying and addressing unhelpful cognitive patterns. </p></li><li><p>Providing empathetic responses tailored to each user's situation. </p></li><li><p>Staying consistent during longer conversations. </p></li><li><p>Recommending effective therapy techniques and exercises.</p></li></ul><p>These observations matched up with the quantitative data, reinforcing the power of the hybrid approach. Combining real and synthetic data not only led to the highest average scores but also brought significant improvements in real-world conversations. The hybrid model showed it could handle complex therapeutic interactions, offering appropriate and empathetic responses while keeping conversations coherent, even during longer sessions.</p><h2><strong>Conclusion: Where Do We Go from Here?</strong></h2><p>My experiment showed that using real and synthetic data might work better for fine-tuning LLMs than just using real data. Here's why this is important:</p><ol><li><p>It helps the AI learn about more situations, even ones without real data.</p></li><li><p>We can control what the AI learns to cover all the important details.</p></li><li><p>This method could work for other fields, not just therapy.</p></li></ol><p>I believe the key to better AI isn't just having tons of data. It's about having the right mix of data that covers all the bases. This "smart data" approach could change how we train AI in the future.</p>]]></content:encoded></item><item><title><![CDATA[My Morning Routine - Morning Thinking Practice ]]></title><description><![CDATA[How I adopted daily thinking practice by Vasili Shinkarenka]]></description><link>https://zalex.co/p/my-mourning-routine-mourning-thinking</link><guid isPermaLink="false">https://zalex.co/p/my-mourning-routine-mourning-thinking</guid><dc:creator><![CDATA[Alex Zhezheraú]]></dc:creator><pubDate>Wed, 14 Sep 2022 20:00:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vrnr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vrnr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vrnr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!vrnr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!vrnr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!vrnr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vrnr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic" width="460" height="460" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:460,&quot;bytes&quot;:155351,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vrnr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!vrnr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!vrnr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!vrnr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbcf9d-da13-4bc8-9543-7e2685f64bdf_1024x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Today&#8217;s post will be related to something else than B2B SaaS-related topic but I couldn&#8217;t help myself and decided to share the morning practice I&#8217;ve adopted and have been using for the past 2 months.&nbsp;</p><p>A few years ago I&#8217;ve subscribed to Vasili&#8217;s newsletter and after a long period of silence, I received a new post from him on July 15. It was called &#8220;<a href="https://vasilishynkarenka.com/morning-thinking/">Morning Thinking Practice</a>&#8221;. Because I&#8217;m sort of a productivity freak no wonder I decided to read it. Because it made a sizable impact on my life even in short term I want to share it with you as well!</p><p>Below I&#8217;ll write about how I adopted it and share some reflections but I urge you to read the post from Vasili as well.&nbsp;</p><p>I typically get up at 6 am, dress up, have a glass of cold water and immediately go for a walk. My goal is to wake up my (1) mind and (2) body for the day ahead. I walk roughly for 30 mins or ~2kms. That&#8217;s similar to what Vasili has in his routine as well, check.</p><p>Once I get back I brew my black coffee, grab my diary and a pen and start the thinking practice. I&#8217;ve found it much more helpful and I&#8217;m less distracted when I use a pen and paper for writing instead of a laptop. Oh and I don&#8217;t use my phone when I get up and throughout the morning routine at all so I don&#8217;t end up checking emails or messengers and don't get disrupted by things that don&#8217;t matter. Given the morning is the time when my willpower is the weakest I don&#8217;t touch my phone at all and use the smartwatch for the alarm clock. You can buy a physical alarm clock if you&#8217;re not into smartwatches ;).</p><p>If my partner and I were lucky to buy some Pastel de nata (which is a Portuguese famous pastry) the previous day I will likely have one :)&nbsp; </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bQpQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bQpQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bQpQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bQpQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bQpQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bQpQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg" width="561" height="747.871565934066" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/ef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:561,&quot;bytes&quot;:3598539,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bQpQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bQpQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bQpQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bQpQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fef73ad3d-e89f-4122-a0e4-cac4b8d119c5_3024x4032.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Otherwise, I grab my pen, and my diary and start the thinking practice typically reflecting on the following questions:</p><ul><li><p>Check-in: how do I feel about this morning both body- and mind-wise? I also put a 5-star score each day for this question to track at scale and be able to understand the root causes when I&#8217;m not feeling amazing.</p></li><li><p>Some reflection on yesterday which acts like a self-therapy: what went great and what didn&#8217;t, ranging from questions like &#8220;why didn&#8217;t that conversation go well, how could I be more efficient to achieve the goal next time&#8221; to &#8220;I couldn&#8217;t help myself not to eat the whole can of Pringles&#8221;.</p></li></ul><p>As Vasili suggest:</p><blockquote><p>I perceive my faulty actions as wrong outputs of my neural network and try to act as a programmer who, faced with bugs in his software, would get curious and investigate the root cause. (Incidentally, hardware-software-programmer is a good analogy for brain-mind-consciousness.) If I did something great yesterday, I would praise myself!</p></blockquote><p>That&#8217;s exactly the point, the goal is to do incremental improvements each day and I think I don&#8217;t need to remind you that improving each day by 1% will yield you 37.78 times results in 1 year.</p><ul><li><p>some recall and/or synthesis of recently learned information: it could be a summary of the article I&#8217;ve read the other day, a chapter of the book or learning I&#8217;ve got recently.</p></li><li><p>my thoughts related to all sorts of things, could be technical (&#8220;How does company culture influence its performance?&#8221;) or more philosophical (&#8220;what is the role of government in modern society, do we need government in its current form and how could a new &#8216;system&#8217; look like?&#8221;).</p></li><li><p>I&#8217;ve found this question very interesting and mind-bending as long as you can prepare interesting topics to explore beforehand, for some reason I rarely can come up with a deep topic at 6 am :).&nbsp;</p></li><li><p>Work or life-related problem-solving. Could be questions like &#8220;What do I know about the vendor and what they care about so I negotiate a deal on the meeting with them&#8221; or brainstorming potential vertical niches for a startup idea or even writing an email text by hand that&#8217;s of high importance where I only have 1 shot.</p></li></ul><p>When I started using this approach I should admit I had quite a euphoria, it felt amazing to spend 30-50 mins alone 1-1 with my mind exploring my feelings and also doing various mental exercises. I was also pitching this thinking practice to my friends a lot :). The feeling of novelty disappeared in 2 weeks but I also found it to be a great tool for concentration and kicking off my day and giving me the energy and focus to work on the most important thing I have for the day.</p><p>Also, the key thing is not to get frustrated when you don&#8217;t have things to think about. You shouldn&#8217;t feel that you must think through all those 5 items. Sometimes I use all of them, something I use only 3. I always use the first 2 questions but the rest are more flexible. This freedom, I think, might be the reason why they work so well as they&#8217;re more of a free-flow exploration into whatever is on my mind. </p><p>The last important benefit I&#8217;ve got from this practice is a new connection ;). After using the practice for a few weeks and realizing its tremendous value I decided to reach out to Vasili and thank him for sharing the routing and making my days better. He gave me his Telegram and we hopped on the call and what should have been a 30-minute conversation turned into 3h chat. But that&#8217;s another story ;).</p><p></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Top B2B SaaS newsletter ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[You've Reached Product-Market Fit, Now What?]]></title><description><![CDATA[It&#8217;s been few years as you&#8217;ve reached product-market fit (PMF). Your company is scaling fast, ARR is growing 40-50% YoY, you're onboarding new employees every week. You&#8217;re hiring sales reps to support the demand marketing team has generated. New competition pops up and you&#8217;re on the verge of deciding on the next steps of your winning strategy.]]></description><link>https://zalex.co/p/how-to-grow-post-pmf</link><guid isPermaLink="false">https://zalex.co/p/how-to-grow-post-pmf</guid><dc:creator><![CDATA[Alex Zhezheraú]]></dc:creator><pubDate>Mon, 29 Aug 2022 14:36:22 GMT</pubDate><enclosure url="https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3af9766b-e1a1-4502-bd8b-a1b0b19e1c9b_736x552.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s been few years as you&#8217;ve reached product-market fit (PMF). Your company is scaling fast, ARR is growing 40-50% YoY, you're onboarding new employees every week. You&#8217;re hiring sales reps to support the demand marketing team has generated. New competition pops up and you&#8217;re on the verge of deciding on the next steps of your winning strategy.</p><p>One of the most common frameworks being studied in business schools is Michael Porter&#8217;s approach to do structural analysis of industries and companies in the industry. The framework is outlined in the book &#8220;<a href="https://www.amazon.com/Competitive-Strategy-Techniques-Industries-Competitors-ebook/dp/B001CB34J0">Competitive Strategy: Techniques for Analyzing Industries and Competitors</a>&#8220;. A very quick summary of the book could look like this.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading the product ledger! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The worst industry is the one that has all/most of these:</p><ul><li><p>all of the players in the market are the same and their products don&#8217;t have unique differentiation (i.e. commodity products);</p></li><li><p>switching costs are close to 0 - customers can easily compare offers from different vendors and move from one vendor to another without a hurdle;</p></li><li><p>every player on the market has the same tech and the production costs are the same across all vendors;</p></li></ul><p>To continue the growth you will make decisions to (1) differentiate your offering to better serve your target audience, (2) increase your business defensibility so that your competition can&#8217;t outpace and outgrow you and (3) timely reacting to market dynamics changes.</p><p>Business growth is a function of product-market fit (PMF) strength, product-channel fit strength and market dynamics.</p><p>These are the typical areas where your growth can be hindered. It&#8217;s also paramount to think ahead of time of what your strategy to win the market is even before you hit the ceiling of growth.</p><p>Let&#8217;s explore ways to defy the odds and continue your path to becoming a unicorn &#129412; and beyond. </p><h3>Continue Growing Within Existing PMF</h3><p>First things first, let&#8217;s start from the most obvious one. Your TAM is big, your marketing team can still generate demand and high quality leads through a combination of content marketing, SEO and performance marketing. You probably use affiliate marketing and channel sales through partnerships as well and can continue steady growth. </p><p>In this case you should allocate majority of your resources and capital into 2 categories:</p><ol><li><p>Improving your PMF (product-market fit)</p><ol><li><p>invest into onboarding and activation of new prospects;</p></li><li><p>invest into engagement of your customer base in the first 30-60 days (drive early retention);</p></li><li><p>build additional features to better solve the core problem of your existing target audience;</p></li><li><p>improve the product across pricing plans to drive upgrade motion and increase your Net Revenue Retention (<a href="https://zalex.co/p/measuring-net-revenue-retention">one of the most important metrics in SaaS</a>)</p></li></ol></li><li><p>Improving your PCF (product-channel fit)</p><ol><li><p>improve CAC of the existing channels;</p></li><li><p>experiment to find new channels;</p></li><li><p>improve the handoff of leads from the marketing website to the signup funnel of the product (personalisation, tailored onboarding, etc)</p></li></ol></li></ol><p>(I know it sounds easy when in reality it&#8217;s hard but we&#8217;re not trying to dig deep into each approach today as every one of them requires an essay on its own &#128516;)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PoDm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PoDm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png 424w, https://substackcdn.com/image/fetch/$s_!PoDm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png 848w, https://substackcdn.com/image/fetch/$s_!PoDm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png 1272w, https://substackcdn.com/image/fetch/$s_!PoDm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PoDm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png" width="579" height="377" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/f43ec565-af78-4b79-8109-bba0827c9403_579x377.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:579,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55525,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PoDm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png 424w, https://substackcdn.com/image/fetch/$s_!PoDm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png 848w, https://substackcdn.com/image/fetch/$s_!PoDm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png 1272w, https://substackcdn.com/image/fetch/$s_!PoDm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43ec565-af78-4b79-8109-bba0827c9403_579x377.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>Expanding the PMF</h3><p>Your demand generation team is struggling to drive more traffic (you&#8217;ve reached ceiling in growing organic traffic and/or paid channels don&#8217;t work anymore), you&#8217;re observing the competition closing the gaps in their products and the value add of your offering isn&#8217;t compelling enough to switch customers. </p><p>Let&#8217;s see what are the common ways to continue the growth.</p><p></p><h4>Horizontal Expansion</h4><p>Your company has achieved PMF for specific customers&#8217; Job to be Done (JTBD) and you start adding additional solutions to solve adjacent Jobs to be Done.</p><ul><li><p>Reforge.com started from niche courses teaching PMs everything about growth but then expanded to other course topics (not they have more than 10 courses for pms, marketers and even engineers);</p></li><li><p>Amazon started from selling books but after 4 years rapidly added more categories like toys, DVDs and etc;</p></li><li><p>PandaDoc started in e-signature and proposal management software categories but then added CPQ and contract management use cases.</p></li></ul><p></p><h4><strong>Vertical Expansion</strong></h4><p>Moving up or down the value chain to extend your market size. You decided to beat the competition by providing an end-to-end solution for your customers and add additional products or services within the same JTBD.</p><ul><li><p>when <a href="http://pos.toasttab.com">Toast</a> started, it was yet another point of sale system in a red ocean of competitors. Toast laser focus on restaurants and used POS as control point and layer on additional downstream products and business lines;</p></li><li><p>Amazon created their own logistical centres to replace the need to hire 3PL providers;</p></li><li><p>Docusign has been offering e-signature services for a long time but in 2018 acquired SpringCM to move beyond its bread and butter niche to expand vertically into contract management and build what it calls the System of Agreement.</p></li></ul><p>(You can read my thoughts on the reasons for Vertical SaaS being one of the most lucrative business ideas in the next decade <a href="https://zalex.co/p/a-game-changing-time-for-vertical-saas">here</a>).</p><p></p><h4>GEO Expansion </h4><p>Uber and Airbnb expanding beyond New York throughout the entire US and then abroad. Netflix launched in US, shortly after expanded to Canada and then to Europe, so you got it.</p><p></p><h4>Entirely New Product Using Existing Assets </h4><p>More generalised approach that somewhat includes all of the options above is leveraging existing assets (customers, data, technology, partnerships, etc) to build a new business line. You typically build a completely new product unrelated to the core business line.</p><ul><li><p>Uber had created a distribution channel (Uber app and it&#8217;s audience) and  launched Uber Eats leveraging their existing customers and also the technology;</p></li><li><p>Uplead (email finder solution) has leveraged existing sales audience and launched e-signature product (could be also attributed to vertical expansion);</p></li><li><p>Yandex has been enjoying maps product for a long time and then they&#8217;ve launched Yandex Taxi product using existing maps infrastructure.</p></li></ul><p></p><h4>Double-Down on Defensibility</h4><p>Competitive advantages like speed, unique team, differentiated product, capital, content and others help your company become successful. Defensibility helps you stay there. If you&#8217;re able to move past competitive advantages to true defensibility&nbsp;&#8212; to really being able to protect your business from competition &#8212; your&nbsp;value grows exponentially.</p><p>Hamilton Helmer in his must-read strategy book <a href="https://www.amazon.com/7-Powers-Foundations-Business-Strategy/dp/0998116319/">7 Powers: The Foundations of Business Strategy</a> defines 7 defensibility strategies.</p><p><strong>Network Effects</strong>&nbsp;(examples: LinkedIn, Facebook, TikTok, Salesforce). A business where the value realized by a customer increases as the userbase increases, i.e. when another user makes the service more valuable for every other user. Once your company gets ahead, users won&#8217;t find as much&nbsp;value&nbsp;in your competitors&#8217; smaller networks. You would think that Network Effects can be only achieved for consumer products, but that&#8217; not entirely true. It can be also applicable to B2B as well - Salesforce extended their APIs and allowed ISVs to build 3rd party solutions and market them on AppExchange. Then Salesforce launched their Trailhead product (free courses to learn how to build, launch and administer apps and Salesforce overall) which has further driven the flywheel effect: more developers build niche extensions, more customers, more ISVs and independent developers are interested in learning and making money on Salesforce ecosystem.</p><p><strong>Scale Economies</strong>&nbsp;(example: Amazon, Walmart, Netflix). Per unit costs decline as volume increases.&nbsp;This means higher gross margin, means you can invest more into product/marketing or sales, more users means more volume, means you can get cheaper prices from suppliers (if any), means lower prices for customers, means higher conversion rates, makes your advertising more effective than your competition. The flywheel goes on.</p><p><strong>Brand</strong>&nbsp;(examples: Tiffany, Booking.com, Google). A business that enjoys a higher perceived value to an objectively identical offering due to historical information about them. With brand, a certain company can stand top of mind when we think of something we need, Tiffany can charge high prices for actually not-so-high-quality diamonds and jewellery because of their more than 180y heritage and brand promise. Further, people come to identify themselves with brands. People who want to associate with Apple products&nbsp;will not comparison shop. Those psychological barriers make it very hard for competitors to break in.</p><p><strong>Switching Costs</strong>&nbsp;(examples: Workday, Oracle, SAP, Salesforce, many other Enterprise software). A business where customers expect a greater loss than the value they gain from switching to an alternate. This works when you integrate your software into a customer&#8217;s operations so the customer can&#8217;t easily rip you out and replace you with a competitor. The more business critical your software is and the more integrations with other customer systems you&#8217;ve deployed, the more gross and net retention you can enjoy.</p><p>The four defensibility strategies are the most common ones and scale with you as the company grows. As you&#8217;ve imagined based on the book name, there&#8217;re 3 more:</p><p><strong>Counter Positioning</strong> (examples: Netflix, Walmart) typically happen during the early stages of company&#8217;s life and means that business adopts a new, superior business model that incumbents cannot or unwilling to copy due to the anticipated cannibalization of their existing business or other reasons. One of the reasons Netflix successfully won over Blockbuster was the fact that Netflix didn&#8217;t take any fees for late return. This (among other reasons) allowed them to rapidly take over market share from Blockbuster that wouldn&#8217;t want to adopt the same approach given late fees accounted for more than 15% of the revenues.</p><p>The other 2 defensibility strategies are &#8216;Cornered Resources&#8217; (A business that has preferential access to a coveted resource that independently enhances value. Example: Pixar) and &#8216;Process Power&#8217; (A business which organization and activity set enables lower costs and/or superior products that can only be matched by an extended commitment. Example: Toyota Production System) are in my humble opinion arbitrary and are extremely rare to find on the market. </p><p><em>(social preview image credit goes to Design Manila Studio)</em></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Top B2B SaaS newsletter ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A Game-Changing Time for Vertical SaaS]]></title><description><![CDATA[Back in 1998 Michael Porter introduced four competitive strategies in his Competitive Advantage book, and it&#8217;s been a staple in business schools and in practice ever since. The strategies that might seem utterly oversimplified are: Horizontal + low cost]]></description><link>https://zalex.co/p/a-game-changing-time-for-vertical-saas</link><guid isPermaLink="false">https://zalex.co/p/a-game-changing-time-for-vertical-saas</guid><dc:creator><![CDATA[Alex Zhezheraú]]></dc:creator><pubDate>Sat, 20 Aug 2022 20:30:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b_-3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b_-3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!b_-3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!b_-3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!b_-3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b_-3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic" width="534" height="534" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:534,&quot;bytes&quot;:60335,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b_-3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!b_-3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!b_-3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!b_-3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35c2b8d9-3a56-4856-835c-0450a125e165_1024x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Back in 1998, Michael Porter introduced four competitive strategies in his <em>Competitive Advantage</em>&nbsp;book, and it&#8217;s been a staple in business schools and practice ever since. The strategies that might seem utterly oversimplified are:</p><ol><li><p>Horizontal + low cost</p></li><li><p>Horizontal + differentiated</p></li><li><p>Vertical + low cost</p></li><li><p>Vertical + differentiated</p></li></ol><p>In the recent 10-15 years we&#8217;ve seen the myriad of horizontal SaaS businesses that were selling broad: Notion, Airtable, Dropbox, Slack, Asana, Zoom, Canva, etc. There&#8217;ve been numerous insanely successful Vertical SaaS Vendors as well like Figma, Toast, SiteMinder, Atlassian Jira, and many others.&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading the product ledger! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I believe Vertical SaaS is gonna be one of the largest and most exciting software categories over the next decade.</p><h3>Why it&#8217;s a big opportunity?</h3><p>First of all many more companies are now digital by default and have been already using some patchwork of disjoint solutions. Especially post-COVID, customers have a high bar for the digital capabilities of even the smallest businesses. Companies need digital products for every function to not only provide world-class customer experience but also automate the business and increase profit margins, and they're realizing that a suite is superior to a patchwork.</p><p>Vertical SaaS applications bundle many horizontal solutions typically in simplified manner: ERP + CRM + contracts/invoices + some sort of email marketing + forms, etc.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Af1C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Af1C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png 424w, https://substackcdn.com/image/fetch/$s_!Af1C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png 848w, https://substackcdn.com/image/fetch/$s_!Af1C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png 1272w, https://substackcdn.com/image/fetch/$s_!Af1C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Af1C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png" width="789" height="342" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:789,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43915,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Af1C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png 424w, https://substackcdn.com/image/fetch/$s_!Af1C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png 848w, https://substackcdn.com/image/fetch/$s_!Af1C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png 1272w, https://substackcdn.com/image/fetch/$s_!Af1C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F26a1371a-a90a-4694-b24a-38935f10bd5b_789x342.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em><a href="https://www.siteminder.com">SiteMinder</a></em></figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EEOK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EEOK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png 424w, https://substackcdn.com/image/fetch/$s_!EEOK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png 848w, https://substackcdn.com/image/fetch/$s_!EEOK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png 1272w, https://substackcdn.com/image/fetch/$s_!EEOK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EEOK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png" width="1132" height="639" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1132,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134338,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EEOK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png 424w, https://substackcdn.com/image/fetch/$s_!EEOK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png 848w, https://substackcdn.com/image/fetch/$s_!EEOK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png 1272w, https://substackcdn.com/image/fetch/$s_!EEOK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F176e9927-40df-4e1a-8486-5cb5fe152a63_1132x639.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em><a href="https://pos.toasttab.com">Toast</a></em></figcaption></figure></div><p>This may just seem like a bundle of commodity products. Indeed, there often are point solutions that are better in absolute terms because they have more rich functionality since they do one thing very well. However, a typical business needs many such horizontal apps which will also go to cost. When you start stitching these tools together you start wondering where&#8217;s the source of truth for the list of active customers, their lifetime value, marketing data, active contracts, products in stock, etc. Yes, you can use Zapier but you will never have a seamless experience and a single source of truth for your business.</p><p>On the other hand, vertical SaaS apps provide a system of record for the business, are purposefully built for specific use cases and support best practices, and tailor UX to better serve the vertical.</p><p>But most importantly there&#8217;s a new Embedded Fintech market emerging (market&nbsp;<a href="https://www.linkedin.com/pulse/embedded-finance-game-changing-opportunity-incumbents-simon-torrance/">projected to reach $7 trillion</a>) which enables any business to integrate financial services to create new customer experiences. This in return allows SaaS to monetize not only via subscription but also via embedded fintech products &#8212; such as transaction processing, loans, insurance, and others &#8212; such businesses are in the position to offer the right service at the right time because they understand the context, they understand the customer. This way SaaS solutions can create and capture more value for their customers and it&#8217;s also very attractive for the company as well because this is a very high-margin business.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x5-T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x5-T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png 424w, https://substackcdn.com/image/fetch/$s_!x5-T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png 848w, https://substackcdn.com/image/fetch/$s_!x5-T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png 1272w, https://substackcdn.com/image/fetch/$s_!x5-T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x5-T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png" width="871" height="402" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:402,&quot;width&quot;:871,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79635,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!x5-T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png 424w, https://substackcdn.com/image/fetch/$s_!x5-T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png 848w, https://substackcdn.com/image/fetch/$s_!x5-T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png 1272w, https://substackcdn.com/image/fetch/$s_!x5-T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F95f3b03d-896f-42f6-befb-f1d87398406c_871x402.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em><a href="http://weavr.io">Weavr</a></em></figcaption></figure></div><p>A great example of the company benefiting from the SaaS + Fintech product (lending) model is Lendis:&nbsp;<a href="https://zalex.co/p/office-equipment-industry-is-being-disrupted">these guys lend office</a>&nbsp;equipment (laptops, furniture) to their customers and offer SaaS to manage all of that equipment.&nbsp;</p><p>Embedding fintech improves retention by making the product stickier and also adds additional revenue streams. With an embedded service, the SaaS provider can draw on a proprietary set of data &#8211; ex for a lending product for a specific niche &#8211; to underwrite risk, factoring in things like a specific business model to better tailor the financial product to the customer&#8217;s needs. A good example is&nbsp;<a href="https://twitter.com/NathanLatka">Nathan Latka&#8217;s</a>&nbsp;Founderpath which has recently raised $145m on its balance sheet to offer revenue-based loans to SaaS businesses. You connect your Stripe and other SaaS tools and Founderpath estimates how much your business is worth and turns your monthly subscriptions into an upfront loan with a click of a button.</p><h3>Embedded Fintech improves not only LTV but also CAC</h3><p>There are several ways how embedded fintech can impact your go-to-market efficiency:&nbsp;</p><ul><li><p>by increasing LTV you can utilize previously untapped marketing channels (ex. hire outbound inside sales team for SMB SaaS product) that were not ROI positive before;</p></li><li><p>you can offer SaaS products for less or even for free to wedge into a customer base that was either reluctant to digitize or was not ready to pay SaaS fees.&nbsp;</p></li><li><p>even at the same price, you&#8217;re offering more value (SaaS + Fintech) to your customer base which will increase your opportunities won close rates.</p></li></ul><div><hr></div><p>In 5-10 years, this playbook will be well known and the space more competitive or even commoditized, as SaaS has become over the last 10+ years. But right now there are significant opportunities for entrepreneurs to launch fascinating end-to-end Vertical SaaS products with embedded Fintech. </p><p>I wonder though what would be the next decade's opportunity? </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Top B2B SaaS newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Measuring Net Revenue Retention in SaaS]]></title><description><![CDATA[Net Revenue Retention (NRR) is one of the most important metrics in a SaaS business.]]></description><link>https://zalex.co/p/measuring-net-revenue-retention</link><guid isPermaLink="false">https://zalex.co/p/measuring-net-revenue-retention</guid><dc:creator><![CDATA[Alex Zhezheraú]]></dc:creator><pubDate>Sat, 13 Aug 2022 21:15:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uicN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uicN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!uicN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!uicN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!uicN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uicN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic" width="558" height="558" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:558,&quot;bytes&quot;:97354,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uicN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!uicN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!uicN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!uicN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F552a872a-b149-4c1a-9a12-4e7adab90c18_1024x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Net Revenue Retention (NRR) is one of the most important metrics in a SaaS business. It measures the value of a cohort of customers over time including expansion, cross-sell, and churn or contraction (loss of revenue). Needless to say if you want recurring revenue, you need to deliver recurring customer impact ;). But it&#8217;s not the topic of this conversation.</p><p>So how do you measure NRR?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading the product ledger! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The typical formula out there is <em>starting MRR/ending MRR*100%</em>. In B2B SaaS we typically take the annual timeframe because of the annual contracts. </p><p>This is what I call &#8216;investors&#8217; approach - as you essentially take the entire paying customer base to calculate NRR. There&#8217;s one more &#8216;operational&#8217; approach - you only take the last 1y cohort to calculate NRR. By comparing the two you will see whether your NRR has improved against the metric of the entire customer base or not. </p><p>But there&#8217;re also other ways to calculate that. Here&#8217;s a breakdown of how popular public companies calculate NRR:</p><blockquote><p>Twilio: <em>Our dollar-based net expansion rate compares the revenue from active customer accounts in a quarter to the same quarter in the prior year.</em></p></blockquote><blockquote><p>Box measure 12 month bookings changes for each cohort: <em>We calculate our retention rate as of a period end by starting with the annual contract value (ACV) from customers with contract value of $5,000 or more as of 12 months prior to such period end (Prior Period ACV) and a subscription term of at least 12 months. We then calculate ACV from these same customers as of the current period end (Current Period ACV). Finally, we divide the aggregate Current Period ACV for the trailing 12 month period by the aggregate Prior Period ACV for the trailing 12 month period to arrive at our retention rate.</em></p></blockquote><blockquote><p>MongoDB has its unique way to calculate NRR as well: <em>We calculate net ARR expansion rate by dividing the ARR for a given period from customers who were also customers at the close of the same period in the prior year, the base period, by the ARR for the base period from those same customers.</em></p></blockquote><p>How do you pick the right one for the business? Few ideas:</p><ul><li><p>if your business has annual contracts, then measure it using annual timeframes;</p></li><li><p>if your business has historical spikes in expansions/churn (meaning you probably work with enterprise customer segment), then comparing starting and ending revenue smoothed out by quarters is a better measure;</p></li><li><p>finally if you business is usage/utility based then monthly is likely a way to go.</p></li></ul><p>It&#8217;s also important for founders and product leadership to benchmark your business to other companies who (1) measure it the same way, (2) who&#8217;re in your category.</p><p>Imagine you&#8217;re in project/collaborative management space and you&#8217;re lucky there&#8217;re public companies you can compare yourself with. This is a comparison table I&#8217;ve created at Wrike to compare ourselves with some of the public companies in the niche. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!450i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!450i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png 424w, https://substackcdn.com/image/fetch/$s_!450i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png 848w, https://substackcdn.com/image/fetch/$s_!450i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png 1272w, https://substackcdn.com/image/fetch/$s_!450i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!450i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png" width="724" height="357.1081081081081" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/b51da97f-9796-4b95-a322-6c40bd51e497_592x292.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:292,&quot;width&quot;:592,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:41042,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!450i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png 424w, https://substackcdn.com/image/fetch/$s_!450i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png 848w, https://substackcdn.com/image/fetch/$s_!450i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png 1272w, https://substackcdn.com/image/fetch/$s_!450i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51da97f-9796-4b95-a322-6c40bd51e497_592x292.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>However more important principle is to stick to the way you calculate NRR to stay consistent ;).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Top B2B SaaS newsletter ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Office Equipment Industry is being Disrupted]]></title><description><![CDATA[Office as a Subscription era?]]></description><link>https://zalex.co/p/office-equipment-industry-is-being-disrupted</link><guid isPermaLink="false">https://zalex.co/p/office-equipment-industry-is-being-disrupted</guid><dc:creator><![CDATA[Alex Zhezheraú]]></dc:creator><pubDate>Fri, 12 Aug 2022 08:09:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wAxE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wAxE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wAxE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!wAxE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!wAxE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!wAxE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wAxE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic" width="466" height="466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:466,&quot;bytes&quot;:149205,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wAxE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!wAxE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!wAxE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!wAxE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1269c632-0538-4227-a406-49f961163ec2_1024x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve been recently enjoying my morning brew and browsing Linkedin when it suggested me a product exec position at <a href="https://www.lendis.io/en/">Lendis</a>. You can imagine my curiosity level so I  jumped in to understand what these guys are working on:</p><blockquote><p><em>With our innovative software solution, we simplify the way companies select, procure &amp; manage their work equipment and focus on what matters - the success of the business.</em> </p></blockquote><p>Equipment supplier? Hope there&#8217;s more to that :). Let&#8217;s see.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading the product ledger! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><blockquote><p><em>Just a few clicks and you're done. We take care of the equipment, delivery, software licences and everything in between.</em></p></blockquote><p>Ok, what&#8217;s Lendis strategy to compete with incumbent suppliers?</p><p>As one smart guy said: people think strategy is about profit, but really, it&#8217;s about <strong>power</strong>. Profit is just the prize.</p><p>I&#8217;ll use Michael Porter&#8217;s &#8220;Competitive Advantage: Creating and Sustaining Superior Performance&#8221; <strong>value chain</strong> approach to explore how Lendis obtains power and their strategy to win. </p><p>A value chain is  a concept describing the full chain of a business's activities in the creation of a product or service. From emerging of the customer&#8217;s need to its fulfilment and beyond to how this fulfilment has been created. </p><p>Let&#8217;s make a high-level value chain of current equipment procurement process:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Acbp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Acbp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png 424w, https://substackcdn.com/image/fetch/$s_!Acbp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png 848w, https://substackcdn.com/image/fetch/$s_!Acbp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png 1272w, https://substackcdn.com/image/fetch/$s_!Acbp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Acbp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png" width="466" height="672.6754807692307" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/bb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1201,&quot;width&quot;:832,&quot;resizeWidth&quot;:466,&quot;bytes&quot;:308276,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Acbp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png 424w, https://substackcdn.com/image/fetch/$s_!Acbp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png 848w, https://substackcdn.com/image/fetch/$s_!Acbp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png 1272w, https://substackcdn.com/image/fetch/$s_!Acbp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb2d653d-75d9-42da-95bc-2a50e40856d2_832x1201.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The following key value chain elements of the incumbent model are being disrupted:</p><ul><li><p>fragmented supplier state;</p></li><li><p>payment terms;</p></li><li><p>equipment disposal / end of life.</p></li></ul><p>Lendis aggregates fragmented supply side by purchasing common equipment that companies need for an ergonomic workplace and <strong>lending</strong> it to the companies. This includes height-adjustable desks, laptops and other things. </p><p>Let&#8217;s look at the value chain to understand whether the new business model is more superior:</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!exJ6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!exJ6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png 424w, https://substackcdn.com/image/fetch/$s_!exJ6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png 848w, https://substackcdn.com/image/fetch/$s_!exJ6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png 1272w, https://substackcdn.com/image/fetch/$s_!exJ6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!exJ6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png" width="478" height="813.7232375979112" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1304,&quot;width&quot;:766,&quot;resizeWidth&quot;:478,&quot;bytes&quot;:315098,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!exJ6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png 424w, https://substackcdn.com/image/fetch/$s_!exJ6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png 848w, https://substackcdn.com/image/fetch/$s_!exJ6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png 1272w, https://substackcdn.com/image/fetch/$s_!exJ6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F50ee9a61-f585-4ce1-98d5-e1e3202079a2_766x1304.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>So what does Lendies do to win power?</p><ul><li><p>takes all the hustle from the office manager/admin/hr to work with many equipment providers;</p></li><li><p>[more importantly] provides flexibility of capital allocation for companies by <strong>lending equipment</strong>; </p><blockquote><p><em>customer quote: Lendis has saved us a large investment. The new equipment would have cost us $50,000.</em></p></blockquote></li><li><p>[power, coming from the previous point] Lendis can re-lend the equipment and make higher margins on the assets they lend vs they would have sold it to the customer.</p></li></ul><p>The value chain for any given consumer market is divided into three parts: suppliers, distributors, and customers. The best way to make outsize profits in any of these markets is to either gain a horizontal monopoly in one of the three parts or to integrate two of the parts such that you have a competitive advantage in delivering a vertical solution. Lendis does exactly the later.</p><p>Moreover the ability to make higher margins on lending equipment vs selling it allows to unlocks Lendis growth levers not available to traditional suppliers:</p><ul><li><p>scale the customer base rapidly because they can spend more $$ on the acquisition;</p></li><li><p>raise debt to scale the ability to buy equipment and support customer base growth;</p><ul><li><p>Lendis recently raised &#8364;80m, through a combination of debt and equity from Circularity Capital and Keen Venture Partners, HV Capital, DN Capital, Picus Capital and Coparion. My assumption is the <strong>majority (60-70%) of the round was debt</strong>. </p></li></ul></li></ul><p>The question I am most interested in, though, is a different one: the company operates in Germany, Austria and Switzerland and plans to scale within EU. Aggregating supply would require heavy logistics operations, I wonder whether it would be a hard ceiling to crack? </p><p></p><p> </p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Top B2B SaaS newsletter ! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How to Structure your Product Organization ]]></title><description><![CDATA[Recently I&#8217;ve been thinking a lot about Product Organizational structures and want to share my quick thoughts here.]]></description><link>https://zalex.co/p/how-to-structure-your-product-organization</link><guid isPermaLink="false">https://zalex.co/p/how-to-structure-your-product-organization</guid><dc:creator><![CDATA[Alex Zhezheraú]]></dc:creator><pubDate>Sun, 07 Aug 2022 17:58:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QEG1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QEG1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QEG1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!QEG1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!QEG1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!QEG1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QEG1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic" width="590" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:590,&quot;bytes&quot;:246870,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QEG1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!QEG1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!QEG1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!QEG1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d9e7df-e8d7-4a2a-a3d0-0270e1dd095d_1024x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Recently I&#8217;ve been thinking a lot about Product Organizational structures and want to share my quick thoughts here. </p><p>As a company's CPO / Product Leader (PL), at some point of time you need to think very carefully how your product organizational structure will be designed. Since structure determines functional capabilities (compare how Burj Khalifa and your office building have been built - I imagine they have very different structural foundations), PLs should be thoughtful which product organizational structures they build. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading the product ledger! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Feature-based structure </h3><p>Typical structure for B2B SaaS startups (and I imagine for other business models as well) is feature-based team organisation. Say you&#8217;re leading the product team at famous CRM company. In the scenario above you would probably have separate teams that work on:</p><ul><li><p>lead/contact/account lists experience;</p></li><li><p>lead/contact/account details page experience;</p></li><li><p>analytics and reporting;</p></li><li><p>outreach capabilities;</p></li><li><p>and etc</p></li></ul><p>This is probably by far <strong>the most common </strong>approach to structure product teams that <strong>has the most drawbacks</strong>:</p><ul><li><p>feature teams are hard to evaluate objectively because they&#8217;re not defined to drive specific outcomes;</p></li><li><p>teams / units are not really owning the entire customer experience of the JTBD;</p></li><li><p>it takes many calories for PMs to map how exactly their feature &#8216;scopes&#8217; can drive value for the business this quarter;</p></li><li><p>PMs get &#8216;married&#8217; to their &#8216;scopes&#8217; and might overlook when their investments will bring diminishing returns and ROI will start decreasing. This is especially dangerous when product org is not agile and keep running the same structure for years.</p></li><li><p>typically leads to unequal resourcing distribution that ultimately damages the growth of the business: say as a business you need to invest more resources into optimising the funnel and drive more acquisition but your growth unit has only 2 teams - what do you do? Do you dismantle a team from other units to reallocate resources? Feature team structure doesn&#8217;t typically allow to do that easily.</p></li></ul><h3>Outcome-based structure</h3><p>The more effective (but probably the one that&#8217;s harder to pull off) is outcome based product org structure where PMs would own specific product metrics that are meaningful to the business growth.</p><p>Outcome-based product org structure works best for companies that understand their business levers and where product work maps to those levers.</p><p>Say you&#8217;re working at Asana or Monday.com. These are well-known players in project/work management space. You have roughly 20 PMs and scrum teams and you&#8217;re designing their product organization. Businesses like Asana are essentially land and expand biz that enjoy product-led growth (the famous PLG &#128516;) motion and acquire prospects through marketing channels (SEO, paid advertising, etc), offer a freemium model and most promising prospects are contacted by inside sales teams.</p><p>Your Asana outcome-based product org structure might look as follows:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!b-vH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b-vH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png 424w, https://substackcdn.com/image/fetch/$s_!b-vH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png 848w, https://substackcdn.com/image/fetch/$s_!b-vH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!b-vH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!b-vH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png" width="1456" height="750" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:750,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:418389,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b-vH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png 424w, https://substackcdn.com/image/fetch/$s_!b-vH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png 848w, https://substackcdn.com/image/fetch/$s_!b-vH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!b-vH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F87778497-a9bd-4d16-a109-dadd0fc7695b_2174x1120.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>This is oversimplification but the main goal of the outcome-based structure is to deliver the following benefits:</p><ul><li><p>PMs drive specific product metrics (that should be tied to business outcomes);</p></li><li><p>Product Leads foster better business mindset for PMs which ultimately creates more effective product org;</p></li><li><p>easier to hold PMs accountable for their decisions and value they create;</p></li><li><p>right product priorities get proper resourcing and &#8216;funding&#8217;;</p></li><li><p>More agility with how the product org can reallocate their focus areas;</p></li><li><p>PMs own more broader customer experience instead of siloed feature areas.</p></li></ul><p>There&#8217;re some pitfalls though:</p><ul><li><p>Letting maintenance tasks fall through the cracks given no team owns specific features;</p></li><li><p>PMs have to become more flexible in domain areas as they will start being more flexible w/ areas of product they can drive outcomes with;</p></li><li><p>Tendency to define to outcome metrics at too high level which leads for PMs in unclear guidance on how achieve the goal.</p></li></ul><p>Another problem with this structure is that its focus is on optimizing what already exists, rather than on creating new &#8220;step-functions&#8221; of value that didn&#8217;t exist before.</p><p>If the business has already taken significant market share within current product-market fit, Product Leader has to create a function within a product org where they can invest into expanding their product-market fit. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!76KV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!76KV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png 424w, https://substackcdn.com/image/fetch/$s_!76KV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png 848w, https://substackcdn.com/image/fetch/$s_!76KV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!76KV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!76KV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png" width="1456" height="912" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:912,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:313026,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!76KV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png 424w, https://substackcdn.com/image/fetch/$s_!76KV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png 848w, https://substackcdn.com/image/fetch/$s_!76KV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png 1272w, https://substackcdn.com/image/fetch/$s_!76KV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F990e5569-ce8c-430e-9b2b-31fa923fb5db_1792x1122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Remember: there&#8217;s no right or wrong product structure &#128521;. But when designing one you should account for pros and cons of any approach and start from understanding what kind of outcome are you trying to achieve when designing your product organization.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://zalex.co/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Alex&#8217;s Newsletter! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>