[{"content":"Earlier this year, Meta ranked around 85,000 employees by how many AI tokens they used. In 30 days the dashboard logged more than 60 trillion tokens, and the top user alone averaged 281 billion. Two days after the press picked it up, the leaderboard was gone.\nI come from an information systems background, so this pattern feels familiar. Every technology wave starts by counting usage, and the grown-up phase begins when we ask about economic impact. Cloud went through it, and FinOps was the answer. Now tokenomics is basically FinOps for AI.\nThat leaderboard stuck with me, and it became the starting point for a short paper I wrote with Boris Otto at Fraunhofer ISST: \u0026ldquo;Stop Counting Your Tokens\u0026rdquo;. The full paper is here. This post is my personal take on it.\nWhy the scoreboard bothers me Tokens are the call volume of AI. They are easy to count, they are fully automatic, and they say very little about results. Picture a sales team that is measured on calls per week: everyone can hit the target, and it tells you nothing about revenue.\nThe evidence points the same way. A study that linked ChatGPT usage with the financials of more than 1,500 listed companies found only a weak relationship between token use and revenue per employee. In coding-agent experiments, identical tasks differed up to 30-fold in token use between runs. I find that number humbling. If the same task can cost thirty times more on another day, then tokens tell me more about the system than about the work.\nWhere the cost really hides Agents don\u0026rsquo;t chat, they loop. Every step resends the context built up so far, so an agentic task can use anywhere from a few times to, in agentic coding, around a thousand times the tokens of a plain chat, mostly on the input side. Providers already cache repeated context on their side, which makes re-read input much cheaper. Even so, prices per token are falling while consumption is rising faster, and the bills go up anyway. Uber reportedly used up its annual AI budget in about four months.\nWhat interests me more is the reaction. Capping tokens feels like the logical answer, but saving 500 input tokens while burning 5,000 on rework just moves the cost to a place no dashboard shows, usually a developer\u0026rsquo;s afternoon.\nTo me the real levers are less about volume and more about architecture: whether the same context gets paid for twice, whether the biggest model handles steps a small one could, and whether a step needs a model at all. In one analysis of 24 workflows, handling the deterministic steps with ordinary logic cut model costs by about 70%. That is an engineering result, not a budget policy.\nWhat I care about I care about outcomes: what shipped, which rework disappeared, which vulnerabilities got closed. These are the same delivery metrics engineering teams have always tracked. I would love to see AI spend connected to them. A few companies already do this, and one of them ranks people by what they get per dollar of tokens instead of by raw volume. That feels like the grown-up version of the conversation to me.\nAnd once capable models are available to everyone, the model itself stops being the advantage. The system around it is: context management, routing, governance and measurement. That is the part I find most interesting, and I expect to keep coming back to it here.\n","permalink":"https://www.spiekermann.ing/posts/stop-counting-your-tokens/","summary":"Why \u0026lsquo;more AI usage\u0026rsquo; is the wrong scoreboard. Cloud has been here before and FinOps followed, and now tokenomics is AI\u0026rsquo;s turn. My take on the paper I wrote with Boris Otto.","title":"Stop Counting Your Tokens"},{"content":"Hi, I\u0026rsquo;m Markus. I live in the Ruhrgebiet in Germany, and I\u0026rsquo;ve been tinkering with software since long before it became my job.\nI started out as a software engineer and never lost the itch to understand how things really work. Over the years I\u0026rsquo;ve come to look at technology from an information systems perspective, which means I care about the economic impact of tech, not just whether it works.\nThese days I spend my working time at the intersection of industrial AI, digital twins and data exchange. How do we get machines, factories and companies to share data so that AI and digital twins actually work in production, not just in a demo? I\u0026rsquo;ve been chasing that question through research, cloud infrastructure and a few big organizations, and I\u0026rsquo;m still not tired of it.\nWhen I\u0026rsquo;m not at the keyboard, I\u0026rsquo;m usually running. I run marathons and take on challenges like the Mammutmarsch and XLETIX, because nothing resets my head like a few hours on my feet.\nThis blog is my place to think out loud. Expect posts about industrial AI, digital twins and data, plus the occasional note on what I learn from leading people and projects, and from running. Some will be useful, some will be half-formed ideas, and all of them will be honest.\nIf something here made you curious, or you just want to swap thoughts about data, engineering or running, write me or find me on LinkedIn. I\u0026rsquo;m happy to hear from you.\n","permalink":"https://www.spiekermann.ing/about/","summary":"\u003cp\u003eHi, I\u0026rsquo;m Markus. I live in the Ruhrgebiet in Germany, and I\u0026rsquo;ve been tinkering with software since long before it became my job.\u003c/p\u003e\n\u003cp\u003eI started out as a software engineer and never lost the itch to understand how things really work. Over the years I\u0026rsquo;ve come to look at technology from an information systems perspective, which means I care about the economic impact of tech, not just whether it works.\u003c/p\u003e","title":"About"},{"content":"If something on this site made you curious, or you want to swap thoughts about industrial AI, digital twins, data exchange or running, I\u0026rsquo;d be happy to hear from you. Use the form below and I\u0026rsquo;ll get back to you as soon as I can.\nName Email Message Leave this field empty Send message I only use your details to reply to your message. Prefer a different channel? You can also find me on LinkedIn.\n","permalink":"https://www.spiekermann.ing/contact/","summary":"\u003cp\u003eIf something on this site made you curious, or you want to swap thoughts about industrial AI, digital twins, data exchange or running, I\u0026rsquo;d be happy to hear from you. Use the form below and I\u0026rsquo;ll get back to you as soon as I can.\u003c/p\u003e\n\u003cform id=\"contact-form\" class=\"contact-form\" action=\"https://formspree.io/f/xoeelgwq\" method=\"POST\"\u003e\n  \u003clabel for=\"cf-name\"\u003eName\u003c/label\u003e\n  \u003cinput type=\"text\" id=\"cf-name\" name=\"name\" required autocomplete=\"name\"\u003e\n\n  \u003clabel for=\"cf-email\"\u003eEmail\u003c/label\u003e\n  \u003cinput type=\"email\" id=\"cf-email\" name=\"email\" required autocomplete=\"email\"\u003e\n\n  \u003clabel for=\"cf-message\"\u003eMessage\u003c/label\u003e\n  \u003ctextarea id=\"cf-message\" name=\"message\" rows=\"7\" required\u003e\u003c/textarea\u003e\n\n  \n  \u003cdiv class=\"cf-hp\" aria-hidden=\"true\"\u003e\n    \u003clabel for=\"cf-gotcha\"\u003eLeave this field empty\u003c/label\u003e\n    \u003cinput type=\"text\" id=\"cf-gotcha\" name=\"_gotcha\" tabindex=\"-1\" autocomplete=\"off\"\u003e\n  \u003c/div\u003e\n\n  \u003cbutton type=\"submit\"\u003eSend message\u003c/button\u003e\n  \u003cp id=\"contact-form-status\" role=\"status\" aria-live=\"polite\"\u003e\u003c/p\u003e\n  \u003cp class=\"cf-note\"\u003eI only use your details to reply to your message. \u003c/p\u003e\n\u003c/form\u003e\n\n\u003cstyle\u003e\n  .contact-form { display: flex; flex-direction: column; gap: 0.6rem; max-width: 560px; margin-top: 1.5rem; }\n  .contact-form label { font-weight: 600; }\n  .contact-form input[type=\"text\"],\n  .contact-form input[type=\"email\"],\n  .contact-form textarea {\n    width: 100%;\n    padding: 0.6rem 0.75rem;\n    border: 1px solid var(--border);\n    border-radius: var(--radius);\n    background: var(--entry);\n    color: var(--primary);\n    font: inherit;\n  }\n  .contact-form input:focus,\n  .contact-form textarea:focus { outline: 2px solid var(--primary); outline-offset: 1px; }\n  .contact-form button {\n    align-self: flex-start;\n    padding: 0.6rem 1.4rem;\n    border: 0;\n    border-radius: var(--radius);\n    background: var(--primary);\n    color: var(--theme);\n    font: inherit;\n    font-weight: 600;\n    cursor: pointer;\n  }\n  .contact-form button:disabled { opacity: 0.6; cursor: wait; }\n  .contact-form .cf-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }\n  .contact-form .cf-note { font-size: 0.85rem; color: var(--secondary); margin: 0; }\n  #contact-form-status { margin: 0; min-height: 1.4em; }\n\u003c/style\u003e\n\n\u003cscript\u003e\n  (function () {\n    var form = document.getElementById(\"contact-form\");\n    var status = document.getElementById(\"contact-form-status\");\n    if (!form || !status) return;\n\n    form.addEventListener(\"submit\", function (event) {\n      event.preventDefault();\n      var button = form.querySelector(\"button[type=submit]\");\n      button.disabled = true;\n      status.textContent = \"Sending...\";\n\n      fetch(form.action, {\n        method: \"POST\",\n        body: new FormData(form),\n        headers: { \"Accept\": \"application/json\" }\n      })\n        .then(function (response) {\n          if (response.ok) {\n            form.reset();\n            status.textContent = \"Thanks! Your message has been sent.\";\n          } else {\n            status.textContent = \"Something went wrong. Please try again or contact me on LinkedIn.\";\n          }\n        })\n        .catch(function () {\n          status.textContent = \"Something went wrong. Please try again or contact me on LinkedIn.\";\n        })\n        .finally(function () {\n          button.disabled = false;\n        });\n    });\n  })();\n\u003c/script\u003e\n\u003cp\u003ePrefer a different channel? You can also find me on \u003ca href=\"https://www.linkedin.com/in/markus-spiekermann-57990b1b9/\"\u003eLinkedIn\u003c/a\u003e.\u003c/p\u003e","title":"Contact"}]