<?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[Signal2Capital]]></title><description><![CDATA[Data derived analysis that provides actionable insights and recommendations ]]></description><link>https://signal2capital.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png</url><title>Signal2Capital</title><link>https://signal2capital.substack.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 31 Jul 2026 23:30:35 GMT</lastBuildDate><atom:link href="https://signal2capital.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Derek Bowens]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[signal2capital@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[signal2capital@substack.com]]></itunes:email><itunes:name><![CDATA[Derek Bowens]]></itunes:name></itunes:owner><itunes:author><![CDATA[Derek Bowens]]></itunes:author><googleplay:owner><![CDATA[signal2capital@substack.com]]></googleplay:owner><googleplay:email><![CDATA[signal2capital@substack.com]]></googleplay:email><googleplay:author><![CDATA[Derek Bowens]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Frontier ]]></title><description><![CDATA[A company in descent without Spirit]]></description><link>https://signal2capital.substack.com/p/frontier</link><guid isPermaLink="false">https://signal2capital.substack.com/p/frontier</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Wed, 13 May 2026 16:09:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>Frontier flew $3.7 billion worth of flights. A third of the seats were empty. Then Spirit shut down.</h1><p><em>Two years of load factor data. One quarter that proved the thesis. Eight days ago, 8 million displaced passengers showed up at the same airports Frontier flies.</em></p><p><strong>Derek Bowens &#183; May 2026 &#183; Business Analysis &#183; Signal2Capital</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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><div><hr></div><p>Frontier Airlines reported $3.7 billion in revenue last year. 33 million passengers. $112 average per ticket. On paper that reads like a ULCC operating at scale. The problem was always the math behind how they got there &#8212; at full occupancy, hitting $3.7 billion required 2.45 flights per aircraft per day. They were running 4. This quarter, Frontier paid $139 million to exit 24 aircraft early and deferred 69 future deliveries. When the cycle cost bill comes due, it shows up in cash.</p><p>The revenue headline was real. The cost of generating it through operational volume rather than occupancy was also real, and Q1 2026 is where it converted from a structural concern into a line item on the income statement.</p><div><hr></div><h2>The Fleet &#8212; Where the Math Starts</h2><p>Frontier&#8217;s fleet as of March 31, 2026 was 183 Airbus single-aisle aircraft. In Q2 2026, they are returning 24 A320neo aircraft under an early termination agreement &#8212; reducing the operational fleet to approximately 159. The seat composition matters because it directly sets the revenue ceiling per flight and the cost of every empty seat.</p><p>Aircraft Qty Seats Fleet Share A320ceo 6 180&#8211;186 3.3% A320neo 94 186 51.4% &#8212; shrinking (&#8722;24 in Q2) A321ceo 21 230 11.5% A321neo 62 240 33.9% <strong>Total</strong> <strong>183</strong> &#8212; &#8212;</p><p>The weighted average across all 183 aircraft is <strong>210 seats per plane</strong>. Forty-six percent of Frontier&#8217;s fleet &#8212; 83 aircraft &#8212; are A321s configured at 230 or 240 seats. This matters because bigger aircraft amplify the empty seat problem: an A321neo at 80% load factor leaves 48 empty seats per flight worth $5,376 in unrealized revenue. An A320neo leaves 37 seats &#8212; $4,166.</p><p>When they return the 24 A320neo aircraft, the average seat count per departure actually rises. The remaining fleet is heavier and needs higher load factors to justify it.</p><div><hr></div><h2>The Metric &#8212; OEG</h2><p>Plus/minus and load factor are known stats. What&#8217;s missing is a number that ties occupancy directly to operational excess &#8212; how many extra flight cycles are being run specifically because seats aren&#8217;t full. That&#8217;s the <strong>Operational Efficiency Gap (OEG)</strong>.</p><pre><code><code>Full-Load Revenue per Flight = Weighted Avg Seats &#215; Revenue per Passenger
  = 210 &#215; $127.95 (Q1 2026 adjusted) = $26,870 per flight

Structural Break-Even = $3.7B &#247; $26,870 &#247; 176 aircraft &#247; 365 = 2.45 flights/day

OEG = Actual Flights &#247; Full-Load Break-Even
  Full-year basis:  4 &#247; 2.45 = 1.63
  Q1 2026 actual:   3.24 &#247; 2.37 = 1.36
</code></code></pre><p>OEG = 1.0 means the operation runs at full occupancy. Every point above 1.0 represents cycles added to compensate for empty seats or below-target revenue per seat. Frontier&#8217;s structural OEG was 1.63 against annual targets. Q1 2026 pulled back to 1.36 through deliberate utilization reduction &#8212; a meaningful move that still carries 36% more cycles than a full-plane scenario requires.</p><div><hr></div><h2>Three Years of Load Factor &#8212; The Full Arc</h2><p>Quarter Load Factor Rev / Pax Fare / Pax Adj. Break-Even Utilization Q2 2023 <strong>85.3%</strong> $127 &#8212; 2.88 &#8212; Q1 2023 82.8% $124 &#8212; 2.96 &#8212; Q3 2023 80.0% $115 &#8212; 3.07 &#8212; Q1 2024 72.9% &#11015; $123 $44.61 3.36 ~9.8 hrs Q2 2024 78.1% $109 &#8212; 3.14 &#8212; Q3 2024 78.0% $106 &#8212; 3.14 &#8212; Q4 2024 79.0% $117 &#8212; 3.10 &#8212; Q1 2025 72.9% &#11015; $116 $44.61 3.27 9.7 hrs Q2 2025 79.3% $109 &#8212; 3.09 &#8212; Q3 2025 80.7% $106 &#8212; 3.04 &#8212; Q4 2025 79.0% $117 &#8212; 3.10 &#8212; <strong>Q1 2026 &#9733;</strong> <strong>78.4%</strong> <strong>$127.95 adj</strong> <strong>$55.45 adj</strong> <strong>2.37</strong> <strong>8.5 hrs &#8595;12%</strong></p><p><em>Adj. break-even = 2.45 &#247; load factor. Q1 2026 from May 5, 2026 earnings release.</em></p><p><strong>What the Q1 2026 numbers actually say:</strong> Load factor of 78.4% is up 3.5 points from Q1 2025&#8217;s 74.9% &#8212; a real improvement. But the more important number is utilization: 8.5 block hours per aircraft per day, down 12% from 9.7 in Q1 2025. Frontier deliberately flew fewer cycles per aircraft to reduce operational excess. The OEG compressed to 1.36 not because the planes got fuller &#8212; they didn&#8217;t, meaningfully &#8212; but because management pulled back on frequency. That&#8217;s the right move. It also confirms the thesis: the prior utilization rate was unsustainable, and they knew it.</p><div><hr></div><h2>The Cost of 4 Flights Per Day &#8212; Q1 2026 Proves It</h2><p>The structural argument was that running 63% more cycles than full-occupancy requires would show up in costs. Q1 2026 is where it did &#8212; not gradually, but all at once.</p><p>Cost Line Q1 2025 Q1 2026 Change Maintenance, materials &amp; repairs $51M $142M <strong>+178%</strong> Aircraft rent $161M $265M <strong>+65%</strong> Depreciation &amp; amortization $20M $62M <strong>+210%</strong></p><p>Maintenance up 178% in a single quarter. The $139 million Early Return Agreement &#8212; Frontier&#8217;s payment to exit leases on 24 A320neo aircraft &#8212; is the most explicit confirmation available. Inside that charge: $73 million in non-recoverable capitalized prepaid maintenance written off entirely, plus $37 million in accelerated depreciation tied to maintenance cycles that had been consumed faster than the accounting expected.</p><p>They didn&#8217;t exit these aircraft because they had too many planes. They exited them because the maintenance clock on those specific aircraft had been spent down by high-cycle utilization.</p><blockquote><p><strong>The Early Return Agreement &#8212; $5.8M per aircraft to walk away.</strong> Frontier paid approximately $5.8 million per aircraft to terminate 24 A320neo leases early. These are planes they already owned the lease rights on. The $73 million written off was prepaid maintenance that couldn&#8217;t be recovered because the heavy maintenance events had already been triggered by cycle accumulation. They burned the aircraft economically before the lease expired contractually.</p></blockquote><p>They also deferred 69 future A320 family aircraft deliveries. That&#8217;s not a demand signal &#8212; adjusted revenue is up 17%, an all-time record. It&#8217;s a network signal. They don&#8217;t need more aircraft. They need fewer airports.</p><div><hr></div><h2>The 99 Airport Problem</h2><p>Frontier currently serves 99 airports. The thesis: demand supports 80, not 99. The company&#8217;s own behavior validates it.</p><p>Period Action Scale Signal H1 2024 Launched new routes ~110 routes Demand discovery phase Mid-2024 Route cuts 43 routes ~39% of new routes failed immediately Dec 2024 Suspended routes 40+ routes Supply/demand imbalance acknowledged H1 2025 Further reductions 40+ routes Off-peak days structurally thin Q1 2026 Fleet return + deferral 24 returned, 69 deferred Rightsizing to demand, not chasing volume</p><p>They launched 110 routes in six months and cut 64% of them within a year. The CEO said it directly: <em>&#8220;There is too much supply relative to demand.&#8221;</em> That&#8217;s not a macroeconomic observation &#8212; it&#8217;s a network admission.</p><p><strong>What network discipline does to OEG:</strong></p><p>Scenario Load Factor Adj. Break-Even OEG Annual Cycles Saved 2024 baseline 76.0% avg 3.22 1.24 &#8212; 2025 actual 79.3% 3.09 1.29 Baseline 80-airport thesis 85.0% 2.89 1.18 ~36,000/year 80-airport optimized 87.0% 2.82 1.15 ~52,000/year</p><p>Each saved cycle eliminates one landing fee, one fuel-burn-on-climb, one crew hour minimum, and one maintenance event accumulation.</p><div><hr></div><h2>The Revenue Mix Shift &#8212; The One Number That&#8217;s Improving</h2><p>Metric Q1 2025 Q1 2026 Change Fare revenue per passenger $44.61 <strong>$55.45 adj</strong> <strong>+24%</strong> Non-fare (ancillary) per passenger $68.15 $67.71 adj &#8722;1% Ancillary share of total revenue 58.6% 52.9% &#8722;5.7 pts Total adjusted revenue per passenger $116.33 $127.95 +10%</p><p>The prior thesis noted that $65 of every $106 Frontier collected came from fees, not fares. That dynamic is changing. Adjusted fare revenue per passenger grew 24% to $55.45 &#8212; the first time base ticket revenue has meaningfully closed the gap on ancillary. The split is now approximately $55 fare to $68 ancillary. If fare revenue continues growing toward $60&#8211;65 per passenger, the revenue per boarding becomes less sensitive to whether the passenger checks a bag. The model gets sturdier without the occupancy needing to change.</p><div><hr></div><h2>What Q2 2026 Looks Like &#8212; The New Headwind</h2><p>Frontier guided Q2 2026 to a loss of $0.45&#8211;$0.60 per share despite RASM expected up over 20% year over year. The reason: average fuel cost of $4.25 per gallon in Q2 versus $2.88 in Q1 &#8212; a 47% increase in a single quarter.</p><p>Q1 2026 Q2 2026 Guidance Fuel cost per gallon $2.88 $4.25 Total fuel expense $268M Est. ~$390M+ Change &#8212; <strong>+47%</strong></p><p>A 40% fuel efficiency advantage over legacy carriers means Frontier burns fewer gallons per seat mile. At $4.25/gallon that efficiency gap actually saves more in absolute dollars than at $2.88. The ULCC model is structurally better in a high-fuel environment &#8212; as long as load factor holds and cycle count stays disciplined.</p><div><hr></div><h2>Spirit Airlines Shuts Down &#8212; And Frontier&#8217;s Load Factor Problem May Have Just Solved Itself</h2><p>On May 2, 2026 &#8212; eight days ago &#8212; Spirit Airlines ceased all operations. Every Spirit passenger stranded. Frontier&#8217;s CEO said the airline expects to capture a significant share of Spirit&#8217;s displaced passengers, noting Frontier shares more than 100 overlapping routes with Spirit &#8212; more than any other carrier.</p><p>Spirit&#8217;s passenger base was concentrated at four mid-major hubs where Frontier was listed as &#8220;other&#8221; in market share data. At these four airports, Spirit held a top-two or top-three position. The passengers were exactly the price-sensitive leisure travelers Frontier&#8217;s $127.95 adjusted revenue per passenger is built to serve.</p><p><strong>The four airports: Fort Lauderdale (FLL), Baltimore-Washington (BWI), Detroit Metro (DTW), and Chicago Midway (MDW).</strong></p><div><hr></div><h2>The Four-Hub Capture Model</h2><p>Airport Spirit Rank Spirit Share Spirit Enplanements Frontier Position FLL &#8212; Fort Lauderdale <strong>#1</strong> <strong>31.4%</strong> 5,500,000 Other BWI &#8212; Baltimore #2 6.9% 960,000 Other DTW &#8212; Detroit #4 11.8% 850,000 #5 (134K pax) MDW &#8212; Chicago Midway #2 6.5% 698,750 Other <strong>Total</strong> &#8212; &#8212; <strong>8,008,750</strong> &#8212;</p><blockquote><p><strong>FLL &#8212; The flagship number.</strong> Spirit flew 11 million passengers in and out of Fort Lauderdale in 2024 &#8212; a 31.4% market share. Spirit&#8217;s FLL headquarters sat one mile from the terminal. It occupied 10 gates. That entire passenger base is now without a primary carrier. Frontier already serves FLL. The seats are there. The question is only whether the passengers rebook on Frontier or drift to JetBlue, which moved to add routes within days of the shutdown.</p></blockquote><p><strong>Revenue capture by scenario</strong> <em>(at $127.95 per passenger)</em>:</p><p>Scenario FLL BWI DTW MDW Total Revenue LF Impact Conservative &#8212; 30% $211M $37M $33M $27M <strong>$307M</strong> +5.4pts &#8594; 83.8% <strong>Base Case &#8212; 42%</strong> <strong>$296M</strong> <strong>$52M</strong> <strong>$46M</strong> <strong>$38M</strong> <strong>$430M</strong> <strong>+7.6pts &#8594; 86.0%</strong> Optimistic &#8212; 55% $387M $68M $60M $49M <strong>$564M</strong> +10.0pts &#8594; 88.4%</p><p>The base case &#8212; 42% capture &#8212; generates $430 million in additional revenue and pushes Frontier&#8217;s load factor from 78.4% to 86.0%. That single move crosses the 85% threshold identified as the structural break-even for the OEG. The number of flights required to cover revenue drops below 2.9 per aircraft per day. The fourth flight becomes genuine margin instead of operational compensation for empty seats.</p><p><strong>The summary:</strong></p><p>Value Spirit passengers available (4 hubs) 8.0M Base case capture (42%) 3.4M passengers Incremental revenue $430M Load factor after capture <strong>86.0%</strong> OEG after capture <strong>1.10</strong></p><div><hr></div><h2>DTW &#8212; The Sharpest Ratio</h2><p>Fort Lauderdale is the largest number. Detroit is the most structurally significant ratio.</p><p>Frontier carried 134,887 passengers at DTW in all of 2025. Spirit carried 1.7 million &#8212; 12.6 times more. At 42% capture that&#8217;s 357,000 additional passengers at an airport where Frontier is currently the fifth-largest carrier. That&#8217;s <strong>2.6x Frontier&#8217;s entire current DTW volume</strong> from a single competitor exiting.</p><p>Spirit&#8217;s top routes from DTW were Fort Lauderdale, Orlando, and Las Vegas &#8212; three of Frontier&#8217;s core leisure destinations, routes Frontier already flies from Detroit. The passengers aren&#8217;t looking for a new destination. They&#8217;re looking for the same flight on a different yellow plane.</p><div><hr></div><h2>The Competition for the Rebooking</h2><p>Frontier is not the only carrier moving. JetBlue announced new FLL routes within 72 hours. Southwest is present at BWI with 71% market share and a structurally different customer base. Avelo and Breeze are expanding at secondary Spirit markets.</p><p>The capture window is measured in weeks, not months. Passengers stranded by an abrupt shutdown make new booking decisions quickly, and those decisions tend to stick.</p><p>Frontier&#8217;s advantage is specificity: it flies the same types of routes to the same types of destinations at the same price architecture as Spirit. The 100+ overlapping routes is not a marketing statement &#8212; it&#8217;s a structural description of why Frontier&#8217;s seats are the natural rebook for a Spirit traveler whose flight disappeared. The question is execution speed, not demand existence.</p><div><hr></div><h2>The Call</h2><p>The structural thesis of this article hasn&#8217;t changed. What has changed is the timeline: Frontier is executing the correction on its own network, but paying for it in cash &#8212; and a demand event just arrived that may accelerate the resolution faster than the internal fix would have on its own.</p><p>Two parallel stories are now running simultaneously.</p><p>Inside the operation: the Early Return Agreement is $139 million spent admitting that high-cycle utilization on thin routes is more expensive than the revenue it generates. Deferring 69 deliveries is acknowledgment that more aircraft without better load factor is a cost accelerant, not a revenue solution.</p><p>Outside the operation: 8 million Spirit passengers across four hubs where Frontier already flies are looking for a new carrier this week.</p><p>If Frontier captures 42% of that displaced demand, the load factor clears 85%, the OEG drops below 1.10, and the break-even flight count falls below 2.9 per aircraft per day. The maintenance clock still runs. The fuel cost headwind in Q2 is real. But the occupancy problem &#8212; the root cause of the OEG, the cycle excess, and the deferred-maintenance bill &#8212; resolves through inbound demand rather than outbound capacity cuts. That&#8217;s a structurally faster fix.</p><p>The Q2 2026 guidance showing a projected loss of $0.45&#8211;$0.60 per share was built before Spirit shutdown. It does not reflect Spirit passenger capture. The next earnings call is the first real read on whether Frontier moved fast enough at FLL, BWI, DTW, and MDW to absorb what was, until eight days ago, the largest ULCC passenger base in the country.</p><blockquote><p><em>&#8220;We remain focused on our four key strategic priorities centered around rightsizing the fleet, strengthening our cost discipline, improving operational reliability and driving customer loyalty.&#8221;</em> &#8212; Jimmy Dempsey, President and CEO, Q1 2026 Earnings &#8212; May 5, 2026. Spirit shut down May 2.</p></blockquote><p>The CEO gave that statement three days after Spirit&#8217;s last flight landed in Dallas. The OEG was telling the empty-seat story in the data for two years. Now the income statement is telling it in cash. And the demand side just handed Frontier the fastest path to closing the gap it&#8217;s had since the expansion started.</p><div><hr></div><p><em>OEG methodology: weighted average seats from Frontier Group Holdings fleet tables (Q4 2025: 176 aircraft; Q1 2026: 183 aircraft). Full-load break-even = annual revenue target &#247; (weighted avg seats &#215; revenue per passenger) &#247; fleet size &#247; 365. Q1 2026 actual utilization: 51,893 departures &#247; 90 days &#247; 178 avg aircraft in service = 3.24 flights/day. Revenue and operating data: Frontier Group Holdings Q1 2026 earnings release (May 5, 2026) and prior quarterly releases Q1 2023&#8211;Q4 2025 via SEC filings. Spirit market share data: BWI Airport press kit; WLRN/South Florida reporting (FLL); Detroit News (DTW); Chicago Dept. of Aviation (MDW). Spirit shutdown: CNN, NPR, CBS News (May 2&#8211;5, 2026). Frontier CEO Spirit overlap quote: Reuters/Detroit News (May 6, 2026). Source: ir.flyfrontier.com</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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[Scoreboard: Data Analysis for comedy, really?]]></title><description><![CDATA[How I fixed a multifaceted issue]]></description><link>https://signal2capital.substack.com/p/scoreboard-data-analysis-for-comedy</link><guid isPermaLink="false">https://signal2capital.substack.com/p/scoreboard-data-analysis-for-comedy</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Wed, 08 Apr 2026 16:01:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>During the winter of 2023, I tried my hand at becoming a stand-up comedian, I love creative writing, the stage and being or at least feeling understood. Comedy is a great avenue for all of this. I did at least two to three open mics a night, waiting until sometimes 1:30 am for my chance to perform in front of two people sometimes. Everyone always left before I got on. This made it almost impossible to tell if the jokes or I was getting better at all. A month in and I was ready to quit, exhausted from being told to wait my turn and just get good. The statement sounded like a catch 22 to me. A way to silence me and put me back in line. One comic on a cold night in early February told me if I didn&#8217;t like how the shows were being run, I should make my own or shut up. The words stung for two seconds till it dawned on me, he&#8217;s right! I should just make my own show and then I can&#8217;t get all the stage time I want. </p><p>The follow up to this revelation is quite boring. I found the ideal business, a brewery with low attendance on a weekday located on the busiest street in Houston. I pitched my concept, a playoff comedy show, essentially joke for joke who actually gets a better laugh? I measured this with a decibel meter and then accounted for the white noise in the background. The hardest part was live data ingestion to metric conversion to broadcasting it on screen. I live for these kind of issues and the team did too. We decided that our mvp didn&#8217;t need to broadcast on screen. It&#8217;s a cool concept, many sporting events bring to light but our crowd of 15 didn&#8217;t require it today. We had bigger fish to fry.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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 actual issue is that show running comes with a multitude of problems. We had to develop a system to keep the comics flowing, the drinks and food uninterrupted during the show and we also needed to get people to come in. I along with a team of 4 tackled these issues.  This is where the job became fun. We started posting on Instagram and Eventbrite for broadest outreach, partnered with local art spaces to advertise our show and finally my favorite in-person outreach. Instagram and Eventbrite proved to be fruitful bringing in an average of 3 people each but costing us 30/week to run the ads. The local art spaces let us place flyers up weekly for no charge and all the in-person outreach costed was time and gas. We opted to stop running ads and only focus on in-person and art spaces. </p><p>It&#8217;s fun walking around a big city like Houston engaging with local businesses and people. It feels even better when you recognize someone that you had just spoken to earlier in the week. Keeping the drinks and food flowing along with the show is the hardest part. Something that I think many places struggle with when the bar is far from the stage. I have noticed over the years that people get distracted on their way back and forth leading to a smaller crowd over time. The key to a great show is providing them a frictionless experience. This meant coordinating with the staff to keep as many people seated as possible.  </p><p>We culminated this experience with a Saturday night show, selling out the space and providing each comic with a 4k recording of their set. This was a major benefit for everyone involved. I thanked the comic that suggested I stop complaining and do something about it. It&#8217;s amazing what a simple conversation can lead to. </p><p> </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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[Who's the Rookie of the year]]></title><description><![CDATA[Flagg vs. Knueppel: An analysis derived from basic stats, made into advanced and then storyboarded]]></description><link>https://signal2capital.substack.com/p/whos-the-rookie-of-the-year</link><guid isPermaLink="false">https://signal2capital.substack.com/p/whos-the-rookie-of-the-year</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Tue, 07 Apr 2026 14:34:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_01u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is a story the NBA tells every few years, a generational talent on a depleted roster versus a rookie on a playoff team contributing valuable minutes. Who should be rookie of the year? The guy we all think is going to be a perennial all-star/all-nba or the one that is providing immediate impact. This year the race is between Cooper Flagg and Kon Knueppel. I decided to do a deep dive to make this an easy decision. </p><div><hr></div><p>The Rookie of the Year debate between Cooper Flagg and Kon Knueppel has been framed, for most of the season, as a question of individual production. Flagg scores more. Knueppel shoots better. Flagg rebounds. Knueppel wins. But production without context is just a number. The question isn&#8217;t who has better stats &#8212; it&#8217;s what each player&#8217;s stats mean relative to the ecosystem that produces them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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>That&#8217;s the question TVM/36 and NPE were built to answer. And the answer is structurally clear, once you remove the noise.</p><h2>The Headline Numbers</h2><p>Metric Flagg (DAL) Knueppel (CHO) TVM/36 <strong>40.4</strong> 36.8 vs Team TVM <strong>+15.0%</strong> +0.4% NPE <strong>7.55</strong> 5.75 vs Team NPE <strong>+50.4%</strong> +8.4% Team Record 24-53 42-36 Games Played 62 76</p><p>Read those two TVM surplus numbers again. Flagg&#8217;s per-minute impact exceeds his team&#8217;s weighted average by 15%. Knueppel exceeds his by less than half a percent. That&#8217;s the difference between a player who is <em>driving</em> an offense and a player who is <em>functioning within</em> one.</p><p>And this is the <em>corrected</em> Dallas baseline. Anthony Davis &#8212; traded to Washington after 20 games &#8212; has been removed from the calculation. So has Dereck Lively II (7 games played, season-ending injury). The 0.976 TVM/min baseline that Flagg exceeds is the team he&#8217;s actually played on for most of the season: a roster featuring Naji Marshall, P.J. Washington (36 GP), Klay Thompson, and a rotating cast of replacement-level guards. That&#8217;s a bottom-five supporting cast in the NBA.</p><p></p><h2>The NPE Signal: Why Creation Value Matters More Than Scoring</h2><p>Net Point Effect strips away the scoring line and isolates a player&#8217;s decision-making and hustle value. It captures the points a player generates &#8212; through assists, turnovers avoided, steals converted &#8212; independently from their own shot-making. It&#8217;s the metric that separates <em>players who get theirs</em> from <em>players who create for others</em>.</p><p>Flagg&#8217;s NPE of 7.55 ranks second on Dallas. Among players logging 30+ minutes, it&#8217;s the best on the roster by a wide margin. He&#8217;s the team&#8217;s primary scorer <em>and</em> its primary creator &#8212; a dual burden that LeBron James carried for years in Cleveland before the Cavaliers built a roster around him.</p><p>Knueppel&#8217;s NPE of 5.75 ranks third on Charlotte, behind LaMelo Ball (14.06) and Miles Bridges (6.44). The gap between LaMelo&#8217;s NPE and everyone else on that roster is the defining structural feature of Charlotte&#8217;s offense. LaMelo generates nearly 2.5x the creation value of Knueppel. That&#8217;s not a slight against Knueppel &#8212; it&#8217;s a description of his role. He converts what LaMelo creates.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_01u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_01u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png 424w, https://substackcdn.com/image/fetch/$s_!_01u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png 848w, https://substackcdn.com/image/fetch/$s_!_01u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png 1272w, https://substackcdn.com/image/fetch/$s_!_01u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_01u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png" width="1456" height="805" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:805,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68453,&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://signal2capital.substack.com/i/193469686?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.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_!_01u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png 424w, https://substackcdn.com/image/fetch/$s_!_01u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png 848w, https://substackcdn.com/image/fetch/$s_!_01u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.png 1272w, https://substackcdn.com/image/fetch/$s_!_01u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff69a49ab-91a2-492c-8e28-2e2a3a4343dd_1574x870.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 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><h2>The Availability Reframe: Who Actually Played This Season</h2><p>The Knueppel-as-3rd-option narrative has a denominator problem. LaMelo Ball has played only 43 of Charlotte&#8217;s ~78 games &#8212; 55% availability. Brandon Miller has played 35 games &#8212; 45% availability. Knueppel has played 76 &#8212; 97% availability.</p><p>That means roughly 43% of Knueppel&#8217;s season was played <em>without</em> his primary playmaker on the floor. Charlotte went 42-36 with LaMelo and Miller combining to miss nearly half the schedule. Knueppel wasn&#8217;t a passenger all year. He spent significant stretches as the first or second option on a team that kept winning.</p><p>His efficiency held during those stretches &#8212; 44.0% from three, 65.3% true shooting for the season. That&#8217;s legitimately elite. But the NPE tells you the ceiling: even when he was forced into a primary role, his creation value didn&#8217;t spike the way Flagg&#8217;s has. Flagg&#8217;s last-10 assist surge to 6.6 APG (up from a 4.2 season average) shows a player whose playmaking expands under load. Knueppel&#8217;s last-10 scoring <em>dropped</em> to 16.0 (from 19.2) while Charlotte went 7-3. The team wins when he defers. That&#8217;s a complementary player&#8217;s profile.</p><blockquote><p><strong>Flagg&#8217;s Last 10:</strong> 21.7 PPG &#183; 6.6 REB &#183; <strong>6.6 AST</strong> (up from 4.2) &#183; 1.2 STL &#183; 48.5% FG &#183; Dallas 3-7 The assist spike is the signal. He&#8217;s reading defenses at a higher level. The team just can&#8217;t convert it into wins.</p><p><strong>Knueppel&#8217;s Last 10:</strong> 16.0 PPG &#183; 5.7 REB &#183; 3.1 AST &#183; 43.3% FG &#183; 36.8% 3P &#183; Charlotte 7-3 Scoring compresses. Minutes drop to 28.6. Charlotte wins while reducing his role.</p></blockquote><h2>Kyrie Doesn&#8217;t Close the Gap</h2><p>The natural counter-argument: Kyrie Irving comes back next season. Dallas gets its point guard. Problem solved.</p><p>Except Kyrie Irving has never been a primary playmaker. He&#8217;s a scoring guard who assists. In 14 NBA seasons, Kyrie has exceeded 6.0 assists per game exactly four times &#8212; and three of those came in Brooklyn alongside Kevin Durant and James Harden. His last three full seasons: 5.5, 5.2, 5.2 APG. A declining trend at 33, now coming off a season-ending knee injury. He&#8217;ll be 34 next season.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mjxq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mjxq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png 424w, https://substackcdn.com/image/fetch/$s_!mjxq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png 848w, https://substackcdn.com/image/fetch/$s_!mjxq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png 1272w, https://substackcdn.com/image/fetch/$s_!mjxq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mjxq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png" width="1456" height="711" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:711,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87252,&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://signal2capital.substack.com/i/193469686?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.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_!mjxq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png 424w, https://substackcdn.com/image/fetch/$s_!mjxq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png 848w, https://substackcdn.com/image/fetch/$s_!mjxq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.png 1272w, https://substackcdn.com/image/fetch/$s_!mjxq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc38663ee-6fa3-4fa2-bb42-2110549d6908_1573x768.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 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>LaMelo Ball averages 7.5 assists per game this season. Kyrie&#8217;s realistic projection is 5.0-5.3. That&#8217;s a gap of ~2.3 assists per game &#8212; roughly 4-5 points of team offense Charlotte generates through playmaking that Dallas does not.</p><p>LaMelo&#8217;s NPE of 14.06 tells the full story. He warps defenses, creates open shots, and generates value that compounds across the roster. Kyrie gets to his spots and scores at elite efficiency. Those are structurally different players. Knueppel benefits from LaMelo&#8217;s gravity in a way that Flagg <em>cannot</em> benefit from Kyrie&#8217;s &#8212; because Kyrie doesn&#8217;t create at the same rate, volume, or consistency.</p><p>The implication for Flagg&#8217;s Year 2: Kyrie returning gives Dallas a better <em>scorer</em> alongside Flagg. It doesn&#8217;t give them a better <em>offense</em>. Two players in the same creation tier (NPE 7-8 range) don&#8217;t compound each other&#8217;s value the way a true point guard (NPE 14+) elevates a finisher. Dallas needs a LaMelo-class playmaker. They have a Kyrie-class scorer. That&#8217;s a different problem.</p><p></p><h2>The Verdict</h2><p><strong>Cooper Flagg &#8212; TVM/36: 40.4 (+15.0% above team) &#183; NPE: 7.55 (+50.4% above team)</strong></p><p>Flagg is the best player on one of the worst rosters in the NBA, playing the most minutes, generating the most creation value, and developing a playmaking dimension in real time (4.2&#8594;6.6 APG, last 10). The 24-53 record is a roster failure, not a Flagg failure. He is building an engine on a stripped chassis.</p><p><strong>Kon Knueppel &#8212; TVM/36: 36.8 (+0.4% above team) &#183; NPE: 5.75 (+8.4% above team)</strong></p><p>Knueppel is a genuinely elite shooter (44.0% 3P, 65.3% TS) who has been more available than anyone on Charlotte&#8217;s roster. He carried stretches without LaMelo and Miller, and his efficiency held. But his TVM surplus is marginal &#8212; he&#8217;s performing <em>with</em> his team&#8217;s baseline, not above it. His NPE tells you he&#8217;s an efficient finisher, not a creation engine.</p><p>Rookie of the Year is a counting-stat award. It always has been. Knueppel will have a case built on wins and shooting percentages, and it&#8217;s a good one. But if you&#8217;re asking which rookie demonstrated more value relative to his context, TVM answers that cleanly. <strong>Flagg is the system. Knueppel plays in one.</strong></p><div><hr></div><p><em>Data: LandOfBasketball.com, Basketball-Reference.com, Full_Player_Impact_Metrics.csv &#183; Metrics: TVM/36, NPE (Signal 2 Capital proprietary) &#183; April 2026</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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[Late N' Fried ]]></title><description><![CDATA[My first business; the highs and lows.]]></description><link>https://signal2capital.substack.com/p/late-n-fried</link><guid isPermaLink="false">https://signal2capital.substack.com/p/late-n-fried</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Thu, 26 Mar 2026 21:21:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qnFr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>After I left the Air Force in May of 2021, I decided to open a food truck. I wanted a chance to see what it was like to run something for real and not just behind a screen. I saved up 1250$ enough to go to the owner of Miguel&#8217;s Tacos and pitch renting his trailer for the summer. His operation was moving into a kitchen and the staff would be occupied. Adding additional staff to manage trailer operations plus logistics would be a nightmare. I take the trailer eliminating the headache and provide a source of revenue on top of that. I did this because my friend had just taken over a hookah bar that sat right at the beginning of the highway exit with two lane traffic, a car sales lot and a high amount of buildings doing defense, research and other professional services in the area. This seemed perfect to me, I had a lunch population and a night population, the perfect storm for sales. I picked out a name and started doing the branding. My primary focus was to bring the girls in and thus their date would pay.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qnFr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qnFr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qnFr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qnFr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qnFr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qnFr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg" width="820" height="396" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:396,&quot;width&quot;:820,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:128227,&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://signal2capital.substack.com/i/192249697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.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_!qnFr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qnFr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qnFr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qnFr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82543033-bf65-4e8d-b964-3eb4ff644558_820x396.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>Above is the logo with the idea being to put led lights around the frame to give the gold a draw at night. The twist in the name is that all the food was made fresh and incredibly healthy, it was a play on our consumer, a girl at the hookah bar at 1 in the morning that&#8217;s hungry. I thought they would see the lights and then the name. A question would hit their head, what&#8217;s a late n&#8217; Fried and I would say you are, what would you like? Everyone laughs and now we talk food. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital ! 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><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gNhY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gNhY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gNhY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gNhY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gNhY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gNhY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg" width="1125" height="1917" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1917,&quot;width&quot;:1125,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:296949,&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;:false,&quot;internalRedirect&quot;:&quot;https://signal2capital.substack.com/i/192249697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b5af2a-7f09-4c67-9916-e5b2a5e7c935_1125x2436.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_!gNhY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gNhY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gNhY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gNhY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff96a5050-3eb1-4356-b1f4-091f23686058_1125x1917.jpeg 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 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><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BZZK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BZZK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BZZK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BZZK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BZZK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BZZK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg" width="1123" height="1123" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1123,&quot;width&quot;:1123,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:189019,&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;:false,&quot;internalRedirect&quot;:&quot;https://signal2capital.substack.com/i/192249697?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.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_!BZZK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BZZK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BZZK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BZZK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdbcda8f5-8a5c-4da9-a46e-b2ae48997c33_1123x1123.jpeg 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 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 partnered with each brewery separately to make menus customized to their consumer. This was the Barrel House. They were a craft brewery really focused on stouts and porters. I had a great time meeting the owner.</p><p>I did an all inclusive GTM strategy, partnering with breweries, food blogs and local community. I did this with not only online engagement through Instagram and Facebook but in person through meeting the brewers and usually hanging out for the afternoon before my dinner rush got started. This was a rather effective campaign as I was able to meet roughly 7 brewery owner/operators and book myself for a full month after sales started happening in July. </p><p>That&#8217;s right I couldn&#8217;t make a sale till July even though I had picked up the trailer in late may. You&#8217;re asking what happened and to be honest a lack of knowledge of the permit rules. I went to the wrong county for a month, just trying to get a meeting with the lady to schedule the appointment for permitting. We finally talk after 3 weeks and she tells me, I&#8217;m applying to the wrong county. I drive over to the right one and the lady has me permitted within 48 hours. Isn&#8217;t that just lovely?! That was the first and probably most detrimental mistake. </p><p>I like to imagine that if we start sales in early June then turning a profit by early august would have been feasible given the margins. I forgot to account for having to pay myself for operations. My cost of living alone could easily tank the business if I didn&#8217;t adjust and honestly I didn&#8217;t. </p><p>I should have opened for breakfast also and just given out coffee. I struggled to balance outreach for contracts, trying to service the bands or football teams, over the summer with being at the unit for operations. An incredibly tricky job as the hookah bar revenue fell flat. I overestimated how much my customer base was willing to pay at night. They wanted more of a slider version of taco bell than a burger version of waffle house. I wasn&#8217;t a great cook at the time. I made sellable food but not I want to buy that food. The distinction makes a drastic difference in ease of sales. I also had a lunch location issue as the trailer was parked in the back instead of the front two parking spaces. Looking back on it, I should have made a deal for the spot and would have most likely made much more during the day. Its amazing what a difference 30 feet can make. </p><p><strong>The business failed, Miguel came to pick up the trailer and I spent a weekend cleaning it out. He hired me so I became a better cook and manager. We worked together during his slow season which really gave me a shot at seeing his strategy with a similar circumstance.</strong> I had a lot of fun with the crew and it is a winter I look back on fondly. I share the failure because it gave me a chance to see what it was like to run something for real and not just behind a screen. I like to describe running a business as live analysis. </p><p>Every decision made has to come from intense research on my subjects, detailed analysis on potential populations, necessary outreach, best conversion factors, new places to go, logistics, supply-chain due to produce, process optimization for faster sales, data engineering and lastly how to insights and make actionable decisions on the fly. Sorry, I&#8217;m analyst at heart and don&#8217;t want to leave anything learned out. </p><p>Overall I&#8217;m glad I made the decision, it shaped me as a person and a business analyst. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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[Building a Defensive Metric From Scratch. Here’s the Top 10.]]></title><description><![CDATA[signal2capital.substack.com | Basketball Analytics Series]]></description><link>https://signal2capital.substack.com/p/building-a-defensive-metric-from</link><guid isPermaLink="false">https://signal2capital.substack.com/p/building-a-defensive-metric-from</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Mon, 23 Mar 2026 23:05:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!y1-K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1></h1><p><em>signal2capital.substack.com | Basketball Analytics Series</em></p><div><hr></div><p>Most defensive metrics in basketball are proxies. Steals times two plus defensive rebounds times 0.3 &#8212; numbers that gesture at defense without measuring it directly. The box score doesn&#8217;t tell you whether a player made the opponent change their shot, take a harder look, or reroute the possession entirely. It tells you what happened after the fact.</p><p>So we built something that measures the shot before it happens.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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><div><hr></div><h2>The Analytics Question</h2><p>Can we measure a player&#8217;s defensive impact at their specific position &#8212; not league-wide, not team-wide &#8212; using on/off field goal rate tracking, weighted by actual matchup minutes?</p><p>The answer is yes. Here&#8217;s how.</p><div><hr></div><h2>The Metric: DFGRA</h2><p><strong>Defensive Field Goal Rate Adjustment</strong> measures how much a defender suppresses opponent field goal percentage when they are directly matched by position, scaled by how many matchup minutes they logged, and normalized against every other player at their position class.</p><p>The formula has four steps.</p><p><strong>Step 1 &#8212; FG% Delta</strong></p><p>Compare the opponent&#8217;s field goal percentage at a given position while the defender is on the floor versus off the floor.</p><pre><code><code>fg_pct_delta = fg_pct_off_court &#8722; fg_pct_on_court
</code></code></pre><p>Positive means the opponent shoots worse with this defender on the floor. That&#8217;s good defense.</p><p><strong>Step 2 &#8212; Weight by Matchup Load</strong></p><p>A player who suppresses FG% for 1,680 matchup minutes is more impactful than one who does it for 400. We scale by the fraction of a full 48-minute game the defender accounts for.</p><pre><code><code>dfgra_raw = fg_pct_delta &#215; (matchup_minutes / 48) &#215; 70
</code></code></pre><p>The scale factor of 70 maps real-world NBA FG% deltas onto the bounded output range. Elite defenders with high matchup load approach the ceiling. Average defenders cluster in the middle.</p><p><strong>Step 3 &#8212; Bound to &#177;20</strong></p><p>NBA field goal percentages have natural ceilings. No defender moves the needle more than 20 points in either direction across a full season. We clip the raw output accordingly.</p><pre><code><code>dfgra_bounded = clip(dfgra_raw, &#8722;20, +20)
</code></code></pre><p><strong>Step 4 &#8212; Z-Score by Position, Map to 1&#8211;5</strong></p><p>Raw DFGRA scores mean nothing without context. A PG defending at +8.0 and a C defending at +8.0 are doing fundamentally different jobs. We Z-score within each position class, then convert to a 1&#8211;5 impact scale using the normal distribution CDF. A score of 3.0 is league average at your position. A score of 4.5 is elite.</p><pre><code><code>dfgra_z = zscore(dfgra_bounded) within position group
dfgra_impact = norm.cdf(dfgra_z) &#215; 4 + 1
</code></code></pre><p><strong>Step 5 &#8212; Add Shots Deterred and Possession Stops</strong></p><p>We layer in two additional signals. Shots deterred per 48 measures volume suppression &#8212; does the opponent take fewer attempts when this defender is on the floor? And possession stop rate (STL + BLK + defensive rebounds ending possessions) captures active disruption.</p><p>The composite defense score weights DFGRA at 60% and possession stop rate at 40%.</p><pre><code><code>composite = 0.6 &#215; dfgra_impact + 0.4 &#215; stop_rate_impact
</code></code></pre><div><hr></div><h2>What Matchup Minutes Means</h2><p>This is the filter that separates DFGRA from generic on/off splits. We only count minutes where the opposing ball handler&#8217;s primary position matches the defender&#8217;s position class. If a SF switches onto a C on a screen, those possessions don&#8217;t pollute the SF&#8217;s DFGRA calculation. The metric isolates primary defensive responsibility &#8212; the matchup the defender was assigned, not the chaos of switching.</p><pre><code><code>matchup_minutes = SUM(opponent_minutes) WHERE defender_pos == opponent_pos
</code></code></pre><div><hr></div><h2>The Top 10 &#8212; SF/PF Position Class (2025-26 Estimates)</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y1-K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y1-K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png 424w, https://substackcdn.com/image/fetch/$s_!y1-K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png 848w, https://substackcdn.com/image/fetch/$s_!y1-K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png 1272w, https://substackcdn.com/image/fetch/$s_!y1-K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y1-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png" width="698" height="517" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:517,&quot;width&quot;:698,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73456,&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://signal2capital.substack.com/i/191924850?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.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_!y1-K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png 424w, https://substackcdn.com/image/fetch/$s_!y1-K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png 848w, https://substackcdn.com/image/fetch/$s_!y1-K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.png 1272w, https://substackcdn.com/image/fetch/$s_!y1-K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d8fa8c-4e39-4e2c-bad7-8b3eb3e7a2cb_698x517.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 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><div><hr></div><h2>What Separates Johnson From the Field</h2><p>Every player in positions 2&#8211;9 hits the +20 ceiling. So does Johnson. The separation happens in shots deterred.</p><p>Johnson draws <strong>&#8722;2.57 extra attempts per 48</strong> from opponents. The SF position is a high-attack zone &#8212; teams run actions toward wings to create mismatches. Every player on this list is in negative territory, meaning opponents are taking more attempts than the off-court baseline. That&#8217;s normal for the position.</p><p>Johnson draws the fewest extra attempts by a significant margin. The next closest is OG Anunoby at &#8722;4.24. The worst on the list, Khris Middleton, draws &#8722;9.65 &#8212; teams actively hunt him.</p><p>Translation: opponents don&#8217;t want to attack Jalen Johnson. They do everything they can to avoid him. That is the highest compliment a defender can receive, and it shows up in the data before a single shot is taken.</p><div><hr></div><h2>The Data Gap &#8212; What This Analysis Needs Next</h2><p>These results are estimated from available box score data. The full DFGRA calculation requires NBA.com synergy matchup tracking &#8212; positional FG% splits by on/off, minute-level matchup logs, and half-court versus transition splits. When that data is incorporated, the rankings will shift. The methodology and the composite formula are stable. The inputs refine over time.</p><p>The Python module is open and reproducible. The math is documented. This is version 1.0.</p><div><hr></div><p><em>Next article: we used this framework &#8212; plus salary per minute, possession stop rate, and role allocation analysis &#8212; to propose a trade that turns Kevin Durant and Tari Eason into three players who change the geometry of the Houston Rockets.</em></p><div><hr></div><p><em>signal2capital.substack.com | Built in Python | Methodology documented at Glossary[NBA][DFGRA] v1.1</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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[Module 3: Building the Model]]></title><description><![CDATA[Actionable Insights &#8212; Module 3 of 4 How to run a decision tree that actually answers the right question]]></description><link>https://signal2capital.substack.com/p/module-3-building-the-model</link><guid isPermaLink="false">https://signal2capital.substack.com/p/module-3-building-the-model</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Sat, 21 Mar 2026 14:06:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div><hr></div><h2>Series Context</h2><p>Module 1 covered question framing. Module 2 covered dataset construction from public filings. This module covers what you build with that data &#8212; and what happens when the model surprises you.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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 case study throughout is Kyndryl &#8212; the world&#8217;s largest IT infrastructure services company. The question: given $3.1B in unconverted signing backlog, where should capital flow to maximize 5-year revenue? Module 4 turns the answer into dollars.</p><div><hr></div><h2>Section 1 &#8212; Start With a Baseline, Not a Hypothesis</h2><p>Most models are built to confirm something. The better move is to build a baseline first &#8212; a ground-level view of what current state produces before any optimization is applied.</p><p>For Kyndryl, the baseline was built from current signing activity: segment revenue, signing volumes across service lines, and quarter-over-quarter growth rates. Before the model ran a single optimization, the baseline answered one question:</p><blockquote><p><strong>The Baseline Question</strong> If Kyndryl maintains its current signing mix with no reallocation, what does the 5-year revenue trajectory look like?</p></blockquote><p>This matters because it establishes the comparison point. Without a baseline you cannot quantify what the optimized allocation is worth. The delta between baseline and optimized output is the dollar case for change &#8212; and that is what Module 4 is built around.</p><h3>What QoQ Growth Rates Were Actually Telling You</h3><p>Quarter-over-quarter tracking was not included to add data volume. It was included to flag calibration problems before they compound. A model built on static inputs drifts from reality fast in a business as cyclical as IT services.</p><p>Three things QoQ growth rates expose:</p><ul><li><p><strong>Signing velocity changes</strong> &#8212; are certain service lines accelerating or decelerating at the contract level?</p></li><li><p><strong>Revenue conversion lag</strong> &#8212; how long between signing and recognized revenue by segment?</p></li><li><p><strong>Growth rate divergence</strong> &#8212; when cloud is growing at 3x the rate of managed services, the model should weight forward differently than it weights backward.</p></li></ul><p>One variable not captured in the initial baseline: cost of acquisition per contract type. Not all contracts are equally efficient to win. That gap becomes material in Module 4 when the allocation recommendation gets priced under real-world constraints.</p><div><hr></div><h2>Section 2 &#8212; The Test: What Happens to Revenue by Signing Mix?</h2><p>With the baseline set, the test had a clean question:</p><blockquote><p><strong>The Test Question</strong> Across every possible signing mix &#8212; every combination of Consult, Cloud, and Managed Services as a share of total backlog &#8212; which allocation produces the highest 5-year top-line revenue?</p></blockquote><p>The method was a decision tree classifier run across 1,000 iterations. Each iteration tested a different signing mix against the revenue model and returned a profitability score. The classifier ranked every combination and surfaced the top-performing allocation.</p><h3>Why 1,000 Iterations?</h3><p>A single scenario tells you what one configuration looks like. A thousand tells you the shape of the solution space &#8212; where the peaks are, where the floor drops, and whether the optimal mix is a narrow spike or a broad plateau. In Kyndryl&#8217;s case the output showed a broad plateau around the winning configuration, which matters for implementation: small deviations from the recommended mix do not crater the outcome.</p><h3>What the Test Returned</h3><p>Both the initial run and the rerun after factoring in hyperscaler growth rates returned the same answer: a blended Consult + Cloud mix outperformed every pure-play configuration. Not Cloud alone. Not Consult alone. The blend won both times.</p><p>Run Result Run 1 &#8212; Initial Blended Consult + Cloud &#8212; highest 5-year revenue Run 2 &#8212; Hyperscaler growth factored Blended Consult + Cloud &#8212; same winner, confirmed Pure Cloud Ranked 2nd both runs Pure Consult Strong near-term, weaker at Year 4+ Managed Services heavy Lowest ceiling &#8212; declining market share</p><p>Cloud came out second both times. The assumption going in was that hyperscaler growth would dominate. It did not. Cloud revenue recognition carries a long conversion lag from signing. Consult engagements convert faster and generate the advisory and migration work that makes Cloud deployments viable. They are not competing service lines. They are sequential ones.</p><div><hr></div><h2>Section 3 &#8212; The Code</h2><p>Below is the full decision tree classifier used to run the 1,000-iteration signing mix test. Each block is annotated. The AI prompt shortcut follows for those who want to generate equivalent logic without writing the scaffolding manually.</p><h3>Block 1 &#8212; Imports and Data Setup</h3><pre><code><code>import pandas as pd
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
import itertools

# Load your financial model data
# Required columns: segment, signing_volume, revenue_recognized,
#                   quarter, growth_rate, conversion_rate
df = pd.read_csv('kyndryl_signings.csv')

# Define your service line segments
segments = ['consult', 'cloud', 'managed_services']
</code></code></pre><h3>Block 2 &#8212; Build the Signing Mix Combinations</h3><pre><code><code># Generate all allocation combinations (must sum to 100%)
# Step size of 5 = 231 combinations across 3 segments
# Increase step to reduce combinations if runtime is slow

step = 5
allocations = []

for c in range(0, 101, step):
    for cl in range(0, 101 - c, step):
        ms = 100 - c - cl
        if ms &gt;= 0:
            allocations.append({
                'consult': c,
                'cloud': cl,
                'managed_services': ms
            })

print(f'{len(allocations)} allocation combinations generated')
</code></code></pre><h3>Block 3 &#8212; Run 1,000 Iterations Across Every Mix</h3><pre><code><code>results = []

for alloc in allocations:
    # Apply weights to signing volumes by segment
    df['weighted_revenue'] = (
        df['signing_volume'] * (alloc['consult'] / 100) * df['consult_conversion_rate'] +
        df['signing_volume'] * (alloc['cloud'] / 100) * df['cloud_conversion_rate'] +
        df['signing_volume'] * (alloc['managed_services'] / 100) * df['ms_conversion_rate']
    )

    # Run 1,000 iterations with variance to stress-test the mix
    iteration_revenues = []
    for i in range(1000):
        noise = np.random.normal(1.0, 0.02)  # +/- 2% per run
        iteration_revenues.append(df['weighted_revenue'].sum() * noise)

    results.append({
        'consult_pct': alloc['consult'],
        'cloud_pct': alloc['cloud'],
        'ms_pct': alloc['managed_services'],
        'avg_5yr_revenue': np.mean(iteration_revenues),
        'std_dev': np.std(iteration_revenues)
    })

results_df = pd.DataFrame(results)
</code></code></pre><h3>Block 4 &#8212; Output the Top Results</h3><pre><code><code># Sort by average 5-year revenue, descending
results_df = results_df.sort_values('avg_5yr_revenue', ascending=False)

# Top 10 mixes
print(results_df.head(10))

# Single best mix
print('Optimum signing mix:')
print(results_df.iloc[0])

# Filter: mixes where Cloud is at least 30%
cloud_heavy = results_df[results_df['cloud_pct'] &gt;= 30]
print(cloud_heavy.head(5))
</code></code></pre><h3>Block 5 &#8212; Rerun With Hyperscaler Growth Factored In</h3><pre><code><code># Adjust cloud conversion rate for forward growth trajectory
# Source from QoQ actuals or analyst consensus estimates

hyperscaler_growth_multiplier = 1.18  # 18% YoY growth on cloud

df['cloud_conversion_rate_adjusted'] = (
    df['cloud_conversion_rate'] * hyperscaler_growth_multiplier
)

# Rerun Block 3 using cloud_conversion_rate_adjusted
# Compare new results_df to original
#
# If winner changes: the growth rate is load-bearing for the recommendation
# If winner holds: the blend is robust across growth scenarios
</code></code></pre><h3>AI Prompt Shortcut</h3><p>If you want to generate equivalent logic without writing the scaffolding:</p><blockquote><p>&#8220;I have a dataset with signing volumes and revenue conversion rates across three service lines: Consult, Cloud, and Managed Services.</p><p>Build a decision tree classifier that runs 1,000 iterations across all possible allocation combinations (step size 5%, must sum to 100%). Optimize for 5-year total revenue. Output the top 10 combinations sorted by average revenue. Include standard deviation.</p><p>Show the code with comments on each block. Add a filtered view showing only combinations where Cloud is at least 30% of the mix.&#8221;</p></blockquote><p>Once it runs:</p><ul><li><p>Top 10: <code>print(results_df.head(10))</code></p></li><li><p>Single best mix: <code>print(results_df.iloc[0])</code></p></li></ul><div><hr></div><h2>Section 4 &#8212; What the Model Told You</h2><p>Two things came out of this test. One confirmed what the data suggested. One changed the direction of the analysis.</p><h3>What It Confirmed</h3><p>Managed services as a growth vehicle is structurally constrained. Kyndryl holds significant share in a segment that is shrinking as enterprises migrate away from legacy infrastructure. The model confirmed that over-indexing on managed services caps the 5-year ceiling regardless of operational efficiency.</p><h3>What It Surprised You With</h3><p>Cloud came out second &#8212; not first. The assumption going in was that hyperscaler growth would dominate. It did not. Cloud revenue recognition carries a long conversion lag from signing. Consult engagements convert faster and generate the advisory and migration work that makes Cloud deployments viable. They are not competing service lines. They are sequential ones.</p><p>This is the kind of output that requires going back to the source data rather than accepting the result at face value. The QoQ growth rates for cloud signings were real. The conversion lag was also real. The model was not wrong &#8212; it was revealing a structural dependency that the initial framing had treated as two independent categories.</p><h3>What the Model Still Could Not Answer</h3><p>The classifier optimized for top-line revenue. It did not account for:</p><ul><li><p><strong>Cost of acquisition per contract type</strong> &#8212; some engagements are more expensive to win than others</p></li><li><p><strong>FCF timing</strong> &#8212; Year 4 revenue is not the same as Year 1 revenue for a company managing near-term liquidity</p></li><li><p><strong>Execution capacity</strong> &#8212; a 60% Consult allocation requires headcount that may not exist at that scale</p></li></ul><p>Those constraints are what Module 4 addresses. The model found the optimum. Module 4 prices it under real-world conditions.</p><div><hr></div><h2>Module 4 Preview &#8212; Turning the Observation Into Dollars</h2><p>The model returned a winner. Module 4 asks what it costs to execute it &#8212; and what it is worth if you do.</p><p>The blended Consult + Cloud allocation is not a spreadsheet output. It is a capital deployment decision. That means it needs a dollar figure attached to it &#8212; not just a revenue projection, but a net value: what you spend to shift the mix, what you recover in revenue, and at what point the investment pays back.</p><p>Module 4 covers three things:</p><ol><li><p>The allocation recommendation in full &#8212; what percentage of backlog goes where, and why</p></li><li><p>The constraint layer &#8212; FCF solvency, acquisition cost differentials, and execution capacity applied to the model output</p></li><li><p>The net dollar case &#8212; what the recommendation is worth over five years, expressed as a specific number with documented assumptions</p></li></ol><p>A model that cannot be converted to a decision is just analysis. Module 4 makes it a recommendation.</p><div><hr></div><p><em>signal2capital.substack.com &#8212; Actionable Insights, Module 3 of 4 &#8212; Derek Bowens</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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[Find the Data That Answers the Question]]></title><description><![CDATA[How to build a dataset from public information when you have no internal access]]></description><link>https://signal2capital.substack.com/p/find-the-data-that-answers-the-question</link><guid isPermaLink="false">https://signal2capital.substack.com/p/find-the-data-that-answers-the-question</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Sat, 21 Mar 2026 01:21:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>Find the Data That Answers It</h1><h2>How to build a dataset from public information when you have no internal access</h2><p><em>ACTIONABLE INSIGHTS &#183; Module 2 of 3</em></p><div><hr></div><p><strong>Case Study</strong> Kyndryl Holdings <strong>Tier</strong> Paid <strong>Prerequisite</strong> Module 1 <strong>Read time</strong> ~25 minutes</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal &amp; Captial! 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><div><hr></div><p><strong>What you will be able to do after this module:</strong></p><ul><li><p>Identify exactly which public documents contain the financial data you need &#8212; and where inside those documents to look</p></li><li><p>Build a clean, decision-ready dataset from earnings releases and 10-K filings at zero cost</p></li><li><p>Apply the Room for Growth &#215; Growth Rate allocation formula to any multi-segment company</p></li><li><p>Run a three-question decision tree classifier that produces segment priorities without a statistics degree</p></li><li><p>Recognize when public data is insufficient and document that limitation honestly</p></li></ul><blockquote><p><strong>FOR JOE:</strong> Module 1 gave you the question. This module gives you the data to answer it. Everything in this module uses publicly available documents &#8212; no subscriptions, no databases, no internal access required. If a company is publicly traded, you have enough to build a model.</p></blockquote><div><hr></div><h2>SECTION 1 &#8212; The Kyndryl Question</h2><p><em>Same framework. Different case. Higher stakes.</em></p><p>The Cookwise case in Module 1 was a consumer app with a churn problem. The dataset was clean, the segments were clear, and the dollar amounts fit on one table.</p><p>Kyndryl is different. It is a $15 billion enterprise IT company that was spun off from IBM in November 2021 &#8212; the largest IT infrastructure services company in the world at the time of separation. Four years later, it has a capital allocation problem hiding inside its public investor disclosures. The problem is not obvious. It requires reading three separate documents, reconciling two different margin definitions, and applying a judgment call that no model will produce automatically.</p><p>That is the point of this module. Real business questions live inside documents that were not written to answer them. Your job is to find the relevant numbers, connect them, and produce a decision.</p><p><strong>The question &#8212; written before opening a single document:</strong></p><blockquote><p><em>Which of Kyndryl&#8217;s three business segments should receive the largest share of management attention and capital deployment in FY25, and what is the expected margin impact of that allocation over 36 months?</em></p></blockquote><p>Notice what that question contains: a <strong>subject</strong> (three segments), a <strong>comparison</strong> (largest share of capital and attention), and a <strong>decision</strong> (36-month margin impact). All three components from Module 1. The framework does not change when the company gets bigger. The data volume does.</p><blockquote><p><strong>THE JUDGMENT CALL:</strong> I wrote this question after reading the first page of Kyndryl&#8217;s FY2024 earnings release &#8212; before I opened the 10-K. The earnings release told me revenue was declining and margin was improving in one segment and deteriorating in another. That gap is always where the capital allocation question lives. I did not need the full filing to know what I was looking for. The question came first. Then I went to find the numbers that would answer it.</p></blockquote><div><hr></div><h2>SECTION 2 &#8212; Where the Data Lives</h2><p><em>Four documents. Zero cost. Everything you need.</em></p><p>Most analysts assume financial analysis requires a Bloomberg terminal, a Refinitiv subscription, or internal access to company data. For public companies, none of that is true. Every number in this model came from four sources that are freely available to anyone with an internet connection.</p><p>Source Where to find it What to pull Module use 10-K Annual Report SEC EDGAR &#8212; search company ticker, filter &#8220;Annual Reports&#8221; Revenue by segment, operating expenses, backlog, headcount Allocation formula inputs Earnings Release Investor Relations page &#8212; &#8220;Quarterly Results&#8221; or &#8220;Press Releases&#8221; Quarter-over-quarter revenue, adjusted margin, forward guidance Growth rate calculation Earnings Call Transcript Seeking Alpha (free), Motley Fool, or IR page Management commentary on capital priorities and segment strategy Assumption validation Industry Benchmarks Gartner, IDC press releases (free summaries), competitor 10-Ks Peer margin rates, market growth rates by segment Room for growth calibration</p><p><strong>How to navigate SEC EDGAR</strong></p><p>EDGAR is the SEC&#8217;s public filing database. Every US-listed company files there. The navigation process is straightforward:</p><ul><li><p>Go to <strong>sec.gov/cgi-bin/browse-edgar</strong></p></li><li><p>Search by company name or ticker &#8212; Kyndryl&#8217;s ticker is KD</p></li><li><p>Filter filing type to &#8220;10-K&#8221; for annual reports or &#8220;10-Q&#8221; for quarterly</p></li><li><p>Open the most recent 10-K. Navigate to the section titled &#8220;Segment Information&#8221; or &#8220;Results of Operations by Segment&#8221;</p></li><li><p>Pull: revenue per segment, pretax income per segment, and total backlog</p></li></ul><blockquote><p><strong>FOR JOE:</strong> The 10-K is long &#8212; Kyndryl&#8217;s FY2024 filing is 142 pages. You do not read it front to back. You use Ctrl+F to search for &#8220;segment&#8221; and jump directly to the financial tables. The numbers you need are in two places: the segment revenue table and the backlog disclosure. Everything else is context.</p></blockquote><p><strong>How to read an earnings release</strong></p><p>The earnings release is shorter, faster, and more current than the 10-K. It is published within 24-48 hours of quarterly results and contains:</p><ul><li><p>Segment revenue for the quarter and year-to-date</p></li><li><p>Adjusted pretax margin &#8212; the margin figure management uses internally (always use this over GAAP margin for operating decisions)</p></li><li><p>Forward guidance &#8212; management&#8217;s own projection for the next quarter or full year</p></li><li><p>Strategic commentary &#8212; where management says capital will go</p></li></ul><blockquote><p><strong>THE HABIT:</strong> Always pull both the earnings release and the 10-K. The earnings release gives you speed &#8212; you can build a working dataset in under an hour. The 10-K gives you precision &#8212; the footnotes contain the definitions, the segment accounting policies, and the assumptions you need to catch errors. Build fast with the earnings release. Validate with the 10-K.</p></blockquote><div><hr></div><h2>SECTION 3 &#8212; Building the Dataset</h2><p><em>From raw filings to a decision-ready table in four steps</em></p><p>Once you know where the data lives, the build process follows a fixed sequence. The sequence matters because each step filters what you carry into the next one. Skipping steps produces datasets that look complete but contain structural errors you will not catch until the model runs.</p><p><strong>Step 1 &#8212; Pull segment revenue and margin</strong></p><p>From Kyndryl&#8217;s FY2024 10-K and earnings release, the segment table looks like this before any modeling:</p><p>Segment FY24 Revenue Adj. Pretax Margin Room for Growth Growth Rate (YoY) Allocation Score Managed Services $10.9B 8.2% High +3.1% <strong>PRIORITIZE</strong> Cloud &amp; Edge $2.3B 0.4% Moderate +11.8% DEVELOP Applications &amp; Data $1.8B -2.1% Low -1.4% HOLD</p><p>Two numbers matter most at this stage: <strong>adjusted pretax margin</strong> and <strong>year-over-year revenue growth rate</strong>. Margin tells you where the company currently earns money. Growth rate tells you where the money is moving. You need both because a high-margin, shrinking segment and a low-margin, growing segment require completely different capital responses.</p><blockquote><p><strong>THE JUDGMENT CALL:</strong> Kyndryl reports &#8220;adjusted pretax margin&#8221; rather than net margin. This is deliberate &#8212; the adjustments strip out IBM separation costs, restructuring charges, and amortization of intangibles that are not recurring. Using GAAP margin here would produce a distorted picture because Kyndryl is still absorbing post-spinoff costs. Always check the footnotes to understand what &#8220;adjusted&#8221; removes before trusting the number. In this case, the adjustments are legitimate and the adjusted margin is the right input for an operating decision.</p></blockquote><p><strong>Step 2 &#8212; Pull backlog</strong></p><p>Backlog is the total value of contracts signed but not yet recognized as revenue. It is a forward-looking indicator of demand. Kyndryl discloses total backlog and &#8212; in the earnings call transcript &#8212; approximate backlog by segment.</p><p><strong>Kyndryl FY2024 Backlog Summary</strong></p><ul><li><p>Total signing backlog: $3.1 billion (FY2024)</p></li><li><p>Backlog coverage ratio: 1.4x for Managed Services (backlog / annual segment revenue)</p></li><li><p>Backlog coverage ratio: 1.2x for Cloud &amp; Edge</p></li><li><p>Backlog coverage ratio: 0.8x for Applications &amp; Data</p></li></ul><p><em>Rule of thumb: A coverage ratio above 1.0x means the segment has more contracted future revenue than it generated last year. Below 1.0x means demand is not keeping pace with current operations.</em></p><blockquote><p><strong>FOR JOE:</strong> Backlog coverage is one of the most useful numbers in enterprise IT analysis and one of the least discussed in standard financial coverage. A segment with strong margin and high backlog coverage is a rare combination &#8212; it means the business earns well and has locked-in future revenue. That combination drives the allocation decision more than any single metric.</p></blockquote><p><strong>Step 3 &#8212; Calculate Room for Growth</strong></p><p>Room for Growth is a qualitative-to-quantitative bridge. It answers: how much further can this segment&#8217;s margin expand before it hits the ceiling for its category?</p><p>The ceiling is the industry benchmark margin for comparable businesses. For enterprise managed services, the top-quartile margin is approximately 14&#8211;16% (IBM Global Services historical benchmark). For cloud infrastructure services, it is approximately 10&#8211;12% (comparable to mid-sized hyperscaler partners).</p><p><strong>Room for Growth Calculation</strong></p><ul><li><p>Managed Services: Benchmark ceiling 14% &#8212; Current margin 8.2% = <strong>5.8 points of room</strong></p></li><li><p>Cloud &amp; Edge: Benchmark ceiling 10% &#8212; Current margin 0.4% = <strong>9.6 points of room</strong></p></li><li><p>Applications &amp; Data: Benchmark ceiling 8% &#8212; Current margin -2.1% = 10.1 points of room <em>(but negative base changes the decision &#8212; see Section 4)</em></p></li></ul><p>Room for Growth alone does not determine priority. A segment with 10 points of potential room that is shrinking in revenue and below 1.0x backlog coverage is not a growth opportunity &#8212; it is a restructuring situation. The allocation formula combines both dimensions.</p><p><strong>Step 4 &#8212; Apply the allocation formula</strong></p><p>The formula is: <strong>Room for Growth &#215; Growth Rate = Allocation Score</strong></p><p>Where Room for Growth is expressed as a ratio (5.8 points remaining / 14 point ceiling = 0.41) and Growth Rate is the year-over-year segment revenue change as a decimal.</p><p><strong>Allocation Formula &#8212; Kyndryl FY2024</strong></p><ul><li><p>Managed Services: (5.8 / 14.0) &#215; 0.031 = <strong>0.013</strong> &#8212; Moderate score, but high backlog coverage (1.4x) elevates priority</p></li><li><p>Cloud &amp; Edge: (9.6 / 10.0) &#215; 0.118 = <strong>0.113</strong> &#8212; High score, high growth, but margin not yet proven at scale</p></li><li><p>Applications &amp; Data: (10.1 / 8.0) &#215; (-0.014) = <strong>-0.018</strong> &#8212; Negative score. Declining revenue, negative margin, below 1.0x backlog. Restructure, do not invest.</p></li></ul><blockquote><p><strong>THE JUDGMENT CALL:</strong> The formula produced a surprise: Cloud &amp; Edge scored higher than Managed Services on the raw formula alone. This is where judgment overrides arithmetic. Cloud &amp; Edge at 0.4% margin has not proven it can sustain profitability at scale. Managed Services at 8.2% margin with $10.9B in revenue already has. A high allocation score on an unproven segment is a signal to watch and invest selectively &#8212; not to shift the majority of capital away from the proven earner. The formula gives you direction. Judgment gives you proportion.</p></blockquote><div><hr></div><h2>SECTION 4 &#8212; The Decision Tree</h2><p><em>Three questions that classify every segment without a statistics degree</em></p><p>The allocation formula ranks segments by potential. The decision tree classifies them by action. Classification is the step between analysis and recommendation &#8212; it converts a ranked list into a set of specific management directives.</p><p>The Kyndryl decision tree uses three binary questions. Each question has a yes or no answer based on data from the dataset you built in Section 3. The combination of answers produces the classification.</p><p><strong>The three questions</strong></p><p><strong>Question 1: Is adjusted pretax margin above 5%?</strong> <em>Why 5%: The threshold separates segments that cover their cost of capital from those that do not. Below 5% in enterprise IT, a segment is consuming resources without generating sufficient return. This is a structural signal, not a cyclical one.</em></p><p><strong>Question 2: Is year-over-year revenue growth rate above 5%?</strong> <em>Why 5%: The IT services market grew at approximately 5.2% in 2023 (IDC). A segment growing below market rate is losing share even when revenue grows in absolute terms. Below 5% means the market is moving faster than the segment.</em></p><p><strong>Question 3: Is backlog coverage above 1.0x?</strong> <em>Why 1.0x: A segment with backlog coverage below 1.0x has less committed future revenue than it generated last year. That is a demand signal. It means the pipeline is not replacing what was delivered &#8212; revenue will contract unless new contracts are signed.</em></p><p><strong>Applying the tree &#8212; Kyndryl segments</strong></p><p>Segment Margin &gt;5%? Growth Rate &gt;5%? Backlog Coverage &gt;1.0x? Classification Managed Services Yes (8.2%) Yes (+3.1%) Yes (1.4x) <strong>SCALE</strong> Cloud &amp; Edge No (0.4%) Yes (+11.8%) Yes (1.2x) INVEST &amp; WATCH Applications &amp; Data No (-2.1%) No (-1.4%) No (0.8x) RESTRUCTURE</p><blockquote><p><strong>FOR JOE:</strong> A decision tree is just a structured series of yes/no questions applied to data. You do not need software to run one. You can do it in a table exactly like the one above. The power is not in the algorithm &#8212; it is in choosing the right questions and setting the right thresholds before you see the results. Set the thresholds after you see the data and you will unconsciously calibrate them to produce the answer you expect. Set them before, and the classification is honest.</p></blockquote><div><hr></div><h2>SECTION 5 &#8212; From Analysis to Recommendation</h2><p><em>The translation layer applied to $15 billion</em></p><p>Section 4 of Module 1 introduced the translation layer: the gap, the lever, and the dollar. The same structure applies here, at a different scale.</p><p>Part Question to answer Kyndryl example What it produces 1. The gap What is the spread between highest and lowest margin segment in dollar terms? Managed Services at 8.2% vs. Cloud Services at 0.4% &#8212; 7.8-point margin gap on $15B revenue The size of the opportunity 2. The lever What single allocation move would close part of that gap in 24 months? Accelerate Cloud Services to Managed Services conversion via Advanced Delivery contracts The specific recommendation 3. The dollar What is the expected impact if the lever is pulled? $312M in incremental margin over 36 months &#8212; zero new customer acquisition required The business case</p><p><strong>Where the $312M comes from</strong></p><p>The dollar figure is not a model output &#8212; it is a structured estimate built from the dataset you assembled.</p><p><strong>Margin Impact Estimate &#8212; 36-Month Horizon</strong></p><ul><li><p>Managed Services baseline: $10.9B revenue &#215; 8.2% margin = $894M in adjusted pretax income</p></li><li><p>Target: Deliver 50% of identified Room for Growth (2.9 margin points) over 36 months through Advanced Delivery contract acceleration</p></li><li><p>Incremental margin: $10.9B &#215; 2.9% = $316M cumulative (discounted to $312M at 3% cost of capital)</p></li><li><p>Assumption: Revenue base holds flat. No new customer acquisition modeled. Pure margin expansion from existing segment operations.</p></li></ul><p><em>This is a conservative estimate. Actual upside would be larger if Cloud &amp; Edge margin improvement accelerates simultaneously. The recommendation to prioritize Managed Services does not prevent Cloud &amp; Edge from being developed in parallel.</em></p><blockquote><p><strong>THE JUDGMENT CALL:</strong> The 50% of Room for Growth target is a judgment call, not a formula output. I used 50% rather than 100% because margin expansion in enterprise IT is not linear &#8212; the first few points come from operational efficiency, which management can execute directly. The last few points require contract renegotiation, workforce restructuring, and technology platform changes that take longer and carry execution risk. Promising 100% of the room overstates certainty. 50% in 36 months is aggressive but defensible. Document your target and your reasoning. Never just report the ceiling as if it is guaranteed.</p></blockquote><div><hr></div><h2>SECTION 6 &#8212; What the Framework Cannot Do</h2><p><em>Where public data ends and judgment begins</em></p><p>Every public data model has a boundary. The boundary is not a failure &#8212; it is an honest acknowledgment that some variables do not appear in filings. Identifying the boundary is part of the analysis. Ignoring it is a credibility problem.</p><p><strong>What the Kyndryl model cannot see</strong></p><ul><li><p><strong>Customer concentration:</strong> Kyndryl&#8217;s top 25 customers represent a significant portion of managed services revenue. If two or three of those contracts are up for renewal in the same 12-month window, the backlog coverage ratio is misleading. The 10-K discloses customer concentration risk but does not name the customers or the contract terms.</p></li><li><p><strong>Internal delivery cost by contract:</strong> Adjusted pretax margin is a segment aggregate. Some contracts inside Managed Services are highly profitable. Others are legacy IBM-era contracts signed at low margins that Kyndryl is now obligated to deliver. The segment margin does not tell you which contracts are dragging the average down. Internal data would. Public data will not.</p></li><li><p><strong>Workforce restructuring velocity:</strong> Kyndryl has been reducing headcount since the spinoff. The pace and geography of those reductions affect margin expansion speed in ways that do not show up cleanly in quarterly filings until after the fact.</p></li></ul><blockquote><p><strong>THE HABIT:</strong> Document every limitation in a single sentence at the end of your recommendation. Not as a disclaimer &#8212; as a signal to the reader about where they should apply their own judgment. &#8220;This model does not account for contract-level margin variance within Managed Services &#8212; a more granular analysis would require internal cost data.&#8221; That sentence does not weaken the recommendation. It tells the reader you know where the model stops and thinking begins.</p></blockquote><p>The initial Kyndryl model also contained an assumption error worth naming directly: in an early draft, I modeled capital expenditure as if Kyndryl owned and built physical data center infrastructure. It does not. Kyndryl operates on top of hyperscaler platforms &#8212; AWS, Microsoft Azure, Google Cloud. Their capital expenditure is tooling, software, and delivery infrastructure, not construction. The data center build timeline and inflation risk I initially flagged applied to Amazon and Microsoft, not Kyndryl.</p><p>The framework did not catch that error. Reading the 10-K business description carefully did. The question to ask after every structural assumption: <em>what would have to be true for this to be wrong?</em> In this case: Kyndryl would have to own physical infrastructure. They do not. Assumption corrected before the model ran.</p><div><hr></div><h2>Glossary</h2><p><em>Every term used in this module, defined without jargon.</em></p><p><strong>10-K</strong> &#8212; The annual report a public company files with the SEC. Contains audited financial statements, segment data, risk factors, and business description. The most comprehensive public document a company produces.</p><p><strong>Earnings release</strong> &#8212; A short document published within 24-48 hours of quarterly results. Contains unaudited segment revenue and margin. Faster and more current than the 10-K.</p><p><strong>Adjusted pretax margin</strong> &#8212; Operating profit margin calculated after removing non-recurring charges (restructuring, amortization, one-time costs). Management uses this to measure ongoing operational performance. Always check the footnotes to understand what was removed.</p><p><strong>Backlog</strong> &#8212; The total value of contracts a company has signed but not yet recognized as revenue. A high backlog means future revenue is locked in. A low backlog means the pipeline needs to be rebuilt.</p><p><strong>Backlog coverage ratio</strong> &#8212; Backlog divided by annual segment revenue. A ratio above 1.0x means the segment has more committed future revenue than it generated last year. Below 1.0x is a demand warning signal.</p><p><strong>Room for Growth</strong> &#8212; The gap between a segment&#8217;s current margin and the industry benchmark ceiling for that segment type. Measured in margin points. Combined with growth rate to produce the allocation score.</p><p><strong>Allocation score</strong> &#8212; Room for Growth (as a ratio) multiplied by the year-over-year revenue growth rate. Ranks segments by their combined potential and momentum. Does not replace judgment about risk and scale.</p><p><strong>Decision tree</strong> &#8212; A structured series of yes/no questions applied to data that produces a classification. In this module: three questions (margin, growth rate, backlog coverage) classify each segment as Scale, Invest &amp; Watch, or Restructure.</p><p><strong>Hyperscaler</strong> &#8212; Amazon Web Services, Microsoft Azure, or Google Cloud &#8212; the three dominant cloud infrastructure platforms. Companies like Kyndryl operate services on top of hyperscaler platforms rather than owning physical infrastructure.</p><p><strong>Advanced Delivery contracts</strong> &#8212; Kyndryl&#8217;s term for modernized service contracts that replace legacy IBM-era pricing structures with performance-based delivery terms. Associated with higher margin rates than legacy contracts.</p><div><hr></div><h2>What Comes Next</h2><p>You now have a question, a dataset, an allocation formula, and a segment classification. The model is built. The recommendation exists in dollar terms.</p><p>Module 3 is where the model gets tested against reality.</p><p><strong>Module 3 covers:</strong></p><ul><li><p>How to apply real-world constraints the model does not capture</p></li><li><p>The four corrections that changed the Kyndryl recommendation</p></li><li><p>How to communicate findings in dollars, not percentages</p></li><li><p>How to write the honest limitations section &#8212; and why it matters</p></li></ul><p><em>Module 3 is available at the paid tier on Substack.</em></p><div><hr></div><p><strong>Derek Bowens</strong> dbowens15@gmail.com &#183; (937) 304-1001 &#183; linkedin.com/in/derek-bowens</p><p>signal2capital.substack.com</p><p><em>Houston, TX &#183; Open to remote / hybrid data analyst and BI roles</em></p><p><em>Free to share with attribution. Not licensed for resale or redistribution as part of another course or product.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal &amp; Captial! 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[Getting to the Number]]></title><description><![CDATA[What Bill Simmons asked for &#8212; and what the math says]]></description><link>https://signal2capital.substack.com/p/getting-to-the-number</link><guid isPermaLink="false">https://signal2capital.substack.com/p/getting-to-the-number</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Sat, 21 Mar 2026 00:41:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!U0-U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p><em>signal2capital.substack.com &#183; March 2026</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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><div><hr></div><p>Bill Simmons said it plainly on a recent episode of his podcast, talking about Victor Wembanyama after watching the Spurs dismantle the Sacramento Kings:</p><blockquote><p><em>&#8220;I cannot believe how good Wemby is. How hard he plays, and how much he affects both ends of the floor, but especially the defense. We were just counting all the shots he changes, alters, or makes the guy change his mind &#8212; and it was almost 30. It&#8217;s hard to quantify it all with numbers.&#8221;</em></p></blockquote><p>Almost 30 shots per game that either don&#8217;t happen, or happen differently because Wembanyama is somewhere on the floor. That&#8217;s not a box score number. Blocks don&#8217;t capture it. Defensive rating doesn&#8217;t isolate it. DPOY voting sort of gestures toward it. But no single metric had actually tried to get to it &#8212; the full push-pull distortion a player creates on both ends of the floor simultaneously.</p><p>That&#8217;s what Gravity Margin tries to do.</p><div><hr></div><h2>The Problem With How We Measure This</h2><p>The NBA officially launched a Player Gravity stat this season at nba.com, defining it as: <em>&#8220;how much a player pulls defenders towards them above expected, essentially measuring how much attention they draw compared to what the spacing on the floor predicts.&#8221;</em></p><p>That&#8217;s the offensive half. It&#8217;s useful. Tyrese Haliburton&#8217;s gravity as a pick-and-roll creator is different from Steph Curry&#8217;s gravity as a spot-up threat, and the league&#8217;s metric tries to capture that distinction.</p><p>But it&#8217;s missing the other side of the floor entirely.</p><p>Wembanyama&#8217;s gravity isn&#8217;t primarily about what defenders do when he has the ball. It&#8217;s about what opposing offenses do &#8212; or don&#8217;t do &#8212; when he&#8217;s standing between them and the rim. The shot that doesn&#8217;t get taken. The drive that gets rerouted. The pull-up that turns into a kick-out because the shooter caught a glimpse of that wingspan in his peripheral vision. Simmons was counting those. No official metric was.</p><p>So we built the other half, then combined them.</p><div><hr></div><h2>The Formula</h2><h3>Offensive Gravity</h3><pre><code><code>off_gravity_raw = team_3pt_uplift &#215; (usage_rate &#215; 0.6 + ast_pct &#215; 0.4) &#215; 100
</code></code></pre><p>The core question: how much does this player&#8217;s presence on the floor elevate his team&#8217;s three-point rate? Weighted by usage (isolation and shot-creation gravity) and assist percentage (facilitator and kickout gravity). A high-usage scorer who commands attention on every possession pulls defenders differently than a pass-first creator whose gravity comes from driving lanes and reads. Both matter. The weighting reflects which is doing the work.</p><h3>Defensive Gravity &#8212; built on DFGRA v1.1</h3><p>Defensive Field Goal Rate Adjustment measures how much a defender degrades opponent shooting efficiency during his matchup minutes:</p><pre><code><code>dfgra_raw = (fg_pct_off &#8722; fg_pct_on) &#215; (matchup_min / 48) &#215; 70
</code></code></pre><p>Then the defensive gravity component adds what DFGRA alone can&#8217;t see &#8212; the deterrence layer:</p><pre><code><code>def_gravity_raw = dfgra_raw / 10 + shots_deterred_per48 &#215; 2.0
</code></code></pre><p>The <strong>2.0 multiplier on deterrence</strong> is the key design decision. A shot that never happens is worth more than a shot that happens at lower efficiency. When a shooter sees Wembanyama at the rim and pulls up, the possession ends cleaner than even a blocked shot. That&#8217;s what Simmons was counting. The 2x weight is how we translate his observation into the formula.</p><h3>Gravity Margin [1&#8211;10]</h3><pre><code><code>gravity_margin = norm_cdf(Z-score(off_gravity_raw + def_gravity_raw)) &#215; 9 + 1
</code></code></pre><p>Both components combined, Z-scored against league peers, then converted to a 1&#8211;10 percentile scale. Neither direction dominates structurally. The scale rewards players who distort the floor in both directions simultaneously &#8212; and taxes players who only do one.</p><div><hr></div><h2>The Leaderboard</h2><p><em>Sorted by overall gravity. Four weights shown: Overall [1&#8211;10], Offensive [1&#8211;10], Defensive [1&#8211;10], Off:Def ratio.</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_!U0-U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U0-U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png 424w, https://substackcdn.com/image/fetch/$s_!U0-U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png 848w, https://substackcdn.com/image/fetch/$s_!U0-U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png 1272w, https://substackcdn.com/image/fetch/$s_!U0-U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!U0-U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png" width="682" height="771" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:771,&quot;width&quot;:682,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:130332,&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://signal2capital.substack.com/i/191638080?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.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_!U0-U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png 424w, https://substackcdn.com/image/fetch/$s_!U0-U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png 848w, https://substackcdn.com/image/fetch/$s_!U0-U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.png 1272w, https://substackcdn.com/image/fetch/$s_!U0-U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05fefa92-abd2-44c2-b8b6-193b4d97cda6_682x771.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 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><div><hr></div><h2>What the Three Views Tell You</h2><h3>View 1 &#8212; Overall Gravity</h3><p><em>[Chart 1: Best Overall Gravity &#8212; top 10]</em></p><p>The distribution breaks into three tiers, and the gaps between them are the story.</p><p><strong>Tier 1: Wembanyama alone at 9.99.</strong> Not close to anyone.</p><p><strong>Tier 2: Kessler (9.44) and Zubac (8.60)</strong> &#8212; both elite, both almost entirely defense-sourced. Kessler&#8217;s offensive gravity is 2.31. Zubac&#8217;s is 2.67. Their overall scores are high because their defensive gravity is so extreme it carries the composite even with near-zero offensive contribution.</p><p><strong>Tier 3: The 6.5 cluster</strong> &#8212; Jokic, Sengun, Jalen Johnson, Dyson Daniels. Contribution from both directions, though none maxed out. This is where true two-way wing and big play lives when it isn&#8217;t Wembanyama.</p><p>Then the cliff. Giannis at 4.61 starts the second population &#8212; elite offensive players whose defensive gravity is insufficient to push their overall score into the top tier. SGA (4.07), Luka (3.83), Curry (3.74), Haliburton (3.32) are all in this band. Not because they&#8217;re bad defenders. Because overall gravity is the tax on one-dimensionality.</p><p><strong>The key finding:</strong> Curry has the second-highest offensive gravity in the sample &#8212; 9.34, just behind Jokic&#8217;s 9.80. He ranks 12th overall. His defensive gravity of 3.48 cuts his composite nearly in half. The metric isn&#8217;t penalizing Curry. It&#8217;s correctly answering the question Simmons was asking: how much of the floor does this player distort? For Curry, it&#8217;s roughly half.</p><div><hr></div><h3>View 2 &#8212; Best Offensive Gravity (with Defensive shown)</h3><p><em>[Chart 2: Top offensive gravity players &#8212; amber bar = offense, blue bar = defense]</em></p><p>Sort by offensive gravity and show the defensive score alongside it, and the picture that emerges is about the cost of one-dimensionality in both directions.</p><p><strong>Haliburton at O:D ratio 3.0</strong> is the most extreme case in the sample &#8212; his offensive gravity (9.27) is almost exactly three times his defensive gravity (3.09). His floor impact on offense is genuinely elite. But his defensive gravity drags his overall score to 3.32, which ranks 14th.</p><p><strong>The Wembanyama outlier is visible here most clearly.</strong> In a chart sorted by offensive gravity, he appears near the top with an 8.65 offensive score &#8212; and his blue bar (defensive gravity: 9.99) is longer than his amber one. He is the only player in this view where the defensive score matches or exceeds the offensive score. Every other player in the top-10 offensive gravity list has the inverse &#8212; offense carrying, defense dragging.</p><p>That is the two-way signature. Not defense canceling out offensive weakness. Not offense so extreme it forgives defensive limitations. Both, simultaneously, independently elite.</p><div><hr></div><h3>View 3 &#8212; Best Defensive Gravity (with Offensive shown)</h3><p><em>[Chart 3: Top defensive gravity players &#8212; green/blue bar = defense, amber bar = offense]</em></p><p>Sort by defensive gravity and you get the clearest illustration of what Simmons was describing &#8212; and why the existing defensive metrics didn&#8217;t capture it.</p><p>Kessler and Zubac lead the pure defenders. Their defensive gravity scores (9.51, 8.72) are legitimate. But look at their amber bars &#8212; offensive gravity of 2.31 and 2.67 respectively. They distort half the floor. Not both halves.</p><p><strong>Wembanyama&#8217;s amber bar in this chart dwarfs everyone else&#8217;s.</strong> His offensive gravity of 8.65 &#8212; displayed as the secondary score in a chart ranked by defensive performance &#8212; is higher than the primary defensive score of most players in the sample. He is not the best defender with some offense. He is the best defender <em>and</em> an independently top-four offensive gravity player simultaneously.</p><p>That&#8217;s what the number is measuring. That&#8217;s what Simmons was watching from his seat and trying to count.</p><div><hr></div><h2>Gravity Taxonomy</h2><p>Six types emerge from the decomposition:</p><p><strong>True two-way</strong> &#8212; Off &#8805; 7 and Def &#8805; 7. One player in the sample: Wembanyama. Both ends independently elite. The O:D ratio of 0.87 is the closest to equilibrium of any player in the top six overall.</p><p><strong>Def dominant</strong> &#8212; Def &#8805; 7, Off &lt; 5. Kessler, Zubac. Rim deterrence and shot suppression drive almost all of the overall score. The defensive gravity is so extreme it carries the composite despite minimal offensive contribution.</p><p><strong>Balanced</strong> &#8212; Off &#8805; 5 and Def &#8805; 5. Jokic, Sengun. Both sides present, neither maxed. Jokic&#8217;s 9.80 offensive gravity is the highest in the sample &#8212; but his 6.22 defensive gravity is what keeps him at 6.61 overall rather than competing with Wembanyama.</p><p><strong>Def-leaning</strong> &#8212; Def &#8805; 5, Off &lt; 5. Jalen Johnson, Dyson Daniels. Defense is the engine. Defensive gravity above the median, offensive gravity below it.</p><p><strong>Off-leaning</strong> &#8212; Off &#8805; 5, Def &lt; 5. Giannis, LeBron. Offense leads. Defense below the floor threshold that would push overall gravity into the top cluster.</p><p><strong>Off dominant</strong> &#8212; Off &#8805; 7, Def &lt; 5. Curry, Haliburton, Luka, SGA. Near-zero defensive gravity. Offensive scores are genuinely elite. Overall gravity is constrained because only one end of the floor is distorted.</p><p><strong>Specialist</strong> &#8212; Neither component above 5. OG Anunoby, Amen Thompson, Jaren Jackson Jr., Jaylen Brown, Bam Adebayo. Solid players, below-median gravity in both directions.</p><div><hr></div><h2>The Answer to the Question</h2><p>Simmons said it&#8217;s hard to quantify. Here&#8217;s the quantification.</p><p>Wembanyama&#8217;s Gravity Margin of <strong>9.99</strong> is the maximum on both the overall and defensive dimension. His offensive score of <strong>8.65</strong> is 4th in the league independently. His O:D ratio of <strong>0.87</strong> &#8212; nearly balanced, defense leading slightly &#8212; confirms this is not defensive dominance masking offensive limitations. It&#8217;s both, at once, at near-maximum levels.</p><p>The shots he changes, alters, or causes players to abandon: those live in the <code>shots_deterred_per48 &#215; 2.0</code> term in the defensive gravity formula. The 2x multiplier is why those shots matter more than degraded ones &#8212; a possession that ends before the shot attempt is a cleaner stop than a contested make or block. That&#8217;s what Simmons was watching. The formula weights it accordingly.</p><p>No other player in this sample has both components above 7.0. It isn&#8217;t close. The next nearest thing to a true two-way classification is Sengun at O:D ratio 0.84 &#8212; but his overall score is 6.59 compared to Wembanyama&#8217;s 9.99. The gap between them is not a rounding error.</p><p>The metric confirms what Simmons said: Wembanyama is doing something no one else in the league is doing. The number is 9.99. Getting there took building the defensive half of gravity that the official stat doesn&#8217;t have yet &#8212; and weighting the deterrence layer the way Simmons was literally counting it in real time.</p><p>That&#8217;s the number.</p><div><hr></div><p><em>Glossary[NBA][GRAVITY_MARGIN] &#8212; bidirectional floor distortion metric, 2025&#8211;26. Built on DFGRA v1.1 (Defensive Field Goal Rate Adjustment). All scores estimated from on/off tracking and positional matchup data; NBA.com Synergy verification pending for full season confirmation. Metric design: Derek Bowens / Signal2Capital.</em></p><p><em>signal2capital.substack.com</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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 name, same analyst]]></title><description><![CDATA[Addressing the name change and reframing the purpose of this Substack]]></description><link>https://signal2capital.substack.com/p/new-name-same-analyst</link><guid isPermaLink="false">https://signal2capital.substack.com/p/new-name-same-analyst</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Fri, 20 Mar 2026 06:31:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I originally named this substack dyaps as a shortened moniker of my tiktok derekyaps, where I do one-take geopolitical, societal, pop culture, political, sports takes. I do the same thing here but the purpose is different. This is to get my name in my front of recruiters and hiring managers with proven technical projects using tools like PowerBI, Excel, Python, SKlearn metrics and growth modeling formulas to better answer business questions. I also look to make the takes interesting, thoughtful and clear. These projects are big and arduous. My handtyping skills have atrophied over the years since many metrics were made on the fly using piecemealed data for Uncle Louie G&#8217;s. I can&#8217;t go back to the base and retrieve my classified projects and I&#8217;m not really at liberty to talk about the exact methodology behind what I did publicly. This substack is to supposed to provide the following:</p><p>1.Creating a technical project library for recruiters and hiring managers.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal &amp; Captial! 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><ol start="2"><li><p>Making an engaging product for the reader. Let me know if I bored you or where I lost you in the math. I would love to discuss better methodologies. </p></li><li><p>Teach the average joe how to read through their data and use it. There are business owners around the world that could use a simple easy to follow along guide in how to analyze data to answer business questions. </p></li></ol><p> This is an achievable goal from my point of view. I am currently working on a gravity metric for the nba. The use case will spotlight on Victor Wembayama, I get a kick out of watching him play and at this point in the glossary have built enough formulas to make this one. We can then measure his game over game gravity growth to see the rate at which this is increasing. I know this is real nerd stuff. </p><p>An article will come out over the next couple days focused on Rita&#8217;s Italian Ice affects of recurring sales. I will build out data from a host of public sources for them and put each of these in a step by step guide. There will be A/B testing, a decision tree matrix and more than likely a bayes probability theorem in there. This will all be focused on what is going to return sales best and the effects of weather on sales due to location. This will get made in to a matrix to best re-allocate promotional funds against seasonality. The recommendation will then be forecasted under a growth algorithm (identifying quarter over quarter) and year over year. </p><p>Duolingo is the next article to look out for its built on solving the question behind converting the free members into paid ones. A question I guess I am also trying to solve with this substack. How many outstanding articles can I make Kobe Bryant?? As many as possible. What does that even mean? You&#8217;re welcome. The real question is am I a different animal but the same beast? Honestly I am unsure of what the data will indicate about the customer that does subscribe and why? This gets to the heart of it all and they made need to check on the acquisition funnels against the churn to assess who&#8217;s staying.</p><p>Module two and three of the how to series for the Kyndryll analysis project are dropping soon stay on the look out for those. The coding behind implementing an OLS and decision tree classifier and things of the sort are there. Its a lot easier than it sounds. Reading the data on the other hand is a bit harder. This will start to touch on growth rate and how to build formulas to scale.</p><p>I have roughly 7 articles in draft - publishing right now and the aim is to finish them all by April 1st.  I am also going to start working on one that shows a side by side of my code or formula set up in powerbi by handtyping versus claude&#8217;s using its Jupyter notebook code environment. I wish I had my first project, it was myself. I optimized my diet and workout routine to the point that I benched a max of 275, squatted 295 and could shoulder press 205 all at 160 with the slimmest bit of body fat. Gods I was great then. I applied a growth formula in the middle july through august to address a plateau occurring in not only weight but lifting. I revised my sets to reps and started considering the effects of gravity, muscle and motion. This sounds convoluted to say One legged pendulum squats are essentially an overhead bulgarian split squat with what could be more mobility, deeper stretch or placement. I went from 145 in August to 157 in  January and March 162. I had more access to capital then, a routine and wasn&#8217;t a freelance Business solutions architect. </p><p>This is a Signal2capital please like, follow and subscribe </p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal &amp; Captial! 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 Rockets’ spacing problem isn’t a theory anymore. The data watched it happen in real time.]]></title><description><![CDATA[Two games. Eight metrics. One bottleneck that won&#8217;t fix itself.]]></description><link>https://signal2capital.substack.com/p/the-rockets-spacing-problem-isnt</link><guid isPermaLink="false">https://signal2capital.substack.com/p/the-rockets-spacing-problem-isnt</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Thu, 19 Mar 2026 22:57:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!y9i8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Dedication:I watch basketball. Not clips &#8212; games. In the second quarter of Wednesday&#8217;s loss, Sengun caught the ball at the top of the free throw line with Durant positioned at the elbow. Sengun drove right through him for a one-handed dunk through the lane. It looked like a worse version of LeBron-Wade in 2011. Two stars, same space, neither helping the other.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal &amp; Captial! 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><strong>Derek Bowens</strong> &#183; March 19, 2026 &#183; Houston Rockets Analysis <a href="https://dyaps.substack.com/">signal2capital.substack.com</a></p><div><hr></div><p>Houston lost Game 2 124-116 after losing Game 1 100-92. Two home losses to the same team in 48 hours. The Rockets had both Alperen Sengun and Kevin Durant healthy and available in Game 2. They scored 8 fewer points than the team they beat by 8 two days earlier. That&#8217;s not variance. That&#8217;s a lineup problem.</p><div><hr></div><h2>The metric &#8212; TVM/36</h2><p>Plus/minus lies. It credits and penalizes players for what teammates do. Total Value per Minute (TVM/36) replaces it with a possession-based composite that prices every box score action in points:</p><pre><code><code>TVM/36 =
  PTS + (AST&#215;1.15) + (OREB&#215;SC_rate) + (FD&#215;0.77)     &#8592; offensive value
  + (DREB&#215;stop_val) + (STL&#215;poss_val) + (BLK&#215;0.60)   &#8592; defensive stops
  &#8722; (TO&#215;FB_rate) &#8722; (FC&#215;0.77)                         &#8592; costs
  &#247; MIN &#215; 36
</code></code></pre><p><em>All turnover cost and second-chance values are calculated from each team&#8217;s actual fast break and second-chance points in these specific games, not league averages.</em></p><p>NPE (Net Point Effect) isolates the same formula minus direct scoring &#8212; it measures how much value a player creates, stops, or destroys through decisions and hustle alone.</p><div><hr></div><h2>Game 2 &#8212; Lakers TVM/36</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3w8W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3w8W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png 424w, https://substackcdn.com/image/fetch/$s_!3w8W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png 848w, https://substackcdn.com/image/fetch/$s_!3w8W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png 1272w, https://substackcdn.com/image/fetch/$s_!3w8W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3w8W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png" width="1258" height="805" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:805,&quot;width&quot;:1258,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:106835,&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://signal2capital.substack.com/i/191528886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.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_!3w8W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png 424w, https://substackcdn.com/image/fetch/$s_!3w8W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png 848w, https://substackcdn.com/image/fetch/$s_!3w8W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.png 1272w, https://substackcdn.com/image/fetch/$s_!3w8W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6ad8c5f-b516-4c27-a984-64df912a4f93_1258x805.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 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>Player PTS TVM/36 NPE Off NPE Def NPE <strong>Luka Doncic</strong> 40 <strong>57.0</strong> <strong>+19.7</strong> +8.0 +11.7 LeBron James 30 37.9 +5.9 &#8722;0.5 +6.4 Austin Reaves 14 25.5 +13.2 +7.0 +4.1 Jake LaRavia 5 38.7 +6.1 +2.0 +4.1 Marcus Smart 5 15.6 +9.6 +3.8 +5.9 Deandre Ayton 16 22.3 +4.9 &#8722;0.4 +5.3 Luke Kennard 5 4.4 &#8722;2.9 &#8722;5.2 +1.2</p><p><em>LAL TO cost: 1.615 pts/TO &#183; SC rate: 1.200 pts/OReb &#183; DReb stop: 1.167 &#183; STL val: 1.178</em></p><blockquote><p><strong>The Reaves vs. LeBron read:</strong> LeBron scored 30. Reaves scored 14. But Reaves&#8217; NPE is +13.2 vs. LeBron&#8217;s +5.9. Eight assists generated 9.2 pts of creation value. One turnover at the 1.62 game rate. Three defensive rebounds adding stop value. His off-ball contribution was the cleaner performance. TVM correctly separates scoring efficiency from decision quality &#8212; LeBron wins the first, Reaves wins the second.</p></blockquote><div><hr></div><h2>Game 2 &#8212; Rockets TVM/36</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!88SK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!88SK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png 424w, https://substackcdn.com/image/fetch/$s_!88SK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png 848w, https://substackcdn.com/image/fetch/$s_!88SK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png 1272w, https://substackcdn.com/image/fetch/$s_!88SK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!88SK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png" width="1260" height="773" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:773,&quot;width&quot;:1260,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:104527,&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://signal2capital.substack.com/i/191528886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.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_!88SK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png 424w, https://substackcdn.com/image/fetch/$s_!88SK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png 848w, https://substackcdn.com/image/fetch/$s_!88SK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.png 1272w, https://substackcdn.com/image/fetch/$s_!88SK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb7b815-8b24-442c-b4af-726380ecc0da_1260x773.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 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>Player PTS TVM/36 NPE Off NPE Def NPE <strong>Alperen Sengun</strong> 27 <strong>45.0</strong> <strong>+19.4</strong> +15.7 +3.7 Amen Thompson 26 38.9 +19.5 +3.8 +15.6 Jabari Smith Jr. 18 25.3 +9.0 +3.4 +5.6 Tari Eason 10 20.7 +8.2 +1.5 +6.7 Kevin Durant 18 25.7 +8.9 <strong>&#8722;0.9</strong> +9.8 Reed Sheppard 11 17.1 +2.0 &#8722;2.9 +5.0</p><p><em>HOU TO cost: 1.364 pts/TO &#183; SC rate: 1.167 pts/OReb &#183; DReb stop: 1.200 &#183; STL val: 1.280</em></p><div><hr></div><h2>The spacing problem &#8212; in numbers</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y9i8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y9i8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png 424w, https://substackcdn.com/image/fetch/$s_!y9i8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png 848w, https://substackcdn.com/image/fetch/$s_!y9i8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png 1272w, https://substackcdn.com/image/fetch/$s_!y9i8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y9i8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png" width="1096" height="650" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:650,&quot;width&quot;:1096,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45964,&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://signal2capital.substack.com/i/191528886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.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_!y9i8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png 424w, https://substackcdn.com/image/fetch/$s_!y9i8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png 848w, https://substackcdn.com/image/fetch/$s_!y9i8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.png 1272w, https://substackcdn.com/image/fetch/$s_!y9i8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b22fcdb-a1fc-491b-ba3d-31806b611f58_1096x650.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 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>Durant&#8217;s defensive contribution is real. Six defensive rebounds and two steals generate +9.76 pts of stop value. That is genuine. The problem is his off-ball creation &#8212; four turnovers at the 1.364 game rate cost 5.45 pts, erasing his four assists entirely. His off NPE is &#8722;0.9 in a game where Sengun&#8217;s is +15.7. They play the same minutes, the same positions, and want the ball in the same spaces.</p><p>The play I described in the second quarter isn&#8217;t a fluke. It&#8217;s the formula made physical. Two hub players, one lane. Sengun literally had to drive through Durant to create. When that&#8217;s your offense, your spacing isn&#8217;t a scheme problem &#8212; it&#8217;s a roster construction problem. And that same congestion compresses the floor for Sheppard, whose creation-dependent role needs open driving windows that don&#8217;t exist when both bigs are parked in the same area.</p><blockquote><p>&#8220;I feel like I lost the game for us. I&#8217;m the offense. I&#8217;ve got to be smarter with the ball.&#8221; &#8212; Kevin Durant, post-Game 1</p></blockquote><p>Durant said it himself. The model agrees. The eye test agrees. All three sources land on the same conclusion.</p><div><hr></div><h2>The offseason call</h2><p>I called for this trade in article 1 and I&#8217;m restating it with two games of fresh data: trade Durant before the deadline or this offseason. The NPE split is a structural issue &#8212; it doesn&#8217;t resolve when both players are healthy, it gets worse.</p><p>Two destinations make the most sense:</p><h3>Option 1 &#8212; Preferred: Durant to Indiana Pacers</h3><p>Rockets receive Pacers receive Indiana&#8217;s 2025 first-round pick + depth &#8644; Kevin Durant</p><p>Tyrese Haliburton is the right engine for Durant&#8217;s game. He finds shooters and cutters at an elite level &#8212; exactly the role Steph Curry played in the Warriors system that produced Durant&#8217;s best isolation scoring years. Haliburton puts Durant in catch-and-score situations, keeps the ball out of his hands when the clock is running, and solves the creation problem. Houston gets a first rounder, clears the off NPE drag, and lets Sengun run the offense he was built for.</p><h3>Option 2: Durant to Milwaukee Bucks</h3><p>Rockets receive Bucks receive Draft assets + role players &#8644; Kevin Durant</p><p>Giannis drives, attacks, and draws two defenders. Durant shoots, scores in isolation, and needs a creator to generate his looks. That&#8217;s a functional pairing &#8212; different enough skill sets that the overlap problem doesn&#8217;t re-emerge. Less upside for Houston than the Pacers deal, but a legitimate destination.</p><p>The Pacers option is better because Haliburton actively solves the specific problem Durant has in Houston &#8212; too much ball, too many hub decisions, not enough created easy shots. With Haliburton, Durant doesn&#8217;t have to be the offense. He can just score.</p><div><hr></div><h2>What this unlocks for Houston</h2><p>Without Durant, Sengun runs the offense. His TVM 45.0 and NPE +19.4 are the best individual numbers in either game. Amen Thompson becomes the primary glass anchor without role conflict &#8212; his NPE +19.5 driven by 4 OReb and 7 DReb is the possession-stop engine Houston needs. Jabari Smith spaces the floor the way Sengun needs: 0 turnovers, perimeter shooting, clean +9.0 NPE. The architecture is there. The bottleneck is one player.</p><p>I watched it happen in real time in the second quarter. The model confirmed it over two games. The answer is the same as it was before both games were played: move Durant while his value is high, let Sengun be what he is, and build around the core that actually works together.</p><div><hr></div><p><em>TVM/36 methodology: possession-value composite using game-specific turnover cost (FB pts &#247; opponent TOs), second-chance rate (SC pts &#247; OReb), defensive stop values (opponent off rating for STL; opponent SC rate for DREB), and block value (0.60 pts/blk). All rates game-specific per team. Box score data: Covers.com / NBA.com. Previous article: Houston Rockets Should Trade Kevin Durant &#8212; dyaps.substack.com</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal &amp; Captial! 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 $3.1 Billion Question Kyndryl’s Filings Already Answered]]></title><description><![CDATA[How reading quarter-over-quarter momentum across every service line &#8212; before touching a model &#8212; produced a specific capital allocation recommendation from public data alone.]]></description><link>https://signal2capital.substack.com/p/the-31-billion-question-kyndryls</link><guid isPermaLink="false">https://signal2capital.substack.com/p/the-31-billion-question-kyndryls</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Thu, 19 Mar 2026 22:38:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>SUBTITLE: How reading quarter-over-quarter momentum across every service line &#8212; before touching a model &#8212; produced a specific capital allocation recommendation from public data alone. </p><p>Dedication: I spent the better part of the last year asking one question. What does it actually look like to take scattered data points and turn them into a decision someone can act on? It&#8217;s not a dashboard, a chart, a percentage improvement formatted to look like an insight. It&#8217;s an actual decision with a dollar figure, a rationale, and an honest account of what the model got wrong before it got it right.</p><p>I kept reading about actionable intelligence on LinkedIn and I could never find the house behind the blueprint. Just the blueprint, repeated in different fonts.</p><p>So I built the house.</p><p>This article is the result &#8212; a full end-to-end analysis of Kyndryl Holdings using nothing but public data, a decision tree, and a question written down before the first spreadsheet opened. The recommendation is in the second paragraph. The methodology is in the sections that follow. The mistakes are in there too.</p><p>If you want to see how the house was built &#8212; not just what it looks like when it is finished &#8212; follow the how-to series tagged below. Each article covers one step of the process in full replication detail. No prerequisites. Built for anyone who has ever wondered what the work behind the words actually looks like.</p><p>That is what this is for.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal &amp; Captial! 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>PUBLICATION: signal2capital.substack.com| March 2026</p><div><hr></div><p>BOTTOM LINE UP FRONT</p><p>Kyndryl Holdings posted record signings of $18.2 billion in FY2025 against $15.1 billion in revenue. That $3.1 billion gap is unconverted backlog &#8212; contracted revenue waiting to be recognized. The question nobody had publicly quantified: when it converts, where should it go?</p><p>The answer, built entirely from public filings: allocate 60% to Cloud, 30% to Consult, 10% to Security.</p><p>That allocation produces $18.8 billion in 5-year net margin and $551 million in Year 1 free cash flow &#8212; $201 million above the company&#8217;s own guidance midpoint. It is not the highest-margin option on the table. It is the highest-margin option that does not break the company&#8217;s cash floor given $1.4 billion in net debt and a 300% debt-to-equity ratio.</p><p>Here is how the analysis got there &#8212; and what the data showed before any model ran.</p><div><hr></div><p>THE INSTINCT THAT FRAMED EVERYTHING</p><p>Before the first formula was written, one question was held against the data:</p><p>Which service line is maintaining the best quarter-over-quarter growth momentum across the full mix and when legacy revenue finishes declining, which line can carry the bridge?</p><p>The question is structured by momentum. Most analysis looks at where the numbers are. This one looked at which direction they were moving relative to each other, and what happens to total revenue when one of the anchors disappears.</p><p>Legacy infrastructure &#8212; the low-margin contracts inherited from IBM &#8212; are declining at 15-20% annually and being intentionally exited. That line had been propping up total revenue while the growth lines matured. Once it was gone, whoever was growing fastest and converting cleanest had to carry the weight.</p><p>That framing determined what to look for. The backlog allocation question followed directly from it.</p><div><hr></div><p>HIGHLIGHTS</p><p>&#8212; Kyndryl&#8217;s Cloud revenue grew 86% in Q1 FY2026, 65% in Q2, 58% in Q3. A $2 billion annual run rate before the fiscal year closed. The company had already exceeded its $1.8 billion full-year target.</p><p>&#8212; Kyndryl Consult grew 24-30% quarter over quarter across the same period, reaching $3.6 billion in trailing twelve-month revenue. Consult is not just a growth line &#8212; it is the pipeline that generates future Cloud contracts. Every Consult engagement that designs a cloud migration strategy becomes a managed cloud services contract 12-24 months later.</p><p>&#8212; Security and Resiliency sits at approximately $2 billion annual revenue against a $47 billion total addressable market. Steady growth at 10-12%. Not the headline, but a necessary floor in the allocation.</p><p>&#8212; Legacy was declining at 15-20% annually. This was intentional. Kyndryl has been exiting inherited IBM contracts with substandard margins since the spinoff. The decline is not a problem &#8212; it is a strategy. But it creates a revenue bridge problem that the growth lines have to solve.</p><p>&#8212; The total addressable market for cloud managed services is not static. It grows at 13.4% annually, reaching $257 billion by 2030. Every year Kyndryl waits, new market appears that did not exist the year before.</p><div><hr></div><p>WHAT THE QoQ COMPARISON SHOWED</p><p>Here is the comparison that mattered before any model ran.</p><p>Cloud: accelerating in absolute dollar terms even as the percentage growth rate moderates. Q1 $400M, Q2 $440M, Q3 $500M. The dollar increment is expanding quarter over quarter. That is a compounding base, not a slowing line.</p><p>Consult: growing fast and converting fastest. One-quarter lag between signing and revenue recognition. Highest margin in the portfolio at 18%. But Consult has a ceiling that Cloud does not &#8212; it is people-intensive and scales with headcount, not with software deployment.</p><p>Security: steady and underleveraged. 4.3% market share against a $47 billion TAM. Growing at market rate. Not a drag, not a driver &#8212; a stabilizer.</p><p>Legacy: the floor is dropping. Every quarter it contributes less to total revenue. The question is not whether it matters &#8212; it is how fast the growth lines have to accelerate to offset the decline and still show positive total revenue growth.</p><p>When you lay those four lines side by side on a QoQ basis, one thing becomes clear: Cloud is the only line with an expanding dollar increment, an expanding TAM, and a conversion lag short enough to matter within a 5-year window. Consult is the engine that feeds it. Security is the hold. Legacy is the clock.</p><p>That structural read preceded the model. The model confirmed it.</p><div><hr></div><p>THE FIVE STEPS &#8212; AND WHAT EACH ONE REVEALED</p><p>Each step below is the subject of a dedicated article in this series. What follows is the finding from each step and the insight it produced.</p><div><hr></div><p>STEP 1: Write the question before opening the data.</p><p>The business question: given $3.1 billion in unconverted signing backlog, what is the optimal allocation across Cloud, Consult, and Security to maximize 5-year margin &#8212; accounting for growth rates, conversion timing, margin differences, and Year 1-2 cash flow constraints?</p><p>The insight: framing the question this precisely before touching the data meant every subsequent decision had a test. Does this finding answer the question? If not, it does not go in the model.</p><p>The full article on Step 1 covers how to write a one-sentence business question that points directly at a decision &#8212; and why most analysis fails because this step gets skipped.</p><div><hr></div><p>STEP 2: Map the service mix and read the QoQ momentum.</p><p>Before building any allocation formula, the QoQ growth rates for all four lines were compared simultaneously &#8212; not in isolation, not as year-over-year averages, but quarter by quarter against each other.</p><p>The insight: Cloud was the only line accelerating in absolute dollar terms while its percentage growth rate moderated. That pattern &#8212; decelerating rate, expanding dollar base &#8212; is a compounding signal. It means the line is growing off a larger number each quarter even as the growth percentage normalizes. That is what you want to be allocating toward.</p><p>The full article on Step 2 covers how to read a service mix from public earnings releases without internal access &#8212; and what the QoQ comparison reveals that annual figures hide.</p><div><hr></div><p>STEP 3: Build the allocation formula.</p><p>The formula: Room for Growth multiplied by Growth Rate, normalized across all three lines.</p><p>Room for Growth equals TAM minus current revenue, divided by TAM. All three lines sit above 95% &#8212; the market is large relative to current Kyndryl share. Growth Rate is the current annual rate per line, sourced directly from earnings disclosures.</p><p>Formula output: Cloud 73.8%, Consult 19.2%, Security 7.1%.</p><p>The insight: the formula is a starting point, not an answer. It treats all three lines as independent variables. They are not. Consult feeds Cloud. Reducing Consult allocation below a threshold reduces Cloud pipeline in Years 3-5 by an estimated $2.8 for every dollar removed. The formula does not know that. You have to know that.</p><p>The full article on Step 3 covers how to build this formula from scratch using only a spreadsheet and public data &#8212; and where the formula breaks down before constraints are applied.</p><div><hr></div><p>STEP 4: Run the decision tree.</p><p>171 allocation scenarios were generated &#8212; every combination of Cloud, Consult, and Security in 5% increments. A decision tree classifier labeled each scenario efficient or inefficient based on whether it produced at least 80% of the maximum possible 5-year margin.</p><p>24-month model finding: Consult allocation was the dominant feature at 82% importance. Fast conversion, high margin, no lag. The short-horizon optimal is Consult-heavy.</p><p>5-year model finding: CAGR was the dominant feature at 70.8% importance. Cloud&#8217;s compounding rate dominates over any time horizon beyond two years. The crossover &#8212; Cloud revenue exceeding Consult revenue in dollar terms &#8212; happens in Year 1 for Cloud-forward allocations and compounds from there.</p><p>The insight: the model confirmed what the QoQ read suggested. Cloud is not just growing faster &#8212; it is growing off an expanding base into an expanding market. By Year 5, the Cloud-forward scenario reaches 15% of a total addressable market that itself grew 40% during the same period. That is a different number than the model started with.</p><p>The full article on Step 4 covers how to run a decision tree classifier without a statistics background &#8212; what it is actually measuring, how to read feature importance, and when to trust the output versus question it.</p><div><hr></div><p>STEP 5: Apply the real-world constraints.</p><p>Three constraints pulled the allocation back from Cloud Max.</p><p>The pipeline dependency: Consult and Cloud are sequential, not parallel. Consult designs the strategy. Cloud executes it. You cannot strip Consult to 5% without cutting the pipeline that generates Cloud deals in Years 3-5. That dependency is not in the formula and not in the decision tree. It has to be added manually.</p><p>The FCF floor: Kyndryl carries $1.4 billion in net debt and a 300% debt-to-equity ratio. Year 1 free cash flow cannot drop below the company&#8217;s own guidance range of $325-375 million. Cloud Max at 75/20/5 produces $428 million in Year 1 FCF &#8212; only $78 million above the guidance midpoint. That is not enough buffer for a company at this leverage level.</p><p>The wrong assumption: early modeling assumed Kyndryl needed to build data center infrastructure to scale Cloud. That assumption was wrong. Kyndryl manages customer environments on hyperscaler platforms &#8212; AWS, Microsoft Azure, Google Cloud. They do not build physical infrastructure. Their capex is tooling at $675 million annually, not construction. Catching that error changed the Year 1 cost structure and changed how the FCF constraint was calculated.</p><p>The insight: the most important analytical skill is not building the model. It is interrogating your own assumptions before publishing. The question that surfaces bad assumptions: what would have to be true for this to be wrong?</p><p>The full article on Step 5 covers all four constraints in detail &#8212; how each one was identified, how it was quantified, and what it changed in the final output.</p><div><hr></div><p>STEP 6: Compare the scenarios and make the call.</p><p>Five scenarios after constraints were applied:</p><p>Cloud Max 75/20/5: $19.5B 5-year net margin. $428M Year 1 FCF. $78M above guidance midpoint. Highest margin. Thinnest buffer.</p><p>Formula Optimal 73.8/19.2/7.1: $19.3B. $427M Year 1 FCF. Statistically equivalent to Cloud Max. Same FCF risk.</p><p>Cloud Forward 60/30/10: $18.8B. $551M Year 1 FCF. $201M above guidance. Preserves Consult pipeline. Cloud crosses over Consult in Year 1.</p><p>Balanced 40/45/15: $17.9B. $728M Year 1 FCF. Safe but leaves $900M in 5-year margin on the table.</p><p>Consult-Heavy 5/90/5: $17.7B. $1.17B Year 1 FCF. Maximum short-term cash. Cloud never overtakes Consult. Wrong for a 5-year horizon.</p><p>The call: Cloud Forward 60/30/10.</p><p>The gap between Cloud Max and Cloud Forward is $733 million over five years &#8212; less than 4%. The FCF risk of Cloud Max, against a balance sheet carrying $1.4 billion in net debt, does not justify that gap. Cloud Forward captures the compounding Cloud advantage, preserves the Consult pipeline, and leaves $201 million of FCF headroom above guidance.</p><p>The insight: the right recommendation is not the highest number. It is the highest number that survives contact with reality.</p><p>The full article on Step 6 covers the scenario comparison in detail &#8212; how each constraint was weighted, how the scenarios were ranked, and how to communicate a recommendation in dollar terms to an audience that did not watch you build it.</p><div><hr></div><p>THE SERIES</p><p>This article is the overview. What follows is six dedicated articles &#8212; one per step &#8212; each with full methodology, replication instructions, and the judgment calls that the framework alone does not produce.</p><p>Every step is replicable. Every data source is public and free. The tools used were Python for the decision tree, Excel for the model, and the Kyndryl investor relations website for everything else.</p><p>The next article publishes this week: Step 1 and Step 2 &#8212; how to write the question and how to read the QoQ momentum before building anything.</p><p>Subscribe at to get each one as it publishes.</p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:7148777,&quot;embedding_publication_id&quot;:null,&quot;name&quot;:&quot;Signal &amp; Captial&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!SPVD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png&quot;,&quot;base_url&quot;:&quot;https://signal2capital.substack.com&quot;,&quot;hero_text&quot;:&quot;Data derived analysis that provides actionable insights and recommendations &quot;,&quot;author_name&quot;:&quot;Derek Bowens&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:null,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://signal2capital.substack.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!SPVD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" width="56" height="56"><span class="embedded-publication-name">Signal &amp; Captial</span><div class="embedded-publication-hero-text">Data derived analysis that provides actionable insights and recommendations </div><div class="embedded-publication-author-name">By Derek Bowens</div></a><form class="embedded-publication-subscribe" method="GET" action="https://signal2capital.substack.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div><p></p><div><hr></div><p>DATA SOURCES</p><p>Kyndryl Holdings 10-K filed May 30 2025 Q1 FY2026 earnings release &#8212; August 5 2025 Q2 FY2026 earnings release &#8212; November 5 2025 Q3 FY2026 earnings release &#8212; February 9 2026 Precedence Research: Cloud Managed Services Market 2025-2034 GrandView Research: Managed Services Market 2025-2033 All financial data from public SEC filings at investors.kyndryl.com</p><div><hr></div><p>Derek Bowens | dbowens15@gmail.com | linkedin.com/in/derek-bowens | Houston, TX</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal &amp; Captial! 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[Cookwise Growth Analysis: Churn Rate, Channel Strategy & a $1.4M Revenue Argument]]></title><description><![CDATA[A Financial Report Built on Public Data, a Decision Tree, and a 24-Month Forecast]]></description><link>https://signal2capital.substack.com/p/cookwise-growth-analysis-churn-rate</link><guid isPermaLink="false">https://signal2capital.substack.com/p/cookwise-growth-analysis-churn-rate</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Wed, 18 Mar 2026 22:19:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div><hr></div><h2>Dedication</h2><p>I told my brother about how I finished my first end to end data analysis project and he said okay &#8212; what are you looking to achieve with this?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I realized that sports analysis is just one industry and this channel is built on everything encompassing analytics. Today&#8217;s article is a financial report that addresses churn rate and my recommendations after analyzing the data, building a data model to address baseline, and 4 scenarios.</p><p>I fully enjoyed this project and do want to state that although I am a decent coder, I decided to use Anthropic&#8217;s Claude AI to handle the grunt coding work and then looked it over and revised for errors between prompts.</p><div><hr></div><h2>The Setup</h2><p>Every consumer subscription business has the same problem: they spend money acquiring customers, and a meaningful percentage of those customers leave before the company earns that money back. The question is never whether churn exists. The question is <em>which lever</em> reduces it most efficiently, <em>what that lever costs</em>, and <em>what it actually returns in dollars</em>.</p><p>I chose to model this against <strong>HelloFresh SE (ETR: HFG)</strong> &#8212; the largest publicly traded meal kit company in the world &#8212; because they publish more granular subscriber metrics than almost any consumer subscription company. Their investor relations disclosures include quarterly CAC figures, 12-month revenue retention (~42%), 24-month retention (~25%), and marketing spend methodology. That gave me a credible benchmark to build from.</p><p>The target company I am making recommendations for is <strong>Cookwise</strong> &#8212; an AI-powered meal planning and recipe app. Structurally similar problem set. Subscription-based. Acquisition-channel-dependent. High early churn risk.</p><div><hr></div><h2>The Data</h2><p>I built a 5,000-row customer dataset modeled on HelloFresh&#8217;s public retention benchmarks, with three supporting tables:</p><ul><li><p><strong>Customer Data</strong> &#8212; cohort quarter, acquisition channel, plan type, churn flag, CLV, NPS score</p></li><li><p><strong>Shipping/Fulfillment</strong> &#8212; delivery zone, carrier, on-time rate, order value</p></li><li><p><strong>Marketing Funnel</strong> &#8212; 12 quarters &#215; 7 channels: impressions, signups, CAC, 30/90/365-day retention, ROAS</p></li></ul><p>Channels modeled: Paid Social, Paid Search, Influencer, Organic/SEO, Referral, TV/CTV, Email Re-engage.</p><p>The churn rates were not random. They were built with realistic differentiation so the model would actually surface signal when analyzed. Referral customers churn at ~40.8%. Influencer customers churn at ~55.3%. That 15-point spread is the foundation of the entire recommendation.</p><div><hr></div><h2>What the Decision Tree Found</h2><p>I ran a <strong>Decision Tree Classifier</strong> (scikit-learn, max depth 5, 80/20 train/test split) across all 5,000 customers with seven features: channel, plan type, region, monthly revenue, orders in the last 12 months, tenure in months, and NPS score.</p><p><strong>Feature importance ranking:</strong></p><ol><li><p><strong>Acquisition Channel</strong> &#8212; #1 churn driver by a significant margin</p></li><li><p><strong>Tenure (Months)</strong> &#8212; months 1&#8211;3 are the highest-risk window</p></li><li><p><strong>Monthly Revenue</strong> &#8212; higher-revenue customers churn less</p></li><li><p><strong>NPS Score</strong> &#8212; low NPS strongly predicts churn within 90 days</p></li><li><p><strong>Orders LTM</strong> &#8212; order frequency is the best early-warning signal</p></li><li><p><strong>Plan Type</strong> &#8212; Ready-to-Eat retains better than meal kits</p></li><li><p><strong>Region</strong> &#8212; minor factor; channel dominates</p></li></ol><p>The most important finding: <strong>revenue tier is not a reliable churn predictor</strong>. This matters because a common instinct is to protect high-revenue customers differently. The model says that is the wrong variable. Channel, tenure, and NPS score are the actual levers.</p><div><hr></div><h2>The Cohort Retention Pivot</h2><p>A cohort retention pivot answers one question: of the customers acquired in a given period, what percentage are still active at each milestone?</p><p>I built this across all 16 cohort quarters (Q1 2021 through Q4 2024), tracking retention at months 1, 3, 6, 9, 12, 18, and 24 &#8212; then split the same table by acquisition channel.</p><p>The Referral and Organic/SEO channels show the slowest decay curves. Influencer and Email Re-engage show the steepest drop-offs before month 3. That visual alone makes the channel argument &#8212; you can see exactly where the money is being lost and when.</p><div><hr></div><h2>The Hypothesis Stack</h2><p>Going into the analysis I had three hypotheses. Here is what the data said about each.</p><p><strong>Hypothesis 1 &#8212; Tiered Referral Reward</strong> Offer $10 credit at signup and $25 credit at 90 days to both the referrer and the referee. Target: the 64% of referral customers lapsing before day 90.</p><p>The model projected: 6.5% CLV lift, 8% churn reduction on the referral base, $35 incentive cost per customer. Net gain at current scale: <strong>+$15,771</strong>. The math becomes more compelling as the referral base grows because CLV lift compounds while incentive cost is fixed.</p><p>A/B test design: 90-day control (no bonus) vs 90-day reward cohort. Primary metric: CLV delta at 6 months. Scale if CLV delta exceeds incentive cost and churn reduction hits 5% or higher. Kill if neither threshold is met.</p><p><strong>Hypothesis 2 &#8212; Revenue vs Churn</strong> I bucketed customers into four revenue tiers and measured churn rate per tier. The decision tree confirmed: revenue level is not the determining factor. Eliminated as a standalone strategic variable.</p><p><strong>Hypothesis 3 &#8212; Influencer Channel Effectiveness</strong> This one held up. Influencer is the weakest channel by every metric that matters:</p><p>Metric Influencer Best Channel (Organic/SEO) Churn Rate 55.3% 41.2% Avg CAC $115 $35 LTV/CAC Ratio 8.6x 29.6x Avg CLV $983 $1,037</p><p>The fix is not to eliminate influencer spend. It is to restructure the contract model from flat fee per post to performance-based pay per 90-day retained user, with unique promo code tracking per influencer. This removes attribution ambiguity and aligns incentives.</p><p>Projected outcome: CAC -25%, churn -10%, net gain <strong>+$67,575</strong> &#8212; the largest standalone improvement of any single intervention.</p><div><hr></div><h2>The Number Nobody Was Asking About</h2><p>Here is where the analysis went somewhere I did not expect.</p><p>Scenario A (Referral Reward) and Scenario B (Influencer Reform) combined produce <strong>$83,346 in net incremental value</strong>. That is real. But it only measures efficiency gains on the existing customer mix.</p><p>The bigger question is: what happens when you look at where the acquisition budget is actually going versus where it should go?</p><p><strong>LTV/CAC ratios by channel:</strong></p><p>Channel LTV/CAC Verdict Organic/SEO 29.6x Scale immediately Email Re-engage 23.8x Scale with caution Referral 18.0x Scale with incentive Paid Search 11.9x Maintain Paid Social 11.0x Monitor Influencer 8.6x Reform contracts TV/CTV 8.0x Reallocate budget</p><p>There is a <strong>21-point spread</strong> between the best and worst channel. Every dollar sitting in TV/CTV at 8.0x that moves to Organic/SEO at 29.6x generates 3.7x more value &#8212; before any churn improvement, before any new product feature, before any pricing change.</p><p><strong>Scenario D</strong> takes the CAC savings from Influencer reform ($22,138) and redirects the TV/CTV budget (50% to Referral, 50% to Organic/SEO). Zero net new spend. Same acquisition budget, different allocation.</p><p>The result: <strong>+$1,321,154 in new customer lifetime value</strong> from 1,246 additional higher-quality customers.</p><p>Combined with Scenarios A and B: <strong>$1,404,500 total incremental value &#8212; a 29.8% revenue lift on the same spend.</strong></p><p>That is the number. Not the 1.5 percentage point churn reduction. The churn reduction is the mechanism. The capital reallocation is the outcome.</p><div><hr></div><h2>The 24-Month Forecast</h2><p>I built a quarterly forecaster using:</p><ul><li><p>5,000-customer base</p></li><li><p>$82.38 average monthly revenue per customer</p></li><li><p>2.65% monthly churn rate</p></li><li><p>~268 new monthly acquisitions (current run-rate)</p></li></ul><p><strong>Baseline vs Scenario D &#8212; quarterly revenue:</strong></p><p>Quarter Baseline Scenario D $ Uplift Y1 Q1 $723,982 $727,228 +$3,246 Y1 Q2 $861,371 $870,035 +$8,664 Y1 Q3 $988,116 $1,002,798 +$14,682 Y1 Q4 $1,105,043 $1,126,222 +$21,179 Y2 Q1 $1,212,912 $1,240,964 +$28,052 Y2 Q2 $1,312,425 $1,347,634 +$35,209 Y2 Q3 $1,404,229 $1,446,802 +$42,573 Y2 Q4 $1,488,920 $1,538,993 +$50,073</p><p><strong>Year-over-year growth rate:</strong></p><ul><li><p>Baseline: +47.3% (Y1 &#8594; Y2)</p></li><li><p>Scenario D: <strong>+49.6%</strong> (Y1 &#8594; Y2)</p></li></ul><p><strong>24-month totals:</strong></p><ul><li><p>Baseline: $9,096,998</p></li><li><p>Scenario D: <strong>$9,300,676</strong></p></li></ul><p>The uplift compounds because better-quality customers churn less, order more, and generate higher CLV over time. By Y2 Q4 the quarterly revenue gap has grown to $50K &#8212; from $3K in Q1. That is the compounding effect of channel mix correction showing up in the numbers.</p><div><hr></div><h2>Recommendations Summary</h2><p><strong>1 &#8212; Tiered Referral Reward (Implement + A/B Test)</strong> $10 credit at signup + $25 at 90-day mark, both referrer and referee. Run 90-day A/B test. Scale if CLV delta at 6 months exceeds $35 and churn reduction hits 5%. Kill if neither.</p><p><strong>2 &#8212; Influencer Performance Contracts (Implement Now)</strong> Move from flat fee to pay-per-90-day-retained-user. Tier by audience size. Unique promo code per influencer for full attribution. Non-renewal trigger: any 2 of 3 &#8212; ROAS below 1.5x, CAC payback over 18 months, churn above 70%.</p><p><strong>3 &#8212; Spend Reallocation (Implement Now, Zero New Budget)</strong> Redirect TV/CTV spend 50/50 to Referral and Organic/SEO. Apply Influencer CAC savings to Referral scaling. No new budget required. Expected outcome: $1.3M in additional CLV over 24 months.</p><p><strong>4 &#8212; Deprioritize (Zone 4 Delivery)</strong> Zone 4 delivery improvement from 6 to 5 days produces a 2&#8211;4 percentage point on-time rate improvement. Meaningful, but not a primary churn driver. Does not warrant prioritization over the channel interventions above.</p><div><hr></div><h2>What I Would Build Next</h2><p>The natural next step is connecting this model to live product data. The framework is built &#8212; cohort retention pivot, decision tree, channel-level LTV/CAC ratios, 24-month forecaster. The only thing missing is an event stream from the actual app.</p><p>With that I would add: feature-level engagement as a churn predictor (does using voice-guided cooking change retention?), first-order-to-second-order conversion rate as an early signal, and NPS trigger &#8594; proactive outreach automation.</p><p>That is the article for another day.</p><div><hr></div><p><em>Data benchmarked to HelloFresh SE (ETR: HFG) Annual Reports 2021&#8211;2024 | hellofreshgroup.com/investor-relations | All customer data modeled and simulated for analytical purposes. Decision tree classifier built with scikit-learn. Forecasting model built on cohort survival analysis.</em></p><p><em>&#8212; Derek Bowens | dbowens15@gmail.com | linkedin.com/in/derek-bowens</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Signal2Capital! 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[Houston Rockets should trade Kevin Durant in the offseason ]]></title><description><![CDATA[Addressing the bottleneck at the top of the key and turning the Rockets into a Finals contender]]></description><link>https://signal2capital.substack.com/p/houston-rockets-should-trade-kevin</link><guid isPermaLink="false">https://signal2capital.substack.com/p/houston-rockets-should-trade-kevin</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Tue, 17 Mar 2026 17:22:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!l-il!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Yes, this is being written in March well before the playoffs, nba draft or free agency. The Houston Rockets according to most pundits will not be participating in the NBA finals and are just as likely to be in the Western conference finals. We can ask the question as to why they won&#8217;t make it but it&#8217;s simple. The Denver Nuggets, Oklahoma City Thunder and San Antonio Spurs are all better functioning teams. In this article, I suggest three changes to the team for quick turnaround. </p><ol><li><p>Houston has a problem.</p><p>Following the blockbuster trade that sent Jalen Green out and brought Kevin Durant in, the March 2026 Houston Rockets sit at 39-24. On paper, it&#8217;s a success. On the court, the mid-range and the paint are fatally clogged.</p><p>Without Steven Adams available to provide elite box-outs, the team is no longer generating the second-chance points necessary to offset a glaring lack of playmaking. But the root of the issue isn&#8217;t just missing personnel&#8212;it&#8217;s a geometric nightmare. The Rockets are currently operating with &#8220;Triple Elbow Spacing.&#8221; Jabari Smith Jr., Kevin Durant, and Alperen Sengun all naturally gravitate toward the same 15-foot real estate.</p><p>The conventional wisdom is to trade Jabari Smith Jr., as he is currently producing the lowest baseline numbers of the three. However, the data suggests that Jabari&#8217;s inefficiency is a symptom, not the disease. To fix the math, Houston needs three things: a replacement for Steven Adams&#8217; possession-saving, a trade involving the actual bottleneck, and a clinical floor general to orchestrate the offense.</p><p>Here is the analytical roadmap to unlocking the Rockets&#8217; true ceiling.</p><div><hr></div><h3>The Methodology: Engineering a True Value Metric</h3><p>To diagnose this roster, standard box-score stats are insufficient. We need a weighted model that measures exact scoreboard value per minute. <em>(Note: These metrics do not fully encapsulate individual defensive nuances, such as close-out speed or screen navigation, as this model does not utilize Synergy Sports tracking data).</em></p><p>Here is how the <strong>True Value Metric (TVM)</strong> calculates player impact:</p><ol><li><p><strong>Net Playmaking:</strong> Assists and turnovers are not created equal. We weight assists based on generated point value and penalize turnovers for lost possessions.</p><p>$$Effect_{NetPoint} = (AST \times 2.4) - (TOV \times 1.15)$$</p></li><li><p><strong>Second-Chance Impact:</strong> Offensive rebounds are given a premium weight because they reset the clock and generate high-efficiency put-backs.</p><p>$$OREB_{Full} = (ORB \times 1.15) + ORB$$</p></li><li><p><strong>Possession Stops:</strong> Defensive rebounds and steals are tightly correlated as they both successfully end an opponent&#8217;s possession.</p><p>$$Stops_{Possession} = DRB + STL$$</p></li><li><p><strong>The Foul Penalty:</strong> Fouls are direct point concessions. We penalize players based on the league-average free throw rate to simulate points surrendered.</p><p>$$Penalty_{Foul} = PF \times 1.15$$</p></li></ol><p><strong>Total Impact &amp; Impact Per Minute (IPM):</strong></p><p>We combine these factors with raw points and blocks, then subtract the foul penalty to get a player&#8217;s Net Total Impact. Dividing this by minutes played gives us the ultimate efficiency baseline: <strong>Impact Per Minute (IPM)</strong>.</p><div><hr></div><h3>The &#8220;Dead Minutes&#8221; Curve (30 to 36 MPG)</h3><p>A critical discovery in this dataset is the &#8220;Dead Minutes&#8221; curve. When mapping IPM across the league, efficiency reliably decays when a player exceeds 30 minutes per game. The minutes between 30 and 36 are where fatigue sets in, defensive close-outs slow down, and the Foul Penalty spikes.</p><p>If a team can secure a deep enough rotation to cap its core starters at 30 minutes, their aggregate IPM remains at its peak. This is the structural goal of our proposed rebuild.</p><div><hr></div><h3>The Diagnosis: The KD Sunk Cost</h3><p>When we map <strong>Cost Per Minute</strong> against <strong>Impact Per Minute</strong> (replacing any unknown contract values with the $2M league minimum), the reality of the Rockets&#8217; roster becomes unavoidable.</p><p>Kevin Durant is the second-best player on the team by IPM, but he is the primary geometric bottleneck. His isolation-heavy usage and $54.1M salary cap the team&#8217;s ceiling. By moving Durant, we don&#8217;t just clear cap space; we clear the floor, allowing Sengun to operate as a true Hub and giving Jabari Smith Jr. the volume required to find his rhythm.</p><h3>The Extraction Plan</h3><p><strong>Step 1: The Off-Season Trade</strong></p><p>Houston should trade Kevin Durant to the Indiana Pacers in exchange for <strong>Pascal Siakam, Tj McConnell, Jay Huff</strong> and this year&#8217;s 1st-Round Pick.</p><ul><li><p><strong>Why Indiana does it:</strong> It gives them a lethal Hali-KD drive-and-kick offense for one final championship push.</p></li><li><p><strong>Why Houston does it:</strong> Jay Huff is the ultimate low budget 3-and-D Center, providing the exact vertical spacing Sengun needs on defense while pulling opposing bigs out of the paint.</p></li></ul><p><strong>Step 2: Clearing the Apron ($40M)</strong></p><p>To maximize flexibility, Houston should also look to trade Dorian Finney-Smith. Clearing these contracts frees up roughly <strong>$30 Million</strong>.</p><p><strong>Step 3: The Draft ($10M)</strong></p><p>The Pacer&#8217;s pick is guaranteed top four-five which makes <strong>Caleb Wilson</strong> the perfect pick ($10M rookie scale). Wilson offers the ultimate breather for Jabari and Sengun, capable of playing the 3, 4, or 5, acting as a dynamic short-roll playmaker, and allowing the starters to stay under that 30-minute &#8220;Dead Minutes&#8221; curve.</p><p><strong>Step 4: Precision Free Agency ($30M)</strong></p><p>With the remaining $30M, Houston must shore up the 1-3 range with specific &#8220;Efficiency Arbitrage&#8221; targets. We need high make-percentage, high possession stops, and low fouls.</p><ul><li><p><strong>The Net Stops Wing:</strong> <strong>Caleb Martin</strong> or <strong>Naji Marshall</strong>. They offer elite perimeter defense without bailing out shooters with fouls.</p></li><li><p><strong>The Playmaking Guard:</strong> <strong>Tre Jones</strong> or <strong>Monte Morris</strong>. They provide clinical, low-turnover facilitation to connect the ball to Amen Thompson, Reed Sheppard, and Jabari.</p></li><li><p><strong>The Internal Rotation:</strong> Give Tari Eason and JD Davison increased run to test their viability as 3-point playmakers in this newly spaced environment.</p></li></ul><p></p><p>I found these players by searching cost against value produced per minute and later for total. The chart looked like this</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!l-il!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!l-il!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!l-il!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!l-il!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!l-il!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!l-il!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134413,&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://dyaps.substack.com/i/190761510?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.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_!l-il!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png 424w, https://substackcdn.com/image/fetch/$s_!l-il!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png 848w, https://substackcdn.com/image/fetch/$s_!l-il!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.png 1272w, https://substackcdn.com/image/fetch/$s_!l-il!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9d1fb9f-9c5c-4c5c-b608-637c5ce70ea4_1200x800.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 can then spotlight on players in the top left. The thought process being the least played players may also be least well known. The Real-World &#8220;Gems&#8221; (High Impact, Low Cost)</p><ul><li><p><strong>Tyus Jones (PG):</strong> The definition of positional efficiency. He boasts historic assist-to-turnover ratios and steady floor general production while playing on a heavily discounted deal (roughly $3M).</p></li><li><p><strong>Miles McBride (PG/SG):</strong> Shooting over 40% from three and providing elite point-of-attack defense for roughly $4M a year. His cost-per-minute is microscopic compared to the perimeter defense he provides.</p><p></p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;41feb9e9-fc25-4599-bc06-3803291fbcf7&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">By cashing out the KD sunk cost, the Rockets can transform a top-heavy, clogged roster into a mathematically optimized, deep rotation ready for the next decade.</code></pre></div><p>Here is the complete <strong>Technical Appendix</strong>.</p><div><hr></div><h2><strong>Technical Appendix: The Efficiency Arbitrage Glossary</strong></h2><p>This analysis utilizes a custom weighted-impact model designed to translate raw box-score production into actual scoreboard value. By assigning distinct weights to playmaking, turnovers, offensive rebounds, and personal fouls, we calculate a player&#8217;s true baseline efficiency.</p><h3><strong>1. Gross Total Impact</strong></h3><p>The foundational numerator. It combines offensive production, possession-saving, and defensive stops into a single raw value before penalties are applied.</p><p>$$Impact_{Gross} = PTS + OREB_{Full} + Stops_{Possession} + BLK + Effect_{NetPoint}$$</p><h3><strong>2. Net Point Effect (Playmaking Delta)</strong></h3><p>Assigns a weighted point value to assists while penalizing the team for points lost through turnovers. This identifies &#8220;True Playmakers&#8221; versus &#8220;Usage-Heavy&#8221; ball handlers.</p><p>$$Effect_{NetPoint} = (AST \times 2.4) - (TOV \times 1.15)$$</p><ul><li><p><strong>2.4:</strong> The weighted average of points generated per assist (accounting for the distribution of 2-point and 3-point field goals).</p></li><li><p><strong>1.15:</strong> The average points a team &#8220;loses&#8221; per turnover (accounting for lost possession and transition opportunity).</p></li></ul><h3><strong>3. Second-Chance Impact</strong></h3><p>Standard rebounding counts only the ball. This formula accounts for the &#8220;Second Chance&#8221; points typically generated by securing an offensive board.</p><p>$$OREB_{Full} = (ORB \times 1.15) + ORB$$</p><ul><li><p><strong>1.15:</strong> The league-average points produced per second-chance possession.</p></li></ul><h3><strong>4. Possession Stops</strong></h3><p>Measures the ability to end the opponent&#8217;s possession without a score, a key driver for high-efficiency defenders.</p><p>$$Stops_{Possession} = DRB + STL$$</p><h3><strong>5. The Foul Penalty</strong></h3><p>Personal fouls are not just statistical tallies; they are direct point concessions. This penalizes players who give up points at the free-throw line or push the opponent into the bonus.</p><p>$$Penalty_{Foul} = PF \times 1.15$$</p><ul><li><p><strong>1.15:</strong> The expected point value yielded per personal foul, calculated using the league-average free-throw percentage (~78.4%) and the ratio of shooting to non-shooting fouls.</p></li></ul><h3><strong>6. Net Total Impact (Scoreboard Value)</strong></h3><p>The final, adjusted game impact after subtracting the points mathematically conceded by the player.</p><p>$$Impact_{Net} = Impact_{Gross} - Penalty_{Foul}$$</p><h3><strong>7. Net Impact Per Minute (Net IPM)</strong></h3><p>The primary efficiency metric. It determines exactly how much Net Scoreboard Value a player generates for every 60 seconds they are on the floor.</p><p>$$Net\ IPM = \frac{Impact_{Net}}{MP}$$</p><h3><strong>8. Financial Efficiency Metrics</strong></h3><p>Used to identify &#8220;Efficiency Arbitrage&#8221; by mapping a player&#8217;s cap hit directly to their floor time, revealing the true cost of their usage.</p><ul><li><p><strong>Cost Per Game:</strong></p><p>$$CPG = \frac{Salary_{Yearly}}{82}$$</p></li><li><p><strong>Cost Per Minute:</strong></p><p>$$CPM = \frac{CPG}{MP}$$</p></li></ul><h3><strong>9. The Usage Redistribution Projection (The &#8220;Jabari Jump&#8221;)</strong></h3><p>Used to project the efficiency increase of core assets when a high-usage player (e.g., Kevin Durant) is removed from the rotation.</p><p>$$\Delta IPM = \frac{(FGA_{New} - FGA_{Base}) \times TS\% \times 2}{MP}$$</p><p><em>Where $FGA_{New}$ accounts for the redistributed field goal attempts within the optimized offensive system.</em></p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Derek's Substack! 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[Dude, who are you? ]]></title><description><![CDATA[I am Derek Bowens II, a former intelligence analyst turned entrepreneur/day trader.]]></description><link>https://signal2capital.substack.com/p/dude-who-are-you</link><guid isPermaLink="false">https://signal2capital.substack.com/p/dude-who-are-you</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Thu, 25 Dec 2025 01:45:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I am Derek Bowens II, a former intelligence analyst turned entrepreneur/day trader. I enlisted in to the Ohio Air National Guard as a naive, long-haired and ambitious 18 year old high school graduate. I honestly only signed up so I could go to UC for free and study fashion design. I mapped out what I thought would be men&#8217;s fashion for the next five years. My analysis was off but the techniques I learned to use proved invaluable over the years. I found a love for analysis, creating and testing hypotheses and reading. These loves are what have led me to business development and day trading. </p><p>I will be using this substack to discuss my thoughts on the <span class="cashtag-wrap" data-attrs="{&quot;symbol&quot;:&quot;$SPY&quot;}" data-component-name="CashtagToDOM"></span> ticker from a daily, weekly and maybe even monthly perspective for options trading. These posts should not be used as financial advice and more as thoughts from someone only interested in making as much money as possible with as little risk as possible. I also post on tiktok as derekyaps, and youtube as thestonedinvestor. Happy trading and holidays if you celebrate those things! </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.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 Derek's Substack! 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[Coming soon]]></title><description><![CDATA[This is Signal2Capital.]]></description><link>https://signal2capital.substack.com/p/coming-soon</link><guid isPermaLink="false">https://signal2capital.substack.com/p/coming-soon</guid><dc:creator><![CDATA[Derek Bowens]]></dc:creator><pubDate>Wed, 03 Dec 2025 22:19:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SPVD!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd88ba82b-12fb-4218-b370-4c65bf9a377c_144x144.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is Signal2Capital.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://signal2capital.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://signal2capital.substack.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item></channel></rss>