status (Success/Partial/Empty/Error), created_at, total_time_taken_ms, google_url, warning, drift_evidence (KV key of saved raw HTML when status is Empty/Partial), partial_recovered (true when organics were recovered by re-fetch), citations_missing (true when Google served the AI Overview text without its citations and they could not be recovered — such rows are status Partial and are NOT charged), parse_suspect (true when Google's AI Overview markers were in the response but no answer text could be extracted — probable Google markup change; such rows are status Partial and are NOT charged), ai_mode_detected (true only when the answer was served from the AI Mode surface, i.e. not inside an AI Overview block; classic AI Overview answers never set it), ai_mode_excluded (true when excludeAiMode dropped an AI Mode answer: ai_overview is null, status Success, charged), thin_recovered (true when the AI Overview was thin — ended in a dangling heading or under 600 characters — and one fresh SERP fetch returned a richer answer, which replaced it), thin_recovery_attempted (true when the AI Overview was thin, one fresh fetch was made, and the original answer was kept because the fresh one was not richer or was AI Mode), modules_present (which modules actually parsed: organic_results, ai_overview, people_also_ask, knowledge_graph, top_stories, local_results, discussions_and_forums).