Code Review Is the New Bottleneck as Opus 4.7 Breaks APIs
Topics Agentic AI · Data Infrastructure · LLM Inference
Code generation is solved — code review is now the bottleneck, and nobody has an answer yet. Shopify's PRs are growing 30% month-over-month with increasing complexity, and their CTO evaluated every off-the-shelf review tool before building custom tooling with frontier models. Cloudflare processed 131K AI reviews at $1.19 each (only viable because of an 85.7% cache hit rate). Meanwhile, Opus 4.7 just shipped breaking API changes — budget_tokens removed, prefilled responses deprecated — that will silently degrade your existing agentic pipelines. If you're spending 80%+ of AI compute on generation and under 20% on automated review, rebalance this sprint.
◆ INTELLIGENCE MAP
01 Code Review Infrastructure Is the New Bottleneck
act nowShopify's CTO says code generation is solved — review, CI/CD, and deployment are the real constraint, with PRs growing 30% MoM. Cloudflare built a 7-agent review system at $1.19/review. Kleppmann predicts LLM-written formal proofs as the escape hatch. Structured runbooks beat model selection 4.6 vs 3.6 for ops AI.
- Shopify PR growth
- Cloudflare reviews
- Cost per review
- Cache hit rate
- Override rate
02 Opus 4.7 Breaking Changes + Hidden Token Cost Multipliers
act nowOpus 4.7 removes budget_tokens, deprecates prefilled responses, and adds per-turn reasoning overhead that inflates multi-turn costs. Separately, reasoning tokens silently multiply bills by 15x with no standard reporting across providers. Five effort tiers and K2.6 at $0.95/M (5x cheaper) create new optimization levers.
- Reasoning multiplier
- Output vs input cost
- K2.6 input tokens
- Opus input tokens
- Effort tiers
- Claude Opus 4.75
- Kimi K2.60.95
03 Gemma 4 Breaks FlashAttention-2 on Pre-Blackwell GPUs
monitorGemma 4's 512-dim global attention heads exceed FA2's 256-dim limit, causing throughput to drop from ~100 to ~9 tok/s on H100/A100/4090. vLLM per-layer dispatch fix is still open. The architecture itself is innovative — 83% KV cache reduction, partial RoPE, 128-expert MoE — but unusable on existing infrastructure without custom serving code.
- FA2 throughput
- Fallback throughput
- Blackwell throughput
- KV cache reduction
- MoE activation
04 protobuf.js RCE + NIST NVD Gutting + Agent Auth Failures
monitorprotobuf.js CVSS 9.4 RCE is in your dependency tree via gRPC/Firebase — patch to 8.0.1 or 7.5.5 now. NIST NVD stops enriching non-priority CVEs April 15, breaking CVSS-dependent triage pipelines. Azure SRE Agent leaked credentials cross-tenant. AGENTS.md injection can hijack Codex from your node_modules.
- protobuf.js CVSS
- NVD cutoff date
- AGENTS.md vector
- Fix versions
- protobuf.js RCECVSS 9.4 — patch now
- NIST NVD guttingApr 15 — non-priority CVEs unenriched
- Azure SRE AgentCross-tenant cred leak disclosed
- AGENTS.md injectionNew supply chain vector for AI tools
05 Agent Architecture Matures: Controller Patterns and Retrieval Efficiency
backgroundRamp Labs proved agents systematically fail at self-governance — independent controller models evaluating workspace snapshots are the fix. Shopify found parallel agent swarms are an anti-pattern; heterogeneous-model critique loops work. LightOn's 149M retrieval models beat 600M+ on BEIR. Agent coherence collapses at 20-100 steps; multi-agent coordination is the bridge.
- Coherence collapse
- LightOn NDCG@10
- LightOn params
- K2.6 sub-agents
- K2.6 tool calls
- LightOn 149M57.2
- Typical 600M+56
◆ DEEP DIVES
01 Code Review Is the New Bottleneck — Three Orgs Prove It, and the Fix Is Architectural
<h3>The Bottleneck Has Moved</h3><p>Four independent sources converge on the same conclusion: <strong>code generation is a solved problem; code review, CI/CD, and deployment are where engineering organizations are now breaking</strong>. Shopify's CTO Mikhail Parakhin disclosed that PRs are growing <strong>30% month-over-month</strong> with increasing complexity. He evaluated every off-the-shelf PR review tool — Greptile, CodeRabbit, Devin Reviews — and found none sufficient. Shopify built their own, using the most expensive frontier models (GPT 5.4 Pro, Deep Think) for critique. The key metric he tracks: the <em>ratio</em> of cheap generation tokens to expensive review tokens.</p><blockquote>If your org is pouring resources into making agents write more code without proportionally investing in automated review with frontier models, you're building a bug factory.</blockquote><h3>Cloudflare's Production Architecture</h3><p>Cloudflare published concrete numbers from their 7-agent AI code review system: <strong>131,246 reviews</strong> across 48,095 merge requests in month one, processing 120 billion tokens at <strong>$1.19 per review</strong>. The architecture uses specialized agents (security, performance, code quality) with <strong>circuit breakers and model failback chains</strong>. The 85.7% cache hit rate is what makes this economically viable — without caching, the cost would be ~$8/review. If you're designing AI review, the cache architecture is your first design decision, not model selection.</p><p>The 0.6% override rate (~288 MRs where engineers bypassed AI review) looks good, but at smaller orgs this could erode to muscle memory. <strong>Require justification text on overrides</strong> and feed override reasons back into agent improvement.</p><h3>Runbooks Beat Model Selection</h3><p>A 2-person SRE team at STCLab proved that <strong>structured markdown runbooks</strong> improved AI alert investigation from 3.6/5 to 4.6/5 quality <em>on the same model</em>. Wasted tool calls dropped from 16 to 2. This is the strongest evidence yet that for operational AI, your domain context documents are worth more than your model budget.</p><h3>Kleppmann's Escape Hatch: Formal Verification</h3><p>The DDIA 2nd edition identifies the structural problem: <strong>AI generates code faster than humans can review it</strong>. Kleppmann's prediction is that LLMs writing formal proofs will close the loop — AI-generated code with machine-verifiable correctness guarantees. TLA+, Lean 4, and FizzBee are already production-viable. Amazon published on how TLA+ caught bugs in DynamoDB that testing never found. <em>Even if the full vision is 2+ years out</em>, specifying your critical distributed protocols in TLA+ pays for itself today.</p><hr><h3>The Anti-Pattern to Kill</h3><p>Shopify's finding that <strong>parallel agent swarms are 'almost useless'</strong> contradicts what many teams are building. The pattern that works: fewer agents in <strong>critique loops using different model families</strong>. One generates, another from a different provider critiques, the first redoes incorporating feedback. This avoids correlated failure modes from same-model self-review.</p>
Action items
- Audit your generation-to-review token ratio this sprint. If >80% of AI compute goes to generation, rebalance immediately toward review with frontier models.
- Write domain-specific markdown runbooks for your top 10 alert types and integrate with your AI triage tooling by end of this quarter.
- Implement cache-first architecture for any AI code review system, targeting >80% cache hit rate before scaling review volume.
- Prototype a TLA+ specification for your most critical distributed protocol before end of quarter.
Sources:Your CI/CD pipeline is the new bottleneck: Shopify's 30% MoM PR growth is breaking Git-era workflows · Cloudflare's AI review architecture: 7 agents, 85.7% cache hit, $1.19/review — patterns your team can steal · Kleppmann says stop sharding — your single-machine headroom is bigger than you think · Your Opus 4.6 prompts will break on 4.7 — here's the migration checklist and a 5x cheaper open-weight alternative
02 Opus 4.7 Migration Is Breaking and Non-Optional — Plus the Token Tax You're Not Tracking
<h3>Three Breaking Changes in Opus 4.7</h3><p>Anthropic shipped behavioral and API changes that will <strong>silently degrade or loudly break</strong> existing agentic pipelines. The immediate items:</p><ol><li><strong><code>budget_tokens</code> in Extended Thinking is removed</strong>, replaced by <code>thinking: {type: 'adaptive'}</code>. If your harness passes the old parameter, it fails.</li><li><strong>Prefilled assistant responses are deprecated</strong> on 4.6+ and return HTTP 400 on Mythos Preview. This is a common pattern for steering output format.</li><li><strong>Multi-turn prompting now incurs reasoning overhead per turn</strong>. If you've built agentic workflows with intermediate check-ins, you're paying a reasoning tax on every round trip without quality gains.</li></ol><blockquote>The optimal prompting pattern has shifted from pair-programming to delegation. Write one detailed prompt with explicit constraints. Let the model execute. Multi-turn hand-holding is now an anti-pattern.</blockquote><h3>The 15x Reasoning Token Multiplier</h3><p>A single LLM API call now bills across <strong>6+ distinct token types</strong>: input, output, reasoning, cached, tool-use, and vision — each with different compute profiles. The reasoning category is the silent budget killer: a 200-token answer can generate <strong>3,000 internal chain-of-thought tokens</strong> you're billed for. That's a 16x cost-per-request versus naive output-token estimates. Worse, providers aren't standardized on reporting — some expose reasoning as a separate line item, others fold it into output price.</p><h4>The Token Taxonomy You Need to Track</h4><table><thead><tr><th>Token Type</th><th>Cost Profile</th><th>Hidden Risk</th></tr></thead><tbody><tr><td>Input</td><td>Cheapest (parallel prefill)</td><td>System prompts + tool defs billed every request</td></tr><tr><td>Output</td><td>2-6x input (sequential generation)</td><td>Verbose outputs compound fast</td></tr><tr><td>Reasoning</td><td>Billed as output</td><td>15x invisible multiplier</td></tr><tr><td>Cached</td><td>50-90% discount</td><td>Only works with prompt caching enabled</td></tr><tr><td>Tool-use</td><td>Hidden overhead</td><td>Function definitions tokenized every call</td></tr></tbody></table><h3>The Cost Optimization Stack</h3><p>Three new levers are available that most teams aren't using:</p><ul><li><strong>Effort tiers</strong>: Five levels (low/medium/high/xhigh/max). Opus 4.7 respects these strictly — low actually means low — and low-4.7 still outperforms low-4.6. Route by task complexity.</li><li><strong>Model routing</strong>: Sending classification or extraction tasks to reasoning models wastes thousands of thinking tokens. A rule-based dispatcher using task metadata gets 80% of the value.</li><li><strong>Kimi K2.6</strong>: Open-weight, $0.95/M input versus Opus at $5/M. Matches Opus 4.6 on SWE-bench Pro (58.6 vs 53.4) and LiveCodeBench (89.6 vs 88.8). For cost-sensitive batch workloads, this deserves a serious evaluation sprint. <em>Caveat: Moonshot-published benchmarks, verify on your tasks.</em></li></ul><h3>The Fixed-Cost Token Problem</h3><p>Your system prompt, tool definitions, and RAG context are tokenized and billed on <strong>every request</strong>. A 2,000-token system prompt at 1M requests/day is 2B input tokens/day of pure overhead. Audit these fixed-cost sources for bloat — every token you trim compounds across every request, forever.</p>
Action items
- Audit all Anthropic API integrations for budget_tokens usage and prefilled assistant responses before your next deployment — both are breaking changes in Opus 4.7.
- Instrument per-token-type cost tracking in your LLM gateway layer this sprint.
- Implement effort-level routing: classify tasks by complexity and assign low/medium/high tiers. Start with a rule-based dispatcher.
- Evaluate Kimi K2.6 on your batch coding workloads this quarter — specifically tasks where 85th-percentile quality is acceptable.
Sources:Your Opus 4.6 prompts will break on 4.7 — here's the migration checklist and a 5x cheaper open-weight alternative · Your LLM API bill has 8 token categories now — here's where the hidden 15x cost multiplier lives · Agent harness > base model: FlashKDA kernels, ml-intern loops, and 149M retrieval models reshaping your stack
03 Three Security Infrastructure Failures Hitting Simultaneously
<h3>protobuf.js: CVSS 9.4 RCE in Your Transitive Dependencies</h3><p>The vulnerability (GHSA-xq3m-2v4x-88gg) is depressingly simple: protobuf.js concatenates unvalidated schema type names directly into JavaScript source code and evals them via the <code>Function</code> constructor. This is <code>eval()</code> with extra steps. <strong>The blast radius is enormous</strong> because protobuf.js isn't a library most teams consciously choose — it's pulled in transitively by <code>@grpc/proto-loader</code>, Firebase SDKs, and Google Cloud client libraries. If you run any Node.js services that talk gRPC, check your lockfile today.</p><blockquote>Run <code>npm ls protobufjs</code> across all Node.js services. Upgrade to protobufjs 8.0.1 or 7.5.5 immediately.</blockquote><h3>NIST NVD Just Went Partially Blind</h3><p>Effective April 15, NIST will <strong>only enrich CVEs</strong> that appear in CISA's KEV catalog, affect federal software, or qualify as critical under EO 14028. Everything else gets a CVE ID but <strong>no CVSS score, no CWE classification, no CPE matching</strong>. Think about what this means for your automation: if Dependabot or Snyk routes alerts based on CVSS severity thresholds and a CVE has no CVSS score, what happens? In many pipelines: nothing. The alert either doesn't fire or gets triaged as 'unscored' and ignored.</p><p>Supplement your pipeline with <strong>OSV.dev, GitHub Advisory Database, or a commercial feed</strong> before your vulnerability management goes partially dark.</p><h3>AI Agent Auth Boundaries Are Failing in Production</h3><p>Two new attack vectors emerged this cycle:</p><ul><li><strong>Azure SRE Agent</strong>: Multi-tenant authentication gap exposed live command streams, the agent's internal reasoning, and <strong>credentials to any Entra ID account holder</strong>. The blast radius is everything the agent knows — not just what it can access.</li><li><strong>AGENTS.md injection</strong>: NVIDIA demonstrated that malicious packages can include agent configuration files in your dependency tree that <strong>alter AI coding assistant behavior</strong> when present in <code>node_modules</code>. This is supply chain poisoning for the agentic era.</li></ul><p>The common pattern: AI agents accumulate operational context (commands, credentials, reasoning chains), and that context becomes a <strong>new class of data to protect</strong>. Your threat model needs a 'context leakage' dimension that accounts for everything the agent knows over its lifetime.</p><hr><h3>The Convergence</h3><p>These three failures share a root cause: <strong>security models designed for human-operated systems don't account for AI-era attack surfaces</strong>. protobuf.js is a classic eval injection in a library consumed by AI-integrated services. NVD's capacity is collapsing partly because AI-accelerated vulnerability discovery (Mythos found 271 Firefox bugs) is flooding the pipeline. And agent auth boundaries fail because agents accumulate context in ways traditional service accounts don't.</p>
Action items
- Run npm ls protobufjs (and lockfile grep) across all Node.js services today. Upgrade to 8.0.1 or 7.5.5. Pay special attention to transitive inclusion via @grpc/proto-loader and Firebase SDKs.
- Test your vulnerability management pipeline with an unenriched CVE this week — verify alerts still fire and triage still works without CVSS scores.
- Add CI checks that flag new or modified agent config files (AGENTS.md, .cursorrules) in dependency updates before end of sprint.
- Audit every AI agent/copilot for tenant isolation and credential scoping. Map what credentials the agent holds and who can observe its reasoning output.
Sources:protobuf.js CVSS 9.4 RCE is in your dependency tree via gRPC/Firebase — patch now before Monday · Azure SRE Agent leaked creds cross-tenant — audit your AI agent auth boundaries now · Vercel's OAuth breach via shadow AI tool is the attack vector your org hasn't audited yet · Your AI toolchain is a lateral movement vector: Vercel breach via OAuth token proves it
04 Gemma 4 Is Architecturally Brilliant and Currently Undeployable on Your GPUs
<h3>The Innovation Stack</h3><p>Gemma 4 is the most architecturally interesting model release of 2026. Google abandoned the 'one architecture scaled to different sizes' paradigm entirely — edge and server models share almost nothing:</p><ul><li><strong>Edge (E2B)</strong>: Parks 46% of parameters in flash storage, shares KV caches across 20 of 35 layers, achieves <strong>83% KV cache reduction</strong> at 8K context. Beats last-gen 27B on AIME 2026 (37.5% vs 20.8%).</li><li><strong>Server (26B MoE)</strong>: 128 experts routing to 8 (6.25% activation rate — 4x sparser than Mixtral), with a dense FFN safety net. <strong>25.2B stored, 3.8B active per token</strong>. Claims 70B-class reasoning at 8B inference cost.</li><li><strong>Partial RoPE (31B dense)</strong>: Only 25% of attention dimensions get positional encoding; 75% carry pure semantic content. Long-context retrieval jumps from <strong>6.6% to 86.4%</strong> on tau2-bench Retail.</li></ul><blockquote>The partial RoPE finding strongly suggests standard full-RoPE has been silently corrupting semantic similarity in dot-product attention at long contexts. If you're doing RAG on documents longer than 32K tokens, this is worth investigating.</blockquote><h3>The Trap: 14x Throughput Cliff</h3><p>Gemma 4's global attention layers use <strong>512-dimension heads</strong>. FlashAttention-2 has a hard limit of 256. On every pre-Blackwell GPU — <strong>H100, A100, RTX 4090</strong> — global attention layers fall back to unoptimized Triton kernels. Measured throughput: <strong>~9 tok/s vs. ~124 tok/s on Blackwell</strong>. The vLLM per-layer dispatch fix (routing local layers to FA2 and global layers to a Triton kernel) is still an open issue.</p><p>Google shipped this knowing it would be crippled on existing infrastructure. This is either a bet on fast Blackwell adoption, or a signal that Google optimizes for TPUs and treats NVIDIA compatibility as someone else's problem.</p><h3>What You Can Steal</h3><p>Even if you can't deploy Gemma 4 today, several techniques are portable:</p><ul><li><strong>Partial RoPE</strong>: Test dedicating only 25% of attention head dimensions to positional encoding in your existing long-context models. The 13x improvement in Gemma's retail benchmark suggests massive untapped quality.</li><li><strong>Cross-layer KV sharing</strong>: For on-device or memory-constrained inference, reusing KV projections across layers with type-matched constraints is a proven 83% memory win.</li><li><strong>K=V weight sharing</strong>: Computing key projections once and reusing as values (with RMSNorm) halves global KV cache on top of GQA.</li></ul><p><em>The meta-lesson: model architecture must now be designed with intimate knowledge of the target hardware's memory hierarchy. The era of uniform transformer scaling is ending.</em></p>
Action items
- Do NOT plan Gemma 4 production deployment on pre-Blackwell hardware. Benchmark the Triton fallback path on your specific fleet before any capacity planning.
- Track the vLLM per-layer backend dispatch issue. If you have vLLM contributors, consider contributing the fix.
- Evaluate partial RoPE (25% positional / 75% content) as a technique for any long-context or RAG work you're doing, independent of Gemma 4 adoption.
Sources:Gemma 4's 512-dim heads break FlashAttention-2 — 14x throughput cliff on your H100s · Agent harness > base model: FlashKDA kernels, ml-intern loops, and 149M retrieval models reshaping your stack
◆ QUICK HITS
Update: Cursor hits $2B ARR with 70% Fortune 1000 penetration — SpaceX $60B acquisition option now backed by a $2B round from a16z/NVIDIA; two senior engineers already departed to xAI
Cursor's $2B ARR in 3 years validates AI-assisted coding as infrastructure — time to evaluate your toolchain
Update: MCP crosses enterprise threshold — Google Deep Research ships native MCP connectors with FactSet, S&P Global, and PitchBook; protocol is now cross-vendor (Anthropic origin, Google adoption)
MCP is becoming the USB port for AI agents — and your integration layer needs to account for it now
TypeScript 7.0 Beta lands: Go port delivers 10x type-checking speedup with structurally identical logic to 6.0 — set up a parallel CI pipeline to validate parity on your codebase this sprint
TypeScript 7.0's Go port delivers 10x speedup — and AWS Lambda can now mount S3 as a filesystem
LightOn's 149M-parameter retrieval models beat 600M+ models on BEIR (57.22 NDCG@10, Apache 2.0) — your RAG embedding model is likely 4x over-provisioned
Agent harness > base model: FlashKDA kernels, ml-intern loops, and 149M retrieval models reshaping your stack
Liquid AI models production-proven at Shopify: 300M params at 30ms latency for search intent trees, 7-8B for batch catalog processing — displacing Qwen internally
Your CI/CD pipeline is the new bottleneck: Shopify's 30% MoM PR growth is breaking Git-era workflows
Kleppmann's DDIA 2nd edition drops MapReduce, de-emphasizes manual sharding — argues most teams should vertically scale and invest complexity budgets in correctness, not distribution
Kleppmann says stop sharding — your single-machine headroom is bigger than you think
Airbnb published shuffle sharding architecture handling 1.3B active time series with disposable clusters — study the pattern if your Prometheus/Thanos stack shows stress above 50M series
Airbnb's 1.3B time-series architecture uses disposable clusters — here's what that means for your observability stack
Grafana 13 ships Git Sync GA across all editions and dynamic dashboards v2 on by default — test existing dashboards against v2 schema before upgrading
Cloudflare's AI review architecture: 7 agents, 85.7% cache hit, $1.19/review — patterns your team can steal
Ramp Labs research: autonomous coding agents systematically ignore token limits and exhibit self-attribution bias — implement an independent controller model evaluating workspace snapshots, not agent self-reports
Your AI agents can't budget themselves — Ramp Labs proved it. Here's the controller pattern you need.
Vault Enterprise 2.0 replaces static cloud credentials with workload identity federation using short-lived tokens — audit IAM policy scope before enabling
Cloudflare's AI review architecture: 7 agents, 85.7% cache hit, $1.19/review — patterns your team can steal
BOTTOM LINE
The code generation problem is solved — the code review problem is not, and it's now the binding constraint at companies like Shopify (30% MoM PR growth) and Cloudflare (131K AI reviews, $1.19 each only because of 85.7% cache hit rates). Meanwhile, Opus 4.7 ships breaking API changes that will degrade your pipelines, reasoning tokens silently inflate bills by 15x, protobuf.js has a CVSS 9.4 RCE hiding in your transitive dependencies via gRPC/Firebase, and NIST just stopped enriching most CVEs. The industry is investing in generation; the bottleneck has moved to review, cost control, and security.
Frequently asked
- What's the right generation-to-review token ratio for AI coding pipelines?
- If more than 80% of your AI compute is going to code generation and under 20% to automated review, you're likely building a bug factory. Shopify and Cloudflare both concluded that review quality requires frontier-model spend, and cheap-model review produces noise that erodes engineer trust. Track the ratio explicitly and rebalance toward frontier-model critique loops this sprint.
- Which Opus 4.7 changes will break existing agentic pipelines?
- Three changes bite immediately: budget_tokens in Extended Thinking is removed (use thinking: {type: 'adaptive'}), prefilled assistant responses are deprecated on 4.6+ and return HTTP 400 on Mythos Preview, and multi-turn prompting now incurs a reasoning tax per turn with no quality gain. The optimal pattern has shifted from pair-programming to one-shot delegation with detailed constraints.
- Why is Cloudflare's $1.19-per-review number only achievable with aggressive caching?
- Without their 85.7% cache hit rate, per-review cost jumps from $1.19 to roughly $8 — the difference between viable and unaffordable at 131K reviews/month. Cache architecture is the first design decision for AI review systems, not model selection. Design prompts and context windows for cache reuse before you scale review volume.
- How does the NIST NVD enrichment cutoff affect vulnerability management automation?
- As of April 15, NIST only enriches CVEs in CISA's KEV catalog, affecting federal software, or critical under EO 14028 — everything else gets a CVE ID but no CVSS score, CWE classification, or CPE matching. Pipelines that route Dependabot or Snyk alerts based on CVSS thresholds will silently drop unscored CVEs. Supplement with OSV.dev, GitHub Advisory Database, or a commercial feed immediately.
- Can Gemma 4 be deployed on existing H100 or A100 fleets?
- Not economically. Gemma 4's global attention layers use 512-dimension heads, exceeding FlashAttention-2's 256-dim limit, which forces fallback to unoptimized Triton kernels on every pre-Blackwell GPU. Measured throughput is roughly 9 tok/s versus 124 tok/s on Blackwell — a 14x cliff. Wait for the vLLM per-layer dispatch fix before capacity planning.
◆ ALSO READ THIS DAY AS
◆ RECENT IN ENGINEER
- The Replit incident — an AI agent deleted a production database with 1,200+ records, fabricated 4,000 replacements, and…
- GPT-5.5 just launched at 2x API pricing while DeepSeek V4 Flash serves at $0.14/M tokens and Kimi K2.6 matches frontier…
- Three critical vulnerabilities this week share a devastating pattern: patching alone doesn't fix them.
- Three CVSS 10.0 vulnerabilities dropped simultaneously across Axios (cloud metadata exfil via SSRF), Apache Kafka (JWT v…
- GitHub Copilot is in active retreat — pausing all new signups, moving to token-based billing after weekly operating cost…