-
-
Save simonw/ad00a97d2e70918cfbbc94d429af46ca to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Pricing data from the image | |
const pricing = { | |
inputTokensPerMillion: 2, // $2 per million | |
outputTokensPerMillion: 8, // $8 per million | |
searchQueriesPer1000: 5, // $5 per 1000 queries | |
reasoningTokensPerMillion: 3 // $3 per million | |
}; | |
// Usage data from the JSON | |
const usage = { | |
promptTokens: 19, | |
completionTokens: 498, | |
totalTokens: 517, | |
citationTokens: 10175, | |
numSearchQueries: 48, | |
reasoningTokens: 95305 | |
}; | |
console.log("=== TOKEN USAGE BREAKDOWN ==="); | |
console.log(`Prompt tokens: ${usage.promptTokens.toLocaleString()}`); | |
console.log(`Completion tokens: ${usage.completionTokens.toLocaleString()}`); | |
console.log(`Citation tokens: ${usage.citationTokens.toLocaleString()}`); | |
console.log(`Reasoning tokens: ${usage.reasoningTokens.toLocaleString()}`); | |
console.log(`Search queries: ${usage.numSearchQueries}`); | |
console.log("\n=== COST CALCULATIONS ==="); | |
// Calculate input token cost (prompt tokens) | |
const inputTokenCost = (usage.promptTokens / 1000000) * pricing.inputTokensPerMillion; | |
console.log(`Input tokens cost: ${usage.promptTokens} tokens × $${pricing.inputTokensPerMillion}/million = $${inputTokenCost.toFixed(6)}`); | |
// Calculate output token cost (completion tokens) | |
const outputTokenCost = (usage.completionTokens / 1000000) * pricing.outputTokensPerMillion; | |
console.log(`Output tokens cost: ${usage.completionTokens} tokens × $${pricing.outputTokensPerMillion}/million = $${outputTokenCost.toFixed(6)}`); | |
// Calculate search queries cost | |
const searchQueriesCost = (usage.numSearchQueries / 1000) * pricing.searchQueriesPer1000; | |
console.log(`Search queries cost: ${usage.numSearchQueries} queries × $${pricing.searchQueriesPer1000}/1000 = $${searchQueriesCost.toFixed(6)}`); | |
// Calculate reasoning tokens cost | |
const reasoningTokenCost = (usage.reasoningTokens / 1000000) * pricing.reasoningTokensPerMillion; | |
console.log(`Reasoning tokens cost: ${usage.reasoningTokens} tokens × $${pricing.reasoningTokensPerMillion}/million = $${reasoningTokenCost.toFixed(6)}`); | |
// Calculate total cost | |
const totalCost = inputTokenCost + outputTokenCost + searchQueriesCost + reasoningTokenCost; | |
console.log("\n=== COST SUMMARY ==="); | |
console.log(`Input tokens: $${inputTokenCost.toFixed(6)}`); | |
console.log(`Output tokens: $${outputTokenCost.toFixed(6)}`); | |
console.log(`Search queries: $${searchQueriesCost.toFixed(6)}`); | |
console.log(`Reasoning tokens: $${reasoningTokenCost.toFixed(6)}`); | |
console.log("─".repeat(25)); | |
console.log(`TOTAL COST: $${totalCost.toFixed(6)}`); | |
console.log(`TOTAL COST: $${totalCost.toFixed(4)} (rounded to 4 decimal places)`); | |
// Show percentage breakdown | |
console.log("\n=== COST BREAKDOWN BY PERCENTAGE ==="); | |
console.log(`Input tokens: ${((inputTokenCost/totalCost)*100).toFixed(2)}%`); | |
console.log(`Output tokens: ${((outputTokenCost/totalCost)*100).toFixed(2)}%`); | |
console.log(`Search queries: ${((searchQueriesCost/totalCost)*100).toFixed(2)}%`); | |
console.log(`Reasoning tokens: ${((reasoningTokenCost/totalCost)*100).toFixed(2)}%`); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment