<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Fazal E Haq — Insights</title>
    <link>https://fazalehaq.com</link>
    <description>FP&amp;A, finance systems, Excel/VBA, automation, and professional judgment.</description>
    <language>en-ca</language>
    <lastBuildDate>Tue, 25 Aug 2026 09:57:14 GMT</lastBuildDate>
    <item>
      <title>Automating the Month-End Pack: What Actually Worked</title>
      <link>https://fazalehaq.com/blog/automating-month-end-pack</link>
      <guid isPermaLink="true">https://fazalehaq.com/blog/automating-month-end-pack</guid>
      <pubDate>Thu, 20 Aug 2026 13:17:00 GMT</pubDate>
      <description>Every FP&amp;A team knows the month-end drill: pull the data, reconcile it, rebuild the pack, chase the variance explanations. At one point our cycle consumed four working days every month — not analyzing, just assembling.</description>
      <content:encoded><![CDATA[<p>Every FP&amp;A team knows the month-end drill: pull the data, reconcile it, rebuild the pack, chase the variance explanations. At one point our cycle consumed four working days every month — not analyzing, just assembling.</p><p>The instinct is to start with the dashboard. I did the opposite. I started with the extraction layer — SQL queries against SAP that returned the same clean structure every time. Only when the data arrived consistently did I add a Python layer to validate it: totals that must tie, account mappings that must exist, variances beyond a threshold that get flagged before a human ever sees them.</p><p>The Power BI pack came last, and by then it was almost easy — a dashboard is only ever as reliable as what feeds it. The cycle went from four days to same-day, and about twenty hours a month of manual consolidation disappeared.</p><p>Two lessons if you are attempting the same: first, automate the reconciliation before the presentation — a beautiful dashboard built on unreconciled data makes things worse, faster. Second, keep a manual fallback path for the first three cycles. Trust in automation is earned by parallel runs, not by promises.</p>]]></content:encoded>
    </item>
    <item>
      <title>Five VBA Validation Patterns Every FP&amp;A Team Should Steal</title>
      <link>https://fazalehaq.com/blog/vba-validation-patterns</link>
      <guid isPermaLink="true">https://fazalehaq.com/blog/vba-validation-patterns</guid>
      <pubDate>Thu, 13 Aug 2026 13:17:00 GMT</pubDate>
      <description>When I built a toolkit to consolidate twelve department budget templates, the time-saving part was easy. The valuable part was the validation — the checks that stop a broken submission before it contaminates the master model. Here are five patterns worth stealing.</description>
      <content:encoded><![CDATA[<p>When I built a toolkit to consolidate twelve department budget templates, the time-saving part was easy. The valuable part was the validation — the checks that stop a broken submission before it contaminates the master model. Here are five patterns worth stealing.</p><h2>1. Completeness before anything else</h2><p>Scan required input cells first and reject the file with a named list of what is missing. &quot;Missing: headcount, Q3&quot; is a two-minute fix; a silent blank is a two-hour hunt.</p><h2>2. Range guards on every assumption</h2><p>If a department enters a 40% merit increase, that is not data — that is a conversation. Flag out-of-range inputs and route them for review instead of failing silently.</p><h2>3. Broken-link scans</h2><p>Budget templates accumulate external references like barnacles. Check for links to other workbooks and old file paths before consolidation, not after the numbers look wrong.</p><h2>4. Version stamps on every submission</h2><p>Write the template version into a hidden cell and refuse anything older than the current cycle. Half of consolidation errors are simply last quarter&apos;s file.</p><h2>5. An exception log, not a message box</h2><p>Every flagged issue goes to a log sheet the reviewer can work through. Message boxes get clicked away; a log gets resolved.</p><p>None of this is sophisticated code. It is unglamorous defensive plumbing — and it is exactly what makes the difference between a macro people trust and one they work around.</p>]]></content:encoded>
    </item>
    <item>
      <title>What an MBA Actually Added to a Working Analyst&apos;s Toolkit</title>
      <link>https://fazalehaq.com/blog/mba-working-analyst</link>
      <guid isPermaLink="true">https://fazalehaq.com/blog/mba-working-analyst</guid>
      <pubDate>Thu, 06 Aug 2026 13:17:00 GMT</pubDate>
      <description>I went into the MBA at Sprott already working as a financial analyst, and I was skeptical about how much theory would survive contact with a real close cycle. The honest answer: more than I expected, but rarely in the way the brochure suggests.</description>
      <content:encoded><![CDATA[<p>I went into the MBA at Sprott already working as a financial analyst, and I was skeptical about how much theory would survive contact with a real close cycle. The honest answer: more than I expected, but rarely in the way the brochure suggests.</p><p>The concentration in Financial Management was the direct hit. Valuation, M&amp;A, corporate finance — these courses did not teach me my job, but they gave structure to problems I had been solving by instinct. Building a full acquisition proposal, financing plan and all, changes how you read a deal announcement forever.</p><p>The unexpected wins were the adjacent courses. Financial statement analysis made me faster at reading what a business is actually doing beneath the ratios I already produced. Strategy courses gave me the vocabulary to frame analysis for executives — the same numbers, presented as a decision.</p><p>What it did not do: replace the craft. Nobody assigns you a messy SAP extract in a classroom. The degree works best as a multiplier on real experience — which is exactly why I did it while working, and exactly how I would recommend doing it.</p>]]></content:encoded>
    </item>
  </channel>
</rss>
