<?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[Next in Data]]></title><description><![CDATA[Where data meets direction | by KI DataLab]]></description><link>https://blog.kidatalab.com</link><image><url>https://substackcdn.com/image/fetch/$s_!ji-w!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1601a660-95fd-4abf-b4d8-8c5f8471e1d9_400x400.png</url><title>Next in Data</title><link>https://blog.kidatalab.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 14 Jun 2026 17:55:07 GMT</lastBuildDate><atom:link href="https://blog.kidatalab.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[NextInData]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[nextindata@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[nextindata@substack.com]]></itunes:email><itunes:name><![CDATA[Nazan | NextInData]]></itunes:name></itunes:owner><itunes:author><![CDATA[Nazan | NextInData]]></itunes:author><googleplay:owner><![CDATA[nextindata@substack.com]]></googleplay:owner><googleplay:email><![CDATA[nextindata@substack.com]]></googleplay:email><googleplay:author><![CDATA[Nazan | NextInData]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Data Stack - The Roundup #1]]></title><description><![CDATA[5 projects from 5 builders working across data, ML, and AI. Real work, straight from the source.]]></description><link>https://blog.kidatalab.com/p/data-stack-the-roundup-1</link><guid isPermaLink="false">https://blog.kidatalab.com/p/data-stack-the-roundup-1</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Sun, 07 Jun 2026 16:25:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/29094ad8-c566-4d1b-bc7a-504bab58756d_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3>Intro </h3><p>If you follow my notes, you know I have been spending time connecting with data folks here on Substack. Reading their work, exploring their projects, tools, research, and everything in between. At some point during a conversation with <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Ame_data scientist&quot;,&quot;id&quot;:171570673,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e525532a-1029-4e9f-9d1f-420b5d0123d0_844x844.png&quot;,&quot;uuid&quot;:&quot;03df8699-40ee-4de6-bb7d-a25981b19894&quot;}" data-component-name="MentionToDOM"></span> , something clicked. These people are building genuinely interesting things. Why not bring them together in my publication and get their work in front of more eyes? That is how this started.</p><blockquote><p><strong>Data Stack</strong> is an initiative to bring developers, engineers, and practitioners working in Data, ML, and AI together in one place. The goal is simple: build a real community around the work, not just the discourse.</p></blockquote><blockquote><p><strong>The Roundup</strong> is one part of that. Builders submit their own projects, in their own words. A tool, an app, a dataset, a course, a research paper. Something they built and something useful to people in this space. What gets submitted is what gets published, no editing, no paraphrasing.</p></blockquote><p>The first edition features 5 projects from 5 contributors including me :) Different backgrounds, different problems, different tools. Take what is useful, follow who interests you, and if you are building something worth sharing, the next edition is open for submissions.  </p><div class="pullquote"><p><strong><a href="https://forms.gle/T71C3pCZBLe57Xgq5">Submit your project here.</a></strong></p></div><h3><strong>&#128736;&#65039; The Projects</strong></h3><h4>01 - SnapTask</h4><p><strong>By <a href="https://x.com/iwndixuebdu">YAZ</a></strong> - Mobile Architect &amp; Independent Developer</p><p><strong>&#128279; <a href="https://www.snaptask.org/">SnapTask</a></strong></p><div class="callout-block" data-callout="true"><p>I built SnapTask to solve &#8220;app-switching fatigue&#8221; and input latency for builders who need to capture thoughts the second they happen. When you&#8217;re deep in data pipelines, model training, or coding, opening a heavy cloud-synced notes app completely breaks your cognitive flow, and the idea is often gone before the UI even loads.</p><p>SnapTask is a lightweight Android utility designed to eliminate this friction entirely while respecting developer prerequisites. It injects a minimal input shortcut directly into your notification bar. You swipe down, type, and save with zero load time.</p><p>Crucially, it features built-in natural language date parsing. Instead of forcing you to fiddle with clunky UI calendars or time pickers, it automatically extracts deadlines from how you naturally think and type, whether that&#8217;s &#8220;assignment in 2 days&#8221; or &#8220;build script next monday&#8221;.</p><p>Most importantly, it is 100% offline-first and private. Your data stays entirely on your device with zero external cloud dependencies, tracking, or telemetry. It&#8217;s built purely to minimize input friction and protect your cognitive overhead, letting you offload ideas instantly and get right back to building. </p></div><h4>02 - DFM</h4><p>By <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Martha&quot;,&quot;id&quot;:508273803,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/64d4380b-5278-438c-a400-11b4c64a778f_375x375.jpeg&quot;,&quot;uuid&quot;:&quot;f9bc3a7b-73c2-4632-981e-3bb65f230ce8&quot;}" data-component-name="MentionToDOM"></span> - Independent Developer</p><p>&#128279;<strong> </strong><em>No link was shared by Martha. </em></p><div class="callout-block" data-callout="true"><p>DFM is an AI project based on the Phi 3.5 Mini language model. I completely rewrote its code architecture, adding a unique multi-agent loop that I invented myself to increase its creative intelligence and novelty.</p><p>Basic small language models usually have very low depth of thinking, low creativity, and tend to give surface-level answers. DFM, on the other hand, has a much greater depth of thought, which allows it to engage very deeply with user prompts. It can invent novel ideas and create genuinely sophisticated responses that usually only larger AI models can produce.</p><p>More than that, it can invent its own topics and ask unexpected questions &#8212; something that even models like Claude or ChatGPT 5 usually don&#8217;t do.</p><p>It&#8217;s important to understand that DFM is not a system designed for useful or highly logical answers. It has messy grammar, and it can melt down or hallucinate a lot. There are already many language models for logical and practical responses &#8212; Claude and ChatGPT exist specifically for that.</p><p>The original goal was to create an AI that can think deeply, draw unexpected parallels, and constantly surprise the user with its answers. </p><p>I&#8217;ve never really seen an AI respond the way DFM does, which is interesting. It&#8217;s essentially a novel invention that doesn&#8217;t currently have an analogue. </p></div><h4>03 - 2026 Roadmap to Becoming a Data Analyst</h4><p>By <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Brien Grant | Data Analyst&quot;,&quot;id&quot;:441755843,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7586efa9-dffd-4949-a067-5fba900fe0a8_1166x1168.png&quot;,&quot;uuid&quot;:&quot;524d95f1-4743-4330-a804-fbcf58e09b3e&quot;}" data-component-name="MentionToDOM"></span> - Data Analyst </p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:186269257,&quot;url&quot;:&quot;https://brienbuilds.substack.com/p/2026-roadmap-to-becoming-a-data-analyst&quot;,&quot;publication_id&quot;:7776931,&quot;publication_name&quot;:&quot;Above Average Analyst&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!gABl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb397de8-3e77-4a94-9ae1-a7e456168b33_797x797.png&quot;,&quot;title&quot;:&quot;2026 Roadmap to Becoming a Data Analyst (1 of 5): Excel or Google Sheets&quot;,&quot;truncated_body_text&quot;:&quot;Hi, fellow future and current Data Coworkers; Brien here&quot;,&quot;date&quot;:&quot;2026-02-08T15:30:35.299Z&quot;,&quot;like_count&quot;:17,&quot;comment_count&quot;:4,&quot;bylines&quot;:[{&quot;id&quot;:441755843,&quot;name&quot;:&quot;Brien Grant | Data Analyst&quot;,&quot;handle&quot;:&quot;brienegrant&quot;,&quot;previous_name&quot;:&quot;Brien Grant&#128202;Data Analyst&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7586efa9-dffd-4949-a067-5fba900fe0a8_1166x1168.png&quot;,&quot;bio&quot;:&quot;Data Analyst | Data &amp; Analytics Educator. Career switcher. 9k Followers on LinkedIn.&quot;,&quot;profile_set_up_at&quot;:&quot;2026-01-25T18:30:00.121Z&quot;,&quot;reader_installed_at&quot;:&quot;2026-01-25T18:29:49.234Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:7935339,&quot;user_id&quot;:441755843,&quot;publication_id&quot;:7776931,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:7776931,&quot;name&quot;:&quot;Above Average Analyst&quot;,&quot;subdomain&quot;:&quot;brienbuilds&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;If you want to go above the average analyst, then this is the newsletter for you. I will try to cover some really important topics as an analyst. And maybe some personal topics too on my journey. \n\nPlease subscribe if you really like my content.&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb397de8-3e77-4a94-9ae1-a7e456168b33_797x797.png&quot;,&quot;author_id&quot;:441755843,&quot;primary_user_id&quot;:441755843,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2026-01-26T05:59:28.417Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Brien Grant&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf7d0879-2fa5-4e51-a3f8-9bce46e1e3df_797x265.jpeg&quot;}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://brienbuilds.substack.com/p/2026-roadmap-to-becoming-a-data-analyst?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!gABl!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb397de8-3e77-4a94-9ae1-a7e456168b33_797x797.png" loading="lazy"><span class="embedded-post-publication-name">Above Average Analyst</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">2026 Roadmap to Becoming a Data Analyst (1 of 5): Excel or Google Sheets</div></div><div class="embedded-post-body">Hi, fellow future and current Data Coworkers; Brien here&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">4 months ago &#183; 17 likes &#183; 4 comments &#183; Brien Grant | Data Analyst</div></a></div><div class="callout-block" data-callout="true"><p>The reason for me to make the road map is because people were reaching out to me on Linkedin for how I switched from a teacher to a data analyst. So, I thought there is a demand for this. Secondly, my growth on Linkedin just keeps on going up. Currently at 9,400 followers over there. It took me 5 weeks to make it. I had a plan of what I wanted to hit. First Excel/Google sheets, then I moved to Dashboard/Visualization. Those are like the core skills people want. From there I abstracted it to SQL, and Python. After having all those technical skills down. Now people need to understand what they are look at which lead to Domain Knowledge. The order is Spreadsheet, Visualization, SQL, Python and Domain Knowledge. </p><p>My only challenge was time with being a new father and more responsible at work. So just time factor. Making the content wasn&#8217;t hard because it was like being a teacher again. Setting up a lesson plan and then having a homework. The other reason is I don&#8217;t think I have left the classroom and I still want to help and teach people. Just now in the domain of data. </p></div><h4>04 - Blog2Video App</h4><p>by <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Arslan Shahid&quot;,&quot;id&quot;:332551836,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ccaf1f6-07bc-48aa-865d-25a72b6ad831_400x400.jpeg&quot;,&quot;uuid&quot;:&quot;1d240f04-45be-49d3-b1c1-79c6bb8252f4&quot;}" data-component-name="MentionToDOM"></span> - AI Engineer </p><p><strong>&#128279; <a href="https://blog2video.app/">blog2video app</a> </strong></p><div class="callout-block" data-callout="true"><p>I almost spent $30,000 turning my blog into videos. My blog was working. Clients found me through long-form content. But traffic plateaued. Every algorithm was pushing video. So I tried to make the switch.</p><p>First attempt: hired video editors. $300&#8211;$1,000 per video. 50+ posts. You do the math. Not happening. Second attempt: AI video generators. Generic stock footage. Robot voice. Didn&#8217;t sound like me, didn&#8217;t use my actual content. AI slop at $20&#8211;50 a video.</p><p>So I built Blog2Video. </p><p>It scrapes your actual blog. AI programs the video in Remotion &#8212; animated diagrams, code blocks, bullet reveals &#8212; rendered as React components. No AI image models. No hallucinated visuals. Just your content, your voice, your brand.</p><p>The key insight: don&#8217;t pay AI to generate pixels. Use AI to write code that builds the video programmatically. </p><p>50 posts converted. $0 to video editors. $30K saved. Now it is making me money. </p></div><h4>05 - KI Reads</h4><p>By <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Nazan | NextInData&quot;,&quot;id&quot;:399604090,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33cbc349-1b07-4b52-ba77-79468a191c22_1080x1080.jpeg&quot;,&quot;uuid&quot;:&quot;be7b5d0a-40fc-410b-8fd9-5a14c2332f71&quot;}" data-component-name="MentionToDOM"></span> &#128522; </p><p><strong>&#128279; <a href="http://reads.kidatalab.com">KI-Reads</a> </strong></p><div class="callout-block" data-callout="true"><p>I follow data and AI blogs scattered across different platforms. Some are on Substack, some on Medium, some on personal sites. Keeping up with all of them was taking more time than actually reading them. It was time consuming to check platforms if something new had been posted. </p><p>I wanted a simple solution. No new app to check, no platform deciding what I see first, no algorithm pushing popular content over the stuff I actually care about.</p><p>So I built KI-Reads. </p><p>How does it work? You send us your list of blog and newsletter URLs, we fetch the latest posts and deliver them in one clean email every Sunday morning to your inbox with the latest posts from the past 7 days, organized by category. Any platform, any RSS feed, your list, your rules. </p><p>No app to download, no account to create, no tracking, no ads.</p></div><p>That wraps up the first edition of The Roundup.</p><p>These are real projects built by people actively working in the data and AI space. If something caught your attention, follow the builder and dig deeper. The best way to support this kind of work is to engage with it directly.</p><p>The next edition is already in the works. If you have something worth sharing with this community, submissions are open.</p><p>See you in the next one! </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ko-fi.com/nazan&quot;,&quot;text&quot;:&quot;Buy me a coffee&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://ko-fi.com/nazan"><span>Buy me a coffee</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/data-stack-the-roundup-1/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/data-stack-the-roundup-1/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:399604090,&quot;userName&quot;:&quot;Nazan | NextInData&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[How I Built a Personal Weekly Digest Tool for Newsletter Readers]]></title><description><![CDATA[A walkthrough of the full pipeline: RSS feeds, Python, a simple feeds file, and one interesting failure along the way.]]></description><link>https://blog.kidatalab.com/p/how-to-build-a-personal-weekly-newsletter-digest</link><guid isPermaLink="false">https://blog.kidatalab.com/p/how-to-build-a-personal-weekly-newsletter-digest</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Sat, 23 May 2026 16:10:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/062731a4-9069-4d04-af45-3ad9c9fdf0bb_400x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have been building data pipelines for over a decade. Most of them were for clients, internal tools, or research projects. This one started from a completely different place: I was looking for good data science writing to read on Substack and some other platforms and wanted to have it altogether. </p><p>There&#8217;re many blogs who write about data but they&#8217;re scattered across platforms(Substack, WordPress, Ghost, Medium) and keeping up meant checking multiple places, forgetting half of them, and missing posts I would have genuinely enjoyed. I wanted a single weekly reading list, curated by me, delivered to me. So I built one. </p><p>This post walks through what I built, how it works, and one failure that taught me something useful about cloud infrastructure and platform policies.  </p><h4>The Idea</h4><p>I started simple. I wanted a script that reads a list of newsletter URLs I chose, fetches whatever was published in the last seven days, and puts it all in one place. No algorithms deciding what I see, no platform telling me what is popular. Just the writers I chose, their latest work, organized the way I want.</p><p>The input is a plain Excel file with three columns: the newsletter name, the URL, and a label I assign to group things by topic. The output is a markdown file I can read in VS Code. One command, once a week. </p><h4>Building for Multiple Platforms</h4><p>The first real challenge was RSS. Every platform handles it slightly differently.</p><p>Substack feeds live at publication.substack.com/feed. WordPress is usually yoursite.com/feed. Ghost uses yoursite.com/rss. Medium uses medium.com/feed/@username, a different structure than you might expect. Beehiiv generates a unique URL per publication that cannot be derived from the main URL at all.</p><p>Rather than asking people to find their own RSS URL, the script tries a series of known paths in order until one returns entries:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;e65fe5d6-c2a4-47ec-9659-e9cfaa70ed9e&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">RSS_PATHS = [
    "",
    "/feed",
    "/rss",
    "/?feed=rss2",
    "/rss.xml",
    "/atom.xml",
]</code></pre></div><p>Beehiiv is the only platform that still requires a manual step. The script detects it and prints a specific message explaining exactly where to find the RSS URL in the page source.</p><p>One thing I added after the first few test runs was HTML stripping on the excerpt field. Medium especially embeds raw HTML in their RSS summary field. Feedparser returns it as-is, which means your digest ends up with &lt;img&gt; tags and &lt;a href&gt; strings in the excerpt if you do not strip them. A quick regex pass and html.unescape() handles it cleanly:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;c43f4a71-7c5d-4032-b6f2-e55a4bda794f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">def strip_html(text):
    text = re.sub(r"&lt;[^&gt;]+&gt;", "", text)
    text = html.unescape(text)
    text = re.sub(r"\s+", " ", text)
    return text.strip()</code></pre></div><p><strong>Parallel Fetching</strong></p><p>The first version fetched feeds sequentially, one at a time. At ten newsletters that was fine. At fifty it would have taken several minutes. The fix was straightforward. Python&#8217;s concurrent.futures.ThreadPoolExecutor lets you fetch multiple feeds simultaneously. With max_workers=10 the script fetches up to ten feeds at once. At a hundred newsletters the fetch step now takes roughly the same time as ten did before. </p><p><strong>The Feeds File</strong></p><p>The input is intentionally simple. An Excel, CSV, or plain text file with your newsletter list. Three columns: name, url, label. The script detects the file type automatically. No config needed beyond pointing it at your file. Labels become the section headers in your digest, so you can group things however makes sense for you, by topic, by reading priority, by platform, anything. </p><p><strong>The GitHub Actions Experiment</strong></p><p>Once the script was working locally I wanted to automate it fully. GitHub Actions seemed like the obvious choice: free, version controlled, runs on a schedule. I set it up to run every Sunday morning, stored nothing sensitive, and triggered a test run. It failed immediately. Every RSS fetch returned empty. No entries, no errors, just silence. Adding debug output revealed the issue: </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;6b85ff79-f157-4183-8193-54e2e2726571&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">HTTP 403 for https://example.substack.com/feed</code></pre></div><p>Substack was blocking every request. Adding browser-like User-Agent strings and Accept headers made no difference. The problem was the IP range. GitHub Actions runners use well-known cloud IP ranges that Substack&#8217;s CDN recognizes and blocks. Residential IPs go through fine. Cloud provider IPs do not.</p><p>The workarounds I found, residential proxies and third-party RSS caching services, all introduced dependencies I did not want. Some would work today and break in six months. Others added ongoing costs. So I made a pragmatic decision. The script runs locally on Sunday mornings. Total runtime is under a minute. The automation saves hours of manual work even without the cron job. </p><h4>The Output</h4><p>The script generates a markdown file named by ISO week number. Each week gets its own file, nothing is ever overwritten, and they accumulate as a personal archive. Posts are grouped by whatever labels you assigned in your feeds file. Each entry shows the post title as a clickable link, a short excerpt, the newsletter name, and the publication date. </p><p>Opening the file in VS Code and pressing Ctrl+Shift+V renders the preview with clickable links. Copy from the preview panel and paste directly into Substack, Notion, or anywhere else you want to read it. </p><h4>What I Would Do Differently</h4><p>The Beehiiv situation remains unsolved. Their unique RSS URLs cannot be derived from the publication URL and the script cannot auto-detect them. It works but it puts a manual step on the user that every other platform avoids.</p><p>For larger feeds lists, parallel fetching handles the speed problem well. But Google Sheets as a backend for a multi-user version would hit limits. A proper database becomes necessary at scale. </p><h4>Where This Is Going</h4><p>The personal digest tool works well enough that I packaged it for others to use. If you want your own weekly reading list across any combination of Substack, WordPress, Ghost, Medium, and more, the tool is available with a full setup guide. </p><p>But the more interesting direction is community. Once I had the personal version working, I built another one: a community version. A niche hobby community I am part of wanted a way to surface new writing from their members from different platforms every week. So I built a version for exactly that. It has been running for a month now and so far it works exactly as intended. </p><p>Two tools, one pipeline, built entirely on free tiers. Sometimes the best projects are the ones you build for yourself first. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/how-to-build-a-personal-weekly-newsletter-digest/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/how-to-build-a-personal-weekly-newsletter-digest/comments"><span>Leave a comment</span></a></p><div class="directMessage button" data-attrs="{&quot;userId&quot;:399604090,&quot;userName&quot;:&quot;Nazan | NextInData&quot;,&quot;canDm&quot;:null,&quot;dmUpgradeOptions&quot;:null,&quot;isEditorNode&quot;:true}" data-component-name="DirectMessageToDOM"></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://ko-fi.com/nazan&quot;,&quot;text&quot;:&quot;Buy me a coffee&#9749;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://ko-fi.com/nazan"><span>Buy me a coffee&#9749;</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[6 Months on Substack: What I Built, Learned, and What Comes Next]]></title><description><![CDATA[A Honest Reflection on Writing, Building, and Finding Your Voice in a Crowded Space]]></description><link>https://blog.kidatalab.com/p/six-months-on-substack-what-i-built</link><guid isPermaLink="false">https://blog.kidatalab.com/p/six-months-on-substack-what-i-built</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Sun, 17 May 2026 14:03:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/efa06570-fdbe-4143-87c5-da3e6000cdc4_1200x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>6 months ago I started this Substack with a simple goal. I wanted a place to think in public. After 13 years in data science and analytics, most of my work lived inside private repos, internal dashboards, and conversations that never escaped the meeting room. I missed the clarity that comes from explaining ideas to people who are genuinely curious, not just waiting for the next sprint ticket.</p><p>I didn&#8217;t start with a grand strategy. No content calendar, no growth hacks. I started because I wanted to write about the gap between what people think data science is and what it actually looks like when you&#8217;re in it. The reasoning, the tradeoffs, the messy middle, the quiet decisions that shape real systems and rarely make it into blog posts.</p><p>I also wanted to slow down. The AI world moves fast, sometimes too fast, and writing forces me to choose what actually matters. It became a way to reconnect with my own expertise, to put into words the things I&#8217;ve learned over a decade of building, breaking, and fixing. So I published the first post. Then another. Now I&#8217;m looking back at six months of it.</p><h3>The First Six Months in Numbers</h3><p>Six months is long enough to see patterns. Around 15 posts published, just over 120 subscribers, engagement that is slow and steady. The numbers are small, I know. They are also honest.</p><p>Data science and AI are crowded spaces, and most content out there is optimized for speed and surface. I was not immune to that pull early on. My first posts leaned into AI topics because that is what felt urgent, what everything was pointing at. It took a few months and a few posts that did not quite feel like mine to figure out what I actually wanted to say. Somewhere along the way I found my way back to the thing I started this for: the practical, often unglamorous reality of working with data at a professional level. That drift and correction probably cost me some early momentum. It also gave me a clearer sense of direction than I would have had otherwise. </p><p>I write when I have something worth saying. I focus on insights from real work, the kind that take time to develop and do not compress well into a carousel. That choice leads to slower growth, but it tends to attract readers who stay. I am comfortable with that tradeoff.</p><h3>The Break I Had to Take </h3><p>Somewhere around month three, I stopped writing. Not because I ran out of ideas, but because life made it impossible to think about anything else. My mother has been fighting cancer, and I needed to be with her for a while, as I should have.</p><p>I am not sharing this for sympathy. I am sharing it because honest reflections on creative work should include the parts where it stops, and why. Writing requires a kind of mental availability that you cannot always guarantee. Sometimes the right move is to close the laptop and be somewhere else entirely.  Things are more stable now. I came back when I was ready.</p><h3>What I Learned in Six Months</h3><p>The obvious answer is that I found my voice. The less obvious answer is that it took longer than I expected and I am still refining it. I know now that I want to write about data, the real work of it, not the hype. That clarity did not come from planning, it came from publishing things that felt slightly off until something finally felt right.</p><p>Time is a real constraint. I have no shortage of ideas but finding the hours to develop them properly is harder than I anticipated. Writing that reflects 13 years of experience does not come out in a sitting.</p><p>I also shared a tool I built, something I was genuinely proud of. The response was quiet. That used to be the kind of thing that would make me second guess whether any of this was worth it. Strangely, it did not. I think I am starting to separate the work from the reception, which feels like progress.</p><p>What I am still learning is how to share. Building things comes naturally to me. Putting them in front of people, talking about them without underselling or overthinking, that is the muscle I am actually developing here. Substack is teaching me that more than anything else.</p><p>And then there are the other writers. I spend time reading how people here structure their thinking, find their rhythm, express themselves. It is the best kind of learning, watching people do the real thing in real time, not a course or a framework, just someone figuring it out in public. I find that genuinely inspiring.</p><h3>What I&#8217;m Working On Now </h3><p>I build things. That has always been true, and Substack has not changed it, if anything it has given me more reason to connect the building to the writing.</p><p>Right now I am working on two projects. One is a fully automated weekly digest for a niche hobby community, a pipeline that aggregates content from writers across Substack, WordPress, Ghost, and Medium, organizes it, and ships a publication every Sunday without manual work. It is the kind of infrastructure problem I enjoy: unglamorous, quietly useful, and harder than it looks.</p><p>The other is a research intelligence pipeline that monitors AI sources daily and turns papers and blog posts into structured, actionable summaries. The same system can be configured for any domain. I am still validating whether there is real demand for it, which is its own kind of data problem. Both projects will feed back into this publication. That is the idea anyway.</p><h3>What I Plan for the Next Six Months </h3><p>More posts, more projects, more showing up. I want to write with the consistency that I have not quite managed in the first six months, and I want to build something that feels less like a publication and more like a community. A place where people who work with data seriously, not people chasing the hype, can exchange ideas, push back on each other, and learn from real experience. I also hope not to need another break. That one is not entirely in my hands, but things are more settled now and I intend to use that. The honest version of any plan at this stage is just: keep going. So that is what I am doing. </p><p>To everyone who stayed subscribed through the quiet months, through the gaps and the silences and the stretches where I was not even here to notice, thank you. It means a lot to me. I will try to be more consistent from here. Not a promise, just an intention, and a genuine one. And if things go the way I hope, I will be back in six months with another one of these posts to see how it all turned out. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/six-months-on-substack-what-i-built/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/six-months-on-substack-what-i-built/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[The AI "Context Layer": High-Level Hype vs. The Reality of Data Debt]]></title><description><![CDATA[Bridging the Gap Between "Context Infrastructure" and the Reality of Organizational Debt]]></description><link>https://blog.kidatalab.com/p/the-ai-context-layer-vs-data-debt</link><guid isPermaLink="false">https://blog.kidatalab.com/p/the-ai-context-layer-vs-data-debt</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Tue, 05 May 2026 19:45:11 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/64dd965d-c7df-43cb-b09f-2ef8d43c6782_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At the 2026 Gartner Data &amp; Analytics Summit, the industry was introduced to a new must-have: the &#8220;Context Layer&#8221;. The argument is that for AI to be useful, we need to build &#8220;Context Infrastructure&#8221;, essentially a brain that understands the relationships and rules of a business before the AI ever touches the data. Gartner even predicts that 60% of AI projects will be abandoned by 2028 because they lack this foundation.  </p><p>It sounds like a breakthrough, but if you have spent years in the trenches of data science, this feels like a familiar story with a new coat of paint. </p><h4>What is the &#8220;Context Layer&#8221;?</h4><p>Technically, the context layer is a decoupling of business logic from the raw data storage. According to recent 2026 research from Strategy, it is now categorized as &#8220;Context Infrastructure&#8221;. Instead of an AI agent looking at a raw SQL table and guessing what &#8220;customer_id&#8221; means, the Context Layer provides a semantic map, identifying that &#8220;customer&#8221; in this table is the same &#8220;entity&#8221; as &#8220;user&#8221; in another.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!t9vz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!t9vz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png 424w, https://substackcdn.com/image/fetch/$s_!t9vz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png 848w, https://substackcdn.com/image/fetch/$s_!t9vz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png 1272w, https://substackcdn.com/image/fetch/$s_!t9vz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!t9vz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png" width="1087" height="641" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:641,&quot;width&quot;:1087,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:481382,&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://blog.kidatalab.com/i/196126836?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.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_!t9vz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png 424w, https://substackcdn.com/image/fetch/$s_!t9vz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png 848w, https://substackcdn.com/image/fetch/$s_!t9vz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png 1272w, https://substackcdn.com/image/fetch/$s_!t9vz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0667662-e8aa-43a5-9875-c5fb08a293b4_1087x641.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This involves Context Engineering, which is the process of making tribal knowledge machine-readable. It ensures the AI knows that &#8220;Revenue&#8221; in a sales report means something different than &#8220;Revenue&#8221; in a tax filing. However, a Drexel LeBow study from early 2026 found that while 87% of leaders claim their data is AI-ready, nearly half (42%) admit their infrastructure is actually their biggest obstacle. This disconnect happens because we are trying to build advanced context on top of existing debt. </p><h4>Anchoring Context in Reality: The Audit </h4><p>In my previous work, I&#8217;ve argued that you cannot build these high-level contextual maps if you are still paying interest on the basics.As I explored in <a href="https://blog.kidatalab.com/p/data-strategy-infrastructure-debt">10-Minute Data Strategy Audit: Part 1 - Infrastructure Debt</a>, infrastructure debt manifests as &#8220;Toil&#8221;, the manual, repetitive work that eats your team&#8217;s time. </p><div class="callout-block" data-callout="true"><p><a href="https://blog.kidatalab.com/p/data-strategy-infrastructure-debt">&#8220;If you have 5 pipelines, you can manage them manually. If you have 50, you&#8217;re no longer a Data Scientist, you&#8217;re a full-time pipe-fixer&#8221;. </a></p></div><p>If your critical models only run on one person&#8217;s laptop, your Context Layer will never be more than a prototype.  </p><p>Furthermore, in <a href="https://blog.kidatalab.com/p/data-strategy-data-debt">10-Minute Data Strategy Audit: Part 2 - Data Debt</a>, I noted that the most expensive kind of debt is Data Debt, which destroys trust. </p><div class="callout-block" data-callout="true"><p><a href="https://blog.kidatalab.com/p/data-strategy-data-debt">&#8220;We build for the immediate need of one department without thinking about how that data will be used by the rest of the organization&#8221;. </a></p></div><p>When an AI looks at a Shadow Dashboard created by a VP who doesn&#8217;t trust the official numbers, the AI inherits that lack of shared rules and begins to hallucinate.  </p><h4>A Pragmatic Solution </h4><p>The solution isn&#8217;t to buy a &#8220;Context Infrastructure&#8221; platform and hope it solves your governance. True AI-readiness comes from reducing the surface area of your debt so the AI has a clear signal to follow. </p><ul><li><p><strong>Define the Handshake:</strong> Before building a semantic map for an AI, fix the Data Contract between the software engineers producing data and the analysts consuming it.  </p></li><li><p><strong>Automate the &#8220;Boring&#8221; Foundation: </strong>Target the manual restart in your pipelines. If a system requires human heroics just to stay online, it will never be stable enough to support an autonomous agent.  </p></li><li><p><strong>Consolidate the Truth: </strong>Identify the core five metrics everyone uses. If your humans haven&#8217;t agreed on what &#8220;Active User&#8221; means, your AI certainly won&#8217;t find the answer in the metadata.   </p></li></ul><p>AI readiness is often described as something we&#8217;re chasing, but it really reflects how well we&#8217;ve handled years of ignored data debt, because the &#8220;Context Layer&#8221; only works when the foundations beneath it are finally stable. Being ready doesn&#8217;t come from buying a new tool; it comes from having infrastructure that runs reliably through automation and data definitions that are documented clearly enough for people to trust. </p><p>When a team can answer &#8220;Where did this number come from?&#8221; with a shared, well&#8209;documented explanation, they&#8217;re already ahead of the 60 percent of companies Gartner expects to struggle, and they&#8217;re in a place where machines can actually learn from the systems humans have built. </p><h4>Resources&amp; Further Reading </h4><ol><li><p>Atlan. (2026, March). Key Takeaways from Gartner Data &amp; Analytics Summit 2026. </p></li><li><p>Drexel University, LeBow College of Business. (2026, January). The 2026 State of Data Integrity and AI Readiness. </p></li><li><p>IBM Think. (2026, February). Why AI Data Quality is Key to AI Success.</p></li><li><p>MicroStrategy / Strategy Software. (2026, April). Why Gartner Just Put the Semantic Layer on the Same Level as Cybersecurity. </p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/the-ai-context-layer-vs-data-debt/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/the-ai-context-layer-vs-data-debt/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p></li></ol>]]></content:encoded></item><item><title><![CDATA[The Story Behind KI-Tax: A Free Canadian🇨🇦 Tax Estimator for Self-Employed People]]></title><description><![CDATA[How I Built KI-Tax: A Free Canadian Tax Estimator for Self-Employed People]]></description><link>https://blog.kidatalab.com/p/the-story-behind-ki-tax-a-free-estimator</link><guid isPermaLink="false">https://blog.kidatalab.com/p/the-story-behind-ki-tax-a-free-estimator</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Fri, 17 Apr 2026 14:35:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0Rxu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week I wrote about KI-Tax, a free tax estimator I built for self-employed Canadians. A few people asked how it was built, what the stack looks like, and what the process was actually like. So here&#8217;s the story. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><h4>Where it started</h4><p>It started the same way a lot of side projects start, with a problem I couldn&#8217;t find a good solution to. I wanted to understand my own taxes as a self-employed person in Quebec. I tried building an Excel sheet first, which worked until it didn&#8217;t. Then I looked at existing free tools and found most of them were built for employees, not for people running their own business. So in December, I put together a very basic first version in Streamlit, just enough to answer my own questions. It was rough. It only covered QC, the QPP calculation wasn&#8217;t fully correct, and it didn&#8217;t explain much. But it worked well enough to show me the shape of what I actually wanted to build. So I kept going. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Rxu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Rxu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png 424w, https://substackcdn.com/image/fetch/$s_!0Rxu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png 848w, https://substackcdn.com/image/fetch/$s_!0Rxu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png 1272w, https://substackcdn.com/image/fetch/$s_!0Rxu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Rxu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png" width="1456" height="878" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:878,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:159017,&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://nextindata.substack.com/i/193371689?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.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_!0Rxu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png 424w, https://substackcdn.com/image/fetch/$s_!0Rxu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png 848w, https://substackcdn.com/image/fetch/$s_!0Rxu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png 1272w, https://substackcdn.com/image/fetch/$s_!0Rxu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ccf92af-aa52-4364-ab21-7b3039be3407_1510x911.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A screenshot from KI-Tax</figcaption></figure></div><h4>The tech stack</h4><p>Nothing exotic here. The whole thing is built with:</p><ul><li><p><strong>Python:</strong> core logic, all tax calculations.</p></li><li><p><strong>Streamlit:</strong> app framework and structure. Streamlit&#8217;s native components are fine for quick prototypes but they have real UI limitations when you want something that looks finished. So a meaningful chunk of the visual layer, the metric cards, the breakdown table, the styling, is hand-written HTML and CSS injected directly inside Streamlit. Not the most elegant approach but it gets the job done and gives you control that native Streamlit components simply don&#8217;t offer.</p></li><li><p><strong>Plotly:</strong> the charts. The donut chart for income distribution is straightforward. The Sankey diagram was a deliberate choice, it traces every dollar from gross income through expenses, contributions, and taxes to take-home pay in a way that&#8217;s immediately readable even if you&#8217;ve never looked at a tax breakdown before. An accountant doesn&#8217;t need it but someone trying to understand their taxes for the first time does.</p></li><li><p><strong>Pandas:</strong> expense tracking and data handling.</p></li></ul><p>The tax data lives in a separate Python file as structured dictionaries, federal brackets, all 13 provincial bracket tables, Basic Personal Amounts, CPP and QPP data. No database, no JSON files, just clean Python dictionaries. Simple, readable, and easy to update when rates change every year. Keeping it completely separate from the calculation logic was one of the better early decisions, it means updating 2026 rates next year is a straightforward data change with no risk of touching the calculation logic. </p><p>The whole thing is deployed on Railway on the free tier for now. Straightforward setup, no surprises.</p><h4>The hardest part: verification</h4><p>Building the UI was the easy part. The hard part, genuinely the most time-consuming and at times frustrating part of this whole project, was making sure the numbers were actually right.</p><p>Canadian tax is deceptively complicated. On the surface it looks straightforward: progressive brackets, apply the Basic Personal Amount, done. But the details add up quickly. CPP has two tiers now with different deductibility rules. QPP in Quebec has an additional first tier contribution that most calculators miss entirely. The Quebec federal abatement needs to be applied to pre-credit federal tax, not post-credit. Ontario has a surtax and a Health Premium that are separate calculations. Alberta introduced a new 8% bracket in 2025. Provincial Basic Personal Amounts vary across all 13 jurisdictions and several of them changed for 2025. GST and HST rates differ by province and Nova Scotia quietly reduced its HST from 15% to 14% in April 2025.</p><p>Every one of those things had to be found, verified, and cross-checked. My process for this was layered, I used both Claude and Gemini to check the logic and flag potential errors, then verified every number against official sources: the CRA website, Revenu Qu&#233;bec, provincial government pages, and trusted third-party references like TaxTips.ca. This sounds methodical but in practice it meant a lot of back and forth, a lot of &#8220;wait, that doesn&#8217;t match what the CRA page says,&#8221; and more than a few cases where one AI flagged something the other missed, or where both were wrong and the official source was the only thing that settled it. The QPP first additional contribution debate is a good example, there was genuine ambiguity about whether 10.8% or 12.8% was the right self-employed rate depending on how you interpreted &#8220;base rate,&#8221; and it took going directly to Revenu Qu&#233;bec&#8217;s own documentation to confirm the correct answer and understand exactly why.</p><p>I used AI assistance throughout the build, for logic checks, catching errors, and as a starting point for research. But I treated every AI output as a first draft that needed verification, not a final answer. For something like tax calculations where being wrong has real consequences for real people, that extra layer of checking against authoritative sources wasn&#8217;t optional. It was the whole point.</p><p>The final sanity check was running manual calculations for three provinces(Ontario, Quebec, and Alberta) at $80,000 gross income with no expenses, verifying every single component by hand against CRA published figures, and confirming the tool&#8217;s output matched to the cent. That&#8217;s when I felt confident enough to share it.</p><h4>What&#8217;s next</h4><p>Honestly? Not much in terms of features, at least not immediately. This tool was built for me and for other self-employed people in Canada who just want to understand their taxes without paying for software or hiring an accountant for a back-of-envelope estimate. It&#8217;s free, it&#8217;s going to stay free, and there are no plans to monetize it. No premium tier, no subscription, no ads.</p><p>What I will do is update it with 2026 rates when they&#8217;re confirmed, probably toward the end of the year when CRA and the provinces finalize their numbers. So if you&#8217;re bookmarking it for next year, it&#8217;ll be there and it&#8217;ll be current. </p><p>If you also build tools, I&#8217;d be curious what you would have built differently. Different stack, different architecture, different trade-offs. There&#8217;s no single right way to go from a messy Excel sheet to a deployed tool and I think those decisions are worth talking about.</p><p>If you haven&#8217;t read my previous post, you can read it <strong><a href="https://nextindata.substack.com/p/i-built-a-free-canadian-tax-estimator">here</a></strong>. </p><p>If you&#8217;re self-employed in Canada and haven&#8217;t tried it yet, access the tool <strong><a href="https://ki-datalab.kit.com/e2733924a6">here</a>.</strong></p><p>If you&#8217;d rather read how it works before diving in, there&#8217;s a full user guide <strong><a href="https://www.kidatalab.com/ki-tax/usermanual">here</a>.</strong></p><p>If you have any questions or any feedback let&#8217;s chat in the comments. </p><p><em>Important Disclaimer: This tool provides estimates only based on publicly available 2025 Canadian federal and provincial tax data. It does not account for all tax situations (e.g. RRSP deductions, disability credits, provincial surtaxes, investment income, capital gains, etc.). Always consult a licensed Chartered Professional Accountant (CPA) for accurate, personalized tax advice. Use at your own risk. The CRA and Revenu Qu&#233;bec are the authoritative sources for all tax obligations.</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/the-story-behind-ki-tax-a-free-estimator/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/the-story-behind-ki-tax-a-free-estimator/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[AI Didn't Teach Me to Code But It Changed How I Build]]></title><description><![CDATA[A data scientist's honest take on what AI actually changes about the work, and what it doesn't.]]></description><link>https://blog.kidatalab.com/p/ai-didnt-teach-me-to-code-but-it</link><guid isPermaLink="false">https://blog.kidatalab.com/p/ai-didnt-teach-me-to-code-but-it</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Sun, 12 Apr 2026 16:09:40 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4a5d179f-05b0-439e-90db-21d441e36ca0_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been working with data for over 13 years. I started as an analyst, Excel sheets, pivot tables, the works. 3 years later I moved into Python, did a Master&#8217;s in Data Science, and over time built up a way of working that felt natural to me. I had a comfortable, established process. I knew how to get from a problem to a solution, but it was a manual, linear path. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p>Then AI coding assistants became actually useful. And something shifted, not in what I could do, but in how fast I could do it and what the end result looked like. I want to be honest about what that shift actually means in practice, because the current conversation tends to swing between &#8220;magic&#8221; and &#8220;useless,&#8221; missing the nuance of the middle ground.</p><h4>The part nobody talks about</h4><p>AI is genuinely useful to me when I already understand the problem. When I know what I&#8217;m trying to build, what the constraints are, what the right approach looks like, AI helps me get there faster. It fills in the gaps, handles the parts I&#8217;d otherwise spend an hour Googling, and helps me move from idea to working code without losing momentum.</p><p>But when I don&#8217;t fully understand the problem, AI makes things worse, not better. It gives me answers, confident, well-formatted, plausible-sounding answers that go in the wrong direction. And if you don&#8217;t have the background to recognize that, you can spend a lot of time going down the wrong path very efficiently.</p><p>This is the part that doesn&#8217;t get said enough: AI is a speed multiplier, but only on top of existing knowledge. It doesn&#8217;t replace understanding the problem. It doesn&#8217;t replace knowing your options. It doesn&#8217;t replace the judgment that comes from years of doing the work.</p><h4>What it actually changed for me</h4><p>I&#8217;ll give you a concrete example. I recently built KI-Tax, a free tax estimator for self-employed Canadians. It started as an Excel sheet, which is honestly where a lot of my projects start. I knew Python, I knew Streamlit, I knew enough HTML and CSS to build a decent UI. What AI helped me do was glue those things together faster, catch errors in logic I might have missed, and move from a rough December prototype to a properly built tool covering all 13 Canadian provinces in a fraction of the time it would have taken me before.</p><p>But here&#8217;s the thing, the hardest part of that project had nothing to do with code. It was verifying the tax logic. Canadian tax rules are genuinely complicated, and I used both Claude and Gemini to cross-check calculations, then verified everything against official CRA and Revenu Qu&#233;bec sources anyway. Because AI got things wrong, sometimes confidently wrong. Knowing enough about the subject to catch those errors was the difference between a tool that works and one that gives people bad numbers about their taxes. That&#8217;s not a small distinction.</p><p>I&#8217;m currently working on an RFM analysis project, customer segmentation work that I&#8217;ve done variations of many times over the years. Before, I&#8217;d have a working prototype or an MVP with a rough interface. Now I&#8217;m building a proper UI for it, something that actually looks like a finished product rather than an analyst&#8217;s internal tool. AI is helping me get there. But the analysis itself, the decisions about how to structure it, what to surface, what matters, that&#8217;s still coming from a decade-plus of seeing how these models actually perform in production.</p><h4>What I&#8217;d actually say to someone earlier in their career</h4><p>Learn the fundamentals first. Seriously. Not because AI won&#8217;t help you, of course it will, but because without that foundation, you have no way of knowing when it&#8217;s actually helping or just leading you into a hallucination. The people getting the most out of these tools are the ones who could have solved the problem without them; it just would have taken longer. AI didn&#8217;t make me a better data scientist. It made a competent data scientist faster. That&#8217;s a massive shift, but we should be honest about which one it actually is. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/ai-didnt-teach-me-to-code-but-it/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/ai-didnt-teach-me-to-code-but-it/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[I built a free Canadian🇨🇦 tax estimator for self-employed people]]></title><description><![CDATA[I built a free Canadian tax estimator for self-employed people and I'd love your feedback.]]></description><link>https://blog.kidatalab.com/p/i-built-a-free-canadian-tax-estimator</link><guid isPermaLink="false">https://blog.kidatalab.com/p/i-built-a-free-canadian-tax-estimator</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Sun, 05 Apr 2026 23:34:45 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9ee51484-66a8-43e5-b156-05230b6e0036_1024x1124.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A while back I was trying to get a handle on what I actually owed in taxes as a self-employed person. My first instinct was to build an Excel sheet, map out the brackets, throw in some formulas, see what came out. That worked okay until I realized I was missing things: the QPP self-employment contribution, the deductible portion versus the tax credit portion, provincial differences, quarterly installments. The sheet kept growing and I kept finding new edge cases. I looked at the free tools available online but most of them are built for employees, they don&#8217;t really account for the way self-employment income works, or they lump everything together in a way that makes it hard to understand why the number is what it is.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p>So back in December I built a first version of the tool in Streamlit, nothing fancy, just enough to answer my own questions. But the more I used it, the more gaps I noticed. It only covered Quebec, the QPP calculation wasn&#8217;t fully right, and it didn&#8217;t really explain anything, it just produced a number. So I kept working on it. I added all 13 provinces and territories, got the tax calculations properly verified, built out the expense tracker, added the charts, and made sure the breakdown was clear enough that someone with no tax background could actually follow it. A few months later, here we are. I&#8217;m sharing it now because if I was this confused sorting out my own taxes, I figure other people probably are too, and I&#8217;d rather put something useful out there than keep it to myself. </p><h4>Here&#8217;s how it works</h4><p>You start by selecting your province and entering your gross income, the total amount your clients paid you this year, before anything is taken out. That&#8217;s it to get your first estimate. Everything updates instantly as you type, so you can play with numbers and see the impact in real time.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TaVW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TaVW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png 424w, https://substackcdn.com/image/fetch/$s_!TaVW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png 848w, https://substackcdn.com/image/fetch/$s_!TaVW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png 1272w, https://substackcdn.com/image/fetch/$s_!TaVW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TaVW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png" width="372" height="498" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:498,&quot;width&quot;:372,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26764,&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://nextindata.substack.com/i/193261063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.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_!TaVW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png 424w, https://substackcdn.com/image/fetch/$s_!TaVW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png 848w, https://substackcdn.com/image/fetch/$s_!TaVW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png 1272w, https://substackcdn.com/image/fetch/$s_!TaVW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc9aba4c-6d13-4036-86a8-3c45c5de9343_372x498.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Select Province and enter your gross income.</figcaption></figure></div><p>From there, you can track your business expenses. This is where things get interesting for a lot of self-employed people, your expenses directly reduce the income you&#8217;re taxed on, so keeping track of them matters. The tool uses the same expense categories as the CRA&#8217;s T2125 form, which is the form self-employed people file at tax time. Things like advertising, professional fees, home office costs, travel, software subscriptions, you add them in, and the tool adjusts your estimate accordingly. Meals and entertainment are automatically handled at the CRA&#8217;s 50% deductible rule so you don&#8217;t have to think about it. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1CM3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1CM3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png 424w, https://substackcdn.com/image/fetch/$s_!1CM3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png 848w, https://substackcdn.com/image/fetch/$s_!1CM3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png 1272w, https://substackcdn.com/image/fetch/$s_!1CM3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1CM3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png" width="375" height="898" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:898,&quot;width&quot;:375,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48942,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://nextindata.substack.com/i/193261063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.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_!1CM3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png 424w, https://substackcdn.com/image/fetch/$s_!1CM3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png 848w, https://substackcdn.com/image/fetch/$s_!1CM3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png 1272w, https://substackcdn.com/image/fetch/$s_!1CM3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70ae30b1-e3b4-4c0e-9934-5130963ae870_375x898.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">You can upload your expenses from a csv file or add them one by one.</figcaption></figure></div><p>Once you&#8217;ve entered your income and expenses, the tool shows you a full summary: your net business income, your taxable income after deductions, your federal tax, your provincial tax, your CPP/QPP contribution, your total tax bill, and what you actually take home. Each number is explained so you can understand what it represents and why it&#8217;s there, not just a black box spitting out a result. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hrxQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hrxQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png 424w, https://substackcdn.com/image/fetch/$s_!hrxQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png 848w, https://substackcdn.com/image/fetch/$s_!hrxQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png 1272w, https://substackcdn.com/image/fetch/$s_!hrxQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hrxQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png" width="1421" height="751" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b51f6340-be7c-49f3-92ce-352545825328_1421x751.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:751,&quot;width&quot;:1421,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88577,&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://nextindata.substack.com/i/193261063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.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_!hrxQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png 424w, https://substackcdn.com/image/fetch/$s_!hrxQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png 848w, https://substackcdn.com/image/fetch/$s_!hrxQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png 1272w, https://substackcdn.com/image/fetch/$s_!hrxQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb51f6340-be7c-49f3-92ce-352545825328_1421x751.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Expense Tracker table</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WxLu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WxLu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png 424w, https://substackcdn.com/image/fetch/$s_!WxLu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png 848w, https://substackcdn.com/image/fetch/$s_!WxLu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png 1272w, https://substackcdn.com/image/fetch/$s_!WxLu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WxLu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png" width="1402" height="588" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:588,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:104179,&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://nextindata.substack.com/i/193261063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.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_!WxLu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png 424w, https://substackcdn.com/image/fetch/$s_!WxLu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png 848w, https://substackcdn.com/image/fetch/$s_!WxLu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png 1272w, https://substackcdn.com/image/fetch/$s_!WxLu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2191e473-b906-4ecb-b64a-e8053a61a91a_1402x588.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Tax summary with installment info.</figcaption></figure></div><p>There&#8217;s also a visual section with two charts. The first is a simple donut chart showing what percentage of your income goes where, federal tax, provincial tax, CPP/QPP, and take-home pay. The second is a flow diagram that traces every dollar from your gross income through expenses, contributions, and taxes all the way to your pocket. If you&#8217;ve ever wondered &#8220;where did my money go,&#8221; that diagram answers it pretty clearly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vs-n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vs-n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png 424w, https://substackcdn.com/image/fetch/$s_!Vs-n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png 848w, https://substackcdn.com/image/fetch/$s_!Vs-n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png 1272w, https://substackcdn.com/image/fetch/$s_!Vs-n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vs-n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png" width="1363" height="853" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:853,&quot;width&quot;:1363,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109346,&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://nextindata.substack.com/i/193261063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.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_!Vs-n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png 424w, https://substackcdn.com/image/fetch/$s_!Vs-n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png 848w, https://substackcdn.com/image/fetch/$s_!Vs-n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png 1272w, https://substackcdn.com/image/fetch/$s_!Vs-n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa6855e0-5f85-4d75-82af-833ed1809199_1363x853.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Donut chart</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EcYF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EcYF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png 424w, https://substackcdn.com/image/fetch/$s_!EcYF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png 848w, https://substackcdn.com/image/fetch/$s_!EcYF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png 1272w, https://substackcdn.com/image/fetch/$s_!EcYF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EcYF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png" width="1397" height="846" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:846,&quot;width&quot;:1397,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107400,&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://nextindata.substack.com/i/193261063?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.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_!EcYF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png 424w, https://substackcdn.com/image/fetch/$s_!EcYF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png 848w, https://substackcdn.com/image/fetch/$s_!EcYF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png 1272w, https://substackcdn.com/image/fetch/$s_!EcYF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ab709c4-3a48-4d1b-8796-662d476d9a93_1397x846.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Sankey diagram</figcaption></figure></div><p>One thing I found really useful personally is the quarterly installment planner. As a self-employed person in Canada, if your income tax owing exceeds $3,000, or $1,800 if you&#8217;re in Quebec,  you&#8217;re required to make quarterly payments to the CRA (or Revenu Qu&#233;bec) throughout the year rather than paying everything in April. The tool checks your estimate against the threshold for your province and tells you whether you need to be making payments, how much per quarter, and when the due dates are. It sounds obvious but it genuinely surprised me the first time I realized I should have been doing this. Quebec was actually one of the trickier provinces to get right in general,  between the QPP instead of CPP, the federal tax abatement, and Revenu Qu&#233;bec&#8217;s own thresholds and rules, there are more moving parts than most other provinces. But everything is handled automatically regardless of where you are, whether you&#8217;re in Ontario, BC, Alberta, Quebec, or anywhere else in the country, the tool picks up the right rates, thresholds, and rules for your province the moment you select it.</p><p>Finally, you can export all your tracked expenses as a CSV file and reload them next time. It&#8217;s not accounting software, <strong>it doesn&#8217;t save automatically</strong>, but it means you don&#8217;t have to start from scratch every time you open it. </p><p>One last thing worth mentioning, the tool doesn&#8217;t collect or store any data whatsoever. No account, no tracking, no analytics on what you enter. Your income and expenses stay in your browser and disappear when you close the tab. I think that&#8217;s the right way to build something like this, especially when people are entering sensitive financial information. What you type is yours.</p><p>If you&#8217;d like to try it, just drop your email at the link below and I&#8217;ll send you the access link right away. No spam, no waitlist, just the tool.</p><p>Try it <strong><a href="https://ki-datalab.kit.com/e2733924a6">here</a></strong>.</p><p>You can also find the user manual <strong><a href="https://www.kidatalab.com/ki-tax/usermanual">here</a></strong>.</p><p><strong>PS: Please use it on your desktop. </strong></p><p>And if you do try it, I&#8217;d genuinely love to hear what you think. What&#8217;s useful, what&#8217;s confusing, what&#8217;s missing, drop a comment below or reply to this post. This is very much a work in progress and honest feedback is the most useful thing you can send my way. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/i-built-a-free-canadian-tax-estimator/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/i-built-a-free-canadian-tax-estimator/comments"><span>Leave a comment</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p><em>Important Disclaimer: This tool provides estimates only based on publicly available 2025 Canadian federal and provincial tax data. It does not account for all tax situations (e.g. RRSP deductions, disability credits, provincial surtaxes, investment income, capital gains, etc.). Always consult a licensed Chartered Professional Accountant (CPA) for accurate, personalized tax advice. Use at your own risk. The CRA and Revenu Qu&#233;bec are the authoritative sources for all tax obligations. </em></p>]]></content:encoded></item><item><title><![CDATA[Is Your AI Habit Giving You “Brain Fry”?]]></title><description><![CDATA[Insights from a new HBR study on the cognitive costs of the AI-driven workplace.]]></description><link>https://blog.kidatalab.com/p/your-ai-habit-giving-you-brain-fry</link><guid isPermaLink="false">https://blog.kidatalab.com/p/your-ai-habit-giving-you-brain-fry</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Tue, 10 Mar 2026 17:02:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/97102fb0-8991-49f4-8827-279ee83c5c15_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We&#8217;ve been told that Generative AI is the ultimate efficiency tool. But if you&#8217;ve ended a workday feeling a strange mental &#8220;buzzing&#8221; or a fog that makes it hard to focus, you&#8217;re experiencing a very real phenomenon.</p><p>In a recent study published by Harvard Business Review (March 2026), researchers Julie Bedard, Matthew Kropp, and their colleagues identified a new type of exhaustion they call &#8220;AI Brain Fry.&#8221; </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p><strong>What exactly is &#8220;Brain Fry&#8221;?</strong></p><p>The researchers define it as mental fatigue resulting from excessive use or oversight of AI tools beyond a person&#8217;s cognitive capacity. Unlike general burnout, which is often emotional, this is an acute cognitive strain. Key findings from the study include:</p><ul><li><p><strong>The Oversight Tax:</strong> The most taxing part of AI work isn&#8217;t the creation but it&#8217;s the monitoring. High degrees of AI oversight led to 12% more mental fatigue and 19% greater information overload.</p></li><li><p><strong>The Three-Tool Limit:</strong> While using two AI tools can boost productivity, the study found that productivity scores actually dipped once a user tried to manage more than three tools simultaneously.</p></li><li><p><strong>The Business Cost:</strong> This &#8220;fry&#8221; leads to a 33% increase in decision fatigue and a significantly higher frequency of self-reported major errors. </p></li></ul><p><strong>The Silver Lining: Less Toil, Less Burnout</strong></p><p>The study also found that when  AI is used specifically to replace routine or repetitive tasks (what the authors call &#8220;toil&#8221;), burnout scores actually dropped by 15%. Participants in this group reported higher work engagement and more time for social connection with peers.</p><p><strong>Three Lessons for Professionals</strong></p><p>To avoid the cognitive &#8220;fry&#8221; while still reaping the benefits of AI, the study suggests a few critical shifts in how we work: </p><ol><li><p><strong>Set Agent Limits:</strong> The data suggests adverse productivity gains after the use of three AI agents at the same time. Don&#8217;t juggle more than your brain can reasonably comprehend.</p></li><li><p><strong>Focus on Impact, Not Intensity:</strong> Incentivizing the quantity of AI use leads to waste and mental strain. Start with clear business objectives rather than just &#8220;rewarding token consumption.&#8221;</p></li><li><p><strong>Develop Management Skills:</strong> Advanced AI users often feel blocked unless they develop new skills like problem framing and strategic prioritization. Working harder to manage the tools is not the same as solving the problem. </p></li></ol><p><strong> The Responsibility of the Organization</strong></p><p>Perhaps the most critical takeaway from the study is that &#8220;AI Brain Fry&#8221; is not an individual failure; it is an organizational risk that leadership must manage. The researchers found a measurable &#8220;AI orphan tax&#8221; where mental fatigue spikes when managers expect employees to figure out these complex tools on their own. To prevent a crisis of cognitive overload, companies must move away from using AI as a tool for work intensification. True success requires leadership to set explicit guardrails, provide clear strategy and training, and prioritize &#8220;cognitive thriving&#8221; over raw token consumption. It is up to organizations to ensure that AI is used to subtract the drudgery of work, rather than simply adding a new, exhausting layer of digital oversight to an already full plate. </p><p>AI is an amplifier. It can amplify your creativity, or it can amplify your exhaustion. The goal for 2026 isn&#8217;t just to use more AI, it&#8217;s to use it in a way that leaves us with more energy at 5pm, not less. </p><p>How are you feeling lately? Are you hitting that &#8220;AI sweet spot,&#8221; or is the &#8220;mental static&#8221; starting to creep in? Let&#8217;s chat in the comments!</p><p><em>For the full deep dive into the data, check out the original article by Bedard et al. in Harvard Business Review. </em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/your-ai-habit-giving-you-brain-fry/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/your-ai-habit-giving-you-brain-fry/comments"><span>Leave a comment</span></a></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Why Calculating AI ROI Is Harder Than It Looks]]></title><description><![CDATA[Everyone's investing in AI and almost nobody can agree on what they're actually getting back.]]></description><link>https://blog.kidatalab.com/p/why-calculating-ai-roi-is-harder</link><guid isPermaLink="false">https://blog.kidatalab.com/p/why-calculating-ai-roi-is-harder</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Wed, 25 Feb 2026 01:30:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1c8771a6-5675-4038-9bdb-07fb25628856_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let&#8217;s start with an uncomfortable truth: most companies cannot tell you with any real confidence whether their AI investments are paying off. Not because they&#8217;re not trying, and not because the technology isn&#8217;t working but because the whole idea of measuring ROI on AI is genuinely, structurally hard.</p><p>This isn&#8217;t a hot take. It&#8217;s where the data keeps landing, year after year. And in 2025, with AI spending hitting record highs and boardroom pressure mounting, the gap between investment and measurable returns has become one of the most urgent conversations in business. Spending is up but confidence in measuring the outcome is not. So what&#8217;s actually going on?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h4>The Formula Isn&#8217;t the Problem</h4><p>ROI, at its core, is simple math: take what you gained, subtract what you spent, divide by what you spent, multiply by 100.  The formula works great for capital equipment, ad campaigns, and new hires. It falls apart for AI. The problem isn&#8217;t the formula. It&#8217;s the inputs.</p><blockquote><p>AI can definitely make work faster but faster doesn&#8217;t mean ROI.  </p></blockquote><p>When you implement AI in, say, a customer service workflow, some things are measurable: ticket resolution time, cost per interaction, headcount saved. But what about the quality of decisions your team makes because they&#8217;re less burnt out? The institutional knowledge that didn&#8217;t walk out the door because turnover dropped? The competitive deal you won because your sales team had better intelligence? These aren&#8217;t hypothetical benefits. They&#8217;re real and they&#8217;re nearly impossible to attribute cleanly to a single AI tool. </p><h4>The Attribution Trap</h4><p>Even when you do see measurable improvements, attribution is a minefield. Say productivity goes up 20% after deploying an AI writing tool. Was that the AI? Or did you also restructure the team, hire a great manager, and streamline your approval process at the same time? Most organizations are running multiple initiatives in parallel, which means clean causation is rare.</p><p>There&#8217;s also the baseline problem: you can&#8217;t measure improvement if you didn&#8217;t carefully document where you started. According to IBM, most companies skip baselining the pre-AI process entirely and then regret it when they try to make the case to their CFO six months later. </p><h4>The Four Reasons AI ROI Is Hard to Measure</h4><ul><li><p>    Soft benefits (morale, decision quality, talent retention) are real but can&#8217;t be cleanly quantified</p></li><li><p>    Attribution is nearly impossible when multiple initiatives are running simultaneously</p></li><li><p>    Most companies skip baselining before deployment, leaving no &#8220;before&#8221; to compare against</p></li><li><p>    AI&#8217;s value often compounds over time, the payback period is 2&#8211;4 years vs. the typical 7&#8211;12 months for traditional software </p></li></ul><h4>The Data Quality Problem Nobody Talks About Enough</h4><p>Here&#8217;s a stat that should make any AI buyer pause: 85% of business leaders cite data quality as their biggest challenge in AI strategy, according to KPMG. If your data is messy, your AI produces unreliable results. If your results are unreliable, your ROI measurement is built on sand. This is the hidden cost that rarely makes it into the pitch deck.</p><h4>Hard ROI vs. Soft ROI and Why You Need Both</h4><p>Financial analysts split AI returns into two buckets. Hard ROI is the stuff that shows up directly on the P&amp;L: fewer support tickets, reduced infrastructure costs, faster turnaround times. These are measurable, defensible, and CFO-friendly.</p><p>Soft ROI is everything else: employee satisfaction, better decisions, improved customer experience, reduced burnout. Harder to quantify, but arguably more important for long-term organizational health. CIO Magazine suggests tracking &#8220;squishy ROI&#8221; employee sentiment, usage rates, self-reported productivity early on, because adoption and trust are what eventually unlock the hard numbers.</p><p>The trap is treating these as separate. The companies seeing the best returns are the ones connecting them: using soft signals to drive adoption, which drives usage, which generates the data and processes needed to measure hard impact.</p><h4>What the Best Companies Do Differently</h4><p>Gartner&#8217;s research on early AI adopters found that the organizations achieving real results, an average 15.8% revenue increase, 15.2% cost savings, and 22.6% productivity improvement, had one thing in common: they started with a specific, measurable business problem rather than a general AI aspiration.</p><p>The companies that struggle tend to do the opposite. As one IBM researcher put it: &#8220;Step one: we&#8217;re going to use LLMs. Step two: what should we use them for?&#8221; That&#8217;s a very expensive way to learn a  lesson.</p><p>The practical playbook from organizations that do this well tends to look like: define the specific business problem first &#8594; baseline current performance obsessively &#8594; run a controlled pilot &#8594; measure against the baseline &#8594; only then scale. It&#8217;s boring but it works.</p><h4>The Bottom Line</h4><p>AI ROI isn&#8217;t uncalculable, but it is genuinely difficult, and anyone who tells you otherwise is probably selling you something. The math is simple. The inputs are unreliable, the timelines are longer than traditional technology, the attribution is messy, and the most meaningful benefits often resist neat quantification.</p><p>That doesn&#8217;t mean you shouldn&#8217;t invest. It means you should invest differently: with a clear problem in mind, a documented baseline, realistic timelines (think 2&#8211;4 years, not quarters), and a measurement framework that accounts for both hard and soft returns.</p><p>The companies pulling ahead aren&#8217;t the ones who spent the most on AI. They&#8217;re the ones who were honest about what they were measuring and why. The AI payback period is typically 2&#8211;4 years. Most companies are evaluating it on a 6-month horizon. That&#8217;s a mismatch worth talking about.  </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/why-calculating-ai-roi-is-harder/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/why-calculating-ai-roi-is-harder/comments"><span>Leave a comment</span></a></p><p><strong>Sources</strong></p><ol><li><p>Deloitte. (2025, October). <em>AI ROI: The paradox of rising investment and elusive returns</em>. <a href="https://www.deloitte.com/nl/en/issues/generative-ai/ai-roi-the-paradox-of-rising-investment-and-elusive-returns.html">https://www.deloitte.com/nl/en/issues/generative-ai/ai-roi-the-paradox-of-rising-investment-and-elusive-returns.html</a></p></li><li><p>IBM Think. (2025). <em>How to maximize AI ROI in 2026</em>. IBM. <a href="https://www.ibm.com/think/insights/ai-roi">https://www.ibm.com/think/insights/ai-roi</a></p></li><li><p>Fruhlinger, J. (2025, December 16). AI ROI: How to measure the true value of AI. <em>CIO Magazine</em>. <a href="https://www.cio.com/article/4106788/ai-roi-how-to-measure-the-true-value-of-ai-2.html">https://www.cio.com/article/4106788/ai-roi-how-to-measure-the-true-value-of-ai-2.html</a> </p></li><li><p>Steinert, J., Turner, N., &amp; Kapoor, P. (2025, June 30). <em>Closing the ROI gap when scaling AI</em>. Guidehouse. <a href="https://guidehouse.com/insights/financial-services/2025/close-the-roi-gap-when-scaling-ai">https://guidehouse.com/insights/financial-services/2025/close-the-roi-gap-when-scaling-ai</a> </p></li><li><p>Gartner. (2024, July 29). <em>Gartner predicts 30% of generative AI projects will be abandoned after proof of concept by end of 2025</em>. <a href="https://www.gartner.com/en/newsroom/press-releases/2024-07-29-gartner-predicts-30-percent-of-generative-ai-projects-will-be-abandoned-after-proof-of-concept-by-end-of-2025">https://www.gartner.com/en/newsroom/press-releases/2024-07-29-gartner-predicts-30-percent-of-generative-ai-projects-will-be-abandoned-after-proof-of-concept-by-end-of-2025</a></p></li><li><p>KPMG. (2024). <em>AI quarterly pulse survey: Q2 2024</em>. KPMG LLP. <a href="https://kpmg.com/us/en/articles/2025/ai-quarterly-pulse-survey.html">https://kpmg.com/us/en/articles/2025/ai-quarterly-pulse-survey.html</a> </p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[10-Minute Data Strategy Audit: Part 4 - Knowledge Debt]]></title><description><![CDATA[Part 4 - Knowledge Debt (The &#8220;Bus Factor&#8221; Lens)]]></description><link>https://blog.kidatalab.com/p/data-strategy-knowledge-debt</link><guid isPermaLink="false">https://blog.kidatalab.com/p/data-strategy-knowledge-debt</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Tue, 17 Feb 2026 16:20:04 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7364312d-7281-4c00-a4b8-759eb9b33d67_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We&#8217;ve all lived through the &#8220;resignation panic.&#8221; A senior member of the team puts in their two-week notice, and suddenly, the mood in the office shifts from productivity to a desperate scavenger hunt. Everyone realizes that this one person holds the &#8220;keys to the kingdom&#8221;, the undocumented SQL logic, the secret credentials for the legacy warehouse, and the &#8220;tribal knowledge&#8221; required to fix that one pipeline that always breaks on Tuesdays. This is Knowledge Debt. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p>Through years of hands&#8209;on work in data, I&#8217;ve seen that high&#8209;performing teams are built on resilience, not tools.  If your department is one resignation away from a total system collapse, you aren&#8217;t scaling, you&#8217;re just gambling. </p><p><strong>What Knowledge Debt Actually Looks Like</strong></p><p>It&#8217;s the silent friction that makes everything take twice as long as it should: </p><ul><li><p><strong>The &#8220;Archeology&#8221; Onboarding:</strong> A new hire spends their first three weeks just trying to find the right table definitions because the documentation hasn&#8217;t been updated since 2022.</p></li><li><p><strong>The Hero Dependency:</strong> There is a specific &#8220;hero&#8221; on the team who is constantly interrupted during their deep-work time because they are the only person who knows how a core system works.</p></li><li><p><strong>The &#8220;Black Box&#8221; Logic:</strong> You have a critical pricing or churn model that everyone uses, but nobody actually knows how the features are calculated. &#8220;It just works, don&#8217;t touch it.&#8221;</p></li><li><p><strong>The Duplicate Effort:</strong> Two different teams spend a month building the exact same data asset because neither knew the other existed. </p></li></ul><p><strong>Why We Get Stuck Here </strong></p><p>Knowledge debt is a byproduct of speed. When the business is screaming for a result, documenting the process feels like an indulgence we can&#8217;t afford. We tell ourselves we&#8217;ll &#8220;write it up later,&#8221; but in the data world, &#8220;later&#8221; is where good intentions go to die.</p><p><strong>The Path to &#8220;Green&#8221;: Lowering Your &#8220;Bus Factor&#8221;</strong></p><p>You don&#8217;t need to spend a month writing a 200-page wiki. You just need to build a culture where knowledge is treated as a shared asset rather than a personal secret. Here are three ways to start: </p><p><strong>1. The &#8220;Two-Person&#8221; Rule</strong></p><p>This is the simplest way to lower your &#8220;Bus Factor&#8221; (the number of people who would have to get hit by a bus for your project to stall).</p><ul><li><p><strong>The Solution:</strong> For every critical system or pipeline, ensure at least two people have actually &#8220;touched&#8221; the code. This isn&#8217;t just about reading documentation; it&#8217;s about cross-training. Have them swap tasks for a week. If the second person can&#8217;t run the system without calling the first, you&#8217;ve identified a debt gap.</p></li></ul><p><strong>2. Documentation as &#8220;Code Review&#8221;</strong></p><p>Documentation shouldn&#8217;t be a separate task you do at the end of a project; it should be a requirement for finishing it.</p><ul><li><p><strong>The Solution:</strong> Make basic documentation a mandatory part of your Peer Review or Pull Request process. If the code isn&#8217;t commented and the README isn&#8217;t updated, the PR doesn&#8217;t get merged. It&#8217;s much easier to write three sentences today than a 10-page manual six months from now.</p></li></ul><p><strong>3. Capture &#8220;The Why,&#8221; Not Just &#8220;The What&#8221;</strong></p><p>Most documentation fails because it explains what the code does (which the code itself already says) but ignores why it was done that way.</p><ul><li><p><strong>The Solution:</strong> Focus on &#8220;Decision Logs.&#8221; When a team member makes a major architectural choice, have them spend 5 minutes recording the reasoning. Knowing why you chose one database over another is much more valuable to a future team member than a list of table names. </p></li></ul><p><strong>The Bottom Line</strong></p><p>Knowledge Debt is the &#8220;interest&#8221; you pay in the form of anxiety and wasted time. Getting to &#8220;Green&#8221; doesn&#8217;t mean you have a perfect library of documents, it means you have a team that is interchangeable and resilient. It&#8217;s the peace of mind that comes from knowing that if your top contributor takes a three-week vacation, the business won&#8217;t stop moving.</p><p>Is there a &#8220;Hero&#8221; on your team who has become a bottleneck for everyone else? That&#8217;s your biggest risk factor. Let&#8217;s talk about how to start the knowledge transfer in the comments. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/data-strategy-knowledge-debt/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/data-strategy-knowledge-debt/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[10-Minute Data Strategy Audit: Part 3 - Model Debt]]></title><description><![CDATA[Part 3 - Model Debt (The ML Lifecycle Lens)]]></description><link>https://blog.kidatalab.com/p/data-strategy-model-debt</link><guid isPermaLink="false">https://blog.kidatalab.com/p/data-strategy-model-debt</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Sun, 15 Feb 2026 17:12:24 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/db2bb1f4-c7ce-4a11-a588-ac3349e3fe64_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There is a unique kind of anxiety that comes with Machine Learning: the fear that your model is quietly failing in the background and nobody has noticed yet. I call these Zombie Models. They are technically &#8220;alive&#8221;, they are returning predictions and the API isn&#8217;t throwing errors but the world has changed around them. The data has drifted, the user behavior has shifted, and the model is now effectively guessing.</p><p>In my 13 years in this field, I&#8217;ve seen that Model Debt is the hardest to track because it&#8217;s invisible. You don&#8217;t get a &#8220;404 Not Found&#8221; error when a model starts underperforming. You just get a slow, silent erosion of business value. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>What Model Debt Actually Feels Like</strong></p><p>It&#8217;s not just &#8220;bad accuracy&#8221;; it&#8217;s the operational weight of a black box:</p><ul><li><p><strong>The &#8220;User-as-Monitor&#8221;:</strong> Your first sign that a model is failing is an angry email from a stakeholder saying the recommendations &#8220;look weird today.&#8221;</p></li><li><p><strong>The Pipeline Jungle:</strong> To get the model to work, you have a series of &#8220;temporary&#8221; scripts and manual data exports that have somehow become permanent parts of the production flow.</p></li><li><p><strong>The Hidden Feedback Loop:</strong> Your model is predicting user behavior, but its predictions are actually changing that behavior, creating a &#8220;death spiral&#8221; of data that no one is auditing.</p></li><li><p><strong>The Fear of Retraining:</strong> The original creator of the model left the company, and now the team is afraid to retrain it because &#8220;we&#8217;re not sure exactly which features were used in the final version.&#8221; </p></li></ul><p><strong>Why We Get Stuck Here</strong></p><p>We get stuck because we celebrate the &#8220;Launch&#8221; but ignore the &#8220;Life.&#8221; In most organizations, the glory is in the deployment. But in ML, deployment is only the first 10% of the work. The other 90% is the lifecycle management, and that&#8217;s where the debt accumulates. </p><p><strong>The Path to &#8220;Green&#8221;: Turning Off the Zombies</strong></p><p>Getting to a &#8220;Green&#8221; score in Model Debt doesn&#8217;t require a $100k MLOps platform. It requires standardized guardrails. Here are three practical ways to start: </p><p><strong>1. Build a &#8220;Circuit Breaker&#8221;</strong></p><p>In electrical engineering, a circuit breaker stops the flow of power when something is wrong. Your models need the same thing.</p><ul><li><p><strong>The Solution:</strong> Set up a simple &#8220;sanity check&#8221; script. If the distribution of your model&#8217;s predictions shifts by more than 20% in a day, the system sends an alert. It&#8217;s better to show a &#8220;default&#8221; result than a confidently wrong prediction. </p></li></ul><p><strong>2. Kill the Manual Retrain</strong></p><p>If retraining your model requires a Data Scientist to spend two days manually running notebooks, you have a high-interest debt problem.</p><ul><li><p><strong>The Solution:</strong> Don&#8217;t worry about &#8220;Auto-ML&#8221; yet. Just focus on <strong>reproducibility</strong>. Can a junior scientist run a single script and get the same model you have in production? If the answer is &#8220;no,&#8221; your first priority is version-controlling your training data and parameters.</p></li></ul><p><strong>3. Define the &#8220;Sunset&#8221; Date</strong></p><p>Every model has an expiration date.</p><ul><li><p><strong>The Solution:</strong> When you launch a model, decide then and there when it will be re-evaluated. If it&#8217;s not meeting its KPIs or if it hasn&#8217;t been updated in six months, it gets turned off or replaced. This prevents &#8220;Zombie Models&#8221; from haunting your infrastructure for years. </p></li></ul><p><strong>The Bottom Line</strong></p><p>Model Debt isn&#8217;t about being &#8220;bad at math.&#8221; It&#8217;s about the gap between the code we wrote and the reality of the data today. Getting to &#8220;Green&#8221; means you&#8217;ve moved from reactive monitoring (waiting for things to break) to proactive evaluation. You want a system where you can sleep soundly because you know that if a model starts failing, the system will tell you before the users do.</p><p>Is there a model running in your production environment right now that nobody has checked on in months? That&#8217;s your highest interest debt. Let&#8217;s talk about how to audit those &#8220;Zombies&#8221; in the comments. </p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[10-Minute Data Strategy Audit: Part 2 - Data Debt]]></title><description><![CDATA[Data Debt (The Governance Lens) for Data Strategy Audit]]></description><link>https://blog.kidatalab.com/p/data-strategy-data-debt</link><guid isPermaLink="false">https://blog.kidatalab.com/p/data-strategy-data-debt</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Fri, 13 Feb 2026 17:01:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ae187590-0f41-414a-a2cc-c7cfe2a8eb9f_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We&#8217;ve all been in that meeting. The Head of Sales presents one revenue number. The Head of Marketing presents another. Both look at you to figure out why they don&#8217;t match. You spend the next three hours digging through SQL queries only to find that one team defines a &#8220;customer&#8221; differently than the other. That isn&#8217;t a technical error, it is Data Debt. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p>In my 13 years in this field, I&#8217;ve found that data debt is the most expensive kind to carry. Unlike infrastructure debt, which slows down your engineers, data debt slows down the entire company. It destroys trust. And once trust is gone, people start building &#8220;shadow dashboards&#8221;, their own private versions of the truth, which only makes the problem worse. </p><p><strong>What Data Debt Actually Feels Like</strong></p><p>It&#8217;s rarely about &#8220;missing data.&#8221; It&#8217;s about the friction caused by a lack of shared rules:</p><ul><li><p><strong>The &#8220;Shadow&#8221; Dashboard:</strong> A VP doesn&#8217;t trust the official company dashboard, so they have an analyst manually export data to a &#8220;private&#8221; Excel sheet every Monday.</p></li><li><p><strong>The Broken Pipeline:</strong> A software engineer renames a column in the production database to &#8220;clean things up,&#8221; and three downstream dashboards instantly go dark because there was no &#8220;contract&#8221; between the producer and the consumer.</p></li><li><p><strong>The Metric War:</strong> Two teams are looking at the same KPI, but one is using &#8220;Gross&#8221; and the other is using &#8220;Net,&#8221; yet both labels just say &#8220;Revenue.&#8221;</p></li><li><p><strong>The &#8220;Data Archeologist&#8221;:</strong> You have one person on the team who is the only one who knows which tables are &#8220;real&#8221; and which ones are &#8220;legacy trash from 2021.&#8221; </p></li></ul><p><strong>Why We Get Stuck Here</strong></p><p>Data debt usually happens because of silos. We build for the immediate need of one department without thinking about how that data will be used by the rest of the organization. We prioritize &#8220;getting the data out&#8221; over &#8220;getting the data right.&#8221; </p><p><strong>The Path to "Green": Building a Culture of Trust</strong></p><p>You don&#8217;t solve data debt by &#8220;cleaning&#8221; the data, that&#8217;s just treating the symptom. You solve it by fixing the governance. Here are three ways to move toward a Green score without a year-long overhaul: </p><p><strong>1. Standardize the &#8220;Core Five&#8221;</strong></p><p>You don&#8217;t need to define every single metric in the company on day one.</p><p><strong>The Solution:</strong> Identify the five most important metrics that everyone uses (e.g., Active Users, Revenue, Churn). Get the stakeholders in a room, agree on a single definition, and document it in one place. If it&#8217;s not in the &#8220;Source of Truth,&#8221; it doesn&#8217;t exist.</p><p><strong>2. Introduce &#8220;Data Contracts&#8221; (The Handshake)</strong></p><p>Data debt often happens because the people producing data (software engineers) don&#8217;t know who is consuming it (data scientists).</p><ul><li><p><strong>The Solution:</strong> Start a simple &#8220;handshake&#8221; process. Before a source table changes, the producers must notify the consumers. This shifts the mindset from &#8220;I&#8217;m just changing a database&#8221; to &#8220;I am delivering a product.&#8221; It turns federated data into a consistent, reliable service.</p></li></ul><p><strong>3. Kill the &#8220;Zombie&#8221; Reports</strong></p><p>Shadow dashboards thrive in the dark.</p><ul><li><p><strong>The Solution:</strong> Run an audit of your BI tool. If a report hasn&#8217;t been viewed in 60 days, archive it. If someone complains, you&#8217;ve found a hidden dependency. If nobody notices, you&#8217;ve just reduced your &#8220;surface area&#8221; for errors. Reducing the number of reports makes it much easier to ensure the remaining ones are accurate. </p></li></ul><p><strong>The Bottom Line</strong></p><p>Data governance sounds like a boring corporate buzzword, but in reality, it&#8217;s just etiquette for data. It&#8217;s the agreement that we won&#8217;t break each other&#8217;s work and that we&#8217;ll use the same language to describe our success. Getting to &#8220;Green&#8221; doesn&#8217;t mean your data is perfect. It means that when someone asks, &#8220;Where did this number come from?&#8221; you have a clear, documented answer that everyone trusts.</p><p>Is your team spending more time &#8220;cleaning&#8221; data than actually analyzing it? That&#8217;s the classic sign of a trust deficit. Let&#8217;s talk about how to fix the &#8220;handshake&#8221; in the comments. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/data-strategy-data-debt/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/data-strategy-data-debt/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[10-Minute Data Strategy Audit: Part 1 - Infrastructure Debt]]></title><description><![CDATA[Solving Infrastructure Toil (Without Deleting Your Cloud)]]></description><link>https://blog.kidatalab.com/p/data-strategy-infrastructure-debt</link><guid isPermaLink="false">https://blog.kidatalab.com/p/data-strategy-infrastructure-debt</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Wed, 11 Feb 2026 15:38:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d31370de-233b-46a6-a98a-81d31a91c3b1_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In my 13 years in data, I&#8217;ve seen teams with brilliant models get completely sidelined by &#8220;infrastructure friction.&#8221; We often think of infrastructure debt as &#8220;using old versions of software.&#8221; But the real debt is Toil. Google&#8217;s SRE team defines Toil as the manual, repetitive, &#8220;tactical&#8221; work that grows as your system grows. If you have 5 pipelines, you can manage them manually. If you have 50, you&#8217;re no longer a Data Scientist, you&#8217;re a full-time pipe-fixer. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p><strong>What Infrastructure Debt Actually Looks Like:</strong></p><p>It&#8217;s never a single catastrophic failure; it&#8217;s a thousand tiny papercuts:</p><ul><li><p><strong>The &#8220;Local Machine&#8221; Trap:</strong> A critical model only runs on one person&#8217;s laptop because the production environment is missing &#8220;certain libraries&#8221; no one can identify.</p></li><li><p><strong>The Weekend Pipeline:</strong> A data load fails every Saturday morning. Instead of fixing the root cause, the team has a rotating &#8220;weekend shift&#8221; just to hit the restart button.</p></li><li><p><strong>The Ghost in the Machine:</strong> You change a variable in Staging, it works perfectly, you move it to Production, and everything breaks. Why? Because six months ago, someone manually changed a setting in the Prod console and never told anyone.</p></li><li><p><strong>The &#8220;Surprise&#8221; Cloud Bill:</strong> You realize you&#8217;ve been paying $2,000 a month for a GPU instance that was spun up for a &#8220;quick test&#8221; in 2023 and forgotten. </p></li></ul><p>Why do we fall into this? We do it because we are under pressure. We tell ourselves: &#8220;I&#8217;ll just fix this manually today so we can hit the deadline, and I&#8217;ll automate it properly next week.&#8221; But &#8220;next week&#8221; never comes. Eventually, the team spends 60% of their time just &#8220;keeping the lights on,&#8221; leaving only 40% for actual innovation. </p><p><strong>Three Ways to Start &#8220;Getting to Green&#8221;</strong></p><p>You don&#8217;t need to be a DevOps engineer to fix this. You just need to be disciplined about where you spend your team&#8217;s energy. </p><p><strong>1. Target the &#8220;Manual Restart&#8221;</strong></p><p>Find the one thing your team has to &#8220;check on&#8221; every day. Is it a server that runs out of memory? A pipeline that needs a manual kick-start?</p><ul><li><p><strong>The Solution:</strong> Don&#8217;t rebuild the whole architecture. Just add a simple automated &#8220;health check&#8221; or a script that cleans up the memory. If you save 20 minutes a day, you&#8217;ve just bought your team two hours of deep work a week.</p></li></ul><p><strong>2. Declare &#8220;Console Freeze&#8221;</strong></p><p>One of the biggest sources of debt is &#8220;Click-Ops&#8221;, manually clicking buttons in the AWS or Azure console. It&#8217;s fast in the moment, but it&#8217;s invisible to the rest of the team.</p><ul><li><p><strong>The Solution:</strong> Start a &#8220;Source of Truth&#8221; document (or a repo). If a setting is changed in the cloud, it must be updated in the doc first. This moves you toward &#8220;Infrastructure as Code&#8221; without needing to learn complex new tools overnight.</p></li></ul><p><strong>3. Set &#8220;Budget Guardrails&#8221;</strong></p><p>Infrastructure debt often manifests as financial waste.</p><ul><li><p><strong>The Solution:</strong> Instead of complex cost-optimization, just set up automated alerts. If a specific project&#8217;s cost spikes by 20% in a single day, the lead gets an email. Visibility alone usually changes team behavior overnight, people start cleaning up their &#8220;zombie&#8221; instances when they know the bill is being watched. </p></li></ul><p><strong>The Bottom Line</strong></p><p>Infrastructure shouldn&#8217;t be a &#8220;hobby&#8221; your team does on the side. It is the foundation of your velocity. Getting to &#8220;Green&#8221; doesn&#8217;t mean your cloud is perfect; it means your cloud is boring. You want an infrastructure that is so stable and automated that you actually forget it&#8217;s there.</p><p>Does your team have a &#8220;Hero&#8221; who is the only one who knows how to fix the servers? That&#8217;s a major debt signal. Let&#8217;s talk about how to break that cycle in the comments.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/data-strategy-infrastructure-debt/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/data-strategy-infrastructure-debt/comments"><span>Leave a comment</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[The 10-Minute Data Strategy Audit: A Data Lead’s Diagnostic]]></title><description><![CDATA[After 13 years in Data Science and Analytics, I&#8217;ve realized that we spend far more time discussing &#8220;innovation&#8221; than we do managing the &#8220;interest&#8221; on our technical debt.]]></description><link>https://blog.kidatalab.com/p/the-10-minute-data-strategy-audit</link><guid isPermaLink="false">https://blog.kidatalab.com/p/the-10-minute-data-strategy-audit</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Tue, 03 Feb 2026 03:05:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8a3041c5-5941-49d9-9d25-3054ec8975ef_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>After 13 years in Data Science and Analytics, I&#8217;ve realized that we spend far more time discussing &#8220;innovation&#8221; than we do managing the &#8220;interest&#8221; on our technical debt. We&#8217;ve all read the foundational literature from Martin Fowler&#8217;s &#8220;Technical Debt Quadrant&#8221; to Google&#8217;s seminal paper, &#8220;Hidden Technical Debt in Machine Learning Systems.&#8221; These works taught us that debt isn&#8217;t just &#8220;bad code&#8221;; it&#8217;s a strategic choice that eventually comes due. </p><p>However, as a Lead or Senior Scientist, you don&#8217;t always have time to re-read academic papers. You need a way to look at your department today and know where the rot is. I have synthesized these practical leadership heuristics into a 10-minute diagnostic tool designed specifically for data leadership.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.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://blog.kidatalab.com/subscribe?"><span>Subscribe now</span></a></p><p></p><p>This isn&#8217;t just about code; it&#8217;s about the four systemic pillars that determine whether your team can scale or if you&#8217;re one resignation away from a total system collapse. </p><p><strong>The Audit: A Practical Synthesis</strong></p><p><em>Note: This framework adapts Fowler&#8217;s quadrants and Google&#8217;s ML debt categories into four &#8220;Data Strategy&#8221; buckets.</em></p><p><em><strong>1. Infrastructure Debt (The Operational Lens)</strong></em></p><p>The Concept: Influenced by Google&#8217;s Site Reliability Engineering principles. </p><p>The Question: How much manual &#8220;toil&#8221; is required to maintain your environments? Do you struggle with environment drift (staging vs. prod), unpredictable cloud costs, or gaps in system observability?</p><p>    <strong>1 (Red):</strong> High manual overhead; environment configurations are inconsistent; costs are opaque.</p><p>    <strong>2 (Yellow):</strong> Basic automation is in place, but system performance and costs require frequent manual troubleshooting.</p><p>    <strong>3 (Green):</strong> Infrastructure is version-controlled; costs are optimized via automation; full observability into pipeline health is the baseline.</p><p><em><strong>2. Data Debt (The Governance Lens)</strong></em></p><p>The Concept: Derived from Zhamak Dehghani&#8217;s Data Mesh and the Data Contract movement. </p><p>The Question: How many &#8220;shadow dashboards&#8221; exist because users don&#8217;t trust the primary data products? Is there a clear framework for data quality, or do inconsistencies lead to constant cross-team debates?</p><p>    <strong>1 (Red):</strong> Frequent debates over &#8220;whose numbers are right&#8221;; no shared definitions for key metrics across domains.</p><p>    <strong>2 (Yellow):</strong> Domain-specific data assets exist, but lack a unified governance layer to ensure consistency.</p><p>    <strong>3 (Green):</strong> Clear data contracts in place; federated governance ensures consistent metrics across the organization regardless of which team owns the data.</p><p><em><strong>3. Model Debt (The ML Lifecycle Lens)</strong></em></p><p>The Concept: Directly applying the Google &#8220;Hidden Technical Debt&#8221; research. </p><p>The Question: What percentage of production models lack automated drift detection or a scheduled retraining trigger?</p><p>    <strong>1 (Red):</strong> &#8220;Zombie models&#8221; exist; monitoring is reactive (we wait for the user to complain).</p><p>    <strong>2 (Yellow):</strong> Standard monitoring is in place, but retraining is manual and ad-hoc.</p><p>    <strong>3 (Green):</strong> Robust MLOps; automated circuit-breakers for model performance.</p><p><em><strong>4. Knowledge Debt (The &#8220;Bus Factor&#8221; Lens)</strong></em></p><p>The Concept: A standard software engineering metric for team resilience. </p><p>The Question: If your top two contributors left tomorrow, could the remaining team maintain the systems without a &#8220;black box&#8221; failure?</p><p>    <strong>1 (Red):</strong> Critical systems are undocumented; knowledge is siloed in 1-2 heads.</p><p>    <strong>2 (Yellow):</strong> Documentation exists but is 6+ months out of date.</p><p>    <strong>3 (Green):</strong> Culture of documentation and cross-training; low &#8220;bus factor.&#8221; </p><p><strong>The Debt-Action Matrix: Your Strategic Playbook</strong></p><p>Based on your scores above, here is how I recommend prioritizing your next quarter: </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YzKG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YzKG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png 424w, https://substackcdn.com/image/fetch/$s_!YzKG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png 848w, https://substackcdn.com/image/fetch/$s_!YzKG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png 1272w, https://substackcdn.com/image/fetch/$s_!YzKG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YzKG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png" width="1085" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ebbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:1085,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52297,&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://nextindata.substack.com/i/186555166?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.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_!YzKG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png 424w, https://substackcdn.com/image/fetch/$s_!YzKG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png 848w, https://substackcdn.com/image/fetch/$s_!YzKG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png 1272w, https://substackcdn.com/image/fetch/$s_!YzKG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febbec8e3-b0cd-4db4-b3fe-0211426dfe4d_1085x377.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>The Debt-Action Matrix</strong></figcaption></figure></div><p><strong>Why Curation is Leadership</strong></p><p>The goal of this audit isn&#8217;t to achieve a perfect 12/12. As Martin Fowler famously noted, &#8220;Deliberate Debt&#8221; can be a tool for speed. The danger is &#8220;Inadvertent Debt&#8221;, the mess that happens when you aren&#8217;t looking . By running this audit, you&#8217;re moving from accidentally messy to strategically managed. What&#8217;s the &#8220;highest interest&#8221; debt your team is paying right now? Let&#8217;s discuss in the comments. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/p/the-10-minute-data-strategy-audit/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.kidatalab.com/p/the-10-minute-data-strategy-audit/comments"><span>Leave a comment</span></a></p><p><strong>Further Reading &amp; Industry Influences</strong></p><p>If you want to dive deeper into the theories that shaped this audit, I highly recommend these foundational resources:</p><ul><li><p><em>The Technical Debt Quadrant (Martin Fowler): </em>The original 2009 framework that categorized debt into Deliberate vs. Inadvertent and Prudent vs. Reckless.</p></li><li><p><em>Hidden Technical Debt in Machine Learning Systems (Google Research):</em> The &#8220;must-read&#8221; paper for any data leader. It explains why ML systems have a unique way of &#8220;eroding boundaries&#8221; and creating high-interest debt</p></li><li><p><em>The 4 Core Principles of Data Mesh (Zhamak Dehghani): </em>The origin of the &#8220;Data as a Product&#8221; mindset, which is the best defense against &#8220;Data Debt.&#8221; </p></li><li><p><em>Eliminating Toil (Google SRE Book):</em> The definitive guide to identifying &#8220;Infrastructure Debt&#8221; and why manual, repetitive tasks (Toil) are the enemy of scaling. </p></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[Execution Debt: A Quiet Problem for Senior Technical Builders]]></title><description><![CDATA[There&#8217;s a failure mode I see increasingly often among experienced data scientists and technical professionals.]]></description><link>https://blog.kidatalab.com/p/execution-debt-for-senior-builders</link><guid isPermaLink="false">https://blog.kidatalab.com/p/execution-debt-for-senior-builders</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Tue, 27 Jan 2026 14:46:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/95289416-a49d-4155-9408-fc0ddde82c8a_1024x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There&#8217;s a failure mode I see increasingly often among experienced data scientists and technical professionals. It doesn&#8217;t look like incompetence. It doesn&#8217;t look like lack of ideas. In fact, it often shows up in people who are very capable. It looks like motion without progress. After enough years in the field, the problem is no longer &#8220;Can I build this?&#8221; The problem becomes &#8220;What&#8217;s the right way to build this?&#8221; And that question, when left unconstrained, can quietly kill execution. This post is about that trap, why it happens, and the practical constraints that helped me move forward. </p><p>With experience comes optionality. You know multiple stacks. You understand tradeoffs. You&#8217;re aware of long-term maintenance costs, scalability concerns, vendor lock-in, UX debt, and monetization risks. All of that knowledge is real and earned. The downside is that every new idea immediately explodes into ten possible implementations.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>Web app or script?</p></li><li><p>Custom front end or no-code?</p></li><li><p>Self-hosted or platform-based?</p></li><li><p>Build once or design for extensibility?</p></li></ul><p>At a junior level, these questions don&#8217;t exist. At a senior level, they exist all at once. The result is a peculiar kind of stagnation: lots of planning, lots of evaluation, occasional prototypes, but nothing crossing the line into a paid, real-world product. </p><p>I had a working Python tool that I created some time ago. It wasn&#8217;t theoretical. It ran. It produced outputs. It solved a real problem. Yet it lived in a kind of limbo. I explored multiple directions: different hosting options, potential rewrites, broader product ideas, future extensions. Each option was reasonable in isolation. Collectively, they kept reopening the decision space. Nothing was &#8220;wrong,&#8221; so nothing felt urgent. The problem wasn&#8217;t technical debt or missing features. The problem was that every new option reset commitment.  </p><p>The turning point came from recognizing a simple but under-discussed distinction: some tools feel finite, others feel infinite. Files(spreadsheets, scripts, static dashboards) have edges. You finish them. You ship them. They resist scope creep by their nature. Web apps feel infinite. There&#8217;s always another page, another flow, another edge case. That infinity is intoxicating, especially for experienced builders. It also delays shipping. This doesn&#8217;t mean web apps are bad. It means they require discipline that most people underestimate, particularly when building solo.  </p><p>The mistake I was making was treating every move as a reinvention. Instead of asking &#8220;How do I build the best possible version of this?&#8221;, the better question was: &#8220;How do I move this existing thing closer to being selleble, with the least new surface area?&#8221;. That led to a simple rule set:</p><ul><li><p>Don&#8217;t rebuild working logic</p></li><li><p>Don&#8217;t expand scope</p></li><li><p>Don&#8217;t improve UX beyond parity</p></li><li><p>Don&#8217;t mix learning goals with product goals</p></li></ul><p>The decision was to keep the Python core exactly as it was and move only the front end to a more flexible UI layer. No new features. No architectural elegance. Just a better door. </p><p>No-code tools are often framed as either magic or malpractice. In reality, they&#8217;re neither. They&#8217;re just tools with failure modes.  The key constraint that made this viable was separation of concerns:</p><ul><li><p>All business logic stays in Python</p></li><li><p>The UI layer only collects inputs and displays outputs</p></li><li><p>The backend is exposed as a simple API</p></li><li><p>No logic duplication</p></li></ul><p>Under these constraints, a no-code front end becomes a wrapper, not a platform dependency. It accelerates UI and payments without contaminating the core. This distinction matters if you care about long-term optionality.  </p><p>Another hard-earned lesson: &#8220;free&#8221; is not a harmless default. A free version without a clear boundary becomes a comfortable stall. It delays the moment where the product has to justify itself. If there&#8217;s a free tier, it needs a visible ceiling:</p><ul><li><p>limited runs</p></li><li><p>reduced output</p></li><li><p>preview-only results</p></li></ul><p>Not as a dark pattern, but as an honest signal: this tool has value, and that value isn&#8217;t infinite. Nothing dramatic happened overnight. There was no breakthrough insight about markets or technology. What changed was commitment. By freezing scope, accepting imperfection, and treating learning as a side effect of shipping rather than the goal, the product finally crossed from &#8220;interesting&#8221; to &#8220;real.&#8221; That shift, from exploration to execution, is uncomfortable for senior people precisely because they can see all the ways it could be better. The discipline is choosing not to pursue them yet. </p><p>The broader lesson is that experience rarely fails by making people incapable. It fails by making everything feel provisional. When you&#8217;ve seen enough systems, tools, and tradeoffs, it becomes easy to keep decisions open &#8220;just in case,&#8221; even when closing them would unlock progress.</p><p>For experienced technical professionals trying to build products, the real tension is often between correctness and completion. It shows up in the habit of reopening decisions that were already good enough, or in treating learning as a prerequisite when, in reality, it quietly postpones commitment.</p><p>Constraints aren&#8217;t a loss of freedom. They&#8217;re the mechanism that allows experienced people to ship. Sometimes the most senior move isn&#8217;t building something better or more elegant, but finishing something good enough and letting reality do the rest. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Stack Overflow Paradox: How AI is Starving Its Own Source of Intelligence]]></title><description><![CDATA[Exploring why the 78% drop in Stack Overflow activity signals a dangerous "knowledge plateau" for the next generation of coding AI.]]></description><link>https://blog.kidatalab.com/p/the-stack-overflow-paradox-ai</link><guid isPermaLink="false">https://blog.kidatalab.com/p/the-stack-overflow-paradox-ai</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Tue, 13 Jan 2026 12:05:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/92e825bf-4f50-45c0-b075-e1ff21997453_600x600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>According to recent news, Stack Overflow is witnessing an unprecedented collapse in community engagement, with new question volume in December 2025 falling to just 3862, a staggering 78% decline compared to December 2024. This trend is corroborated by the 2025 Stack Overflow Developer Survey, which reveals that 84% of developers have now fully integrated AI tools into their workflows. The reasoning behind this shift is twofold: developers are drawn to the "instant nature" of AI assistants and, perhaps more importantly, the "zero-judgment" environment they provide. Unlike the traditional forum experience, an AI does not downvote a beginner's question or close a thread as a "duplicate," offering a safe space for iterative learning that the human community has struggled to maintain. </p><p>This migration is further accelerated by what many contributors describe as the "hostile culture" of Stack Overflow. For years, the platform has faced criticism for its rigid moderation and the often abrasive tone of senior "gatekeepers" toward newer users. While these strict standards once ensured high data quality, they have now become the platform's greatest liability. In the face of a frictionless, polite AI alternative, the social cost of participating in a hostile human forum has become too high for most. As the "human layer" of the platform erodes, the very social friction that once polished the site's data is now driving the community toward extinction. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>This leads directly to the "knowledge plateau" paradox. While Stack Overflow&#8217;s historical archive remains the most valuable training set for coding AI, the cessation of new human content creates a terminal bottleneck for future intelligence. If the community stops producing public documentation of 2026-era technologies due to AI reliance and forum hostility, AI models will eventually run out of "ground truth" to learn from. We are entering a cycle where developers use AI to solve problems in private, which prevents those solutions from ever being indexed for the next generation of LLMs. Consequently, AI risks becoming a "static mirror" of the past, increasingly incapable of reasoning through the bugs and nuances of future software releases because the human-led "global brain" that fed it has gone silent. </p><p>Ultimately, the paradox suggests that by opting for the convenience and safety of AI today, we may be inadvertently starving the models of the tomorrow. The reasoning is clear: AI is a reflection of human collective intelligence, not a replacement for it. If the hostile culture and the lure of instant answers permanently kill the public "commons" of programming knowledge, the AI itself will eventually hit a ceiling, unable to advance alongside the very technology it is meant to help us build. This perspective is frequently countered by the claim that modern documentation is now so robust that community forums have outlived their usefulness. Yet, this sentiment overlooks the critical distinction between a manual and a troubleshoot. Official documentation provides the "happy path", the idealized way technology is designed to work in a vacuum, whereas Stack Overflow archives the "unhappy path" of version conflicts, deployment errors, and real-world failures. For those who "hate Stackoverflow" it is easy to ignore that these threads contain the "negative training data" that prevents AI from hallucinating. Without a continuous, public record of how 2026-era technologies actually break, AI models will eventually reach a knowledge plateau where they can quote documentation flawlessly but lack the learned intuition required to solve the messy, unscripted bugs that define professional engineering. </p><p></p><p>Sources / Further Reading</p><p><strong>-Anderson, T. (2026, January 5).</strong> <em>"Dramatic drop in Stack Overflow questions as devs look elsewhere for help."</em> <strong>DevClass. </strong></p><p><strong>-Stack Overflow Data Team. (2025, December).</strong> <em>"2025 Developer Survey: The State of AI and Community Trust."</em> <strong>Stack Overflow Blog.</strong></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[When “AI-First” Meets Reality]]></title><description><![CDATA[What Salesforce&#8217;s layoffs and strategic reversal reveal about the limits of automation]]></description><link>https://blog.kidatalab.com/p/when-ai-first-meets-reality</link><guid isPermaLink="false">https://blog.kidatalab.com/p/when-ai-first-meets-reality</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Tue, 06 Jan 2026 15:02:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ad00acf1-5a84-4a8b-9f74-5d69d182a9e9_1024x729.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I wrote about this a few weeks ago in a piece titled <em>AI Isn&#8217;t Cutting Developer Jobs, It&#8217;s Just Changing What We Do</em> (25.11.2025, link: https://nazanwrites.beehiiv.com/p/ai-isn-t-cutting-developer-jobs-it-s-just-changing-what-we-do). At the time, the dominant narrative was already clear: AI would automate knowledge work at scale, companies would trim teams, and productivity gains would neatly replace human labor. Since then, reality has been less tidy. Yes, there have been job cuts, and yes, AI is deeply reshaping how work gets done but not in the clean, linear way many tech companies seemed to expect.  </p><p>In September 2025, Salesforce became the poster child for the &#8220;AI will replace humans&#8221; narrative. CEO Marc Benioff casually confirmed that the company&#8217;s customer support organization had been reduced from roughly 9,000 people to about 5,000. The justification was straightforward: AI agents were already handling around half of all customer conversations, and according to Benioff, that simply meant he &#8220;needed less heads.&#8221; He framed the moment as a breakthrough, an overdue rebalancing enabled by generative AI and described the period as the most exciting phase of his career.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>That confidence did not survive the year.</p><p>By December, Salesforce executives were publicly walking back earlier assumptions. Sanjna Parulekar, the company&#8217;s Senior Vice President of Product Marketing, admitted that leadership had been far more optimistic about large language models a year earlier. What changed wasn&#8217;t ideology, but exposure. As these systems were pushed into more complex, real-world workflows, their limitations became difficult to ignore. LLMs turned out to be inherently probabilistic, prone to drifting off task, skipping instructions, or behaving unpredictably once the problem space became even moderately complicated.</p><p>Salesforce&#8217;s own engineers confirmed the issue. CTO Muralidhar Krishnaprasad explained that once an AI agent receives more than a handful of explicit instructions, often as few as eight, it begins to fail silently, omitting steps or ignoring constraints. This wasn&#8217;t a theoretical concern. Customers like Vivint discovered that AI agents built on Salesforce tooling were failing to perform basic actions, such as sending customer satisfaction surveys, despite being clearly instructed to do so. Fixing these failures required the introduction of &#8220;deterministic&#8221; safeguards: rigid, rule-based triggers layered on top of the AI to ensure it actually did what it was supposed to do.</p><p>By the end of 2025, the company&#8217;s strategy had quietly shifted. The loud &#8220;AI-first&#8221; positioning gave way to something more restrained: a &#8220;data-first&#8221; approach focused on foundations, controls, and predictability rather than model intelligence. Benioff himself began emphasizing the need to reduce hallucinations and uncertainty by prioritizing structured data over autonomous reasoning. And while thousands of support roles had been cut earlier in the year, Salesforce spent the closing months of 2025 ramping up hiring on the sales side, acknowledging, somewhat sheepishly, that AI still lacks the human judgment, trust, and relational depth required for complex business interactions. </p><p>What this gap between expectations and reality makes clear is that AI didn&#8217;t fail, it was oversold, and then over-deployed. The expectation was replacement: fewer people, flatter teams, cleaner processes. The reality has been messier. Today&#8217;s models are powerful but fragile, impressive in demos and unreliable at the edges where real work lives. They accelerate some tasks while creating new ones: monitoring, correcting, scaffolding, and building guardrails around systems that cannot be trusted unattended. We&#8217;re no longer in the phase of asking whether AI works, but where it breaks, and how costly those failures are. That&#8217;s where caution becomes necessary, not as resistance to progress, but as an acknowledgment that probabilistic systems don&#8217;t behave like software, and pretending they do leads to brittle organizations and expensive reversals. </p><p>The Salesforce example brings the reality into sharp focus. The expectation was that AI would allow companies to do the same work with fewer people, cleanly and permanently. The reality has been closer to a reshuffle than a reduction. Headcount was cut where AI looked impressive on paper, then quietly rebuilt elsewhere once the limits became obvious. Automation handled the surface-level interactions, but humans were still needed to define boundaries, resolve ambiguity, repair failures, and carry relationships that models couldn&#8217;t sustain. What looked like efficiency at the executive level often translated into fragility on the ground. The lesson isn&#8217;t that AI has no place in tech organizations, it clearly does, but that treating it as a substitute for human judgment is a category error. Salesforce didn&#8217;t eliminate complexity; it displaced it, and then had to pay attention to where it landed. </p><p><strong>Sources / Further Reading</strong></p><p>&#8211; <em>Slashdot</em> (Sept 1, 2025): Coverage of Marc Benioff&#8217;s comments on reducing Salesforce support headcount following the rollout of AI agents.<br>&#8211; <em>The Economic Times</em> (Dec 23, 2025): Reporting on Salesforce executives acknowledging declining confidence in large language models and a shift toward more predictable automation.<br>&#8211; <em>Salesforce Newsroom</em> (Nov&#8211;Dec 2025): Official posts outlining Salesforce&#8217;s transition toward deterministic, data-first AI systems.</p><p></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Exams in the Age of AI: What Are We Really Testing?]]></title><description><![CDATA[I asked this question in my notes last week and got some interesting answers, so I decided to write a post about it: I just saw in the news that professors are going back to oral exams to prevent students from using AI.]]></description><link>https://blog.kidatalab.com/p/exams-in-the-age-of-ai</link><guid isPermaLink="false">https://blog.kidatalab.com/p/exams-in-the-age-of-ai</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Tue, 23 Dec 2025 17:02:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/baf17796-5b8e-4643-aa04-c3ddf69451aa_892x738.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I asked this question in my notes last week and got some interesting answers, so I decided to write a post about it: <em><strong>I just saw in the news that professors are going back to oral exams to prevent students from using AI. What do you think about this?</strong></em> What surprised me wasn&#8217;t just the range of opinions, but how each response touched a different layer of the same problem. As a data scientist, I can&#8217;t help but see this less as an &#8220;AI cheating&#8221; issue and more as a signal that our evaluation systems are being stress-tested by a new variable they weren&#8217;t designed for.</p><p>One of the comments mentioned that many STEM exams in Russian universities have traditionally been oral and extremely difficult. That resonated with me. Oral exams force you to expose your reasoning in real time, there&#8217;s no hiding behind polished output. You can&#8217;t just arrive at the right answer; you have to justify how you got there, respond to follow-up questions, and adapt when challenged. From a data science perspective, this is closer to how expertise actually shows up in practice. In real work, nobody hands you a perfectly phrased problem and gives you unlimited time to respond. You&#8217;re constantly asked to explain assumptions, defend trade-offs, and revise your thinking on the fly. Oral exams, when done well, measure understanding rather than pattern reproduction.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Another comment pointed out that this doesn&#8217;t mean students can&#8217;t use AI, it just means they still need to learn the material well enough to speak about it. I think that distinction is crucial. AI is already a learning tool, whether institutions like it or not. Trying to ban it entirely is like trying to ban calculators after they already exist. The more interesting question is how we design assessments so that AI use shifts from shortcut to scaffold. If a student uses AI to study, practice explanations, or test their understanding, and then has to demonstrate that understanding orally, that&#8217;s not a failure of education, that&#8217;s arguably a better alignment between tools and outcomes.</p><p>There was also a comment praising oral exams for valuing communication skills, which are undeniably important in the real world. As someone working in data science, I can say this is true but incomplete. Yes, being able to explain complex ideas clearly is a career advantage. But another comment rightly raised concerns about accessibility: oral exams can be a real barrier for people with speech impediments, neurodivergence, anxiety, or even just discomfort hearing their own voice. From a systems perspective, this matters. If an assessment method systematically disadvantages certain groups, then its signal is noisy. You&#8217;re no longer measuring &#8220;who understands the material,&#8221; you&#8217;re measuring &#8220;who performs best under a very specific social constraint.&#8221;</p><p>What I take away from all these comments is that oral exams aren&#8217;t inherently good or bad, they&#8217;re a tool. And like any tool, their value depends on how and why they&#8217;re used. AI didn&#8217;t break education; it exposed how much of our testing was optimized for recall rather than reasoning. The real question isn&#8217;t &#8220;how do we stop students from using AI?&#8221; but &#8220;are our pedagogy and evaluation methods keeping up with the world students are entering?&#8221; From a data scientist&#8217;s lens, if your metric is easy to game, you don&#8217;t blame the player, you redesign the metric. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[OpenAI vs Google Gemini: What the AI face-off means for users]]></title><description><![CDATA[OpenAI vs Google Gemini: What the AI face-off means for users]]></description><link>https://blog.kidatalab.com/p/openai-vs-google-gemini-face-off</link><guid isPermaLink="false">https://blog.kidatalab.com/p/openai-vs-google-gemini-face-off</guid><dc:creator><![CDATA[Nazan | NextInData]]></dc:creator><pubDate>Sat, 13 Dec 2025 01:43:28 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/1c383dd5-718b-4db7-8464-e7d2c5c42b3f_1024x622.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The competition between OpenAI and Google has hit a new peak this week, and the ripple effects are landing directly in users&#8217; hands. Beyond the PR noise, the real story is how this arms race is shifting product quality, reliability, pricing, and the way we work with AI in daily life.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>This week&#8217;s escalation</strong></p><p>OpenAI launched GPT&#8209;5.2, positioning it as its strongest model for professional, multi&#8209;step work, with notable gains in coding, long&#8209;context handling, image perception, and complex project execution. OpenAI highlighted benchmark wins (e.g., perfect AIME 2025 performance for the &#8220;Thinking&#8221; tier versus GPT&#8209;5.1&#8217;s 94), underscoring a push toward more dependable reasoning without external tools.</p><p>On the same day, Google unveiled an upgraded Gemini Deep Research agent powered by Gemini 3 Pro, designed to synthesize large information sets, produce research reports, and embed a research&#8209;grade agent across Google products like Search, Finance, NotebookLM, and the Gemini app, signaling a strategy to fuse AI directly into the information stack users already touch daily.</p><p>These moves followed weeks of mounting pressure: reporting described OpenAI declaring a &#8220;code red&#8221; internally in response to Google&#8217;s Gemini 3 surge, a clear sign of how seriously both companies are treating this moment.</p><p>Where the models are diverging</p><ul><li><p><strong>Reasoning and complex tasks:</strong> OpenAI is promoting GPT&#8209;5.2&#8217;s gains in long&#8209;context understanding, math, and multi&#8209;step workflows, framing it as better suited for professional use and tool&#8209;assisted projects. Benchmarks and capability claims emphasize stronger structured problem&#8209;solving.</p></li><li><p><strong>Embedded research agent:</strong> Google&#8217;s Gemini Deep Research leans into synthesis at scale, managing large context dumps, due diligence, and domain&#8209;specific research (e.g., drug toxicity), and is being woven into core Google surfaces, reducing friction between &#8220;search&#8221; and &#8220;analysis&#8221; for everyday users.</p></li><li><p><strong>Platform strategy:</strong> OpenAI focuses on model tiers (Instant, Thinking, Pro) and professional utility; Google focuses on pervasive integration across its product ecosystem. The former bets on better &#8220;brains,&#8221; the latter on better &#8220;placement&#8221; in users&#8217; workflows.</p></li></ul><p>Industry coverage this week has described the dynamic as a genuine face&#8209;off, with both sides explicitly timing releases and messaging to compete head&#8209;to&#8209;head on reasoning, coding, and research&#8209;grade use cases.</p><p>Practical impacts for users</p><ul><li><p><strong>Faster, more capable assistants:</strong> Expect better spreadsheet generation, presentations, code scaffolding, and long&#8209;context comprehension in chat interfaces, reducing the need for manual stitching of tools. These are specifically cited as improvements in GPT&#8209;5.2&#8217;s capabilities.</p></li><li><p><strong>Research built into search:</strong> Gemini Deep Research&#8217;s embedding into Google products could turn &#8220;search&#8221; into &#8220;synthesized answers + sources,&#8221; cutting the time from query to usable summary or due diligence brief.</p></li><li><p><strong>Lower friction in daily workflows:</strong> If your work lives in Google&#8217;s ecosystem (Docs, Drive, Search), Gemini&#8217;s integrations may feel more natural. If you rely on structured task execution (coding, multi&#8209;step prompts, long project threads), GPT&#8209;5.2&#8217;s tiers and reasoning focus may fit better.</p></li><li><p><strong>Benchmark&#8209;driven trust but keep perspective:</strong> OpenAI&#8217;s benchmark wins convey progress, but real&#8209;world reliability depends on context, guardrails, and product integrations. Google&#8217;s approach may prioritize consistency within its ecosystem over benchmark headlines.</p></li></ul><p>Risks and trade&#8209;offs</p><ul><li><p><strong>Rapid changes, uneven reliability:</strong> With both companies iterating quickly, users may see capability spikes alongside shifting behaviors, UI changes, and evolving limits. Coverage this week characterized the pace as an intensified &#8220;arms race,&#8221; which often brings volatility alongside innovation.</p></li><li><p><strong>Ecosystem lock&#8209;in:</strong> Deeper integration means convenience, but switching costs rise. Gemini&#8217;s embedding across Google products and OpenAI&#8217;s tiered model access could nudge users into vendor&#8209;specific workflows.</p></li><li><p><strong>Opaque differences behind similar claims:</strong> Both sides claim superior reasoning and coding; the real distinction often shows up in edge cases, long&#8209;context stability, factual precision under heavy synthesis, and tool orchestration quality.</p></li></ul><p>How to choose right now</p><ul><li><p><strong>If you live in Google&#8217;s stack:</strong> You&#8217;ll likely benefit from Gemini Deep Research&#8217;s native synthesis in Search, NotebookLM, and Finance, especially for research, briefs, and context&#8209;heavy reviews.</p></li><li><p><strong>If you need structured execution:</strong> GPT&#8209;5.2&#8217;s reported improvements in long&#8209;context, math, coding, and multi&#8209;step projects, plus its &#8220;Thinking&#8221; tier&#8217;s benchmark gains, make it strong for complex, repeatable workflows.</p></li><li><p><strong>Test with your own tasks:</strong> Run the same multi&#8209;step prompt or research question on both. Compare context retention, citation quality, and how well each integrates with your daily tools. The week&#8217;s news suggests both are improving, but your workflow will expose the practical winner.</p></li></ul><p>This week&#8217;s duel (OpenAI&#8217;s GPT&#8209;5.2 vs Google&#8217;s Gemini Deep Research( brings tangible gains: stronger reasoning and coding from OpenAI, and more embedded, research&#8209;grade synthesis from Google. For users, the real benefit is choice: pick the assistant that best fits your workflow, not just the strongest headline benchmark.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.kidatalab.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>