<?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[Worth Building]]></title><description><![CDATA[Capital, community, and technology — building lasting community and the structures that sustain it.  ]]></description><link>https://www.worthbuilding.net</link><image><url>https://substackcdn.com/image/fetch/$s_!mAAc!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d74ad6-8f66-43fb-b2e0-8212ae221f68_816x816.png</url><title>Worth Building</title><link>https://www.worthbuilding.net</link></image><generator>Substack</generator><lastBuildDate>Mon, 10 Aug 2026 16:45:55 GMT</lastBuildDate><atom:link href="https://www.worthbuilding.net/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Eric Cress]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[ericcress@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[ericcress@substack.com]]></itunes:email><itunes:name><![CDATA[Eric Cress]]></itunes:name></itunes:owner><itunes:author><![CDATA[Eric Cress]]></itunes:author><googleplay:owner><![CDATA[ericcress@substack.com]]></googleplay:owner><googleplay:email><![CDATA[ericcress@substack.com]]></googleplay:email><googleplay:author><![CDATA[Eric Cress]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Four Numbers, Four Lenses]]></title><description><![CDATA[No single number tells the truth about a deal. Here are the four we screen every one through.]]></description><link>https://www.worthbuilding.net/p/four-numbers-four-lenses</link><guid isPermaLink="false">https://www.worthbuilding.net/p/four-numbers-four-lenses</guid><dc:creator><![CDATA[Eric Cress]]></dc:creator><pubDate>Tue, 04 Aug 2026 16:02:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tcz6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.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_!tcz6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tcz6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!tcz6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!tcz6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!tcz6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tcz6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5267487,&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.worthbuilding.net/i/209700502?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.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_!tcz6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!tcz6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!tcz6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!tcz6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c6fd33-b811-4839-8bae-d5f21b15e937_2752x1536.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 aria-hidden="true" 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><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>I titled this newsletter &#8220;Worth Building&#8221; because deciding what is worth building is the bulk of my job. Most, not all, of our projects are funded by private capital. From the private-capital lens, worth isn&#8217;t a feeling or a story; it&#8217;s based in math &#8212; investment return. But no single number captures return, which is the problem. Here are four metrics we use to screen our deals, and each one shows you an angle the others miss. None of them will insulate you from a Black Swan event. Ask anyone who owned a West Coast downtown office tower (or any downtown asset class for that matter) in 2020: no development forecast had a pandemic hollowing it out. What these four can do is measure how much room you have to navigate adverse unknowns &#8212; often the difference between crossing the chasm of a down market and not reaching the other side.</p><p>Which of the four the market cares about most changes with the capital markets. When money is cheap and growth is assumed, everyone underwrites to the exit and the numbers that reward the dream get the attention. When money is expensive and the future looks uncertain, the market focuses on immediate income and maximum margin. The metric of the moment follows the real estate and capital market cycles. The discipline is to screen all four regardless &#8212; because each one guards a different blind spot. We&#8217;re wired to build a confident story from the number in front of us; the other three are heuristics that warn against blind spots.</p><p></p><p>Underneath all four is a single distinction that is critical, particularly for value-add or development projects: trended versus untrended. A <em>trended</em> number grows today&#8217;s rents into the future &#8212; and sometimes assumes the market will pay a higher price for the same income years out. An <em>untrended</em> number uses today&#8217;s rents and today&#8217;s prices. That distinction is how you band a deal. More importantly, it distinguishes the real value added of new-construction or value-add projects (more on this below). It&#8217;s too easy to feel like a genius when the market is going your way &#8212; thinking that the value from your new projects comes from your cunning, rather than simply a rising tide.</p><p><strong>Yield on cost is the truth teller.</strong> It&#8217;s the income the building will throw off once it&#8217;s stabilized, divided by what it costs you to build or buy it &#8212; real estate&#8217;s version of the earnings yield on a stock. Read it untrended, on today&#8217;s rents, and it&#8217;s the hardest number in the model to argue with. It also ignores the cost of debt, which is exactly why it&#8217;s useful. It&#8217;s simple and valuable.</p><p><strong>Development margin is the moat.</strong> It&#8217;s the spread between what an asset costs to create and what it&#8217;s worth finished, and it&#8217;s the investors&#8217; payoff for taking development risk &#8212; entitlements, construction, and two years between groundbreaking and the lease-up. It&#8217;s also the number most dependent on a cap rate you&#8217;re projecting years out (the cap rate is what the market uses to turn a building&#8217;s income into a price; a lower one means a higher value), and cap rates are an exogenous market variable, not yours to control. So the honest test strips the projection out: value the finished building at today&#8217;s rents and today&#8217;s cap rates, against today&#8217;s cost. If the margin holds untrended, the moat attributable to development is real. If it only appears with the assumption of compressed cap rates, the moat isn&#8217;t the developer&#8217;s contribution &#8212; it&#8217;s market speculation. If you can buy an equivalent building standing for the same money, you&#8217;re paying to take construction risk for something you can buy finished. Never pay more to build what you could have bought.</p><p>The first two are defensive &#8212; they tell you whether a deal is sound. The next two tell you whether you will earn enough to make the investment worthwhile. How you weight each one depends on your investment objectives &#8212; including tax sensitivity and time-horizon.</p><p></p><p><strong>Cash-on-cash is the paycheck.</strong> It&#8217;s the cash that spins off the investment, divided by the equity you put in. It ignores time-value of money discounts, but provides for actual checks to the bank. This lens comes back into fashion whenever money gets expensive and income gets scarce, and gets a back seat when the market is strong, when capital gain is easier to come by. It&#8217;s also the most sensitive to how the deal is financed: leverage and rate structure can dominate it over real estate strategy. It&#8217;s the number that matters most to investors living on their dividends &#8212; seeking modest but durable returns, not a big figure at the end. And as we&#8217;ll see with IRR, it&#8217;s also deceptive: a healthy cash-on-cash can be manufactured with leverage that quietly loads the deal with risk.</p><p><strong>IRR is the opportunity &#8212; and the siren.</strong> Internal rate of return is the compounded annual return over the life of the deal. Where the cash-on-cash investor wants to live <em>off</em> the deal, the IRR-focused investor wants to maximize the compound growth rate of their capital over the hold period. It&#8217;s one of the truest figures in terms of gauging return, but also the easiest number in the model to inflate. Add debt and the IRR climbs &#8212; and so does the risk. A high IRR can mean you found a great deal or that you took a great deal of risk, and the IRR alone won&#8217;t tell you which. I read it last, after the untrended numbers have shown whether the deal has enough protective moat to stand market volatility.</p><p>This is where Daniel Kahneman&#8217;s WYSIATI comes in &#8212; <em>what you see is all there is</em>, the trap of judging a deal by a single number in front of you. Humans are bad at pricing risk, so we lean on heuristics; yield on cost is one, because it compares opportunities <em>before</em> leverage amplifies both the returns and the risk.</p><p>None of the four is the answer. Each is a lens, and each has a blind spot. Yield on cost tells you whether the building itself, without financing distortions, earns its keep but misses return on equity; cash-on-cash tells you whether you&#8217;re paid during the hold but ignores the exit; IRR captures the whole life of the deal but hides how much risk bought that return; the margin tells you whether the building is worth developing at all. Worth, from the capital lens, isn&#8217;t any one of them clearing. It&#8217;s all four (or at least three, based on your objectives) agreeing &#8212; on today&#8217;s numbers.</p><p>If a deal earns its yield on today&#8217;s rents, holds its margin without cap-rate help, provides cashflow while we hold or clears on IRR without leaning too heavily on debt, it&#8217;s worth building. If it only works with cap-rate compression and upward-trending rents, better we learn at our desk than on our bank statements.</p><p><strong>Worth reading</strong></p><ul><li><p><em>The Most Important Thing</em>, Howard Marks &#8212; clear writing on risk, emphasizing what you can&#8217;t see in the return, but what you assumed to get there.</p></li></ul><p><strong>Get UD+P Market Notes</strong></p><p>Alongside Worth Building, I write a quarterly read on the markets we actually underwrite in. Four times a year.</p><p><strong>Subscribe &#8594; <a href="https://udplp.com/market-notes">udplp.com/market-notes</a></strong></p>]]></content:encoded></item><item><title><![CDATA[I Hadn't Written Code in Twenty Years]]></title><description><![CDATA[A 20-year-dormant engineer, three AI systems built on weekends, and what it revealed about our operation.]]></description><link>https://www.worthbuilding.net/p/i-hadnt-written-code-in-twenty-years</link><guid isPermaLink="false">https://www.worthbuilding.net/p/i-hadnt-written-code-in-twenty-years</guid><dc:creator><![CDATA[Eric Cress]]></dc:creator><pubDate>Wed, 01 Jul 2026 19:28:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8pyc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg" 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_!8pyc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8pyc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8pyc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8pyc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8pyc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8pyc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:169477,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.worthbuilding.net/i/204516738?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8pyc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8pyc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8pyc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8pyc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71fda2d5-0ec4-4a59-8141-ac51137ecad5_1456x813.jpeg 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 aria-hidden="true" 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><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><span>My first job out of college was writing software. As a graduate student, I studied information theory and MAP codes &#8212; based on theories presented by information theorist Claude Shannon, the eponym for the popular LLM model that I used to code our custom app. It&#8217;s no wonder that algorithms behind today&#8217;s AI models feel hauntingly familiar 30 years later.</span></p><p><span>The next decade was spent designing microchips &#8212; work in which a single logic error can cost the team a large amount of time and money to fix after fabrication. I enjoyed the rigor and discipline of thinking through problems before you start solving them.  I loved the creativity of design work.  But it was an unsatisfying profession for someone who likes getting away from the computer and lab bench and getting out into the community.</span></p><p><span>So, about twenty years ago I moved into real estate development. The technical instincts didn&#8217;t disappear, but they went dormant.</span></p><p><span>Real estate&#8217;s roots are not in software or electronics &#8212; they are in sticks, bricks, financing and services. So it&#8217;s no wonder that the industry software often feels like it was designed by a marriage of engineers and accountants, not a UX designer. Over the years, I would think: there has to be a more efficient way to do this. I would watch an analyst spend two days reconciling a deal package and think, &#8220;This should take an hour.&#8221; But the gap between seeing a solution and building one was wide enough that I always moved on. Hiring software developers is expensive. Building something real takes time. Running a real estate development firm is more than a full time job.</span></p><p><span>Recently, the gap between the practitioner, with domain experience, and the engineer, with technical experience, has closed markedly. So much so that I can confidently say the half of my career spent as a practitioner lends more to delivering an effective software solution than my prior years as an engineer (but an engineering mindset is crucial).</span></p><h2><span>What changed</span></h2><p><span>Claude Code is Anthropic&#8217;s development tool. It&#8217;s more than a code generator. It&#8217;s closer to having a software developer who can hold most (importantly, not all) of the context of a system in mind at once.</span></p><p><span>The quality of the output depends on your ability to describe what to build &#8212; employing the skills of a software product manager, like creating a product requirements document. The AI agent builds. You review. You refine. You hit a wall, you refine your approach, sometimes multiple times. Usually it solves it. Occasionally, you need to rearchitect the entire system from scratch and take another swing. We started on a Saturday with one problem in mind &#8212; underwriting throughput &#8212; and had a working prototype within a couple of weeks. Three coordinating systems were running in production inside a month. A handful of weekend sessions.</span></p><p><span>However, transitioning that minimum-viable-product into a robust, production-level system took months. Recoding, rearchitecting, refactoring code that had grown into a web. It wasn&#8217;t magic and I don&#8217;t think I&#8217;d describe it as &#8220;vibe coding.&#8221; One component failed because of a security restriction in the latest macOS &#8212; quietly changed, required real diagnosis, required redesigning the approach entirely. The iteration cycle felt familiar &#8212; like solving any real-world engineering problem. What changed was how fast each step moved.</span></p><p><span>Hardening the prototype into production forced a rigor we never needed to apply to a spreadsheet or CRM &#8212; securing a multi-tenant system and defending against prompt-injection, where a message tries to smuggle instructions to the AI.</span></p><h2><span>What it revealed</span></h2><p><span>I&#8217;ve spent twenty years at the intersection of capital, land, and community. The operational side of the business &#8212; tracking, modeling, updating &#8212; was always overhead.</span></p><p><span>Building these tools showed me that I&#8217;d underestimated the operational load of our business. Missed follow-ups by the team or long underwriting queues mean lost opportunities.</span></p><p><span>The tools didn&#8217;t change our strategy, but they did reveal how much of our execution was leaking.</span></p><h2><span>Was this worth building?</span></h2><p><span>Yes. Worst case, I became much more adept at using a modern software development tool. With that learning, I have since used Claude Code to develop other functional applications, such as a site-walk app that records photos, videos, and voice &amp; written comments, then uses an LLM to help the user grade the physical condition of a building and populate a database so we have a scoreboard. We&#8217;ve prototyped an asset-management dashboard that keeps our forecasts current, organizes our files, and gives us quick access to information like specific commercial lease-terms at the click of a button.</span></p><p><span>I&#8217;m most excited for what this means for the software tools that will be available for our industry. At our company, we hand out socks that have the phrase &#8220;no s&amp;*^ty buildings&#8221; printed on them to remind us to take pride in what we deliver. I&#8217;m excited for our industry to have access to tools that are a joy to use.</span></p><p><span>Internally, we were able to build software to address inefficiencies that are low-hanging fruit, improve the quality of our work, and, importantly, are easy and pleasant to use. Building beautiful software feels very similar to building beautiful buildings.</span></p><p><span>I got back something I hadn&#8217;t realized I&#8217;d missed. And in getting it back, I could see clearly &#8212; for the first time &#8212; what it had been costing us not to have it. P.S. A few people following this series have asked whether they can use what I built. I&#8217;ve started letting a small group of operators in. If you&#8217;d like to be one of them, reply &#8212; I&#8217;ll reach out as I open more spots.</span></p><h2><span>Worth reading</span></h2><p><span>Claude Code documentation, Anthropic. If you&#8217;ve read this series and are wondering whether to start: the documentation is more accessible than the technical framing suggests. The question worth sitting with isn&#8217;t whether you can build this. It&#8217;s whether you&#8217;re clear enough about the problem you&#8217;re trying to solve.</span></p><p><a href="https://x.com/muratcan/article/2025286163641118915"><span>The File System is the new Database</span></a><span> &#8212; the first thing I read when I set out to harness Claude; it laid out the progressive-disclosure approach I used to get immediate results, starting with a personal productivity system that grew into the software behind this work.</span></p><p><a href="https://every.to/guides/compound-engineering"><span>Compound Engineering</span></a><span> by </span><a href="http://Every.to"><span>Every.to</span></a><span> &#8212; the agent-first development method I started from and later adapted to my own workflow; the place to go if you want a concrete system for building with AI rather than just prompting it.</span></p>]]></content:encoded></item><item><title><![CDATA[The Work Is in the Training, Not the Build]]></title><description><![CDATA[What several months of running three AI agents in production taught me about the work after deployment.]]></description><link>https://www.worthbuilding.net/p/the-work-is-in-the-training-not-the</link><guid isPermaLink="false">https://www.worthbuilding.net/p/the-work-is-in-the-training-not-the</guid><dc:creator><![CDATA[Eric Cress]]></dc:creator><pubDate>Thu, 21 May 2026 03:10:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ri9x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.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_!Ri9x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ri9x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Ri9x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Ri9x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Ri9x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ri9x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3864542,&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.worthbuilding.net/i/198649563?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.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_!Ri9x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Ri9x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Ri9x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Ri9x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad720e1b-0e33-45ad-a3c7-6ff3609a57ec_2752x1536.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 aria-hidden="true" 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><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>News flash: AI agents aren&#8217;t going to take over the world. (Yet, anyway.) Training them &#8212; &#8220;harnessing&#8221; them, in AI lingo &#8212; is a lot of work. But the productivity rewards are real. And we need real people to manage them &#8212; which, for me, ultimately meant more work <em>and</em> more productivity.</p><p>Here&#8217;s what that&#8217;s actually looked like inside our firm.</p><p>The first week after our underwriting agent was running, it miscategorized a line item. Payroll costs mapped to contract services. Not catastrophically wrong &#8212; both hit operating expenses &#8212; but wrong in a way that would skew NOI by category. We corrected it and noted why. The agent folded the correction in. That particular error hasn&#8217;t recurred.</p><p><strong>What automation promises</strong></p><p>Automation, in the traditional sense, promises a one-time effort in exchange for ongoing removal of work. You build the system, you turn it on, it runs. Rules apply consistently. Inputs produce predictable outputs. That&#8217;s valuable &#8212; and it&#8217;s exactly what breaks when inputs vary, which in real estate they always do. Every seller&#8217;s chart of accounts looks different, every operating statement is formatted its own way, and no two rent rolls tell the story the same.</p><p>Rule-based systems can&#8217;t handle that variation. They hit an edge case and a human takes over.</p><p>Agentic AI handles variation differently &#8212; through pattern recognition rather than rigid rules. It can do things traditional automation can&#8217;t, and it gets better through use rather than just through deployment. The work is in the training, not the build.</p><p><strong>What training actually looks like</strong></p><p>We have three coordinating agents running now. Each requires a different coaching discipline.</p><p>The underwriting agent processes deal documents and maps them to our model. It learns from category corrections &#8212; when it maps a line item incorrectly, we note why, and that mapping improves. After each deal, the agent understands our chart of accounts better than it did before.</p><p>The investor OS agent extracts intelligence from meeting notes and updates a structured record of each investor relationship. Its training is continuous in a different way &#8212; investor preferences change as fund cycles turn. A capital partner who was actively deploying three months ago may be in a quiet period now. The agent learns from those updates as they&#8217;re made. Preferences that used to degrade as they sat unrecorded in someone&#8217;s head now get captured and updated in real time.</p><p>The deal-matching component sits at the intersection of both. When our underwriting system analyzes a new opportunity, it queries our database to surface the most likely capital partners &#8212; by check size, geography, strategy, and the contextual signals captured from prior conversations. The quality of that match depends directly on the quality of both upstream systems. Better investor records produce better deal routing. Better deal analysis produces more relevant matches.</p><p>These aren&#8217;t independent tools. They&#8217;re a system. The value compounds in proportion to the consistency of training across all three. We built three narrow agents rather than one general one on purpose: each works within a context small enough to hold completely, and a specialist that fits its problem outperforms a generalist stretched thin across all the problems.</p><p><strong>The management discipline this requires</strong></p><p>Running these agents is closer to managing a fast-learning analyst than deploying software. The onboarding requires real effort &#8212; establishing the structure of your model clearly enough that the agent has something to learn from, coaching early mistakes carefully, building the habit of noting corrections rather than just overriding them.</p><p>The payoff is a team member who retains what it learns and applies it to every deal that follows. After three months of deal-by-deal correction cycles, the agent&#8217;s output is materially better than it was at launch. Not because the software updated. Because we coached it.</p><p>What an agent doesn&#8217;t have is a low tolerance for repetition. People get bored, and rightly so &#8212; boredom is what pushes us toward the creative, judgment-laden parts of the work where we can add the most value. The agent&#8217;s patience for the repetitive parts complements that; it doesn&#8217;t replace it.</p><p><strong>What doesn&#8217;t change</strong></p><p>The agent reflects the quality of its manager. What we correct, it learns from. What we overlook &#8212; a miscategorization we don&#8217;t catch, an LP preference we don&#8217;t update &#8212; it incorporates as fact. Judgment about what the system should optimize for still comes from the people running it. So does the decision about when the output is trustworthy enough to act on.</p><p>A firm that engages with these tools the way it would engage a new team member will find something that compounds. After a year of that, you have a colleague who knows your business &#8212; and a team whose attention is freed for the work only people can do.</p><p>That&#8217;s the trade I didn&#8217;t expect when we started. More work, not less. But the work is the kind worth doing.</p><p><em>Next: what the build process actually looked like &#8212; and what we&#8217;d say to a firm that hasn&#8217;t started yet.</em></p>]]></content:encoded></item><item><title><![CDATA[The CRM Problem Isn't the Software]]></title><description><![CDATA[We had a CRM. We paid for it monthly. It was frequently out of date. The problem wasn't the software &#8212; it was the input model. So we eliminated it.]]></description><link>https://www.worthbuilding.net/p/the-crm-problem-isnt-the-software</link><guid isPermaLink="false">https://www.worthbuilding.net/p/the-crm-problem-isnt-the-software</guid><dc:creator><![CDATA[Eric Cress]]></dc:creator><pubDate>Wed, 22 Apr 2026 17:02:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KY9I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.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_!KY9I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KY9I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png 424w, https://substackcdn.com/image/fetch/$s_!KY9I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png 848w, https://substackcdn.com/image/fetch/$s_!KY9I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png 1272w, https://substackcdn.com/image/fetch/$s_!KY9I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KY9I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png" width="1456" height="760" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:760,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:654819,&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.worthbuilding.net/i/194983058?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.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_!KY9I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png 424w, https://substackcdn.com/image/fetch/$s_!KY9I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png 848w, https://substackcdn.com/image/fetch/$s_!KY9I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.png 1272w, https://substackcdn.com/image/fetch/$s_!KY9I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e1eaa9c-bb50-465a-bb3c-63d07e15eed5_1735x906.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 aria-hidden="true" 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><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>We had a CRM. We paid for it monthly. It was frequently out of date.</p><p>This isn&#8217;t a knock on the tool &#8212; we&#8217;ve used several over the years and the problem is consistent across all of them. CRMs require input. Someone has to log the call, update the stage, note that a capital partner mentioned they&#8217;re not deploying outside the Mountain West this cycle, or that their fund is in a quiet period, or that they&#8217;ve been watching a specific market for three years and would move quickly on the right deal. That input requires discipline. Discipline compounds into friction at the end of a busy day, after a call that ran long, before the next meeting. Six months later the database that was supposed to give you a clear picture of your investor relationships is a patchwork of stale entries and missing conversations.  With outdated data, we lose confidence in what it tells us.</p><p>The problem isn&#8217;t the software. It&#8217;s the input model.</p><h2>What we built</h2><p>We use Granola to automatically capture meeting notes. We built a layer on top of it &#8212; using Claude Code &#8212; that runs after every investor meeting without anyone doing anything.</p><p>It reads the notes, identifies which capital partners were present, extracts the relevant intelligence &#8212; investment preferences, check size ranges, geographies of interest, fund timing, anything substantive that came up &#8212; and updates a structured record automatically. By the time Preston gets to his desk the next morning, the log is current. No manual entry. No discipline required.   The database stays current because the input problem is eliminated, not managed.    </p><h2>What a CRM field can&#8217;t hold</h2><p>Our prior CRM did store information &#8212; contact records, deal history, and basic preferences. What it couldn&#8217;t store was the nuance of a conversation. And even when someone took the time to write a detailed note, you couldn&#8217;t query it. You could retrieve it if you already knew to look. You couldn&#8217;t ask: <em>which of our</em> <em>investors</em> <em>has mentioned an openness to development plays in markets they know well, and whose fund timing suggests they&#8217;re ready to deploy?</em> That kind of question requires language understanding across unstructured data &#8212; which is exactly what large language models are built for.</p><p>The agent captures conversational texture in narrative form. It&#8217;s searchable, it doesn&#8217;t deteriorate, and it doesn&#8217;t leave.</p><h2>Where it connects to deal execution</h2><p>When our underwriting system analyzes a new deal, it queries the investor database and surfaces the most likely capital partners for that specific opportunity &#8212; by equity check size, geography, strategy, and the contextual signals captured from prior conversations.</p><p>The result is a prioritized shortlist based on everything we know about each relationship.</p><h2>The same infrastructure, a different problem</h2><p>The same tools that enabled the underwriting agent enabled this one. Granola provides summarized meeting notes. The Model Context Protocol connects the agent to our contact database. Claude Code handled the build. Training this agent was faster &#8212; it already had a working model for what knowledge matters and how to apply it.  </p><p>What&#8217;s different about this agent is that the coaching is continuous. Investor preferences change. Fund cycles turn. The agent learns from corrections as relationships evolve, which is what keeps the database genuinely current rather than accurate at launch and stale six months later.</p><h2>What doesn&#8217;t change</h2><p>The agent only surfaces who to call. </p><p>We are the trusted partner in these relationships &#8212; and trusted partners are built through years of communication, transparency about outcomes, and ultimately delivery on execution. The intelligence the system provides is preparation. The relationship, and the obligation to perform, is ours. What changes is how prepared we are when we pick up the phone.  </p><p><em>Next: what the process of actually building all of this looked like &#8212; and what we&#8217;d tell a firm evaluating whether to start.</em></p>]]></content:encoded></item><item><title><![CDATA[The Intern Left. We Needed Another Way.]]></title><description><![CDATA[We lost our intern. Offshoring didn't work. So we built something else &#8212; an AI agent that now handles deal underwriting reconciliation in minutes instead of days. Here's exactly what we built a]]></description><link>https://www.worthbuilding.net/p/the-intern-left-we-needed-another</link><guid isPermaLink="false">https://www.worthbuilding.net/p/the-intern-left-we-needed-another</guid><dc:creator><![CDATA[Eric Cress]]></dc:creator><pubDate>Wed, 08 Apr 2026 16:12:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mAAc!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d74ad6-8f66-43fb-b2e0-8212ae221f68_816x816.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last year we were looking hard at ways to improve our deal turnaround. We had experimented with offshoring some of the analyst work for a while &#8212; it helped at the margins, but it wasn&#8217;t the answer. Over the summer we had an excellent intern who did genuinely strong work, producing models quickly and accurately. When that ended, we were back to the same question: hire another full-time analyst, or find a different way to close the gap.</p><p>Preston, our acquisitions lead, prompted me to look into AI. He knows my background &#8212; I spent a decade as a design engineer before moving into real estate &#8212; and he probably wondered why I wasn&#8217;t already pursuing these tools more proactively. Fair point.</p><h2>The problem</h2><p>The problem we were trying to solve was underwriting throughput. Specifically, every deal maps to our model a little differently. The seller&#8217;s chart of accounts is never the same twice. Their rent roll format, how they treat one-time items, whether payroll is one line or four &#8212; all of it varies. That variability is exactly what makes traditional automation fail. Macros and templates work when the input is consistent. Real estate deals aren&#8217;t. I had tried rule-based approaches before and hit the same wall every time: the moment a deal came in with an unfamiliar structure, the automation broke and a human had to take over.</p><p>What agentic AI changes is the ability to handle that variability through pattern recognition rather than rigid rules. More importantly, an agent can be trained on your specific workflow and learns from mistakes as you coach it. When it maps a category incorrectly, you correct it. It usually doesn&#8217;t make that mistake again.</p><p>The initial work was building that learning environment &#8212; establishing the structure of our model clearly enough that the agent had something to learn from. That setup takes real effort. But once it exists, training becomes iterative: run a deal through, review the output, correct what is wrong, run another. Each round the agent performs better. The improvement compounds in a way that is genuinely similar to onboarding a junior analyst &#8212; steady growth that accelerates once the foundational understanding is in place.</p><h2>What we built</h2><p>We built an agent &#8212; using Claude Code &#8212; that ingests the full document set for a deal: offering memorandum, operating statement, rent roll. It loads and reconciles the data across those sources, translates the seller&#8217;s chart of accounts to ours, and runs the same reconciliation process on the rent roll &#8212; normalizing unit types, flagging vacancy inconsistencies, identifying loss-to-lease. Each source is cross-checked against the others. Discrepancies get flagged before they reach the model.</p><p>That&#8217;s not simple work. It requires holding the full picture in context simultaneously &#8212; which is exactly what large context windows now make possible, and exactly what breaks under deadline pressure when done manually.</p><p>On a recent 150-unit value-add deal, the agent caught three material issues on the first pass: an occupancy history that didn&#8217;t reconcile with the rent roll, a one-time insurance recovery buried in operating income, and stabilized NOI overstated by approximately 18% in the seller&#8217;s underwriting. What would have taken the better part of two days took about 20 minutes.</p><h2>Why this wasn&#8217;t possible 18 months ago</h2><p>I looked at this problem in 2023. The tools weren&#8217;t there.</p><p>What changed: in March 2024, context windows expanded to 200,000 tokens &#8212; enough to hold an entire property package in a single pass. In November 2024, Anthropic released the Model Context Protocol, a standard that lets AI agents connect reliably to external files, databases, and systems without fragile custom code. In February 2025, Claude Code made it practical for a firm without a software development team to build and deploy working agent systems. We built ours over a handful of weekends. It&#8217;s in production, processing real deals.</p><p>More recently, advances in agentic capabilities &#8212; reliable tool use, skills orchestration, the ability to hand off between tasks without losing state &#8212; put the remaining pieces in place. The context window got us in the room. The agent architecture made it work.</p><h2>What doesn&#8217;t change</h2><p>The agent doesn&#8217;t replace an analyst. It changes what the analyst does.</p><p>Someone still needs to manage it &#8212; running deals through, reviewing outputs, catching errors, continuing to coach it when something is mapped incorrectly. That oversight isn&#8217;t optional. The agent&#8217;s reliability is a direct product of the attention given to training and quality control.</p><p>What it handles is the data work: loading, reconciling across sources, translating, flagging. What it doesn&#8217;t handle is what to do with what the numbers reveal. Market judgment, broker relationships, the read on a seller&#8217;s motivation &#8212; none of that changes. What changes is that the analyst who previously spent hours on data reconciliation now applies that time to the work that actually requires them.</p><p><em>Next: how the same infrastructure problem shows up on the investor relations side, and what we built to solve it there.</em></p>]]></content:encoded></item><item><title><![CDATA[What Is Worth Building?]]></title><description><![CDATA[A practitioner's introduction to the questions this newsletter will spend the next year working through.]]></description><link>https://www.worthbuilding.net/p/what-is-worth-building</link><guid isPermaLink="false">https://www.worthbuilding.net/p/what-is-worth-building</guid><dc:creator><![CDATA[Eric Cress]]></dc:creator><pubDate>Thu, 02 Apr 2026 23:51:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mAAc!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45d74ad6-8f66-43fb-b2e0-8212ae221f68_816x816.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Twenty years ago I left a career in engineering &#8212; semiconductor design, then optical networking &#8212; and moved into real estate development. The technical instincts didn&#8217;t disappear. The problems just changed.</p><p>What I found in real estate is that a project&#8217;s feasibility tells you what you can build. It doesn&#8217;t tell you what&#8217;s worth building. The decisions that shape neighborhoods are informed by context, community, and the history of the places in which our buildings are built &#8212; not just capital. Getting the numbers right is necessary. It isn&#8217;t the whole question.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.worthbuilding.net/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 Worth Building! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The question I&#8217;ve been asking since &#8212; in different forms, across different problems &#8212; is: what is actually worth building?</p><p>That question is the premise of this newsletter.</p><div><hr></div><p>I co-founded Urban Development + Partners in 2006. Since then we&#8217;ve developed and acquired urban mixed-use projects across Oregon and Northern California &#8212; multifamily, office, hospitality, adaptive reuse &#8212; and managed investments through the 2008 crisis, the 2020 dislocation, and the post-pandemic office collapse. We&#8217;ve made money, lost money once, and written about both with equal specificity in our investor letters.</p><p>We&#8217;ve also built intentional cohousing communities from the ground up &#8212; working with families and baby boomers who want to live differently than conventional housing allows, and with our friend and colleague Katie McCamant, whose work introduced this model to North America.</p><p>This year, I built AI agent systems that now run core workflows at our firm &#8212; using tools that didn&#8217;t exist 18 months prior. I hadn&#8217;t written production code in 20 years. That surprised me about as much as it surprised the people I work with.</p><div><hr></div><p><em>Worth Building</em> covers the terrain where all of this intersects.</p><p><strong>Housing and supply.</strong> Why the shortage persists despite broad consensus that it shouldn&#8217;t. What development economics look like from the inside. What policies move the needle and which ones just sound good.</p><p><strong>Community by design.</strong> What communities should we be creating, and how do we build them deliberately? Cohousing for families and for people planning the next chapter. What it takes to develop a neighborhood for people who don&#8217;t yet know each other. Why intentional community works, and why most Americans have never heard of it.</p><p><strong>Capital and conviction.</strong> The investor&#8217;s lens on real estate &#8212; acquisition strategy, market cycles, fund structure, the hold/sell decision under pressure. The same transparency I use in our investor letters, applied to questions that don&#8217;t require a fund subscription to find interesting.</p><p><strong>AI and the built environment.</strong> Not AI as concept or hype. What we actually built, how it works, what it changed, and what it didn&#8217;t. Practical and specific &#8212; written by someone still building.</p><div><hr></div><p>These aren&#8217;t unrelated topics. They&#8217;re different angles on the same question.</p><p>What housing is worth building? What communities should we be helping create? What investments are worth the conviction they require? What tools are worth the time it takes to build them?</p><p><em>Worth Building</em> comes out monthly. Each issue takes one question, one problem, or one idea and develops it fully &#8212; no listicles, no predictions, no five tips. A practitioner&#8217;s view from the middle of it.</p><p>If that&#8217;s useful to you, subscribe. If you know someone for whom it would be, forward this to them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.worthbuilding.net/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 Worth Building! 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>