<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: HosheBartar</title>
    <description>The latest articles on DEV Community by HosheBartar (@hoshebartar).</description>
    <link>https://dev.to/hoshebartar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4201353%2F97cca493-759d-4058-8a59-d2964ff88f84.png</url>
      <title>DEV Community: HosheBartar</title>
      <link>https://dev.to/hoshebartar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hoshebartar"/>
    <language>en</language>
    <item>
      <title>Which Azure budget needs action? A pace check you can do by hand</title>
      <dc:creator>HosheBartar</dc:creator>
      <pubDate>Sun, 25 Oct 2026 14:15:33 +0000</pubDate>
      <link>https://dev.to/hoshebartar/which-azure-budget-needs-action-a-pace-check-you-can-do-by-hand-1fhn</link>
      <guid>https://dev.to/hoshebartar/which-azure-budget-needs-action-a-pace-check-you-can-do-by-hand-1fhn</guid>
      <description>&lt;p&gt;Azure budget alerts tell you when a budget crosses a share of its amount: 50%, 80%, 100%. That is useful, but a 50% alert on day 25 of the month and a 50% alert on day 6 mean very different things. The second one is a problem; the first one is fine.&lt;/p&gt;

&lt;p&gt;Here is a simple pace check you can do by hand for any budget, and then how we automated it.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. List your budgets and their scopes
&lt;/h2&gt;

&lt;p&gt;In the Azure portal, open &lt;strong&gt;Cost Management &amp;gt; Budgets&lt;/strong&gt;. A budget is set on a scope (a subscription, a resource group, a management group or a billing scope), has an amount and a reset period, and sends alerts on actual or forecasted cost at the thresholds you set. A budget never stops anything: it measures and notifies.&lt;/p&gt;

&lt;p&gt;Write down, for each budget: the scope, the amount, the period and the spend so far this period.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Compute two shares
&lt;/h2&gt;

&lt;p&gt;For each budget:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Share used&lt;/strong&gt; = spend so far / amount&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share of the period elapsed&lt;/strong&gt; = days gone / days in the period&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: a monthly budget of 1,000, day 12 of 30, spend so far 550.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share used: 55%&lt;/li&gt;
&lt;li&gt;Share of the period elapsed: 40%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The budget is not over, and it may not even have fired its first alert yet if you set it at 80%. But it is spending faster than the calendar: at an even pace it would be at 400, not 550.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Grade them
&lt;/h2&gt;

&lt;p&gt;A grading that is easy to explain to a team:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Over&lt;/strong&gt;: 100% or more of the amount spent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;At risk&lt;/strong&gt;: 50% or more spent, but not all.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;On track&lt;/strong&gt;: less than 50% spent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ahead of pace&lt;/strong&gt;: share used larger than share of the period elapsed, while the amount is not yet spent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sort the list with the worst first, and you know which budget to look at.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Keep the traps in mind
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cost arrives late.&lt;/strong&gt; Azure cost data is usually a day or two behind, so "spend so far" is spend up to a day or two ago.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Currencies.&lt;/strong&gt; If your subscriptions are billed in different currencies, never add the amounts together without an exchange rate you trust.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do not prorate the amount.&lt;/strong&gt; Compare the full amount with the spend so far; the pace check is a separate signal, not a forecast.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The automated way
&lt;/h2&gt;

&lt;p&gt;I build &lt;a href="https://hoshebartar.com" rel="noopener noreferrer"&gt;CostGuard&lt;/a&gt;, an Azure cost tool for small SaaS teams on Azure Marketplace, and its Budgets page does this check for every budget. (Disclosure: I build CostGuard, so take this part as the maker's description.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmhcet05rv7chn06q6xym.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmhcet05rv7chn06q6xym.webp" alt="CostGuard's Budgets list for a sample workspace: each budget with its scope, period, amount, the usage of this period and its grade." width="800" height="637"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each budget covers the whole workspace, a subscription, a resource group or a service, per day, week, month, quarter or year (calendar periods in UTC).&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;This period&lt;/strong&gt; column shows the spend, a bar of the share used with a mark at the share of the period elapsed, what remains or by how much it is over, and the day of the period ("Day 12 of 30").&lt;/li&gt;
&lt;li&gt;Every budget is graded over, at risk or on track with the 50% and 100% rule above, and "Ahead of the period's pace" is shown when it applies. The list puts the most urgent first.&lt;/li&gt;
&lt;li&gt;When no figure can be stated (no cost import yet, cost only in another currency), the row says why instead of showing zero.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm0shzte5bff9sfsgfrc5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm0shzte5bff9sfsgfrc5.webp" alt="Three rows of the This period column: the spend, a bar of the share used with a mark at the share of the period elapsed, the share used and the day of the period." width="535" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CostGuard only reads your Azure data with the Reader role; it never changes anything in Azure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Email alerts run against one budget only: the enabled monthly budget of the whole workspace. Every other budget shows its usage on the page and raises no alert.&lt;/li&gt;
&lt;li&gt;"Ahead of the period's pace" compares two shares; it is not a forecast.&lt;/li&gt;
&lt;li&gt;Each budget has one currency, and nothing is converted: cost in another currency is named, not added.&lt;/li&gt;
&lt;li&gt;Budgets are on the Starter plan and up (5 on Starter, 20 on Growth, unlimited on Pro). There is a Free plan on Azure Marketplace, where the page shows a labelled sample.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The whole page, section by section: &lt;a href="https://hoshebartar.com/en/help/budgets?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=kb-budgets" rel="noopener noreferrer"&gt;Budgets: see which budget needs action&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azure</category>
      <category>finops</category>
      <category>cloud</category>
      <category>saas</category>
    </item>
    <item>
      <title>How to see when your Azure Sponsorship credit will run out</title>
      <dc:creator>HosheBartar</dc:creator>
      <pubDate>Fri, 23 Oct 2026 00:20:46 +0000</pubDate>
      <link>https://dev.to/hoshebartar/how-to-see-when-your-azure-sponsorship-credit-will-run-out-3gif</link>
      <guid>https://dev.to/hoshebartar/how-to-see-when-your-azure-sponsorship-credit-will-run-out-3gif</guid>
      <description>&lt;p&gt;Azure Sponsorship credit doesn't end with a warning. It lasts until usage consumes the whole grant or until its end date, whichever comes first, and Azure doesn't publish the remaining balance to apps. If your startup runs on it, the useful question isn't "how much is left?" but "on what day does it run out at our current rate, and is that before the end date?"&lt;/p&gt;

&lt;p&gt;Here is how to answer that by hand, and how we automated it.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Read the balance in the Sponsorships portal
&lt;/h2&gt;

&lt;p&gt;The Azure Sponsorships portal shows the balance, but only to a person who is signed in. There is no app access, so no tool (ours included) can read that number for you.&lt;/p&gt;

&lt;p&gt;Two things to keep in mind when you read it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is a snapshot. It tells you what is left, not when it will be gone.&lt;/li&gt;
&lt;li&gt;Azure reports usage to apps about a day and a half late, so any estimate built from reported usage trails the portal slightly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Work out the run-out day yourself
&lt;/h2&gt;

&lt;p&gt;Three numbers are enough: the grant (its starting amount), the usage so far, and the number of days since the grant's first day.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;average per day = used / days since the first day
days left       = (grant - used) / average per day
run-out day     = today + days left
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then compare the run-out day with the grant's end date:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Before the end date:&lt;/strong&gt; you will start paying before the sponsorship ends. Time to look at what is growing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;After the end date:&lt;/strong&gt; the grant will expire with credit unused. The unused amount is roughly the remaining credit minus the average per day for each day left until the end date.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A since-start average is simple and stable, but it reacts slowly: a cost jump last week moves the run-out day only a little. Redo the math regularly, and again after any new deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Decide when someone should look
&lt;/h2&gt;

&lt;p&gt;The moments that matter are 50%, 75% and 90% used, the day the run-out date moves before the end date, and 30 days before the end date if credit is still left. A spreadsheet and a calendar reminder will do, as long as someone owns them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The automated way: CostGuard
&lt;/h2&gt;

&lt;p&gt;(I build CostGuard, an Azure cost tool for small SaaS teams, sold on Azure Marketplace.)&lt;/p&gt;

&lt;p&gt;Because the balance isn't available to apps, CostGuard estimates it. It reads the usage Azure reports for your connected Sponsored subscriptions from the grant's first day and prices it at the Sponsorship offer's rates. For each grant you track it shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the estimated run-out day at the current rate, and whether that is before the end date&lt;/li&gt;
&lt;li&gt;estimated used and remaining, and the average use per day&lt;/li&gt;
&lt;li&gt;the unused amount expected at the end date, if any&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8e1gjephoe0eshfpfds5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8e1gjephoe0eshfpfds5.webp" alt="CostGuard's Azure credits outlook for a sample workspace: three tracked grants, one estimated to run out before its end date, one not estimated yet and one fully used." width="799" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Workspace owners and admins get one alert when a grant reaches 50, 75 or 90% estimated used, is estimated fully used, will run out before its end date at the current rate, or ends within 30 days with credit unused.&lt;/p&gt;

&lt;p&gt;Setup takes three steps: record the grant with its starting amount in USD and its end date, choose "Track usage" and enter the sponsorship's first day, then read the grant's outlook after the next check.&lt;/p&gt;

&lt;h3&gt;
  
  
  Honest limits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;It is an estimate, not a balance read from Azure. Because of the reporting lag, the portal can show a little more usage.&lt;/li&gt;
&lt;li&gt;Usage that has no Sponsorship price isn't counted, so the estimate can run low.&lt;/li&gt;
&lt;li&gt;Only grants recorded in USD are estimated.&lt;/li&gt;
&lt;li&gt;It needs only the Reader role on each Sponsored subscription and never changes anything in Azure.&lt;/li&gt;
&lt;li&gt;Credit tracking is on the Growth plan and up.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The full walkthrough, with every field and state explained, is in the &lt;a href="https://hoshebartar.com/en/help/azure-credits?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=kb-azure-credits" rel="noopener noreferrer"&gt;Azure credits help article&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>finops</category>
      <category>cloud</category>
      <category>saas</category>
    </item>
  </channel>
</rss>
