<?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: NOTEGG</title>
    <description>The latest articles on DEV Community by NOTEGG (@notegg_050de1cdd15d9b33c0).</description>
    <link>https://dev.to/notegg_050de1cdd15d9b33c0</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%2F4208495%2Fbfc99e96-c47e-4ffc-969e-4d0011938e05.jpg</url>
      <title>DEV Community: NOTEGG</title>
      <link>https://dev.to/notegg_050de1cdd15d9b33c0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/notegg_050de1cdd15d9b33c0"/>
    <language>en</language>
    <item>
      <title>Find where your LLM API bill leaks—without uploading your logs</title>
      <dc:creator>NOTEGG</dc:creator>
      <pubDate>Mon, 26 Oct 2026 10:57:56 +0000</pubDate>
      <link>https://dev.to/notegg_050de1cdd15d9b33c0/find-where-your-llm-api-bill-leaks-without-uploading-your-logs-1gfa</link>
      <guid>https://dev.to/notegg_050de1cdd15d9b33c0/find-where-your-llm-api-bill-leaks-without-uploading-your-logs-1gfa</guid>
      <description>&lt;p&gt;An LLM API bill tells you how much you spent. Choosing what to change takes more investigation.&lt;/p&gt;

&lt;p&gt;Are repeated requests worth reusing? Are prompts actually hitting the provider’s cache? Are failed or truncated calls still adding to the bill?&lt;/p&gt;

&lt;p&gt;We built &lt;strong&gt;Linklbee Scan&lt;/strong&gt;, an open-source Python tool that reads existing usage logs on your machine and generates an HTML report to help answer those questions.&lt;/p&gt;

&lt;p&gt;No API key, no model calls, and no log uploads. It uses the Python standard library and runs on Python 3.9+.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it without preparing a log
&lt;/h2&gt;

&lt;p&gt;Install the scanner and run the built-in demo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;linklbee-scan
linklbee-scan &lt;span class="nt"&gt;--demo&lt;/span&gt; &lt;span class="nt"&gt;--lang&lt;/span&gt; en
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The demo uses a &lt;strong&gt;synthetic example log&lt;/strong&gt;. It lets you inspect the report format before using your own records; its figures are not customer savings results.&lt;/p&gt;

&lt;p&gt;To analyze your own log:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;linklbee-scan calls.jsonl &lt;span class="nt"&gt;--lang&lt;/span&gt; en &lt;span class="nt"&gt;--out&lt;/span&gt; report.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also pass a folder instead of a single file.&lt;/p&gt;

&lt;h2&gt;
  
  
  Check what the scanner is reading
&lt;/h2&gt;

&lt;p&gt;Before interpreting a report, check how your fields are mapped:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;linklbee-scan calls.jsonl &lt;span class="nt"&gt;--peek&lt;/span&gt; &lt;span class="nt"&gt;--lang&lt;/span&gt; en
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This reads the first 200 records and prints the field mapping without writing a report.&lt;/p&gt;

&lt;p&gt;That matters because different logging systems capture different information. Token counts can tell you about spending, but they cannot answer every question about repeated requests or shared prompt prefixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to look for in the report
&lt;/h2&gt;

&lt;p&gt;Depending on the fields available, the scanner checks patterns including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Output’s share of the bill.&lt;/li&gt;
&lt;li&gt;Cache hit rate and prompts below the provider’s cache minimum.&lt;/li&gt;
&lt;li&gt;Shared prefixes across calls.&lt;/li&gt;
&lt;li&gt;Identical calls resent within seconds.&lt;/li&gt;
&lt;li&gt;Failed calls that were billed.&lt;/li&gt;
&lt;li&gt;Responses cut off at the output limit.&lt;/li&gt;
&lt;li&gt;Potential output savings when revising an earlier document instead of rewriting it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each check is marked as &lt;strong&gt;found&lt;/strong&gt;, &lt;strong&gt;none&lt;/strong&gt;, or &lt;strong&gt;needs more data&lt;/strong&gt;. When a required field is missing, the report names it rather than guessing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turn a finding into an experiment
&lt;/h2&gt;

&lt;p&gt;A finding gives you something to investigate. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repeated identical calls: check whether reuse is valid for that workload and its freshness requirements.&lt;/li&gt;
&lt;li&gt;Low cache usage: inspect prompt length and prefix consistency.&lt;/li&gt;
&lt;li&gt;Cut-off responses: investigate output limits and any follow-up requests.&lt;/li&gt;
&lt;li&gt;Rewritten documents: evaluate whether updating only changed sections preserves the required result.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then compare cost, quality, and latency on representative tasks. Estimated savings in a report and savings measured after an application change are different things.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supported logs and privacy
&lt;/h2&gt;

&lt;p&gt;The scanner reads JSONL, JSON arrays, CSV/TSV, &lt;code&gt;.log&lt;/code&gt;, and &lt;code&gt;.gz&lt;/code&gt; files. It includes mappings for common provider responses and exports from tools such as Langfuse, LangSmith, Helicone, and LiteLLM.&lt;/p&gt;

&lt;p&gt;Processing stays on your machine. The generated report contains aggregate figures rather than prompt or answer text.&lt;/p&gt;

&lt;p&gt;The project is MIT-licensed and published by NOTEGG, the team building Linklbee.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source and usage instructions:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/linklbee/scan" rel="noopener noreferrer"&gt;https://github.com/linklbee/scan&lt;/a&gt;&lt;br&gt;
Linklbee: &lt;a href="https://linklbee.com/" rel="noopener noreferrer"&gt;https://linklbee.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you try it, we’d especially like to know: &lt;strong&gt;does the report help you choose a concrete next step?&lt;/strong&gt; Missing log formats, unclear findings, and incorrect field mappings are useful feedback too.&lt;/p&gt;

</description>
      <category>api</category>
      <category>llm</category>
      <category>opensource</category>
      <category>python</category>
    </item>
  </channel>
</rss>
