<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Tooling on The Public Ledger</title><link>https://blog.jbledger.com/tags/tooling/</link><description>Recent content in Tooling on The Public Ledger</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 12 Sep 2026 16:00:00 +0000</lastBuildDate><atom:link href="https://blog.jbledger.com/tags/tooling/index.xml" rel="self" type="application/rss+xml"/><item><title>The Same Data, Three Tools: Power BI, dbt, and DuckDB</title><link>https://blog.jbledger.com/posts/the-same-data-three-tools-power-bi-dbt-and-duckdb/</link><pubDate>Sat, 12 Sep 2026 16:00:00 +0000</pubDate><guid>https://blog.jbledger.com/posts/the-same-data-three-tools-power-bi-dbt-and-duckdb/</guid><description>One frozen snapshot of federal budget data through three modern stacks: a diffable Power BI model in TMDL, a dbt + DuckDB warehouse with 82 tests — and the five things the tests caught in real data.</description></item><item><title>A Copilot That Says No</title><link>https://blog.jbledger.com/posts/a-copilot-that-says-no/</link><pubDate>Sat, 12 Sep 2026 15:00:00 +0000</pubDate><guid>https://blog.jbledger.com/posts/a-copilot-that-says-no/</guid><description>A natural-language-to-SQL copilot with no LLM in it: a deterministic router, 40 pre-approved SELECTs, results frozen at build time, and a refusal taxonomy — out-of-scope, untracked-agency, injection, and more, each with a named reason.</description></item><item><title>An Honest Backtest: Projecting a Fiscal Year-End Two Ways</title><link>https://blog.jbledger.com/posts/an-honest-backtest-projecting-a-fiscal-year-end-two-ways/</link><pubDate>Sat, 12 Sep 2026 12:30:00 +0000</pubDate><guid>https://blog.jbledger.com/posts/an-honest-backtest-projecting-a-fiscal-year-end-two-ways/</guid><description>Linear continuation vs. damped Holt-Winters, walked forward over 36 held-out periods. The winner&amp;rsquo;s margin is thin enough that a library convention flips it — so the page shows both methods and says so out loud.</description></item><item><title>What a Sequester, a CR, and a Lapse Do to the Money</title><link>https://blog.jbledger.com/posts/what-a-sequester-a-cr-and-a-lapse-do-to-the-money/</link><pubDate>Sat, 12 Sep 2026 11:00:00 +0000</pubDate><guid>https://blog.jbledger.com/posts/what-a-sequester-a-cr-and-a-lapse-do-to-the-money/</guid><description>The flow simulator follows a real appropriation — budget authority to obligations to outlays, month by month — and lets you pull the levers. Real data, frozen, with a scenario engine that applies each lever in a fixed, documented order.</description></item><item><title>Six Macros for the Monthly Close</title><link>https://blog.jbledger.com/posts/six-macros-for-the-monthly-close/</link><pubDate>Sat, 12 Sep 2026 09:30:00 +0000</pubDate><guid>https://blog.jbledger.com/posts/six-macros-for-the-monthly-close/</guid><description>A budget workbench in Excel: four template workbooks, six VBA macros for reconciliation, variance, and the close checklist — plus Python twins of the two computational macros so every number reproduces headlessly.</description></item></channel></rss>