This guide uses source checks from Aug 30, 2026. Provider and gateway prices can change; preserve the checked date with every forecast.
Why This Topic Matters Now
The Aug 29 keyword report includes `glm deepseek kimi` and `deepseek vs glm vs kimi`. The volume is small, but the intent is valuable because the buyer is not asking for a single-provider tutorial. They are comparing model families across quality, context behavior, cache economics, tool or search costs, and route evidence. That is the right moment for an AIWave cost-ledger article.
This guide uses AIWave live pricing checked on Aug 30, 2026 and provider documentation checked during the same publishing run. It keeps direct-provider documentation separate from AIWave gateway rows, uses dated figures only, and avoids unsupported claims about universal savings. The purpose is practical: help Tier 1 and Tier 2 teams build a routing matrix that engineering and finance can both read.
Source Facts Checked Today
AIWave /api/pricing checked on Aug 30, 2026 returned 63 records and pricing_version a42d372ccf0b5dd13ecf71203521f9d2. Current parsed gateway examples before account-group math were deepseek-v4-pro at $1.914 input, $5.742 output, and $0.063736 cache-hit input per 1M tokens; deepseek-v4-flash at $0.638 input, $1.914 output, and $0.020288 cache-hit input; kimi-k3 at $4.50 input, $22.50 output, and $0.90 cache-hit input; and glm-5.1 at $2.10 input, about $6.60 output, and about $0.680001 cache-hit input.
DeepSeek direct docs checked for this run document separate cache-hit, cache-miss, output, peak, off-peak, context, output, and concurrency dimensions. Z.AI pricing docs checked during recent runs list GLM text rows with cached-input, output, and tool sections. Kimi billing docs checked during recent runs describe input/output token billing, context caching, and web-search billing. These are provider facts, not automatic AIWave gateway terms.
The buyer risk is not that one model family has more columns than another. The risk is that the application hides the columns that matter. A route ledger should keep model ID, provider family, input tokens, cache-hit tokens, output tokens, tool or search calls, account group, pricing_version, timestamp, request ID, and fallback outcome visible enough for a second reviewer to reproduce the estimate.
Planning Matrix
A source-dated planning matrix keeps the page useful for engineers and procurement reviewers. It turns a search query into an auditable route decision instead of a loose model preference.
| Route family | Best first use | Ledger field to verify |
|---|---|---|
| DeepSeek V4 Pro | Large planning and repository review | cache-hit input and output cap |
| DeepSeek V4 Flash | Routine execution and fast drafts | route acceptance and retry class |
| GLM-5.1 | Reasoning and tool-governed workflows | cached input and tool calls |
| Kimi K3 | Long-context coding and knowledge work | cache share, output, search calls |
| Qwen family | Batch, thinking, and tiered context tests | tier basis and batch/cache rule |
| Any fallback | Resilience only when policy allows | first route, final route, billed attempt |
Implementation Pattern
The implementation pattern keeps credentials as placeholders, pins the AIWave base URL, records the model, and leaves room for route-specific controls. Production applications should move credentials into environment or secret storage.
from dataclasses import dataclass
AIWAVE_API_KEY = "YOUR_API_KEY_HERE"
@dataclass
class RouteEstimate:
model: str
input_per_m: float
cache_per_m: float
output_per_m: float
group_multiplier: float = 1.0
def estimate(self, cache_miss_tokens: int, cache_hit_tokens: int, output_tokens: int) -> float:
return self.group_multiplier * (
cache_miss_tokens / 1_000_000 * self.input_per_m
+ cache_hit_tokens / 1_000_000 * self.cache_per_m
+ output_tokens / 1_000_000 * self.output_per_m
)
deepseek_pro = RouteEstimate("deepseek-v4-pro", 1.914, 0.063736, 5.742)
print(round(deepseek_pro.estimate(300_000, 700_000, 12_000), 4))
Choose by Workload, Not by Family Name
A comparison matrix should start with jobs. Planning a repository migration, drafting routine support replies, running cached document analysis, calling web search, and processing async batches are different workloads. Assign the route after describing the job and acceptance threshold. Otherwise the comparison becomes a vague brand preference and the ledger cannot explain why a month-end bill moved.
Keep Cache-Hit Input Visible
Cache behavior is one of the main reasons long-context economics can change without a visible product change. A stable system prompt, route policy, schema, or reference pack may create reusable input. A changed prompt prefix can remove that reuse. DeepSeek, GLM, and Kimi all make cache or cached-input fields relevant in different ways, so the route ledger should preserve hit and miss fields instead of collapsing them into total input.
Control Output Before Comparing Routes
Output can dominate the cost of reasoning-heavy routes. A Pro planning request, a Kimi coding explanation, or a GLM reasoning response can become longer than the team expected. Set max token budgets by route mode, not only by model family. Use one cap for planning, one for short execution, one for structured extraction, and one for incident analysis. Then compare quality at the same cap before widening it.
Track Search and Tool Calls Separately
Search and tool use are not plain text tokens. Kimi billing docs and Z.AI pricing pages make this point visible through separate search or tool sections. If an agent can search on every turn, finance needs a search-call count beside tokens. If a route uses tools, engineering needs to know whether the model, the gateway, or the application controlled that tool call. Hide those fields and the cost ledger becomes a summary, not an explanation.
Separate Gateway Rows From Provider Rows
AIWave gateway rows, DeepSeek direct rows, Z.AI rows, Kimi rows, and QwenCloud rows are different source owners. A comparison article should show source URLs and checked dates, then say which row is used in the actual AIWave worksheet. This prevents the common error of quoting a direct-provider cache row while sending traffic through a gateway route with its own account terms and group multiplier.
Internal Links for Comparison Readers
Readers comparing DeepSeek, GLM, and Kimi should see links to Pricing, Models docs, Chat Completions, Trust, the model catalog audit, and the DeepSeek cost-ledger guide. The route matrix should point to evidence, not only adjacent content.
Procurement Review
Procurement should ask for the selected route family, the workload name, source URL, checked date, price owner, account group, output cap, cache assumption, tool or search allowance, and one sample ledger record. Engineering should attach a reason for choosing Pro, Flash, GLM, Kimi, or Qwen for that workload. The final decision can then be reviewed against fields rather than opinions.
Final Checklist
A DeepSeek, GLM, and Kimi routing matrix is ready when the workloads are named, route IDs are pinned, cache-hit input is visible, output caps are route-specific, search and tool calls are separate, provider and gateway rows are not blended, and pricing_version is stored with the request evidence. That is the practical SEO answer to `deepseek vs glm vs kimi` for buyers who need a production route.