Methodology

How VERI-fy decides. Published in full.

Stage 0 to 2

The two-stage pipeline.

Stage 0

Capture

Every 5 s, we take two screenshots of your primary display ~50 ms apart. Downscaled to 1280 px wide, JPEG quality 60. VERI-fy windows are excluded from the capture.

Stage 1, optional

Grounded context

If the model self-flags needs_grounding, we run a Google Search pass that asks two queries: a skeptical one and a verification one. Result is cached for 60 seconds.

Stage 2

Structured verdict

The frame pair plus the optional grounding signal go to Gemini with a strict-JSON schema. The response gives observations, verdict, confidence, 10 metrics, artifact boxes, reasoning.

Mandatory grounding overrides: a CONFIRMED_AI signal forces verdict AI_GENERATED, HIGH. A DISPUTED signal forbids the combination REAL + HIGH. We trust the consensus of the open web over the model's in-frame hunch when the open web has spoken.

Inside Stage 2

Seven steps. The model is required to take them in order.

REAL or AI_GENERATED, paired with HIGH / MEDIUM / LOW confidence.

Rule
HIGH requires a Step-2 trigger, a visible AI watermark, or two metrics at 7 or above. Otherwise the cap is MEDIUM.

The math

Ten metrics. Their weights, in full.

The weighted metric average becomes the raw 0 to 100 score. Then we apply the verdict nudge, the confidence range, the dead zone, and the impossibility floor. Every step is in the open.

Metric weights used by VERI-fy when computing the final 0–100 score.
MetricWhat it asksWeight
Physics & PlausibilityCould this scene physically exist? Materials, gravity, biology, scale.22%
Text & WritingGarbled text on signs, badges, screens, or clothing labels.15%
Scene LogicDoes the situation make sense? Identity, era, and setting consistency.12%
Facial QualityMouth morphing, skin boundary shimmer, eye blink symmetry, micro-warping.10%
Object ConsistencyDo objects keep their shape and count between the two frames?10%
Hands & FingersFinger count, hand geometry, grip plausibility.8%
Motion & FlowTemporal coherence between the frame pair.8%
AI WatermarksSora, Veo, Runway, Pika, Kling, Luma, Midjourney, HeyGen, D-ID, Synthesia.7%
Visual AestheticsStylized polish vs. real-camera signal: used cautiously.5%
Lighting & ShadowsShadow direction and consistency. Lowest weight by design.3%
Sum100%

Source: main.js · METRIC_WEIGHTS

Confidence gates

HIGH and MEDIUM cannot land in 40 to 60. That is by design.

HIGH requires real evidence. MEDIUM requires a specific cited anomaly. LOW is for honest uncertainty. The 40 to 60 dead zone is reserved for LOW only. A confident verdict cannot mean "maybe."

12RealHIGH

BBC broadcast bug visible. Mundane scene, no temporal anomalies in the frame pair, no face morphing.

38RealMEDIUM

Looks plausible. No source verifiable on screen. Theoretically could be high-quality AI; we cannot rule it in or out.

50RealLOW

Stylized color grading and tight crop. Nothing fires the common-sense check. We are guessing.

87AI GeneratedHIGH

Visible Sora watermark plus mouth-region morphing between F1 and F2. Two metrics over 7. Settled.

Methodology is not a one-time deliverable. It is a contract.

When we change weights, prompts, or gates, it ships in the changelog and we say what we changed. Subscribe to be told.