Launched this week

DepthData
The system of record for your company's AI spend.
261 followers
The system of record for your company's AI spend.
261 followers
Companies now pay for four or five AI tools (ChatGPT, Claude, Copilot, and more) but can't answer the basics: what are we spending, who's using it, and which seats sit idle? DepthData connects every AI tool into one audit ready view of spend and adoption. What makes it different: every number is labeled by how it's verified, we never read prompts, and we show exactly what each vendor's API can and can't expose. The trusted system of record for your company's AI spend.






DepthData
@aliberkuyanik We lost track of AI spend the moment every team started expensing their own API keys and seat licenses. Finance saw one number, eng saw another, nobody could explain the gap. Are you pulling from provider billing directly or from usage logs, and can you attribute spend down to a team or project?
DepthData
Good question @arturbrugeman Honestly, it's both, and it depends on the tool. Anthropic, OpenAI, and Cursor have real cost APIs, so we pull actual dollar spend straight from them. Some tools don't offer that, so we pull usage data and combine it with the seat prices you enter from your contract. There's a contract pricing panel in Depthdata for exactly this. And every number gets a label, so you always know where it came from.
Teams are the funny part. The AI tools know who has a seat, but they have no idea what your org chart looks like. So in Depthdata, managers just assign people to departments right in the employee table, and spend rolls up from there.
Projects we built out fully. You create one, add people, and click into it to see cost, activity, and coaching signals. Some tools report project spend directly (OpenAI's API platform, Vercel if you set up tagging), so we pull that as is. Claude tells us project usage but not project cost, so we split each person's real spend across their projects based on how much they used each one. That number gets an ALLOCATED label instead of a measured one, because I'd rather be upfront that it's a split than pretend it's a measurement.
Basically: real data where the APIs give it, your input where they don't, and everything labeled so finance can actually trust the numbers. All of this is live in the demo if you want to see how it works.
@aliberkuyanik Congrats on the launch!
This is a real gap for us too. We run our own product on top of Anthropic's API, and tracking what each feature actually costs per run, especially after switching between plans, has been a spreadsheet exercise so far.
Curious how granular this gets, can you trace spend down to a specific feature or session, or is it more of a monthly aggregate view right now? We currently do that by hand and it's the part that doesn't scale.
DepthData
@martin_herran Straight answer, as deep as Anthropic's API goes, which is further than monthly but not a single run. Cost comes back daily by workspace, model, and token type. Usage goes down to minute buckets by API key, workspace, and model.
The practical trick, give each feature its own API key or workspace. Then per feature spend comes straight from Anthropic's cost report, no spreadsheet needed. We just read it and label where each number came from.
Session level is the honest no. The reporting API doesn't expose individual runs, that only lives in your own logs. So in Depthdata that stays a visible gap, not an estimate.
@aliberkuyanik Hey Ali, Congrats on the launch! A system of record for company ai spend is a really clean pain point.
Did the same exercise on AWS spend this year and the total was never the hard part, attribution was. What actually moved the number wasn't the dashboard, it was being able to put a name next to each line so somebody had to defend it.
Your rule about never showing a figure you can't verify from the tool's own API is the right call. The follow up I'd want: what happens to the spend no provider API will tell you about, like the personal ChatGPT subscription someone quietly expenses? That shadow half is usually where the surprise lives.
DepthData
@dalemooney That AWS experience is exactly the thesis. The total never changes behavior, a name next to the line does.
On shadow spend, straight answer: no AI vendor API will ever show a personal subscription someone quietly expenses. That money lives in your expense system, not the vendor's org account. So Depthdata shows it as a gap, not a number. Closing it properly means pulling from the expense side, which is a different connector class. Until then, same rule as everything else: no API to back it, we show the gap instead of a guess.
@aliberkuyanik Showing it as a gap rather than a guess is the part I'd actually pay for, and I think it's a stronger line than you're currently selling it as. In the AWS work the number that changed behaviour wasn't the total, it was the list of spend nobody would claim. A named gap forces a conversation. A total just gets nodded at and filed.
One thought before you build a whole connector class for the expense side: finance already exports that data monthly, usually as CSV, because they do it for the accountant anyway. A dumb upload that reconciles vendor names against the tools you already know about would close a lot of the gap without integrating with anything. Might be worth checking whether people need the full connector or just the first thing you'd reach for.
DepthData
Thank you so much @dalemooney I built it just now. Your comment was too good to leave as a comment.
Depthdata now has an expense reconciliation section. Upload the CSV finance already exports, it matches vendor names against your connected tools, and everything nobody claimed shows up as a named gap with an amount next to it. Runs entirely in the browser, nothing uploaded. Your line is basically in the product now: the list that forces a conversation.
@aliberkuyanik That is a considerably faster turnaround than I expected, and doing it in the browser was the right call. Worth saying that part plainly on the page: nothing uploaded means no sub-processor to add to anyone's register, which for the person who has to approve the tool is a bigger deal than the feature itself.
Two things that will bite once real statements hit it.
Vendor strings on card and expense exports are genuinely horrible. You'll get OPENAI *CHATGPT SUBSCR, ANTHROPIC CLAUDE.AI, marketplace billing where the vendor reads as AWS or Google rather than the actual tool, resellers, and FX descriptors wrapped around the name. Exact matching will miss most of that. What makes it usable is letting someone confirm a mapping once and remembering it, so they teach it a name a single time rather than every month.
And keep the unmatched pile as a first class output rather than an error state. Everything that didn't match is the actual answer, because by definition it's the spend nobody could account for. If it renders as a warning or gets tucked behind a toggle, you've hidden the product inside a validation message. Same rule you already apply everywhere else: show the gap, don't guess at it.
Genuinely pleased this landed. I'll take a proper look.
the verification labeling and the per-user vs seat point already cover most of what I'd have asked. one thing I didn't see come up: overlap across tools rather than idle seats within one tool. we've ended up paying for two AI tools that do 80% the same job for the same people, because each one got adopted separately by a different team before anyone compared them side by side. that's not an idle seat in either tool, both look fully used, the waste is that the org didn't need both. is that something DepthData could ever surface, or is it necessarily out of scope since it's a cross-tool judgment call rather than a per-tool number?
DepthData
@galdayan Not out of scope at all. The overlap itself is measurable from data we already pull: same people holding seats in two same category tools, both active, and what the double coverage costs. So Depthdata can name it: 40 people pay for both X and Y, here's what the second one costs.
What we won't do is pick the winner. Whether it's really the same job is your call. We put a name and a number on the overlap so somebody has to defend it, the judgment stays with you.
@aliberkuyanik that's actually the right split of responsibility. one follow up though - the two tools in my example weren't priced the same way, one was per seat and the other was usage based. does the "cost of the second one" number hold up when the pricing models don't match, or does that case need a human to normalize it before the comparison means anything?
The verification label is the actual product here, the dashboard is just where it lives. What you're missing is that idle seats are the easy half. On anything usage priced, one person's month can outspend the other forty put together, and a seat view shows those two people as identical, so you cut the wrong licence and save nothing. Worth naming which vendors can't expose per user consumption at all, because that gap is where the spreadsheet quietly goes wrong.
DepthData
@asadmalik901 You're right, the label is the product. And agreed, idle seats only matter on seat priced tools. On usage pricing the money concentrates, one heavy user can outspend a team, and a seat view hides that. So Depthdata shows cost per person, not just seats. Those numbers come straight from vendor APIs, Anthropic and OpenAI and Cursor all expose per user spend in their docs. Demo runs on sample data today, but nothing on screen an endpoint can't back.
The gaps, Gemini bundles AI into Workspace so per user cost doesn't exist, Replit pools credits with no per member API, Vercel needs tagging first. We show those as gaps instead of estimating over them.
@aliberkuyanik Showing the gaps instead of estimating over them is what makes the rest of the numbers believable, so I'd put that list on the page rather than in a doc nobody opens. The thing working against you is the sample data demo, because the honesty argument only lands once someone sees one real connected account. A screenshot of your own Anthropic org would do more for that than the whole demo does.
Never reading prompts, only metadata, is the detail that gets this past a security review. Most spend trackers ask for way more access than the actual problem needs.
DepthData
@irahimiam Exactly. Most spend trackers ask for way more access than the problem needs. Depthdata is read only and metadata only: seats, usage counts, spend. The endpoints we connect to don't carry prompt content at all, so conversations never enter our system, there's nothing to leak. Narrow scope is the architecture, not a promise, and that's what security teams actually check.
The ALLOCATED vs measured label distinction is the right call. We ran into this exact thing with transaction categorization, once you're inferring instead of reading a hard number from the source, you have to keep that visibly separate or people start treating estimates as facts six months later when nobody remembers which number was which.
DepthData
@raffay_sajjad That six months later failure is exactly the one we designed against. The label isn't a UI decoration, it travels with the number, exports and reports carry MEASURED or ALLOCATED on every figure. So even when nobody remembers which number was which, the number remembers. Once an estimate loses its label it becomes a fact, and that's how dashboards quietly go wrong.
This is a smart wedge ,most spend dashboards mix hard numbers with guesses and never tell you which is which, so the second someone actually audits it, trust falls apart. Curious how you handle vendors that barely expose anything beyond seat counts , do you just flag those as low-confidence, or is there a minimum bar of data before a tool even gets added? Also wondering if you're planning to cross-check against SSO/IdP logins (Okta, Entra etc.) at some point, since that's often where you get a more honest "who's actually using this" than the vendor's own console gives you.