<?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[Michael Goetz]]></title><description><![CDATA[Rebuilding Customer Success with systems thinking and AI tooling.]]></description><link>https://www.michaelpgoetz.com</link><image><url>https://www.michaelpgoetz.com/img/substack.png</url><title>Michael Goetz</title><link>https://www.michaelpgoetz.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 11 Jun 2026 15:01:44 GMT</lastBuildDate><atom:link href="https://www.michaelpgoetz.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Michael Goetz]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[michaelpgoetz@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[michaelpgoetz@substack.com]]></itunes:email><itunes:name><![CDATA[Michael Goetz]]></itunes:name></itunes:owner><itunes:author><![CDATA[Michael Goetz]]></itunes:author><googleplay:owner><![CDATA[michaelpgoetz@substack.com]]></googleplay:owner><googleplay:email><![CDATA[michaelpgoetz@substack.com]]></googleplay:email><googleplay:author><![CDATA[Michael Goetz]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Your Renewal Forecast Is a Rearview Mirror]]></title><description><![CDATA[Forecasting feels like control. Most of the time, it&#8217;s just a record of work that was already done or skipped. Here&#8217;s how to make the renewal date stop mattering.]]></description><link>https://www.michaelpgoetz.com/p/your-renewal-forecast-is-a-rearview</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/your-renewal-forecast-is-a-rearview</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Tue, 26 May 2026 14:03:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!LAm7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every CS org I&#8217;ve worked in celebrates the same person: the CSM who drags an at-risk account back from the edge in the final two weeks before its renewal. The story gets retold at the all-hands. There&#8217;s usually a gift card.</p><p>I&#8217;ve stopped clapping for those saves. A rescue in the last stretch isn&#8217;t really a win. It&#8217;s the receipt for a risk the system should have caught a quarter earlier, when there was still time to handle it quietly and without drama.</p><p>That&#8217;s the uncomfortable part of renewal forecasting. By the time an account lands on a forecast call tagged &#8220;commit,&#8221; &#8220;likely,&#8221; or &#8220;at-risk,&#8221; most of the outcome is already set. The work that determines whether a renewal occurs takes place in the months before anyone opens the spreadsheet. So the forecast doesn&#8217;t really predict the renewal. It reports on it a little early and calls that a prediction.</p><p>I wrote a while back about why health scores mislead, how they lean on lagging signals that describe what already happened rather than what&#8217;s coming. Renewal forecasts have the same flaw, just further down the timeline. They&#8217;re the last and most expensive lagging indicator you&#8217;ll stare at before the number either lands or it doesn&#8217;t.</p><p>A quick note on who &#8220;you&#8221; are here. I&#8217;ll keep saying CSM, but read it as &#8220;whoever owns the account.&#8221; The CSM and AM titles are merging into a single role that manages both the relationship and the number, and once this happens, renewal risk will rest squarely on that person&#8217;s desk.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LCz6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LCz6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png 424w, https://substackcdn.com/image/fetch/$s_!LCz6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png 848w, https://substackcdn.com/image/fetch/$s_!LCz6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png 1272w, https://substackcdn.com/image/fetch/$s_!LCz6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LCz6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png" width="1200" height="760" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:760,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:678619,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/199243084?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.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_!LCz6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png 424w, https://substackcdn.com/image/fetch/$s_!LCz6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png 848w, https://substackcdn.com/image/fetch/$s_!LCz6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png 1272w, https://substackcdn.com/image/fetch/$s_!LCz6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65ad9927-198d-46ce-8aeb-608f5e5c0e81_1200x760.png 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><h2>The framework: Continuous Renewal Underwriting (CRU)</h2><p>The solution isn&#8217;t a better forecast. It&#8217;s a different job. Stop forecasting renewals and start underwriting them.</p><p>An insurer doesn&#8217;t gather in a room at year-end to guess whether a policy will pay out. They price the risk continuously and work to bring it down where they can. A renewal is that kind of object. It&#8217;s a position you manage every week, not a coin you flip at the buzzer.</p><p>CRU has four parts.</p><p><strong>1. Underwrite, don&#8217;t forecast.</strong> A forecast guesses at an outcome you&#8217;ve quietly decided to treat as fixed. Underwriting assumes you can still move it. The shift is from reporting a renewal to working one. Every account holds a live risk position, and the goal is to drive that position toward certainty before the date arrives.</p><p><strong>2. Name the five risks, then retire them.</strong> &#8220;At-risk&#8221; is a useless label because it never says why. In practice every renewal carries a small, nameable set of risks: whether the customer has realized the value they bought, how deeply your product is wired into their stack, whether your champion is still in seat and still influential, whether a competitor or an in-house build has entered the picture, and whether something commercial is going to get in the way (budget timing, procurement, a pricing change, an old support scar). Each of those is either open or handled. The operating model is a steady campaign to close them out ahead of the date.</p><p><strong>3. Score the risk and your confidence separately.</strong> Give every account two numbers instead of one. First, a risk level: high, medium, or low. Second, a confidence score from 1 to 10 for how sure you are of that read. Keeping them apart is the whole point. &#8220;Medium risk, and I&#8217;m highly confident&#8221; and &#8220;I think this is high risk, but honestly I&#8217;m not sure&#8221; are very different situations, and a single commit-or-at-risk tag flattens them into the same box. The low-confidence accounts are where the work is. A shaky read is your cue to go pull the evidence (adoption, integration depth, the cadence of champion engagement) until a number you can stand behind shows up. And &#8220;they love us&#8221; still doesn&#8217;t count as evidence: warm accounts churn quietly every quarter when the relationship was real but the product was never load-bearing.</p><p><strong>4. The runway starts at onboarding.</strong> Renewal risk is lowest when a customer reaches a working, embedded deployment fast. That&#8217;s the time-to-architecture idea from an earlier post, viewed from the far end. Every dependency you help a customer build early is risk you won&#8217;t have to fight later. By renewal time, a well-onboarded account re-signs about as deliberately as it pays the electricity bill.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!J_XM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!J_XM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png 424w, https://substackcdn.com/image/fetch/$s_!J_XM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png 848w, https://substackcdn.com/image/fetch/$s_!J_XM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png 1272w, https://substackcdn.com/image/fetch/$s_!J_XM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!J_XM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png" width="1200" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:727162,&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://www.michaelpgoetz.com/i/199243084?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.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_!J_XM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png 424w, https://substackcdn.com/image/fetch/$s_!J_XM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png 848w, https://substackcdn.com/image/fetch/$s_!J_XM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.png 1272w, https://substackcdn.com/image/fetch/$s_!J_XM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe845e8e5-307d-44b7-a53a-af5deec4c739_1200x840.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>Plot those two scores against each other and you get a simple picture of where to spend the week.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Hjby!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Hjby!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png 424w, https://substackcdn.com/image/fetch/$s_!Hjby!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png 848w, https://substackcdn.com/image/fetch/$s_!Hjby!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png 1272w, https://substackcdn.com/image/fetch/$s_!Hjby!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Hjby!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png" width="1200" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:727530,&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://www.michaelpgoetz.com/i/199243084?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.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_!Hjby!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png 424w, https://substackcdn.com/image/fetch/$s_!Hjby!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png 848w, https://substackcdn.com/image/fetch/$s_!Hjby!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.png 1272w, https://substackcdn.com/image/fetch/$s_!Hjby!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf5e96aa-47b2-42dd-bdbc-85bf76ba1ce9_1200x830.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>The first 120 days do most of the deciding</h3><p>Most of a renewal is settled in the first 120 days. That window is where a customer forms their real opinion of whether this was a good decision, and that opinion tends to stick.</p><p>Year one is more forgiving than people expect. Enterprise software is messy, and almost nobody gets a clean first year: there are product gaps, a rough integration, a support miss or two. None of that is fatal on its own. If you&#8217;ve been visibly in the trenches with the customer, working the problems and showing progress, you can usually earn the first renewal even after a bumpy year. Effort buys you grace.</p><p>Year two is where the bill comes due. The grace is spent, and the thing that carries the renewal now is whether the customer actually reached value. If they&#8217;re still a long way from it heading into year two, the renewal is most likely already lost, whatever the forecast claims in the quarter it falls due. At that point you&#8217;re just waiting for the date to confirm what the first 120 days already decided.</p><h3>One number worth watching: Time-to-Certainty</h3><p>Forecast accuracy is the wrong headline metric. A more honest one is time-to-certainty: how far ahead of the contract date your confidence on an account climbs into the high end of that 1-to-10 scale and stays there.</p><p>Good teams reach that point a full quarter out. If you&#8217;re still uncovering real risk inside the renewal quarter itself, your time-to-certainty is effectively negative, and the confidence in the room is theater no matter how loud it gets.</p><h2>Two ways the forecast lies</h2><p><strong>The hope forecast.</strong> Confidence built on rapport instead of evidence. The QBRs are friendly and the champion takes the call, so the account goes down as commit. Then it lapses and everyone claims to be surprised. Rapport feeds retention, but it doesn&#8217;t prove it. A call you can&#8217;t tie to a signal is a wish wearing a label.</p><p><strong>The eleventh-hour scramble.</strong> Risk that only surfaces inside the renewal quarter, once there&#8217;s no runway left to do anything but react. This is what breeds the heroic-save culture in the first place. A champion&#8217;s departure flagged at 150 days out is a manageable problem. The same departure flagged at 20 days out is a fire drill.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LAm7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LAm7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!LAm7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!LAm7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!LAm7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LAm7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png" width="1200" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:617318,&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://www.michaelpgoetz.com/i/199243084?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.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_!LAm7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!LAm7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!LAm7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!LAm7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9631d410-a84a-4acd-9405-12155a10fa6e_1200x700.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>Both come from the same habit: measuring the renewal instead of underwriting it.</p><h2>The prompts</h2><p>Three tools to put CRU to work. One sizes up a single account, one audits the whole forecast, and one runs the portfolio on a schedule.</p><p><strong>Prompt 1: Renewal Risk Underwriter</strong></p><pre><code><code>You are a Customer Success renewal underwriter. Given the account data below,
produce a renewal risk position &#8212; not a gut forecast.

Account data:
- Account name / segment: {name, segment}
- Contract value (ARR): {value}
- Renewal date: {date} (today is {today})
- Value realization: {has the customer hit their stated success criteria? evidence?}
- Architecture depth: {integrations, API usage diversity, workflow dependencies}
- Champion: {role, tenure in seat, recent engagement, any role changes}
- Competitive/build signals: {any competitor or in-house alternative mentioned}
- Commercial context: {budget cycle, procurement notes, pricing changes, past friction}
- Usage trend (90 days): {increasing / flat / declining}

Produce:
1. A risk rating (Open / Retired) for each of the five factors: value realization,
   architecture depth, champion stability, competitive exposure, commercial friction.
2. Two separate scores: a risk level (High / Medium / Low) and a confidence score
   (1-10) for how sure you are of that read. State the specific signal behind each.
   Don't award high confidence to an account whose evidence is thin.
3. Time-to-Certainty: based on the data, how many days before the date can we
   credibly reach certainty? Are we on track?
4. A prioritized runway plan: the top 3 actions to retire the highest open risks first,
   sequenced against the renewal date.
</code></code></pre><p><strong>Prompt 2: Forecast Auditor</strong></p><pre><code><code>I'm going to share our current renewal forecast. Stress-test it for the two failure
modes below, the way a skeptical CRO or board member would.

Failure modes to flag:
- The hope forecast: a "commit" or "likely" rating justified by relationship warmth
  rather than usage, adoption, integration, or champion evidence.
- The eleventh-hour scramble: any account whose risk was discovered inside the renewal
  quarter, where there is no longer enough runway to retire it.

Current forecast:
{paste forecast &#8212; account, ARR, current rating, renewal date, and the stated reason
for the rating}

For each account:
1. Is the rating evidence-backed or hope-based? Name the missing evidence if hope-based.
2. How much runway remains (days to date), and is it enough to retire any open risk?
3. Assign a risk level (High / Medium / Low) and a confidence score (1-10), and flag
   any high-confidence rating the evidence doesn't support.

Then summarize: total ARR sitting on hope, total ARR you're low-confidence on, total ARR
with no runway left, and the three accounts most likely to become a "surprise" churn.
</code></code></pre><p><strong>Agent workflow: Renewal Runway Monitor</strong></p><pre><code><code>You are an AI agent monitoring a portfolio of upcoming renewals. Run weekly. For every
account with a renewal date in the next 180 days, track risk retirement against the clock.

Portfolio data:
{structured account data: name, ARR, renewal date, the five risk factors with current
status, usage trend, last champion contact, support themes}

Checkpoints: 180 / 120 / 90 / 60 days out.

For each account, evaluate:
1. Risk-retirement velocity: are open risks closing fast enough, and is confidence on the
   account climbing toward a level you'd stake the forecast on, by 90 days out? Compare
   this week's status to last week's.
2. Flag any account where an open risk is not being retired at a pace that fits its
   remaining runway. Mark urgency: routine / elevated / critical.
3. For critical flags, recommend the single highest-leverage action to retire the
   blocking risk this week, and whether the CSM should act directly or equip the champion.

Output a one-page briefing: accounts on track, accounts slipping, and the week's must-do
runway actions ranked by ARR-at-risk.
</code></code></pre><h2>Your turn</h2><p>Two questions I&#8217;m genuinely curious about. What&#8217;s the earliest signal that has reliably predicted a churn for you? And what&#8217;s the warmest account you&#8217;ve ever lost? The renewals nobody saw coming usually hold the best lessons.</p><p>And if you&#8217;ve built a renewal-risk prompt or workflow that&#8217;s working well, send it over. I keep a running collection of what&#8217;s actually working from people doing this in technical accounts, and the good ones get shared.</p><div><hr></div><p><em>New here? The earlier posts on health scores and on onboarding technical buyers set up a lot of what&#8217;s above.</em></p>]]></content:encoded></item><item><title><![CDATA[Stop Hiring CSMs. Start Building Systems.]]></title><description><![CDATA[You can't hire your way out of CS scaling. A four-layer operating system for what comes next.]]></description><link>https://www.michaelpgoetz.com/p/stop-hiring-csms-start-building-systems</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/stop-hiring-csms-start-building-systems</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Tue, 05 May 2026 14:02:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rB6C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At GitHub, the team I built was called Customer Outcomes. We grew it from zero to 120+ people, and we were sophisticated about how we did it. We pre-hired CSMs against modeled growth rather than reacting to whatever sales had just closed. We started a few scaling motions on the side, like expanding Community to cover the long tail of customers we couldn&#8217;t staff to. We talked about digital playbooks. But the digital piece didn&#8217;t get serious investment until several years in, and the operating model was still fundamentally a hiring model.</p><p>By the time that chapter ended, I was pretty sure we&#8217;d built the wrong thing.</p><p>The pattern was the same every quarter. The model would forecast more accounts. We&#8217;d staff CSMs ahead of them. We&#8217;d promote managers to handle the new CSMs. Someone would call a meeting about span of control. Every conversation about &#8220;scaling CS&#8221; ended at the same place: hire.</p><p>What we built was a service organization with &#8220;Customer Success&#8221; written on the org chart.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rB6C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rB6C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!rB6C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!rB6C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!rB6C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rB6C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d75c5aad-3cfa-477b-8251-de64308035af_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:432642,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/196530470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.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_!rB6C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!rB6C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!rB6C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!rB6C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd75c5aad-3cfa-477b-8251-de64308035af_1200x675.png 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>Most CS orgs scale this way. It&#8217;s the default, and the math gets ugly fast. At $150K fully loaded per CSM, every 50 new accounts is another headcount you have to fund. There&#8217;s no point at which the operation gets cheaper, only points at which it gets less obviously broken. Eventually finance does the unit economics, and CS becomes the line item that gets a &#8220;growth pause.&#8221;</p><p>The &#8220;revenue era of CS&#8221; crowd wants to make this worse. Their fix is to turn CSMs into quota-carrying sellers and let expansion revenue cover the cost of the team. I&#8217;ve watched that movie. I know how it ends. Trust erodes, champions stop being candid with you, and your NRR flattens within four quarters.</p><p>There&#8217;s a different play, and the best CS orgs are already running it.</p><p>They aren&#8217;t hiring faster. They&#8217;ve quietly rebuilt the underlying operation so that one CSM does the work that used to take three. Not by working harder. By moving most of the work somewhere else.</p><p>I've written about the operational pieces individually: <a href="https://www.michaelpgoetz.com/p/your-health-score-is-a-horoscope">health scores</a>, <a href="https://www.michaelpgoetz.com/p/qbrs-are-where-relationships-go-to">QBRs</a>, <a href="https://www.michaelpgoetz.com/p/onboarding-technical-buyers-is-not">onboarding</a>, and <a href="https://www.michaelpgoetz.com/p/the-expansion-playbook-your-cro-doesnt">expansion</a>. This post is the architecture that holds them all together.</p><div><hr></div><h2>The Framework: The CS Operating System</h2><p>Four layers. Each one absorbs work from the layer above. The job of every CS leader is to push every interaction down the stack to the lowest layer that can still handle it well.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1_Bm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1_Bm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!1_Bm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!1_Bm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!1_Bm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1_Bm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:472849,&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://www.michaelpgoetz.com/i/196530470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.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_!1_Bm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!1_Bm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!1_Bm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!1_Bm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2233a4c4-0e32-4ac5-91de-e0037376d493_1200x675.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>Layer 1: Self-Service Infrastructure</h3><p>Documentation, in-app guidance, quickstart templates, automated onboarding flows, community forums.</p><p>In a well-designed CS operation, this layer handles 60 to 70 percent of customer needs without anyone on your team getting involved. Technical buyers prefer it that way. Engineers don&#8217;t want to file a support ticket. They want to find the answer at 2am and keep building.</p><p>If your CSMs are answering the same five questions in Slack every week, the problem isn&#8217;t your customers. It&#8217;s that your docs aren&#8217;t where your customers expect to find them.</p><h3>Layer 2: Automated Signal and Response</h3><p>Event-driven workflows that detect state changes and trigger the right action.</p><p>A customer&#8217;s deployment velocity drops for two weeks running. Your system flags the <a href="https://www.michaelpgoetz.com/p/your-health-score-is-a-horoscope">state transition</a>, pushes an in-app message with the right resource, and adds the account to a CSM review queue. The CSM only sees the account once a real human decision is required.</p><p>This is where the state-based model from the first post stops being a reporting tool and starts running things. The state transitions are the events. The events fire the workflows. CSMs stop spending Mondays manually scanning a portfolio for things that have changed since Friday.</p><h3>Layer 3: AI-Augmented CSM</h3><p>Agents that handle research, prep, drafting, and analysis.</p><p>A CSM should walk into Monday with a briefing already in their inbox: priority accounts for the week, prep notes for every scheduled meeting, accounts that haven&#8217;t been touched in a while, product releases mapped to specific customers in their portfolio. They shouldn&#8217;t be spending the first three hours of the week gathering context they&#8217;ll only use once.</p><p>Good AI augmentation doesn&#8217;t try to replace what the CSM is best at. It clears out the work that gets in the way of doing it.</p><h3>Layer 4: Human-Led Strategic</h3><p>The 20 percent of interactions that drive 80 percent of the outcome.</p><p>Executive alignment. <a href="https://www.michaelpgoetz.com/p/the-expansion-playbook-your-cro-doesnt">Expansion strategy</a>. Real renewal negotiations. Champion development. Architecture reviews where you&#8217;re being asked to commit to a customer&#8217;s direction. Complex technical problem-solving that no agent is going to handle credibly anytime soon.</p><p>This is what CSMs should actually be spending their week on. Everything else belongs in a layer below it.</p><div><hr></div><h2>Two Ways CS Leaders Get This Wrong</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zKOo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zKOo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!zKOo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!zKOo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!zKOo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zKOo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:422381,&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://www.michaelpgoetz.com/i/196530470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.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_!zKOo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!zKOo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!zKOo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!zKOo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6ec2f94-b7ca-4622-8c65-50a3fb0d09d2_1200x675.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>Failure Mode 1: Headcount Theater</h3><p>You scale CS by adding bodies. The KPI on the leadership dashboard is &#8220;headcount per X accounts&#8221; rather than &#8220;outcomes per CSM.&#8221; Every operational gap becomes a hiring requisition. The org chart fills out faster than the retention numbers move, and by the time someone in finance models the cost per retained dollar, you&#8217;ve already overhired by twenty percent.</p><h3>Failure Mode 2: AI Sprawl</h3><p>The opposite trap, and the one I see more often now. Teams scatter prompts and automations across the org with no architecture behind any of it. Five CSMs are running five different ChatGPT prompts. Two managers built competing dashboards. Nobody actually knows what&#8217;s automated, what&#8217;s manual, and what was supposed to be automated but broke six weeks ago.</p><p>The leadership view is &#8220;CS is using AI.&#8221; The operational reality is that CSMs are doing more work than before, just with more tabs open.</p><p>The Layer Cake fixes both. It tells you what belongs where, and it tells you what work to push down next.</p><div><hr></div><h2>The Prompt Library</h2><h3>Prompt 1: CS Coverage Model Analyzer</h3><pre><code><code>Analyze our current CS team structure and identify opportunities to shift
work from human-led to systemized layers.

Current state:
- Number of CSMs: {N}
- Average book of business per CSM: {accounts}
- Current CSM time allocation (estimate %):
  - Onboarding: {%}
  - Recurring check-ins: {%}
  - Renewal management: {%}
  - Escalation handling: {%}
  - Strategic/expansion conversations: {%}
  - Internal coordination: {%}
  - Admin/data entry: {%}

For each activity, recommend:
1. Which layer it belongs in (Self-Service, Automated, AI-Augmented,
   Human-Led Strategic)
2. What it would take to move it down one layer
3. Estimated time savings per CSM per week
4. Implementation complexity (low/medium/high)

Calculate the projected effective book of business per CSM after
systemization, and flag the top 3 highest-ROI moves.
</code></code></pre><h3>Prompt 2: Automation Opportunity Scorer</h3><pre><code><code>Review the following list of recurring CS tasks and score each for
automation potential.

Tasks:
{list of tasks}

For each task, evaluate:
- Frequency (how often does this happen?)
- Consistency (is the process the same each time?)
- Judgment required (does this need human intuition?)
- Data availability (do we have the inputs needed to automate?)
- Customer impact if automated poorly (what's the blast radius?)

Score each 1-5 on automation readiness. Recommend the top 5 to automate
first, ranked by highest time savings with lowest risk. For each
recommendation, specify which Layer Cake layer it should move to and
what infrastructure is required.
</code></code></pre><h3>Agent Workflow: Weekly CSM Briefing Generator</h3><pre><code><code>You are an AI agent supporting a CSM. Every Monday morning, generate a
briefing for the week ahead.

Inputs:
- Account portfolio data: {structured data}
- Calendar for the week: {meetings}
- Recent support tickets: {tickets}
- Product changelog: {recent releases}
- Any flagged state transitions from the previous week: {transitions}

Generate a briefing that includes:
1. Top 3 priority accounts this week and why
2. Prep notes for each scheduled meeting (key context, recommended
   talking points, technical anchors per the customer's stack)
3. Accounts with no scheduled touchpoint that need attention
4. New product releases relevant to specific accounts in the portfolio
5. Suggested time blocks for proactive outreach vs. reactive work

Keep it scannable. No more than 1 page. No filler.
</code></code></pre><div><hr></div><h2>The One Metric That Matters</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!52x1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!52x1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!52x1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!52x1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!52x1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!52x1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:499239,&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://www.michaelpgoetz.com/i/196530470?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.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_!52x1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png 424w, https://substackcdn.com/image/fetch/$s_!52x1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png 848w, https://substackcdn.com/image/fetch/$s_!52x1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.png 1272w, https://substackcdn.com/image/fetch/$s_!52x1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc75a9411-4ba7-446c-8d83-a693fb017308_1200x675.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 number I&#8217;d track instead of headcount-to-account ratio is what I think of as effective book of business. It&#8217;s the number of accounts a single CSM can manage well, measured by the outcome data that actually matters: gross retention, net retention, <a href="https://www.michaelpgoetz.com/p/onboarding-technical-buyers-is-not">time-to-architecture</a>, expansion rate.</p><p>Most CS orgs run at 20 to 30 accounts per CSM. With a working version of the Layer Cake in place, the same CSM can manage 60 to 80 without a meaningful drop in retention or expansion for non-strategic accounts. That delta is what an AI-native CS operation actually looks like in practice.</p><p>If your effective book has been flat for two years, your stack isn&#8217;t compounding. You&#8217;ve added tools, not leverage.</p>]]></content:encoded></item><item><title><![CDATA[The Expansion Playbook Your CRO Doesn’t Want You to Run]]></title><description><![CDATA[The "revenue era of CS" is destroying the one thing that actually drives revenue.]]></description><link>https://www.michaelpgoetz.com/p/the-expansion-playbook-your-cro-doesnt</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/the-expansion-playbook-your-cro-doesnt</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Tue, 21 Apr 2026 14:03:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7xab!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The &#8220;revenue era of CS&#8221; movement has a pitch you&#8217;ve probably heard by now: CSMs should carry quotas. Expansion is everyone&#8217;s job. Customer Success is a revenue function.</p><p>It sounds progressive. It sounds like alignment. And it&#8217;s quietly destroying the one thing that makes CS effective.</p><p>Trust.</p><p>The moment a customer perceives their CSM as a salesperson, the relationship changes fundamentally. Technical buyers are especially attuned to this. Engineers have been burned by vendor relationships that prioritized extraction over value. They can smell a pitch from three slides away, and once they do, you&#8217;ve lost something you can&#8217;t get back.</p><p>But here&#8217;s the part nobody says out loud: <strong>the best CS orgs drive </strong><em><strong>more</strong></em><strong> expansion revenue than sales-led models, not less.</strong> They just do it differently.</p><div><hr></div><h2>The Problem With Sales-Led Expansion</h2><p>The standard playbook goes like this: CSM has a good relationship with the customer, so CSM should leverage that relationship to drive upsells. QBR becomes the venue for the pitch. Renewal becomes the forcing function for the expansion conversation.</p><p>This logic is backwards.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pPvv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pPvv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 424w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 848w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 1272w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pPvv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png" width="800" height="520" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:520,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:256959,&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://www.michaelpgoetz.com/i/193973048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.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_!pPvv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 424w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 848w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.png 1272w, https://substackcdn.com/image/fetch/$s_!pPvv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a5867ee-5891-450f-bd5d-c7d727c6a614_800x520.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>You&#8217;re converting a trust asset into a transaction, and you can only do that once. The champion, who used to be candid about what was broken, now hedges because they know the CSM has a number to hit. The engineering lead who used to pull you into architecture discussions stops inviting you because the last three conversations ended with a pricing conversation.</p><p>The revenue shows up short-term. The trust doesn&#8217;t come back.</p><p>I&#8217;ve watched this scenario play out at dozens of companies. The teams that grafted sales motions onto CS relationships saw an initial bump in expansion revenue followed by a slow, steady decline in NRR. Teams that took a different approach, one rooted in technical depth, consistently outperformed.</p><div><hr></div><h2>The Framework: Architecture-Led Expansion (ALE)</h2><p>Expansion in technical products follows a predictable pattern: deeper integration leads to more use cases, more use cases lead to more users, more users create more value, and more value creates natural commercial expansion.</p><p>Your job is to accelerate that progression. Not to pitch upgrades.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7xab!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7xab!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 424w, https://substackcdn.com/image/fetch/$s_!7xab!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 848w, https://substackcdn.com/image/fetch/$s_!7xab!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 1272w, https://substackcdn.com/image/fetch/$s_!7xab!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7xab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png" width="800" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efe63dcf-0589-4765-91bc-245b074ba400_800x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:334930,&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://www.michaelpgoetz.com/i/193973048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.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_!7xab!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 424w, https://substackcdn.com/image/fetch/$s_!7xab!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 848w, https://substackcdn.com/image/fetch/$s_!7xab!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.png 1272w, https://substackcdn.com/image/fetch/$s_!7xab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefe63dcf-0589-4765-91bc-245b074ba400_800x580.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>ALE has four components:</p><h3>1. Map the Whitespace Architecturally</h3><p>Most expansion conversations start with "What else can we sell them?&#8221; ALE starts with "What does their full technical environment look like, and where else could our product add value they haven&#8217;t considered?&#8221;</p><p>This is a fundamentally different lens. You&#8217;re not looking at your product catalog and matching features to a customer. You&#8217;re looking at their architecture and identifying gaps where your product is the natural solution. The difference is subtle but critical: one feels like selling, the other feels like consulting.</p><p>At GitHub, the CSMs who drove the most expansion revenue were the ones who could diagram a customer&#8217;s entire development workflow and identify the friction points our platform could eliminate. They never pitched. They solved problems that happened to require additional capabilities.</p><h3>2. Plant Seeds Through Problem-Solving</h3><p>When a customer raises a challenge in a TVR or a support interaction, solve it. And if the solution naturally involves capabilities beyond their current plan, demonstrate rather than sell.</p><p>&#8220;We actually have a way to handle that&#8221; is the most powerful expansion sentence in CS. It positions the capability as a solution to their problem, not a product you&#8217;re pushing. The customer experiences it as help, not a pitch.</p><p>The key word is &#8220;<em>naturally&#8221;</em>. If you&#8217;re contorting every support interaction into an upsell opportunity, you&#8217;re doing sales-led expansion with extra steps. ALE only works when the connection between their problem and the additional capability is genuine.</p><h3>3. Enable the Champion to Sell Internally</h3><p>Your technical champion already believes in the product. They don&#8217;t need to be convinced. They need ammunition.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hNaQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hNaQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 424w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 848w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 1272w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png" width="800" height="560" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d03b124-0055-48c7-b091-9f058fecb329_800x560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:560,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:283944,&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://www.michaelpgoetz.com/i/193973048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.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_!hNaQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 424w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 848w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.png 1272w, https://substackcdn.com/image/fetch/$s_!hNaQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d03b124-0055-48c7-b091-9f058fecb329_800x560.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 Champion Enablement Package is the most underused tool in CS. Instead of you selling to their leadership, you equip your champion to make the case internally. This works for three reasons:</p><ul><li><p><strong>Credibility</strong>: An internal advocate is more trusted than an external vendor.</p></li><li><p><strong>Context</strong>: They know the political landscape, the budget cycles, and the objections.</p></li><li><p><strong>Ownership</strong>: When they champion the expansion, they own the outcome, which means they&#8217;re invested in making it successful.</p></li></ul><p>You have to build the package around their narrative, not yours. Architecture diagrams should show the current vs. proposed state. Three talking points framed around their business priorities. They fill in a simple ROI framework with their own numbers. Anticipate objections with suggested responses. Map a timeline to their budget cycle.</p><p>Every component should be something they can present as their analysis, not something that looks like it came from your marketing team.</p><h3>4. Trigger-Based Expansion Conversations</h3><p>Certain technical milestones naturally create expansion opportunities. Hitting usage thresholds. Completing initial integration. Adding a new team. Architectural reviews. Production deployments that change the scope of the implementation.</p><p>Consider incorporating these triggers into your operating model rather than depending on CSM intuition or renewal timelines.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IWHq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IWHq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 424w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 848w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 1272w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IWHq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png" width="800" height="520" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:520,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:258321,&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://www.michaelpgoetz.com/i/193973048?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.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_!IWHq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 424w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 848w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.png 1272w, https://substackcdn.com/image/fetch/$s_!IWHq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f0d8d86-0e82-42be-96a8-2105f78b8079_800x520.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 distinction between vanity signals and real expansion signals is critical. A green health score tells you the customer is happy. Expansion signals tell you they&#8217;re <em>ready</em>. Most CS teams only instrument the first metric. ALE requires you to instrument both.</p><div><hr></div><h2>The Two Failure Modes</h2><h3>Failure Mode 1: Stealth Sales</h3><p>This scenario is where a CS team adopts ALE language but keeps running a sales-led motion underneath. The CSM &#8220;maps the whitespace,&#8221; but the whitespace map is really just a territory plan. They &#8220;enable the champion,&#8221; but the enablement package is a sales deck with the logo removed.</p><p>Technical buyers see through the charade immediately. If your champion enablement package has your product name in the header and your competitive positioning in the talking points, it&#8217;s not enablement. It&#8217;s a brochure.</p><p><strong>The test</strong>: Could your champion present this material without mentioning your company name and have it still be valuable? If not, it&#8217;s not enablement.</p><h3>Failure Mode 2: Passive Waiting</h3><p>The opposite failure. The CS team is so afraid of being perceived as sales that they never proactively surface expansion opportunities. They wait for the customer to ask. They wait for renewal. They wait for the champion to figure out on their own that more capabilities exist.</p><p>ALE isn&#8217;t passive. It&#8217;s proactive problem-solving that creates natural pull. You&#8217;re solving problems, demonstrating capabilities, and equipping champions. The expansion conversation is a consequence of excellent technical partnership, not an agenda item you&#8217;re avoiding.</p><div><hr></div><h2>The One Metric That Matters</h2><p>If you adopt ALE, the metric you track changes.</p><p>Sales-led expansion tracks <strong>expansion revenue per CSM</strong>, which is a number that incentivizes CSMs to push. ALE tracks <strong>champion-initiated expansion rate</strong>, the percentage of expansion deals where the customer reached out first or the champion drove the internal business case.</p><p>A healthy ALE motion should produce a champion-initiated rate above 60%. If most of your expansion is still CSM-initiated, you haven&#8217;t shifted the model, you&#8217;ve just relabeled it.</p><div><hr></div><h2>The Prompt Library</h2><p>Two prompts and one agent workflow to operationalize ALE in your CS org.</p><h3>Prompt 1: Whitespace Analyzer</h3><pre><code><code>Analyze this customer's current product usage and technical environment to identify expansion opportunities that are architecturally natural &#8212; not forced upsells.

Current state:
- Products/modules currently using: {list}
- Current usage volume and trends: {data}
- Known technical environment: {stack}
- Teams currently using the product: {teams}
- Integrations in place: {integrations}
- Problems they've raised in the last 6 months: {support themes}

Identify:
1. Adjacent use cases where the product could solve problems they're currently handling with other tools or manual processes
2. Teams or departments that would benefit but aren't currently using the product
3. Technical milestones they're approaching that naturally create expansion conversations
4. The single highest-probability expansion opportunity and a recommended approach that feels helpful, not salesy
</code></code></pre><h3>Prompt 2: Champion Enablement Package Builder</h3><pre><code><code>My technical champion at {customer_name} wants to expand our product to {new use case/team/capability}. They need to make an internal business case to their leadership.

Context:
- Champion's role: {title}
- Current deployment: {what they're using today}
- Proposed expansion: {what they want to add}
- Their leadership's likely concerns: {concerns}
- Budget cycle timing: {when}

Create a champion enablement package:
1. A one-page architecture diagram description showing current state vs. proposed state
2. Three talking points framed around their business priorities (not our product features)
3. A simple ROI framework they can fill in with their own numbers
4. Anticipated objections and suggested responses
5. A recommended timeline that aligns with their budget cycle
</code></code></pre><h3>Agent Workflow: Expansion Signal Monitor</h3><pre><code><code>You are monitoring a portfolio of accounts for natural expansion signals. Review the following data weekly and flag accounts showing expansion readiness.

Portfolio data:
{structured account data including usage, support, engagement}

Expansion signals to detect:
- Usage approaching tier thresholds (&gt;80% of current plan)
- New teams or users being added organically
- Support questions about capabilities not in their current plan
- Integration with new tools that suggest evolving use cases
- Champion promotions or role changes that increase their influence
- Positive references to the product in external channels

For each flagged account, specify:
1. Which signal(s) triggered the flag
2. Recommended expansion conversation approach
3. Timing recommendation (act now vs. nurture)
4. Whether to engage directly or equip the champion
</code></code></pre><div><hr></div><p><em>This is Post 4 of a 5-part series: Rebuilding Customer Success. Next up: the scaling problem nobody wants to talk about and why the answer isn&#8217;t more headcount.</em></p><p><em>If these frameworks and prompts are useful, subscribe for the final post and the complete prompt library that comes with it.</em></p>]]></content:encoded></item><item><title><![CDATA[Onboarding Technical Buyers Is Not a Training Problem]]></title><description><![CDATA[The standard onboarding playbook was built for the wrong customer.]]></description><link>https://www.michaelpgoetz.com/p/onboarding-technical-buyers-is-not</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/onboarding-technical-buyers-is-not</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Tue, 07 Apr 2026 13:03:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bVn7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most CS orgs treat onboarding as education: <em>Let us show you how to use the product.</em> For technical buyers, this approach is backwards and borderline insulting.</p><p>Engineers would rather not be trained. They want to solve their problem. They&#8217;ve already read your docs. They Googled your API. They probably found a GitHub thread where someone had the same edge case they&#8217;re worried about. What&#8217;s standing between them and production isn&#8217;t knowledge. It&#8217;s friction.</p><p>The fastest path to value isn&#8217;t a webinar series. It&#8217;s removing every obstacle between the customer&#8217;s intent and their first meaningful outcome.</p><p>The best onboarding for technical products doesn&#8217;t look like customer success. It looks like developer experience design.</p><div><hr></div><h2>The Framework: Time-to-Architecture (TTA)</h2><p>Stop measuring time-to-value. It&#8217;s vague, difficult to define, and almost impossible to benchmark consistently. Replace it with <strong>time-to-architecture</strong>: the elapsed time between contract signing and the customer having your product embedded in their production architecture in a way that would be painful to remove.</p><p>TTA is a real number. It&#8217;s measurable. And it predicts retention far better than any satisfaction survey.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c2AY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c2AY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c2AY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png" width="1200" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:720473,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.michaelpgoetz.com/i/192905071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.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_!c2AY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!c2AY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef628440-fb02-4482-bab3-ed05f9e9802f_1200x700.png 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><strong>Four principles:</strong></p><p><strong>1. Outcome-first onboarding</strong>: Start with "What are you trying to accomplish?" not &#8220;here&#8217;s how our product works.&#8221; Most CSMs start onboarding by walking through feature menus. Technical buyers tune out immediately. Map their stated goal to the fastest implementation path before you touch a single slide.</p><p><strong>2. Progressive complexity:</strong> Get them to a working integration in hours, not weeks. One integration that works in production is worth more than a 12-module training course that ends with &#8220;now let&#8217;s schedule the kickoff.&#8221; Think about how the best developer tools work: Stripe's accepting<em> a payment in 5 minutes</em>, Twilio&#8217;s first SMS, and Vercel&#8217;s first deploy. The entire UX is designed around the moment of first success. Your onboarding should be no different.</p><p><strong>3. Architecture anchors:</strong> Deliberately help customers integrate in ways that create healthy dependencies. Not lock-in for its own sake, but genuine<em> architectural value</em> that makes your product load-bearing. An integration that sits on the edge of someone&#8217;s stack is easy to remove. One that sits in the middle of their data pipeline is not. Guide them toward the middle.</p><p><strong>4. Self-service with instrumentation:</strong> Let technical users move at their own pace. Forcing them into a CSM-led process every step of the way is friction, not service. Build docs, quick starts, and templates that make self-direction the path of least resistance, but instrument the journey so you know when someone is stuck, stalled, or going down an implementation dead end.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bVn7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bVn7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bVn7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:437132,&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://www.michaelpgoetz.com/i/192905071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.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_!bVn7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!bVn7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9203b761-fcb5-4ea2-a358-8b752ae7353b_1200x720.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><h2>Why CSMs Keep Getting Onboarding Wrong</h2><p>There are two failure modes I see frequently.</p><p><strong>The first is feature tourism.</strong> The CSM walks the customer through every part of the product in the first few sessions, covering things the customer won&#8217;t need for six months. By the time they actually need something, they&#8217;ve forgotten the walkthrough. Meanwhile, you've missed the opportunity when they're most eager to act quickly.</p><p><strong>The second is milestone theater.</strong> The onboarding plan has 14 steps, each marked complete when the customer sits through a meeting. But meeting attendance isn&#8217;t progress. The only milestone that matters is whether this thing is in production. Everything else is a process.</p><p>The underlying problem in both cases is that the onboarding is designed around the vendor&#8217;s comfort, not the customer&#8217;s intent. CSMs want a structured sequence they can report on. Engineers want to ship something.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AZ4T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AZ4T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:731453,&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://www.michaelpgoetz.com/i/192905071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.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_!AZ4T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!AZ4T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a569e70-aa3d-4843-a3bc-3a36b9593962_1200x720.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><h2>What TTA Changes</h2><p>When you organize onboarding around time-to-architecture, a few things shift.</p><p>First, kickoff calls change. Instead of &#8220;let&#8217;s review the onboarding timeline,&#8221; the first call is, "What<em> does your production architecture look like today, and where does our product fit?&#8221;</em> That&#8217;s a conversation technical buyers actually want to have.</p><p>Second, success milestones become real signals. &#8220;Completed module 3&#8221; tells you nothing. &#8220;First API call in production&#8221; tells you a lot. &#8220;Product embedded in two workflows&#8221; tells you you&#8217;re probably going to retain this account.</p><p>Thirdly, CSM time is allocated to the edges. A significant portion of onboarding effort is often directed towards customers who are likely to understand it on their own. TTA instrumentation shows you who&#8217;s actually stuck so you can deploy human attention where it changes the outcome, not where it provides the appearance of service.</p><div><hr></div><h2>The Prompt Library</h2><h3>Prompt 1: Onboarding Path Generator</h3><pre><code><code>A new customer just signed. Based on their profile, design a personalized onboarding path optimized for minimum time-to-architecture.

Customer profile:
- Company size: {size}
- Technical maturity: {low/medium/high}
- Primary use case: {use case}
- Existing tech stack: {tools and platforms}
- Decision maker role: {title}
- Implementation team: {who's doing the work}
- Success criteria stated during sales: {criteria}

Generate:
1. The single fastest path to a working production integration (target: under 2 weeks)
2. Three milestone checkpoints with specific observable signals that confirm progress
3. Potential friction points based on their stack and maturity level
4. Recommended self-service resources to send before the kickoff call
5. Questions to ask in the kickoff that a traditional onboarding script would miss
</code></code></pre><h3>Prompt 2: Onboarding Friction Detector</h3><pre><code><code>Review the following onboarding data for customers who started in the last 90 days. Identify where TTA is breaking down.

Onboarding data:
{structured data: customer, start date, current milestone, days at each stage, support tickets opened, CSM touchpoints}

Analyze:
1. Which stage has the longest average dwell time?
2. Are there segments (by company size, use case, or stack) that consistently stall?
3. What support ticket patterns emerge during onboarding?
4. Which customers reached production integration fastest &#8212; what did they have in common?

Recommend 3 specific changes to the onboarding process that would reduce average time-to-architecture.
</code></code></pre><div><hr></div><h2>One Metric to Add This Week</h2><p>If you&#8217;re not tracking TTA today, start with a proxy: <strong>days from contract signed to first production API call</strong> (or equivalent for your product). Pull the last 90 days of new customers. Segment by company size and technical maturity. Find the outliers (the customers who got there fast) and figure out what they had in common.</p><p>That pattern is your new onboarding template.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iYSE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iYSE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iYSE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:763081,&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://www.michaelpgoetz.com/i/192905071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.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_!iYSE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!iYSE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc371fbb3-6ee4-41e2-8b54-e41fd4cbd466_1200x720.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><em>This is the third post in a series on rebuilding Customer Success for technical products. If you missed the first one, start here: <a href="https://michaelpgoetz.substack.com/p/your-health-score-is-a-horoscope">Your Health Score Is a Horoscope</a>. Subscribe at <a href="https://michaelpgoetz.substack.com/">michaelpgoetz.substack.com</a> if you&#8217;re building CS for people who build software.</em></p>]]></content:encoded></item><item><title><![CDATA[QBRs Are Where Relationships Go to Die]]></title><description><![CDATA[You&#8217;re burning your champion&#8217;s political capital one slide deck at a time.]]></description><link>https://www.michaelpgoetz.com/p/qbrs-are-where-relationships-go-to</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/qbrs-are-where-relationships-go-to</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Tue, 24 Mar 2026 14:00:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NpeP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You want to know a dirty secret that every CS leader knows but nobody wants to put in writing? Your customers hate your QBRs. Your CSMs hate preparing them. And the standard format (a 60-minute slide deck reviewing usage metrics the customer already has access to) is actively making the relationship worse.</p><p>Think about what you&#8217;re actually asking your champion to do. They had to block an hour on their calendar. They probably had to pull in their boss or a peer. And now they&#8217;re sitting through 45 minutes of &#8220;here&#8217;s your adoption data&#8221; that they could have pulled from a dashboard in 30 seconds. You&#8217;re not providing value. You&#8217;re consuming their political capital to justify your own existence.</p><p>Technical buyers feel this harder than anyone. Engineers evaluate vendor relationships on two criteria: do you respect my time, and do you make me smarter? A QBR that reads back their own data fails both tests. Every single time.</p><p>This is the second post in a series on rebuilding Customer Success for technical products. Same format as last time: challenge something the industry treats as settled, offer a framework to replace it, and hand you the prompts to operationalize it this week.</p><div><hr></div><h2>The Problem: 60 Minutes of Nothing</h2><p>Here&#8217;s what a standard QBR typically looks like.</p><p>Slide 1: company logos and &#8220;partnership overview.&#8221; </p><p>Slide 2: usage metrics with a green arrow pointing up. </p><p>Slide 3: support ticket summary. </p><p>Slide 4: NPS score. </p><p>Slide 5: &#8220;roadmap preview&#8221; that&#8217;s really just a marketing slide from the last product launch. </p><p>Slide 6: &#8220;open discussion&#8221; where everyone checks their phone.</p><p>Your champion sat through all of that and walked away with nothing they didn&#8217;t already know. Worse, they now have to justify to their boss why that meeting was worth the time. If they can&#8217;t, they stop accepting the invite. And you just lost your most important access point into the account.</p><p>Here&#8217;s what really happens after a bad QBR: your champion starts declining meetings. Not because they&#8217;re unhappy with the product, but because you&#8217;ve trained them to expect that every interaction with your team is a waste of time. That&#8217;s a self-inflicted wound. </p><p>The irony is that most CS teams treat QBR attendance as a health metric. &#8220;They showed up, so the relationship is fine.&#8221; No. They showed up because they felt obligated. The moment they stop feeling that obligation, you&#8217;ve already lost.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NpeP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NpeP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 424w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 848w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 1272w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NpeP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png" width="1200" height="680" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:680,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:627964,&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://www.michaelpgoetz.com/i/191053420?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.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_!NpeP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 424w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 848w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.png 1272w, https://substackcdn.com/image/fetch/$s_!NpeP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4769635b-b9fa-47c4-bde7-080e968b9db4_1200x680.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><h2>The Framework: The Technical Value Review (TVR)</h2><p>I think the fix for these sorts of QBRs is to kill the format entirely and replace it with something designed for how technical buyers actually think.</p><p>Let&#8217;s call it the Technical Value Review. Here&#8217;s what makes it different.</p><p><strong>No slides up front.</strong> Use a shared working document that both sides can edit. Send it to the customer 48 hours before the meeting. Let them add context, correct assumptions, and flag what they actually want to talk about. By the time you sit down together, half the meeting&#8217;s work is already done.</p><p><strong>No usage reviews.</strong> They have dashboards. They know their numbers. If you&#8217;re spending meeting time reviewing data they already have, you&#8217;re telling them you have nothing better to offer. Stop it.</p><p><strong>Three sections only.</strong> Everything in the document fits into one of three buckets:</p><p><strong>1. Architecture Alignment.</strong> How has their technical environment changed since last time? New services, new teams, infrastructure shifts, reorgs. And given those changes, how should their use of your product evolve? This is the conversation that positions you as a technical partner instead of a vendor. You&#8217;re thinking about their architecture, not your renewal.</p><p><strong>2. Roadmap Intersection.</strong> No one really wants a product marketing pitch. What customers really want is a specific mapping of what&#8217;s coming on your roadmap to their stated priorities. &#8220;You told us last quarter that observability across your microservices fleet is a priority. Here&#8217;s what we&#8217;re shipping in Q3 that directly addresses that. And here&#8217;s what we need your input on before we finalize the design.&#8221; That&#8217;s a conversation worth having.</p><p><strong>3. Risk and Technical Debt.</strong> What&#8217;s fragile in their current implementation? What would you recommend they invest in before it becomes a support ticket? This is the section that builds trust faster than anything else in CS. You&#8217;re proactively telling them where the problems are, before they find out themselves. </p><p><strong>30 minutes max.</strong> If you can&#8217;t deliver value in 30 minutes with a pre-shared doc and three focused sections, more time is not the answer. Better preparation is.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5AXT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5AXT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5AXT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:411370,&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://www.michaelpgoetz.com/i/191053420?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.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_!5AXT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!5AXT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617ef8ff-a71d-421b-bb0a-13ad6b3955b2_1200x720.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><h2>Why This Works for Technical Buyers</h2><p>The TVR format works because it matches how engineers already operate. They read docs before meetings. They want the pre-read to be substantive, not a teaser. They hate slides. They evaluate people based on technical depth, not polish.</p><p>When you show up to a TVR and say &#8220;we noticed your API call patterns shifted last month, and given your migration to Kubernetes, here&#8217;s how we&#8217;d recommend restructuring the integration,&#8221; you just proved three things: you understand their architecture, you&#8217;re paying attention to how they use the product, and you have an opinion about how they should evolve. That&#8217;s a relationship. A slide deck with a green usage arrow is not.</p><p>The other thing the TVR does is shift the power dynamic. A QBR is something you do <em>to</em> the customer. A TVR is something you do <em>with</em> them. The shared doc means they have agency. The architecture section means they&#8217;re bringing knowledge to the table too. The roadmap section means their input actually shapes what gets built. They leave the meeting feeling like a partner, not a captive audience.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kMcf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kMcf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kMcf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png" width="1200" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:706880,&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://www.michaelpgoetz.com/i/191053420?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.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_!kMcf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!kMcf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ecf27b5-b49b-4a32-8695-5e56235fb498_1200x700.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><h2>The Prompt Library</h2><p>Three prompts to start running TVRs this week. Same drill as last time: pull data from your systems, fill in the brackets, and run them.</p><h3>Prompt 1: TVR Prep Document Generator</h3><p>Use this to build the shared working doc you&#8217;ll send to the customer 48 hours before the meeting.</p><pre><code><code>You are preparing a Technical Value Review document for a meeting
with {customer_name}. Using the data below, create a concise shared
working document (not slides) with three sections.

Customer context:
- Industry: {industry}
- Primary use case: {use case}
- Technical environment: {stack details}
- Recent changes in their environment: {any known changes}
- Your product's recent releases relevant to them: {releases}
- Known implementation risks or technical debt: {risks}
- Their stated priorities for this quarter: {priorities}

Format the document as a collaborative working doc with:
1. Architecture Alignment (what's changed, what should evolve)
2. Roadmap Intersection (what's coming that matters to them,
   questions to ask)
3. Risk &amp; Technical Debt (what to address proactively)

Keep it under 2 pages. Use technical language appropriate for an
engineering audience. No marketing speak.
</code></code></pre><p><strong>Try this:</strong> Run it for your most important renewal this quarter. Send the output to the customer as a shared doc and ask them to add their context before the meeting. Watch what happens when they show up having already engaged with the material.</p><h3>Prompt 2: QBR-to-TVR Converter</h3><p>Already have a QBR deck built? Don&#8217;t start over. Feed it to this prompt and let it strip out the filler.</p><pre><code><code>I have a traditional QBR deck that I need to transform into a
Technical Value Review format. Below is the content from my current
QBR slides.

Current QBR content:
{paste slide content}

Remove all usage metric reviews, NPS references, and relationship
management filler. Extract the genuinely valuable insights and
restructure them into the TVR format:
1. Architecture Alignment
2. Roadmap Intersection
3. Risk &amp; Technical Debt

Flag any content from the original QBR that has no place in a TVR
and explain why it was cut.
</code></code></pre><p><strong>Try this:</strong> Take the last QBR deck you delivered. Paste the content in. The prompt will tell you exactly how much of your current format is filler versus substance. Most teams find it&#8217;s about 70/30 in the wrong direction.</p><h3>Prompt 3: Post-TVR Action Item Synthesizer</h3><p>The meeting&#8217;s done. Now turn your notes into an action plan within 2 hours.</p><pre><code><code>Here are my notes from a Technical Value Review meeting with
{customer_name}.

Meeting notes:
{paste notes}

Generate:
1. A summary email to send to the customer within 2 hours (concise,
   action-oriented, no fluff)
2. Internal action items categorized by: CSM follow-up, Product
   feedback to log, Engineering/support escalation
3. Any state transition signals detected during the conversation
   (refer to the state-based model: Onboarding, Expanding,
   Steady-State, At-Risk, Recovering)
</code></code></pre><p><strong>Try this:</strong> Use it after your next customer meeting. The state transition detection in item 3 connects back to the framework from the first post in this series. You&#8217;re not just taking notes. You&#8217;re feeding the system.</p><div><hr></div><h2>The Bottom Line</h2><p>The QBR was designed for a world where customers couldn&#8217;t access their own data and the CSM was the only window into how the account was doing. That world doesn&#8217;t exist anymore. Your customers have dashboards. They have product analytics. They don&#8217;t need you to tell them what they already know.</p><p>What they need is someone who understands their architecture, has an opinion about where it should go, and is willing to flag risks before they become problems. That&#8217;s a Technical Value Review. It&#8217;s shorter, sharper, and it actually makes your champion look good instead of wasting their time.</p><p>Kill the deck. Share a doc.</p><div><hr></div><p><em>This is the second post in a series on rebuilding Customer Success for technical products. If you missed the first one, start here: <a href="https://michaelpgoetz.substack.com/p/your-health-score-is-a-horoscope">Your Health Score Is a Horoscope</a>. Subscribe at <a href="https://michaelpgoetz.substack.com/">michaelpgoetz.substack.com</a> if you&#8217;re building CS for people who build software.</em></p>]]></content:encoded></item><item><title><![CDATA[Your Health Score Is a Horoscope]]></title><description><![CDATA[And it&#8217;s costing you accounts while you debate the weights.]]></description><link>https://www.michaelpgoetz.com/p/your-health-score-is-a-horoscope</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/your-health-score-is-a-horoscope</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Thu, 12 Mar 2026 14:02:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WW59!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been in technical Customer Success for over 13 years (AWS, GitHub, Chef, now Drata) and I&#8217;ve watched the same thing happen at every company once it hits a certain size. Someone decides the CS org needs a health score. An initiative gets spun up. People argue about weights on a recurring &#8220;health score design meeting&#8221; for three weeks. A dashboard goes live. Leadership feels better. And absolutely nothing changes about how your team actually helps customers.</p><p>Health scores are the horoscope of Customer Success. Vague enough to feel true. Updated too slowly to be useful. And they exist mostly to make the person reading them feel like they understand something they don&#8217;t.</p><p>This is the first post in a series where I&#8217;m going to challenge things the CS industry treats as settled, offer a framework I&#8217;d actually use, and hand you the prompt library or agent workflow to put it into practice. No theory without tooling. Here we go.</p><div><hr></div><h2>The Problem: Performative Dashboards</h2><p>You know how these things get built. Take a handful of inputs (NPS, support ticket volume, login frequency, maybe a CSM gut-feel rating), throw some weights on them that somebody argued about in a meeting, and produce a composite number. Green, yellow, red. Board deck looks great.</p><p>Now ask a CSM what they&#8217;re supposed to <em>do</em> when an account turns yellow. You&#8217;ll get a shrug. Or worse, they&#8217;ll send a check-in email. The score told them something changed but not what, not why, and definitely not what to do about it. It&#8217;s a summary of stuff that already happened pretending to be a prediction.</p><p>But here&#8217;s the part that really gets me. The deeper failure isn&#8217;t that the score is wrong. It&#8217;s that the score trains your team to manage numbers instead of managing customers. CSMs figure out how to game the inputs. Leadership starts trusting the dashboard more than the people closest to the accounts. And the signals that actually predict churn (deployment logs, API call patterns, the day a champion updates their LinkedIn) those never make it into the model. Too hard to quantify. Too messy to weight.</p><p>I&#8217;ve watched a team spend <em>months</em> arguing about whether NPS should be 15% or 20% of the composite score. While that was happening, a strategic account quietly ripped out the integration because their internal champion left and nobody noticed. Health score was green the whole time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WW59!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WW59!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!WW59!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!WW59!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!WW59!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WW59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:518609,&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://michaelpgoetz.substack.com/i/190675533?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.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_!WW59!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!WW59!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!WW59!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!WW59!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4520a0ec-c957-4d7d-b3ce-c4b2dd30426c_1200x720.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><div><hr></div><h2>The Framework: Signal-Based Customer State Detection</h2><p>The answer isn&#8217;t a better health score. It&#8217;s scrapping the whole concept.</p><p>Replace it with a state machine. Customers aren&#8217;t a number on a 0-100 scale. They&#8217;re in one of a handful of states at any given time:</p><ul><li><p><strong>Onboarding:</strong> Still implementing, clock is ticking on time-to-value</p></li><li><p><strong>Expanding:</strong> Rolling out to new teams, adding integrations, usage climbing</p></li><li><p><strong>Steady-State:</strong> Stable, not growing, not shrinking. Coasting.</p></li><li><p><strong>At-Risk:</strong> Usage declining, integrations getting pulled, champion gone quiet</p></li><li><p><strong>Recovering:</strong> You&#8217;ve intervened, re-engagement is underway</p></li></ul><p>The thing that matters isn&#8217;t the state itself. It&#8217;s the <em>transitions</em>. When a customer moves from Expanding to Steady-State, that means something. When they slide from Steady-State to At-Risk, that&#8217;s not a yellow dashboard. That&#8217;s a fire drill with a specific playbook attached to it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1V94!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1V94!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!1V94!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!1V94!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!1V94!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1V94!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png" width="1200" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:691425,&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://michaelpgoetz.substack.com/i/190675533?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.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_!1V94!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 424w, https://substackcdn.com/image/fetch/$s_!1V94!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 848w, https://substackcdn.com/image/fetch/$s_!1V94!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.png 1272w, https://substackcdn.com/image/fetch/$s_!1V94!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F131ac326-3d8a-4037-af0e-b9cc049c3bbd_1200x720.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>Three ideas make this actually work in practice:</p><p><strong>1. Flip from lagging to leading indicators.</strong></p><p>Most health scores are built on data that tells you what already happened. NPS is how someone felt last quarter. Ticket volume is what already broke. You need the stuff that tells you where the account is <em>headed</em>: deployment velocity, feature adoption curves, how deep the integration goes, how often the champion is engaging. Forward-looking, not rearview mirror.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xgXY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xgXY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xgXY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png" width="1200" height="700" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:700,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:702534,&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://michaelpgoetz.substack.com/i/190675533?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.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_!xgXY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 424w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 848w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.png 1272w, https://substackcdn.com/image/fetch/$s_!xgXY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77144811-3cb8-4eee-9fd6-f86a4567ef3e_1200x700.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>2. Trigger playbooks off state transitions, not score changes.</strong></p><p>&#8220;Score dropped from 82 to 71&#8221; is meaningless. Nobody knows what to do with that. But &#8220;this account just moved from Expanding to Steady-State&#8221;? Now you&#8217;ve got something. Schedule an architecture review. Find the next expansion use case. Get back in front of the exec sponsor. That&#8217;s a to-do list, not a guessing game.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6JCk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6JCk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 424w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 848w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 1272w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6JCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png" width="1200" height="780" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:780,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:470115,&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://michaelpgoetz.substack.com/i/190675533?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.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_!6JCk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 424w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 848w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.png 1272w, https://substackcdn.com/image/fetch/$s_!6JCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f21c8e7-9e1f-48a8-a103-e7899f4fc112_1200x780.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>3. Treat technical depth as your best retention signal.</strong></p><p>This one&#8217;s specific to technical products, and it&#8217;s the hill I&#8217;ll die on. The best predictor of whether a customer stays isn&#8217;t their satisfaction score. It&#8217;s how tangled up your product is in their architecture. Count the integration points. I like to call them &#8220;retention anchors&#8221;. Look at API call diversity. Figure out how many of their internal tools depend on yours. A customer running 15 integrations with 4 internal tools built on your API? They&#8217;re not leaving. I don&#8217;t care what their NPS is. A customer with one shallow integration and a great NPS? They&#8217;re one executive decision away from rip-and-replace.</p><div><hr></div><h2>The Prompt Library</h2><p>OK, so how do you actually start doing this? Here are three prompts you can run this week against real customer data. They work with Claude, ChatGPT, whatever you&#8217;ve got. Pull structured data from your CRM, product analytics, and support system, and feed it in.</p><h3>Prompt 1: Customer State Classifier</h3><p>This one replaces your health score for a single account.</p><pre><code><code>You are a Customer Success analyst specializing in technical B2B SaaS.
Given the following customer data, classify this customer into one of
these operational states: [Onboarding, Expanding, Steady-State,
At-Risk, Recovering].

Customer data:
- Account age: {months}
- Product usage trend (last 90 days): {increasing/flat/declining}
- Features activated vs. available: {ratio}
- Support ticket trend: {increasing/flat/declining}
- Last executive sponsor contact: {days ago}
- Recent integration/API changes: {description}
- Contract renewal date: {date}

Classify the state and explain which signals were most determinative.
Then recommend the top 3 actions the CSM should take this week,
specific to the detected state.
</code></code></pre><p><strong>Try this:</strong> Run it on your top 20 accounts and compare to what your current health score says. I&#8217;d bet money at least 3 accounts come back in a different state than your dashboard shows.</p><h3>Prompt 2: State Transition Detector (Weekly Batch)</h3><p>This is your new Monday morning portfolio review.</p><pre><code><code>You are reviewing a portfolio of {N} accounts. For each account below,
compare their current signals to their signals from 30 days ago.
Identify any accounts that have shifted operational states.

For each state transition detected:
1. Name the transition (e.g., "Expanding &#8594; Steady-State")
2. Identify the 2-3 signals that drove the change
3. Flag urgency: routine, elevated, or critical
4. Recommend the specific playbook to execute

Account data:
{structured account data with current and 30-day-prior snapshots}
</code></code></pre><p><strong>Try this:</strong> Use it to replace your weekly health score review. Instead of everyone staring at a dashboard trying to figure out what the numbers mean, you walk in with a ranked list of state transitions and a playbook for each one. The meeting goes from interpretation to execution.</p><h3>Prompt 3: Health Score Audit</h3><p>Run this once to find out where your current model is lying to you.</p><pre><code><code>I'm going to share our current health score model. Analyze it for
the following failure modes:
- Lagging indicator dependency (signals that tell you what already
  happened)
- Vanity signal inclusion (metrics that feel important but don't
  predict outcomes)
- Missing technical depth signals
- Weighting that obscures rather than clarifies

Current health score model:
{paste your model: inputs, weights, thresholds, and any logic}

Provide a redesigned scoring approach using state-based detection
instead of composite scoring. Map each of our current inputs to
either: a state classification signal, a transition trigger, or
"remove: does not predict outcomes."
</code></code></pre><p><strong>Try this:</strong> Paste your actual health score model in. Inputs, weights, thresholds, all of it. You&#8217;ll find out which signals actually predict outcomes, which ones are vanity metrics making you feel good, and how to restructure around state detection. Do it before your next QBR.</p><div><hr></div><h2>The Bottom Line</h2><p>Health scores were built for a world where CS was an account management function and the main event was a quarterly business review. If you&#8217;re running CS for a technical product, where your customers are engineers, your value lives in their architecture, and retention comes down to integration depth, you need something that thinks in states and transitions, not weighted averages.</p><p>Kill the horoscope. Build a state machine.</p><div><hr></div><p><em>This is the first post in a series on rebuilding Customer Success for technical products. Next up: why your QBR format is optimized for the wrong audience. Subscribe at <a href="https://michaelpgoetz.substack.com/">michaelpgoetz.substack.com</a> if you&#8217;re building CS for people who build software.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/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! 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[New Direction]]></title><description><![CDATA[It&#8217;s been 9 months since I&#8217;ve published here.]]></description><link>https://www.michaelpgoetz.com/p/new-direction</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/new-direction</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Wed, 11 Mar 2026 23:26:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!M_zO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<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_!M_zO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M_zO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!M_zO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&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_!M_zO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!M_zO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9dc56b91-1a88-4cb7-9a30-c3a9652c339a_1024x608.png 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>It&#8217;s been 9 months since I&#8217;ve published here. A lot has changed.</p><p>When I started this Substack, I was building a startup with AI tools and writing about that experience. Since then, I&#8217;ve taken on the SVP of Customer Success role at Drata, and the thing I&#8217;ve been thinking about most isn&#8217;t how to build software &#8212; it&#8217;s how to rebuild the way we run Customer Success for technical products.</p><p><strong>Here&#8217;s what this publication is now:</strong></p><p>I&#8217;m writing for CS leaders at technical SaaS companies. The ones whose customers are engineers, whose retention depends on architectural depth, and who are tired of frameworks designed for a different buyer.</p><p>Every post follows the same format: a challenge to something the CS industry treats as settled, an opinionated framework to replace it, and a prompt library or AI agent workflow you can run against real customer data that week.</p><p>Look out for the first post tomorrow. <strong>&#8220;Your Health Score Is a Horoscope&#8221;</strong> is focused on why composite health scores are performative dashboards and what to build instead.</p><p>If this new direction isn&#8217;t your thing, no hard feelings, unsubscribe link is below. If it is, I&#8217;m glad you&#8217;re here.</p><p>&#8212; Michael</p>]]></content:encoded></item><item><title><![CDATA[I Found a Better Way to Build with AI (And It's Hidden in Plain Sight)]]></title><description><![CDATA[Last week, Amazon quietly launched something called Kiro. Most people saw "another AI coding tool" and moved on. I almost did too.]]></description><link>https://www.michaelpgoetz.com/p/i-found-a-better-way-to-build-with</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/i-found-a-better-way-to-build-with</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Mon, 21 Jul 2025 15:53:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Jtqi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png" 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_!Jtqi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Jtqi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1341260,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.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_!Jtqi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Jtqi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b072202-ea39-42ec-a209-8d1204dbf156_1024x1024.png 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>Last week, Amazon quietly launched something called <a href="https://kiro.dev/">Kiro</a>. Most people saw "another AI coding tool" and moved on. I almost did too.</p><p>But something in their launch post caught my eye: they weren't selling speed. They were selling <em>thinking</em>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K9KV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K9KV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 424w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 848w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 1272w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K9KV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png" width="1456" height="449" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:449,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:198385,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.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_!K9KV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 424w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 848w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 1272w, https://substackcdn.com/image/fetch/$s_!K9KV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F060fe41e-fbfa-41fd-b918-ddac1ae31907_1698x524.png 1456w" sizes="100vw"></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>After five weeks of vibecoding my way through RallyCamp, shipping features fast but accumulating technical debt faster, this hit different. So I signed up, played around with it for a few hours, and discovered something that changed how I use Claude Code.</p><p>Here's the thing: you don't need Kiro to use their best idea.</p><h2>What Kiro Actually Does</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ISwf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ISwf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 424w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 848w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 1272w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ISwf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png" width="931" height="468" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:468,&quot;width&quot;:931,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38353,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.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_!ISwf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 424w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 848w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 1272w, https://substackcdn.com/image/fetch/$s_!ISwf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21075093-6821-4fcc-80ff-160d70e31bf7_931x468.png 1456w" sizes="100vw"></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>Kiro forces you to build in a specific order:</p><ol><li><p>Requirements first (what problem are you solving?)</p></li><li><p>Design second (how will you solve it?)</p></li><li><p>Tasks third (what's the step-by-step plan?)</p></li><li><p>Code last (now execute the plan)</p></li></ol><p>If you try to skip ahead, it literally won't let you. The AI refuses to write code until you've thought through the problem.</p><p>My first reaction: "This is going to slow me down."</p><p>My second reaction, after trying it: "Holy shit, this is exactly what I've been missing."</p><h2>The Pattern Hidden in Plain Sight</h2><p>Here's what fascinated me: Kiro uses Claude under the hood. The same Claude I've been using in Claude Code. The same Claude that's been happily building whatever half-baked idea I throw at it.</p><p>The difference wasn't the AI. It was the workflow.</p><p>So I did what any reasonable person would do. I tried to replicate Kiro's pattern directly in Claude Code.</p><h2>My First Experiment</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KZ7H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KZ7H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/403d073c-9476-40b1-a657-7c8257d00443_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:292577,&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://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.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_!KZ7H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!KZ7H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F403d073c-9476-40b1-a657-7c8257d00443_1200x630.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 had just run a codebase review on RallyCamp and discovered something horrifying: I had copy-pasted authentication code across 8 different API routes. Eight! The same security-critical code, duplicated everywhere.</p><p>Instead of my usual approach ("hey Claude, fix this mess"), I tried the Kiro way.</p><p><strong>Step 1: Requirements</strong></p><pre><code><code>Create a requirements.md file for fixing code duplication issues. I have auth code copied 8+ times, validation error handling in 15+ places, and the same patterns repeated everywhere. Focus on why this is a problem and what the solution needs to achieve.
</code></code></pre><p>What came back surprised me. Instead of jumping to refactoring, Claude asked questions:</p><ul><li><p>What happens when you need to fix a security bug in the auth code?</p></li><li><p>How many places could you miss?</p></li><li><p>What's the blast radius if you get it wrong?</p></li></ul><p>We went back and forth for 10 minutes. By the end, I had a requirements doc that clearly explained WHY this wasn't just about clean code, it was about security and maintainability.</p><p><strong>Step 2: Design</strong></p><pre><code><code>Based on requirements.md, create a design.md file for the refactoring. 
Include the new architecture, where shared code will live, and how 
we'll migrate without breaking existing features. No code yet.
</code></code></pre><p>This is where it got interesting. Because Claude had the requirements context, the design actually addressed real risks. It suggested things like:</p><ul><li><p>Creating a phased rollout (security-critical auth first)</p></li><li><p>Building comprehensive tests before touching anything</p></li><li><p>Setting up feature flags for gradual migration</p></li></ul><p>Stuff I would've learned the hard way after breaking production.</p><p><strong>Step 3: Tasks</strong></p><pre><code><code>Break down design.md into specific implementation tasks in tasks.md. Phase 1 should be security-critical auth code. Each task should be independently testable. Order by risk and dependencies.</code></code></pre><p>Now I had a roadmap. Not just "refactor everything" but a three-week plan:</p><ul><li><p>Week 1: Extract auth middleware, test exhaustively, migrate routes</p></li><li><p>Week 2: Create validation handlers and unified API client</p></li><li><p>Week 3: Extract shared schemas and utility functions</p></li></ul><p><strong>Step 4: Actually Build</strong></p><pre><code><code>Execute task 1 from tasks.md: Create lib/api/auth.ts with 
requireAuth() middleware. Reference the duplicated code patterns 
from the codebase review.</code></code></pre><p>The code that came out was different. Better. It knew exactly what patterns to extract and why.</p><h2>Why This Changes Everything</h2><p>Remember my post about technical debt? About how AI builds code optimized for different constraints than yours?</p><p>This fixes that.</p><p>When you give AI the full context (requirements, design, architecture) it builds code optimized for YOUR constraints. Your security requirements. Your maintenance needs.</p><p>The auth refactoring? It touched 8 critical files. Zero bugs. Zero downtime. That's never happened with my "just fix it" approach.</p><p>Even better: the refactoring actually reduced the codebase by 1000+ lines. Turns out when AI understands the full picture, it doesn't just move code around, it finds better patterns.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AQCb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AQCb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 424w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 848w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 1272w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AQCb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png" width="882" height="522" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:522,&quot;width&quot;:882,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:104247,&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://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.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_!AQCb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 424w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 848w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.png 1272w, https://substackcdn.com/image/fetch/$s_!AQCb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fafa2c6-cde0-4fc2-8676-debf4f771106_882x522.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><h2>The Real Magic: Thinking Time</h2><p>Here's what I realized: The value isn't in the documents. It's in the thinking that happens while creating them.</p><p>When I'm writing requirements, I'm not just listing features. I'm discovering edge cases. When I'm writing design docs, I'm not just planning architecture. I'm spotting problems before they're expensive.</p><p>The AI helps with this thinking. It asks questions I don't think to ask. It spots patterns I miss. It's like pair programming, but for product design.</p><h2>My Current Workflow</h2><p>I still use Claude Code for everything. I just use it differently:</p><p><strong>Monday</strong>: Think through the week's features. Create requirement docs for each.</p><p><strong>Tuesday</strong>: Turn requirements into designs. Let Claude challenge my assumptions.</p><p><strong>Wednesday-Thursday</strong>: Execute tasks. The actual coding is the easy part now.</p><p><strong>Friday</strong>: Ship with confidence.</p><p>I'm building at the same speed, but with 90% fewer "oh shit" moments.</p><h2>But Here's the Catch</h2><p>This approach has one major downside: it's addictive.</p><p>Once you experience building with clarity (ie. knowing exactly what you're making and why) it's hard to go back to chaos mode. Even for quick experiments, I find myself writing mini-specs.</p><p>Last week, I spent 20 minutes spec'ing out a feature that would've taken 10 minutes to build directly. The feature took another 15 minutes to build with the spec.</p><p>Total time: 35 minutes instead of 10. But you know what I didn't spend time on? Debugging. Fixing edge cases. Rebuilding it when users complained.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8EvM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8EvM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 424w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 848w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 1272w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8EvM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png" width="1000" height="964" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:964,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:101874,&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://michaelpgoetz.substack.com/i/168863665?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.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_!8EvM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 424w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 848w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.png 1272w, https://substackcdn.com/image/fetch/$s_!8EvM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa58eb50c-4450-4551-9d4c-8ac25c0bb7b3_1000x964.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><h2>You Don't Need Kiro for This</h2><p>Look, Kiro seems cool. The interface is slick, the workflow is smooth, and having guardrails built-in is nice.</p><p>But you don't need it.</p><p>You just need discipline to think before you build. And if you're using Claude Code like me, you can start right now:</p><pre><code><code># Start a new feature the right way
claude "I want to add [feature description]. 
Let's start by creating a requirements doc. 
Ask me questions until you understand the problem space, 
then write requirements.md"
</code></code></pre><p>That's it. That's the secret. Make the AI think with you before it codes for you.</p><h2>The Unexpected Benefit</h2><p>Remember my "47 ChatGPT chats" problem? This solves that too.</p><p>Now I have one chat per feature, but it contains the complete journey: requirements &#8594; design &#8594; tasks &#8594; code. When I need to modify something weeks later, the context is all there. The thinking is documented.</p><p>My codebase has become self-documenting. Not through code comments, but through the thoughts that created the code.</p><h2>What This Really Means</h2><p>We're at a weird moment in software development. AI can build almost anything we can describe. The bottleneck isn't coding speed anymore, it's thinking speed.</p><p>The teams that win won't be the ones with the best prompts or the fastest AI. They'll be the ones who think before they build.</p><p>Kiro gets this. That's why they built an entire IDE around making you think first. But you can get the same benefit with any AI tool. You just have to choose to slow down in the right places.</p><h2>Your Move</h2><p>This week, try building one feature the Kiro way:</p><ol><li><p>Requirements (what problem?)</p></li><li><p>Design (what solution?)</p></li><li><p>Tasks (what steps?)</p></li><li><p>Code (execute the plan)</p></li></ol><p>Use whatever AI tool you prefer. The tool doesn't matter. The order does.</p><p>And if you're already using Claude Code, steal my prompts above. They work.</p><p>P.S. - That auth refactoring? Not only did it eliminate security risks, it made adding new API routes 10x faster. Now it's just <code>requireAuth()</code> instead of 50 lines of copy-paste. Sometimes thinking first pays compound interest.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/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 Generative Growth: My Journey Building a Startup with AI! 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[The Technical Debt No One Talks About: What Happens After AI Builds Your MVP]]></title><description><![CDATA[The Reality Check]]></description><link>https://www.michaelpgoetz.com/p/the-technical-debt-no-one-talks-about</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/the-technical-debt-no-one-talks-about</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Mon, 14 Jul 2025 19:53:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gjUI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png" 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_!gjUI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gjUI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gjUI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:653247,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/168325551?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.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_!gjUI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!gjUI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd55c68-f70e-4301-ba47-e2c4ee2ed4c1_1024x1024.png 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><h2>The Reality Check</h2><p>I&#8217;ve been a bit absent writing the last few weeks. That&#8217;s because I ran into something  nobody mentions in the "build with AI" tutorials: shipping is just the beginning.</p><p>My prompt chain had worked beautifully. I'd gone from idea to working app in four weeks. The code looked clean, the features worked, and I was feeling pretty confident about this whole AI-assisted development thing.</p><p>Then I decided to add in some functionality to manage the waitlist for users.</p><p>And that's when I discovered technical debt I never saw coming.</p><h2>The Illusion of Clean Code</h2><p>Here's what AI-generated code looks like when it's fresh: organized file structure, descriptive function names, helpful comments throughout. It feels professional because AI is really good at making things <em>look</em> professional.</p><p>But looking professional and being maintainable are two very different things.</p><p>The first time I needed to modify a feature based on user feedback, I realized I was debugging code I didn't actually understand. Sure, I could read it. But reading code and understanding the architectural decisions behind it? Completely different skills.</p><h2>The Hidden Costs of "Fast" Development</h2><p>When you build with AI, you're essentially inheriting someone else's codebase from day one. Except that "someone else" is a system that makes decisions differently than you would.</p><p>AI optimizes for getting the feature working. You optimize for getting the feature working <em>and</em> being able to change it later when users inevitably want something slightly different.</p><p>This creates four types of technical debt that traditional coding tutorials never prepare you for:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yxXc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yxXc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yxXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:405255,&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://michaelpgoetz.substack.com/i/168325551?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.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_!yxXc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!yxXc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b0d9372-3ad0-4aec-9c7a-b2aed2dcf69f_1024x1024.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>1. The Black Box Problem</h3><p>AI creates functions that work perfectly for the exact use case you described. But when you need to modify them, you realize they're doing multiple things at once in ways you wouldn't have architected yourself.</p><h3>2. The Over-Engineering Trap</h3><p>AI tends to build for scale and edge cases you don't need yet. My simple app ended up with enterprise-level complexity for features that could have been much simpler.</p><h3>3. The Dependency Web</h3><p>AI is great at leveraging existing libraries. Sometimes too great. What starts as a simple request can end up pulling in multiple dependencies that you'll need to maintain and debug.</p><h3>4. The Context Gap</h3><p>This is the big one. AI builds exactly what you describe, not what you mean. The nuances of your specific use case&#8212;the business logic that makes your app unique&#8212;often get lost in translation.</p><h2>What Debugging Actually Looks Like</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4a5q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4a5q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4a5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1780137,&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://michaelpgoetz.substack.com/i/168325551?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.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_!4a5q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!4a5q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c7d77ac-6c3f-4c6f-be0c-c0e8c37aac94_1024x1024.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>Debugging AI-generated code follows a predictable pattern:</p><p>First, you think it'll be a quick fix. The error message seems straightforward enough.</p><p>Then you realize the "simple" feature is connected to three other systems in ways that aren't immediately obvious.</p><p>Then you spend more time understanding the existing code than it would have taken to write the feature from scratch.</p><p>Finally, you either patch around the issue (creating more technical debt) or rewrite the section entirely.</p><p>The problem isn't that AI writes bad code. It's that AI writes code optimized for different constraints than yours.</p><h2>The Two-Part Solution</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qILN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qILN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!qILN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!qILN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!qILN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qILN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1403622,&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://michaelpgoetz.substack.com/i/168325551?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.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_!qILN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!qILN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!qILN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!qILN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa1d8850e-74ee-4d70-ba2d-e9d59c274983_1024x1024.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>After working through this with RallyCamp, I've developed an approach that actually works:</p><h3>Part 1: The 80/20 Strategy</h3><p>Let AI handle the first 80%&#8212;the boilerplate, standard implementations, and common patterns every app needs. But plan to rewrite the last 20% yourself: the business-specific logic that makes your app unique.</p><p>This gives you the speed benefits of AI without losing understanding of your core functionality.</p><h3>Part 2: The Documentation Requirement</h3><p>After AI generates any significant code, I run it through this prompt:</p><p>"Explain this code like I'm going to maintain it for the next two years. What does each major function do? What are the key dependencies? What assumptions are built into this logic? What would break if I needed to modify [specific functionality]?"</p><p>This creates a maintenance roadmap before you need it, not after something breaks.</p><h2>The Real ROI</h2><p>Was building RallyCamp with AI worth it? Absolutely. But not for the reasons I expected.</p><p>AI didn't eliminate technical complexity&#8212;it shifted when I dealt with it. Instead of spending weeks learning to code before building anything, I spent time learning to debug and refactor after shipping something real.</p><p>The value wasn't avoiding technical challenges. It was facing the right technical challenges with real user feedback driving the decisions.</p><h2>What I'd Do Differently</h2><p>Starting over, here's what I'd change:</p><ol><li><p><strong>Build one feature completely</strong> (including understanding and documentation) before moving to the next</p></li><li><p><strong>Set debugging time limits</strong>&#8212;if I can't understand and fix an AI-generated issue in a reasonable time, I rewrite that section</p></li><li><p><strong>Plan for iteration from day one</strong>&#8212;assume every feature will need modification based on user feedback</p></li><li><p><strong>Document architectural decisions</strong> as I go, not after something breaks</p></li></ol><h2>The Mindset Shift</h2><p>The biggest insight isn't about code&#8212;it's about expectations.</p><p>AI doesn't eliminate technical complexity. It relocates it from "learning to build" to "learning to maintain." Both are valuable skills, but they're different skills.</p><p>The founders who succeed with AI won't be the ones with the perfect prompts. They'll be the ones who plan for technical debt as a natural part of the process.</p><p>Because when your users need a feature modified, and they're waiting for the fix, the quality of your prompts matters less than your ability to understand and change the code that's already running.</p><div><hr></div><p><em>Building with AI? I'd love to hear what technical debt you've discovered. Reply and let me know what surprised you most about maintaining AI-generated code.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/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 Generative Growth: My Journey Building a Startup with AI! 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[From 47 ChatGPT Chats to One: The Reddit Thread That Unlocked My AI Workflow]]></title><description><![CDATA[ChatGPT Hell]]></description><link>https://www.michaelpgoetz.com/p/from-47-chatgpt-chats-to-one-the</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/from-47-chatgpt-chats-to-one-the</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Thu, 19 Jun 2025 16:25:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJBk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png" 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_!qJBk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qJBk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 424w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 848w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qJBk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png" width="728" height="309.49802513464994" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1184,&quot;width&quot;:2785,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:3401609,&quot;alt&quot;:&quot;Forty-seven cluttered chats contrasted with one focused AI chat.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://michaelpgoetz.substack.com/i/166258584?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2fc73b1-6083-4eff-9eec-f7201bca8d49_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Forty-seven cluttered chats contrasted with one focused AI chat." title="Forty-seven cluttered chats contrasted with one focused AI chat." srcset="https://substackcdn.com/image/fetch/$s_!qJBk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 424w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 848w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 1272w, https://substackcdn.com/image/fetch/$s_!qJBk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd27d85e8-7ed3-4054-971a-e3d2b9600881_2785x1184.png 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><h2>ChatGPT Hell</h2><p>You know that feeling when you have so many browser tabs open that the favicons disappear and you're just looking at a wall of gray rectangles? That was me four weeks ago, except worse. I had 47 ChatGPT chats open. Forty. Seven.</p><p>Each one was a different conversation thread about <a href="https://rally.camp">RallyCamp</a>, my camping app idea. One tab for database design. Another for user authentication. Three separate ones just for different approaches to the scheduling system. I'd hop between them like a caffeinated squirrel, copying bits from one conversation, pasting into another, trying to remember which tab had that brilliant insight about Scout leader workflows.</p><h2>11 PM, One Reddit Link</h2><p>It was 11pm on a Tuesday when everything changed. I was scrolling Reddit, specifically r/vibecoding, when I found a thread titled "<a href="https://www.reddit.com/r/vibecoding/comments/1kkpyxo/this_is_how_i_build_launch_apps_using_ai_even/">This is how I build &amp; launch apps (using AI), even faster than before.</a>"</p><p>The thoughtfulness of the approach just blew me away. And it made a ton of sense to me. I had been treating ChatGPT like a better Google search, trying to learn all of the various roles and context myself. This approach was changing me from a do-it-all-yourself quasi-developer to an AI boss, something that was much more relatable to my recent real life work.</p><p>The commenter had linked to their workflow, but honestly, it was overwhelming. Pages and pages of complex prompts with variables and conditionals. I almost closed the tab, but something made me try a simpler version.</p><h2>The 12-Word Prompt Factory</h2><p>I opened a fresh ChatGPT window. Just one. And I started with the most basic prompt I could think of:</p><pre><code><code>What are the top 5 most in-demand consumer topics for outdoor recreation apps?</code></code></pre><p>Nothing fancy. No complex instructions. Just a question. But here's where it got interesting. Instead of diving straight into features or code, I took the AI's response and fed it into a second prompt:</p><pre><code>Based on these market opportunities, give me 10 app ideas for Scout camping coordination.</code></pre><p>Then I took the best idea from that list and wrote my third prompt. And this is where I almost fell out of my chair, because it was literally just seven words:</p><pre><code>Create a product requirements doc for this app</code></pre><p>Seven words. That's it. And ChatGPT spit out a comprehensive PRD that was better than anything I'd cobbled together across my 47 tabs.</p><h2>Why Sequence Beats Complexity</h2><p>But here's the thing. Those simple prompts worked because they were in sequence. Each one built on the last. The market research informed the ideation. The ideation informed the requirements. It was like... well, like a factory line.</p><p>Over the next few days, I refined this approach. My prompts got a bit more sophisticated, sure. But the core insight remained the same. Instead of having 47 conversations about 47 different aspects of my app, I had one conversation that flowed from market validation all the way to working code.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9w_q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9w_q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 424w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 848w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 1272w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9w_q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png" width="2415" height="444" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:444,&quot;width&quot;:2415,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:796170,&quot;alt&quot;:&quot;AI prompt chain turning research into shipped code.&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://michaelpgoetz.substack.com/i/166258584?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2a57ba96-2ba5-43c7-84d4-6d4ad99d5aaa_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="AI prompt chain turning research into shipped code." title="AI prompt chain turning research into shipped code." srcset="https://substackcdn.com/image/fetch/$s_!9w_q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 424w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 848w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 1272w, https://substackcdn.com/image/fetch/$s_!9w_q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F725a3e6b-ee6f-4713-8b9a-6dbccfa365fa_2415x444.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The first three prompts in my chain became the foundation for everything:</p><p>First, I'd validate the market. Not with some generic "is this a good idea?" question, but by researching actual consumer spending patterns and market trends. This kept me from building something nobody wanted.</p><p>Second, I'd generate technically feasible ideas based on that research. Not pie-in-the-sky features, but actual MVPs I could build with AI assistance.</p><p>Third, I'd refine the winning idea into a proper product strategy. Not just features, but user personas, go-to-market plans, the works.</p><p>What used to take me days of jumping between tabs now took hours in a single, focused session. More importantly, each output was connected. The technical architecture actually matched the product requirements. The product requirements actually matched the market opportunity.</p><h2>Shipping RallyCamp in Four Weeks</h2><p>Last week, I shipped the beta of <a href="https://rally.camp">RallyCamp</a>. We've got a few friendly Scout leaders  testing it since we are hitting prime camping season. All from a system that started with seven words and a Reddit post at 11pm.</p><p>The crazy part? My prompts are still pretty simple. Sure, they've evolved from those first seven words, but they're not the complex monstrosities I thought I needed. They're just clear, sequential instructions that build on each other.</p><p>I've been refining these prompts with each project iteration, and I've decided to share them. Not because they're perfect, but because they work. And because I remember staring at those 47 chats thinking there had to be a better way.</p><h2>Steal My First Three Prompts</h2><p>This week, I'm sharing the <a href="https://micgo.notion.site/RallyCamp-Prompt-Chain-Foundation-Pack-216badd0492e801d958edf3b4bb1228e">first three prompts in my chain</a>. The ones that take you from "I have an idea" to "I have a validated product strategy." They're the foundation everything else builds on.</p><p>Next week, I'll share the prompts that turn that strategy into an actual technical plan. The week after that, the ones that generate working code.</p><p>But it all starts with these three. The same three that helped me go from 47 tabs of chaos to shipping actual software in four weeks.</p><p>We've been using AI wrong. Not because we need more complex prompts or better models. But because we've been treating each conversation like it exists in isolation, when what we really need is a system.</p><p>A chain where each link strengthens the next.</p><p>So yeah, that Reddit thread really did change everything. Not because it gave me the perfect prompts, but because it showed me that the perfect prompt doesn't exist. What exists is the perfect sequence. The right questions in the right order.</p><p>And it all started with closing 47 chats and opening just one.</p><div><hr></div><p><em>P.S. If you want to try the prompts yourself, grab them <a href="https://micgo.notion.site/RallyCamp-Prompt-Chain-Foundation-Pack-216badd0492e801d958edf3b4bb1228e">here</a>. Start with just the first one. See what market opportunity resonates with you. Then feed that into the second prompt. Then the third. Don't overthink it. The magic isn't in any individual prompt. It's in the chain.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/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 Generative Growth: My Journey Building a Startup with AI! 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[I Started Vibecoding 4 Weeks Ago. Now I'm Launching a Startup.]]></title><description><![CDATA[Four weeks ago, I was googling 'what is vibecoding.' Today, I'm deploying my third feature update before breakfast.]]></description><link>https://www.michaelpgoetz.com/p/i-started-vibecoding-4-weeks-ago</link><guid isPermaLink="false">https://www.michaelpgoetz.com/p/i-started-vibecoding-4-weeks-ago</guid><dc:creator><![CDATA[Michael Goetz]]></dc:creator><pubDate>Mon, 16 Jun 2025 19:25:15 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%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Four weeks ago, I was googling 'what is vibecoding.' Today, I'm deploying my third feature update before breakfast. This isn't a course pitch. It's a warning. The rules have changed.</p><h2>The Before State</h2><p>Five weeks ago, I'd just left GitHub after 4.5 years building Customer Success teams. My last serious coding attempt was basic Python for AWS automation&#8212;four years ago. I was that manager who understood <em>how</em> software worked but couldn't build it anymore. </p><p>Then I saw someone on Reddit mention they'd built an entire SaaS in a weekend using "vibecoding."</p><p>My first thought: "I&#8217;m not putting my data in there." My second thought: "...but surely I could figure out a better way?"</p><h2>Week 1: The Gateway Drug</h2><p>I started safe with Lovable. No code to write, just describe what you want. My prompt was ambitious for someone who'd been managing, not making:</p><p>"Create an interactive journey mapping tool that includes collaboration features, AI driven analysis and recommendations."</p><p>Five minutes. That's all it took.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AOg3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AOg3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 424w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 848w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 1272w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AOg3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png" width="1425" height="791" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:791,&quot;width&quot;:1425,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:225773,&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://michaelpgoetz.substack.com/i/166086327?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.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_!AOg3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 424w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 848w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.png 1272w, https://substackcdn.com/image/fetch/$s_!AOg3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e5b5edd-eb90-4f10-b9db-d02dd7518553_1425x791.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 stared at my screen. This wasn't a mockup or wireframe. Forms worked. Buttons clicked. Data persisted. It even recommended next steps: "Connect Supabase for user accounts and data persistence."</p><p>What the hell is Supabase? Didn't matter. There was a button. I clicked it.</p><p>Suddenly I had authentication, a database, API endpoints&#8212;infrastructure that would've taken me weeks to set up properly. Working. In fifteen minutes total.</p><p>I actually said "holy shit" out loud. Then I immediately went upstairs to my wife&#8217;s home office: "I just built this thing in like 15 minutes and it mostly works. This is pretty transformational."</p><p>The weirdest part? After building my dream CS tool in 15 minutes, I realized... I didn't actually want to run a journey mapping company. When building becomes this easy, you can afford to be picky.</p><h2>Week 2: Down the Rabbit Hole</h2><p>If Lovable was gateway drug, ChatGPT Plus was the hard stuff. I bought the annual subscription (first of many AI subscriptions I'd impulse buy).</p><p>New idea: Website builder for local small businesses! ChatGPT turned interviewer:</p><ul><li><p>"What's your initial budget?"</p></li><li><p>"Uh... zero dollars please?"</p></li><li><p>"What's your technical differentiation?"</p></li><li><p>"I... hmm."</p></li></ul><p>It produced a beautiful business plan. Projected Year 1 loss: $19,000. Year 2 profit: $4,000 on a $100k investment.</p><p>The AI had just talked me out of my own startup idea. That's when I realized&#8212;AI isn't just a building tool. It's a thinking partner that doesn't care about your feelings.</p><h2>Week 3: The Pivot That Stuck</h2><p>"Fine," I told ChatGPT. "You tell ME what to build."</p><p>I fed it my background: AWS, GitHub, Customer Success, Cub Scout leader planning our annual campout (currently drowning in spreadsheets and SignUpGenius links).</p><p>It suggested five ideas. Number 5 caught my eye: "Outdoor Trip Planning &amp; Community App."</p><p>"Surely someone's built this for Scouts?" I asked.</p><p>ChatGPT's research: "There's a significant gap in the market for group camping coordination specifically designed for youth organizations."</p><p>Three prompts later, I had:</p><ul><li><p>Market analysis</p></li><li><p>Competitive landscape</p></li><li><p>Revenue projections</p></li><li><p>Even a name: CampSync (later <a href="https://rally.camp">RallyCamp</a>)</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_jLx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_jLx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 424w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 848w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 1272w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_jLx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png" width="878" height="738" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:738,&quot;width&quot;:878,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93420,&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://michaelpgoetz.substack.com/i/166086327?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.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_!_jLx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 424w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 848w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.png 1272w, https://substackcdn.com/image/fetch/$s_!_jLx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd136b8ed-1d35-4dee-9fe1-2f236b694682_878x738.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>But here's where everything shifted. Instead of stopping at the <a href="https://docs.google.com/document/d/1IxNu2nkJaQ9xOt8EyXsRwHbWYWFH1xoCy6RZpM8Uvck/edit?usp=sharing">business plan</a>, I kept going:</p><p>"Create a product requirements doc for this app" "Now create a visual style guide" "Show me the user flow for trip creation" "Write the API schema"</p><p>Each prompt built on the last. I wasn't just brainstorming anymore&#8212;I was <em>systematically building a company</em>.</p><h2>Week 4: From Prompts to Patterns</h2><p>The mess was real. I had 47 ChatGPT chats in a giant list. Projects in Replit, Cursor, and Lovable. Notes scattered across three apps.</p><p>That's when I found the <a href="https://www.reddit.com/r/vibecoding/comments/1kkpyxo/this_is_how_i_build_launch_apps_using_ai_even/">Reddit thread</a> that changed everything for me. Some anonymous genius had posted their prompt sequence for going from idea to PRD to code. The comments were gold:</p><p>"I use this flow: Business validation &#8594; PRD &#8594; API design &#8594; Schema &#8594; Frontend components" "Pro tip: Make AI write the prompts for the next stage" "I version control my prompts like code"</p><p>Wait. Version control... for prompts?</p><p>I spent two days organizing. Built templates. Created a system. Suddenly I wasn't just using AI. I was building a machine that built products.</p><h2>Week 5: The Metamorphosis</h2><p>This week started different. Monday morning, I:</p><ol><li><p>Woke up to Claude Code having completed a complete overhaul of the tests for my authentication system</p></li><li><p>Asked Gemini to help me improve my prompts for the next feature I&#8217;m planning to implement</p></li><li><p>Drafted my content strategy to help build some awareness for <a href="https://rally.camp">RallyCamp</a></p></li><li><p>Built a new feature before lunch</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jJz5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jJz5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 424w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 848w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 1272w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jJz5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png" width="1456" height="923" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:923,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2674382,&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://michaelpgoetz.substack.com/i/166086327?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.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_!jJz5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 424w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 848w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.png 1272w, https://substackcdn.com/image/fetch/$s_!jJz5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb5fd9fe-ee40-470f-9523-7419d2a7bfdb_2708x1716.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><h2>The Uncomfortable Truth</h2><p>Here's what nobody's talking about: We're speedrunning the entire startup journey. What used to take months now takes weeks. What took weeks now takes hours.</p><p>Traditional path: Idea &#8594; 6 months &#8594; MVP &#8594; 12 months &#8594; Revenue My path: Idea &#8594; 6 hours &#8594; Prototype &#8594; 5 weeks &#8594; MVP launch</p><p>This isn't because I'm special. I'm a mediocre coder who bought the right tools at the right time. The game changed, and most people don't know it yet.</p><p>In six months, everyone will be "vibecoding." The arbitrage opportunity is right now.</p><h2>What Actually Happened</h2><p>I didn't learn to code. I learned to think in systems and let AI handle the implementation. I didn't become technical. I became a non-engineer who can ship production code.</p><p>Most importantly: I stopped consuming and started creating. Every day, I wake up with the power to build anything I can describe.</p><h2>Your Move</h2><p>I'm documenting everything. Every prompt, every failure, every breakthrough. Not because I'm an expert, but because I'm five weeks ahead of you and the view from here is insane.</p><p>Next week: The exact prompt sequences that collapsed six months of work into six weeks. Including the Reddit thread that started it all.</p><p>But honestly? You don't need to wait. Open ChatGPT right now and type: "I want to build an app that solves [your actual problem]. Help me create a one-page business plan to validate this idea."</p><p>See you on the other side.</p><div><hr></div><p><strong>This Week's Download</strong>: "<a href="http://bit.ly/4jXx9bI">From Zero to Shipping: My 5-Week Prompt Evolution</a>"</p><ul><li><p>My first terrible prompts</p></li><li><p>The Reddit-inspired templates that changed everything</p></li><li><p>Current prompt chains for business &#8594; product &#8594; code</p></li><li><p>What I wish I'd known on Day 1</p></li></ul><p><strong>Drop a comment</strong>: What bad startup idea could AI talk you out of in 10 minutes?</p><p><em>P.S. - I've built two other entire apps during these five weeks. Killed them both. When building is this fast, you can afford to fail. More on that next time.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.michaelpgoetz.com/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! 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>