v4 flash as a judge: reasoning effort low beat default on every number I measured (120 calls)
I use deepseek v4 flash (the 0731 snapshot) through openrouter as a judge in a pipeline. it reads batches of 12 to 24 pairs and returns a keep or reject verdict for each. some calls were coming back empty even though they were billed, so I ran a small bake-off on real batches: same prompts, same max_tokens, v4 flash 0731 vs v4.1 flash, reasoning default vs low, 30 calls each. 0731 default: 28/30 ok, 2 starved, p50 48s, $0.0026 per call 0731 low: 30/30 ok, p50 23s, $0.0011 per call 4.1 default: 28/30 ok, 2 starved, p50 33s, $0.0018 per call 4.1 low: 30/30 ok, p50 23s, $0.0012 per call "starved" means it spent the whole max_tokens on reasoning and returned nothing, and you still pay for those tokens. at default effort both models did it on the harder batches. low never did in 60 calls, at less than half the cost. what I didn't expect: low didn't get sloppier. on one batch type it kept about twice as many pairs, which worried me, so I read the kept pairs for three batches side by side. mostly the same pairs, one dubious extra, one weak one dropped. two things I'd pass on. log finish_reason and reasoning tokens on every call, because an empty answer looks exactly like a quality problem otherwise. and pin the dated snapshot, the undated slug was quietly serving me an older model for a while. small sample and one task type, so take it for what it is. curious if anyone has seen the same with the bigger model