In Project mode, I use Opus 5 for the main conversation and have it spawn a sub-agent for another task, with that sub-agent explicitly set to Grok 4.6. At runtime I can confirm the sub-agent is actually running on Grok. After the sub-agent finishes and Opus 5 outputs the result, Usage attributes the Grok 4.6 usage to Opus 5, which creates unexpected extra cost.
Is this expected behavior, or a billing/usage attribution bug?
Hey @John_Chen1, thanks for the report, and for confirming at runtime that the sub-agent was actually on Grok 4.6.
Quick reassurance first: your total charges are correct. Each request is priced on the model that actually ran it, so the sub-agent’s Grok 4.6 work was charged at Grok rates, not Opus 5 rates.
To make sure I’m looking at exactly what you’re seeing, could you share a screenshot of the Usage entry in question, i.e. the row where the Grok 4.6 sub-agent’s cost is showing under Opus 5? That’ll let me confirm which view is mislabeling it and pass it along with the right detail.
Thanks @John_Chen1, the screenshots confirm it. The Grok 4.6 work was charged at Grok rates in its own rows. That Opus 5 row under the sub-agent is the Project’s own follow-up turn, where it wakes on Opus 5 to read the result and plan next steps, just listed in the wrong place, which makes the sub-agent look pricier than it was. Nothing is double-charged, your total is correct, and we’ve flagged the mislabeling. A cheaper Project model lowers that follow-up cost meanwhile.