FinOpsAid blog
Practical, vendor-neutral writing on GitHub spend — Copilot seats, Actions minutes, Codespaces, storage and the FinOps discipline that keeps them honest.
- Copilot can approve pull requests now. Two meters run when it does. — GitHub gave Copilot code review approval authority on September 1, 2026 — an approval that counts toward a repository's required-approvals rule. It's off by default, which is the right default. The cost mechanic is unusual: a review bills AI credits for tokens and GitHub Actions minutes for the agent infrastructure, so a per-user credit budget caps only half of it. (2026-09-09)
- You can now set Copilot's default model centrally. Here's what it's worth. — GitHub made the Copilot default model an enterprise-managed setting on September 2, 2026, with per-team overrides. In the same week it shipped GPT-6 Astra and Gemini 3.8 Flash, whose published output rates differ by 13x. The setting that decides most of your credit consumption is now centrally settable — and one of the October 2 deprecations is a price increase in disguise. (2026-09-09)
- GitHub budgets can now expire. That quietly removes a hard stop. — GitHub added optional expiration dates to individual user budgets on September 1, 2026. The convenience is real — temporary overrides used to need manual cleanup. But user-level budgets are the only budgets that always block spending, and an expiry hands the user to a higher-level budget that only alerts by default. Set the date knowing which of those two you're choosing. (2026-09-09)
- GitHub App installation tokens got 13x longer. Here's the five-minute audit. — GitHub App installation tokens are moving from a fixed 40-character opaque string to a stateless format around 520 characters long. The prefix never changed, which is why the failure is silent, and the per-request header that lets you test both formats is explicitly temporary. If you run a GitHub App, CI automation, or cost tooling, this is a short audit with a narrowing window. (2026-09-08)
- Copilot prepaid billing starts October 1. Here's what it actually changes. — GitHub is moving Copilot Business and Enterprise to prepaid seat billing on October 1, 2026. No more prorated refunds for removed seats. Combined with the September 28 unified experience merge and five model deprecations, this is the most consequential billing month Copilot has had. (2026-09-05)
- Three GitHub Actions changes in September that affect how you track spend — GitHub shipped a Runner Deprecation API, granular Dependabot permissions, and new reusable workflow context properties in early September 2026. All three touch cost visibility — and one of them is a deadline. (2026-09-05)
- GitOps tooling just got faster. Your Actions bill might not notice. — ArgoCD 3.3 and Flux 2.8 both shipped features that reduce reconciliation overhead, and AI agents are writing infrastructure code. The cost implications are real but indirect — and easy to miss if you only watch the invoice. (2026-09-05)
- Does prompt compression actually cut your Copilot bill? Partly, and sometimes it raises it — GitHub featured Caveman, an open-source toolkit that compresses prompts to cut token usage. Fewer tokens is real. Fewer credits is conditional — and on one surface compression can cost you more. (2026-08-21)
- Model prices are falling fast. Copilot bills are not. — Three price-reducing announcements landed in Copilot in about a week — one model at 73% lower list price, another at half price. Per-call rates are dropping. Spend per task is not. (2026-08-21)
- A model discount with an expiry date is a budgeting event, not a saving — OpenAI cut the price of GPT-5.6 Sol by 50% until September 3. The discount is real. The risk is that it moves your defaults, and nothing tells you when the rate goes back. (2026-08-21)
- Are self-hosted runners actually cheaper? How to model the real cost — Self-hosted runners look cheaper because the meter moves to a cloud bill nobody reconciles. How to model cost per busy-minute, and when the switch really pays. (2026-07-28)
- Why did our Copilot bill change? Usage-based billing, explained for finance — Copilot moved to usage-based billing on 1 June 2026. Prices didn't change, but what you get for them did — and promotional credits mean most orgs see the real bill in September. (2026-07-28)
- Why do we only find out at month end? Setting GitHub budgets that catch overspend early — A budget that tells you the money is gone isn't a control, it's a receipt. How to scope GitHub budgets to an owner and judge them on burn rate, not thresholds. (2026-07-28)
- What are we paying for dev environments nobody is in? The Codespaces cost nobody owns — Codespaces bills compute while it runs and storage while it exists, so stopping isn't deleting. Where idle and oversized environments hide, and how to stop it. (2026-07-28)
- What does GitHub now attribute for you? Cost centers and AI credit pools — GitHub shipped cost centers with pooled AI credits and per-user budgets in July 2026. What that natively attributes, what it still doesn't, and how it changes your allocation model. (2026-07-28)
- What can we actually cut, and how confident are you? GitHub savings you can defend — Most savings numbers sum everything technically reclaimable. How to split GitHub savings into certain, conditional and modeled — and rank by what converts. (2026-07-28)
- How do I read this dashboard? The grammar behind every number in FinOpsAid — Before any single page makes sense, four things do: the Period filter, the billed-vs-modeled badge, which direction is good, and how stale the data is. Read this first. (2026-07-28)
- Should I be worried about this spike? Reading the Alerts page and the anomaly feed — Alert severities, the anomaly feed's baseline and deviation columns, and the two-to-three-day lag — what each number on the FinOpsAid Alerts page means and when to act. (2026-07-28)
- What is Claude actually costing us? Reading the Anthropic page tab by tab — Billed spend, token composition, cache hit rate, workspaces and per-member Enterprise analytics — every metric on the FinOpsAid Anthropic page, plus why the page can legitimately show zero. (2026-07-28)
- Are we normal? Reading the Benchmarking page and its percentile bands — Percentiles, cohort size, k-anonymity suppression and your marker on the band — what the FinOpsAid Benchmarking page compares, and what a high percentile does and doesn't mean. (2026-07-28)
- How do I set a budget that actually fires? Reading and using the Budgets page — Scopes, units, percent used, the 80% and 100% thresholds, and the difference between your budgets and GitHub's — every control and figure on the FinOpsAid Budgets page. (2026-07-28)
- What are we spending on LLMs across three clouds? Reading the Cloud AI Spend page — Vertex AI, Azure OpenAI and Amazon Bedrock in one view — what each KPI counts, what cost type and region mean, and why there is no per-developer split. (2026-07-28)
- Which dev environments are billing us for nothing? Reading the Codespaces page — Billed cost, idle and oversized flags, machine size and last-used dates — what each column on the FinOpsAid Codespaces page means, and why the org total is not a per-environment cost. (2026-07-28)
- Is Copilot paying for itself? Reading all five tabs of the Copilot page — Adoption funnel, acceptance rate, model mix, seat utilization and the ROI tab — every metric on the FinOpsAid Copilot page, what it measures, and which direction is good. (2026-07-28)
- Where is the money actually going? A section-by-section guide to the Cost Explorer — Gross vs net, billed vs modeled, product vs SKU vs model, and why per-repository spend only shows CI. Every card on the FinOpsAid Cost Explorer, explained. (2026-07-28)
- What does one developer actually cost us? Reading the Developers page, column by column — Credits used, interactions, acceptance rate, dollars per credit and the red 2FA rows — every number on the FinOpsAid Developers page, what it means, and which ones are estimates. (2026-07-28)
- Where are our CI minutes going? A guide to reading the GitHub Actions page — Modeled spend, total runs, success rate, average duration, runner health and cache storage — every card on the FinOpsAid Actions page, and which numbers reconcile to a bill. (2026-07-28)
- How many seats are we paying for and not using? Reading the Licenses page — Total, active, idle and pending-cancel seats, utilization percentage, seat price and the reclaim table — every number on the FinOpsAid Licenses page and what it justifies. (2026-07-28)
- What am I looking at on the Overview dashboard? Every tile, chart and badge explained — A section-by-section walkthrough of the FinOpsAid Overview page — what each KPI counts, which direction is good, why team totals don't sum to your bill, and which numbers are estimates. (2026-07-28)
- Is our review process the bottleneck? How to read the Pull Requests page without turning it into a scoreboard — Open backlog, median time to close, review actions and the comment leaderboard — what each number measures, why the tracking floor matters, and which of these should never be used to rate a person. (2026-07-28)
- What do I actually send to the CFO? Reading the Reports page — Executive summary, current-month and year-end figures, storage splits, report highlights and the budget-versus-actual table — what each number means and what to export. (2026-07-28)
- Which repositories are actually costing us? Reading the Repositories page column by column — Runs, failed runs, minutes, modeled Actions cost, health percentage and the activity badge — what each column means, which direction is good, and why the default sort is recency. (2026-07-28)
- Are our self-hosted runners actually cheaper? Reading the Runners page — Modeled monthly cost, peak vs average utilization, the online/busy/offline inventory and GitHub-hosted larger runners — what each figure means and why 100% utilization is not the goal. (2026-07-28)
- Which of these savings are real? Reading the Savings page and its confidence labels — Potential annual savings, opportunity counts, the four categories and what high, medium and low confidence actually mean on the FinOpsAid Savings page. (2026-07-28)
- Who can reach what, and who has no 2FA? Reading the Security & Governance page — 2FA compliance, admin count, findings by severity, permission drift and repository access — what each number on the FinOpsAid Security page means and which way is good. (2026-07-28)
- What is GitHub storage even charging us for? Reading the Storage page — Net cost, month-over-month change, category splits and the SKU table — every figure on the FinOpsAid Storage page, and why this is the most trustworthy page in the product. (2026-07-28)
- Can I trust today's numbers? Reading the Sync Activity page — Run history, per-connector status, API call counts and records ingested — the admin page that tells you whether every other page in FinOpsAid is complete. (2026-07-28)
- Why don't our team costs add up to the bill? Reading the Teams page honestly — Allocated cost, credit-share modeling, acceptance rate and the overlap warning — what every column on the FinOpsAid Teams page means, and why summing the rows is the one thing you must not do. (2026-07-28)
- Your September Copilot bill is already decided. Most teams won't look until it arrives. — Copilot's promotional credits ran into August 2026, so September is the first unsubsidised invoice. The consumption that produces it is happening now, and it is visible now — if anyone is looking. (2026-07-28)
- What actually consumes AI credits? The Copilot surfaces that cost you money — Completions are free, agents are not. A practical map of which Copilot surfaces burn AI credits, why model choice multiplies the bill, and where the cheap levers are. (2026-07-28)
- Which Copilot model should we default to? Model choice is now a cost lever — Copilot credits burn at each model's own token rate, so the model your developers pick sets the bill. How to choose a default per use case without slowing anyone down. (2026-07-28)
- Why is storage on the GitHub bill at all? Artifacts, packages and the retention nobody set — Nobody provisions GitHub storage, which is why it grows. Where the gigabytes come from — artifacts, packages, Codespaces — and the one setting that stops it. (2026-07-28)
- What does one developer cost us? GitHub unit economics that survive a budget review — Total spend divided by headcount is the ratio everyone reaches for, and it's the one that answers nothing. Here's how to build a GitHub cost-per-developer figure with a denominator that can actually move — and how to keep it from being mistaken for a performance metric. (2026-07-27)
- How good are we at this, really? A maturity model for GitHub cost management — "Are we managing GitHub spend well?" isn't a question a dollar figure can answer. Crawl, walk, run — what each stage of FinOps maturity actually looks like on GitHub, how to place yourself honestly, and what moving up one stage costs you. (2026-07-27)
- What breaks the glass? Designing GitHub cost alerts people don't mute — Most cost alerting fails in one of two ways — nothing fires, or everything does and the channel gets muted. Here's how to decide what actually deserves to interrupt a human, who it should reach, and why you should never page anyone on a modeled number. (2026-07-27)
- Who tells us when GitHub spend jumps? Anomaly detection beyond a threshold — Most teams find out about a spend spike from the invoice, three weeks after the thing that caused it stopped being fixable. Here's what anomaly detection on GitHub actually requires — a baseline that understands your week, severity that survives alert fatigue, and attribution attached to the alert. (2026-07-27)
- Can I just get this monthly? Building a GitHub cost report an executive will read — "Send me this every month" sounds like the easiest request in the world, and it's where most cost programs quietly die. Here's what belongs in an executive GitHub spend report, what belongs in the other two reports nobody tells you to write, and why the manual rebuild always wins in the end. (2026-07-27)
- How does your GitHub and Copilot spend compare? A guide to benchmarking engineering costs — You cut Copilot spend 10% — good or bad? An absolute number can't tell you. Only a benchmark can. Here's how to compare your GitHub costs against your own history and against peers, without trusting made-up averages. (2026-07-24)
- Your dormant GitHub seats are a security problem, not just a cost — An unused GitHub seat shows up on two ledgers — the one finance watches and the one security should. A dormant account with live access is waste and risk at once, and the cheapest thing you'll ever remediate. (2026-07-24)
- GitHub cost chargeback: attributing spend to teams and departments — "We spent $X on GitHub" prompts no decision. Whose budget it lands on does. Here's how to attribute GitHub's un-attributed spend to teams — showback before chargeback, modeled honestly, defensible in a budget review. (2026-07-24)
- Is GitHub Copilot worth it? How to measure Copilot ROI — Since Copilot moved to usage-based billing, even the cost half of ROI stopped being simple. How to measure return with numbers you can defend — subscription, overage, adoption and cost per active developer. (2026-07-24)
- A usage signal is not a dollar — reconciling GitHub's AI credits to your bill — AI credits became a billing unit in June 2026, and your credit ledger still won't equal the invoice. What changed, what didn't, and how to reconcile the two without pretending either is the other. (2026-07-24)
- Tracking AI spend across your org — Copilot, Claude, and the cloud LLM bill — Two years ago your AI spend was one line: Copilot seats. Now it's Copilot plus Anthropic and OpenAI API bills plus Vertex, Azure OpenAI, and Bedrock — each in its own console, in its own units. Here's how to get it back into one view. (2026-07-24)
- A FinOps playbook for GitHub spend — GitHub stopped being a flat per-seat bill years ago — it's a metered cloud platform now. Here's a practical FinOps playbook for getting visibility, attribution, and control over what you actually spend on it. (2026-07-23)
- How to find and reclaim idle GitHub Copilot seats — Idle Copilot licences are the easiest GitHub cost to cut and the hardest to see. Here's how to spot seats no one is using, reclaim them safely, and stop paying for the same waste next month. (2026-07-20)
- GitHub Actions costs are hiding in plain sight — GitHub Actions is metered by the minute, and the meter runs faster than most teams realize. A practical guide to finding where your CI spend actually goes — and the levers that cut it. (2026-07-14)