A deterministic audit you can explain.

VariantGate separates matching from validation, exposes uncertainty, and keeps raw creative inspection in the browser. This is the current V1 method.

01

The matrix defines the expected delivery.

Each row is a versioned requirement with a campaign, market, locale, channel, format, dimensions, accepted file types, maximum byte size, naming convention, and required/optional state.

Imports require market, locale, channel, format, width, and height. Duplicate IDs, invalid positive integers, oversized cells, files above 2 MB, and matrices above 5,000 rows fail explicitly.

02

Creative metadata is inspected locally.

A browser worker reads names, paths, MIME types, byte sizes, image dimensions, ZIP entries, and SHA-256 hashes. Raw creative bytes are never sent to VariantGate, Convex, WorkOS, Stripe, or a logging provider.

Persistence boundaryAggregate counts may be saved after an authenticated audit. Detailed filenames require a separate future opt-in.

03

Filename tokens produce an explainable score.

Names are lowercased and split on non-alphanumeric separators. Supported locale aliases are normalized before requirements are ranked.

SignalWeight
Market token24
Format token24
Channel token22
Locale token20
Campaign token10
Supporting dimensions4
  • Below 46 points: unmatched and reported as an unexpected file.
  • 96+ points with a 15-point lead: exact match.
  • 76+ points with a 12-point lead: probable match.
  • Every other accepted candidate: uncertain and requires review.
04

Validation runs after matching.

A matching filename does not make a file valid. VariantGate independently checks zero-byte files, dimensions, accepted file types, maximum size, naming completeness, market and locale consistency, duplicate requirement coverage, and exact SHA-256 duplicates.

Errors block readiness, review items require a human decision, and warnings retain context without silently changing the requirement.

05

Coverage is calculated from requirement outcomes.

Every requirement becomes ready, missing, issue, or review. The completeness percentage is matched required variants divided by all required variants; issue totals remain visible instead of being hidden inside that percentage.

The same versioned result powers the coverage view, correction list, match review, suggested rename map, manifest, CSV/JSON export, and print receipt.

06

V1 stays deliberately bounded.

VariantGate does not use an LLM for matching, inspect video codecs, replace a DAM, check ad-platform policy, or upload assets. Browser memory and configured plan limits define the supported audit envelope.

Why deterministic?Delivery corrections need repeatable evidence. The same input and engine version produce the same result.

Inspect the method on a known fixture.

The public sample intentionally includes every major V1 issue class.

Open sample audit