get_validation_grounding
Compare a draft ad against time-scoped norms before export. Get pattern facts, survivor rates, and receipt-backed comparisons conditioned on the draft's signature.
Instructions
The time-aware NormsPack for the pre-export reality check — scoped (own/category/competitor), windowed (28d/90d/lifetime) pattern facts with survivor rates, temporal class (evergreen|rising|fading|breaker), denominators, exemplar receipts, brand rails, and precomputed draft_comparisons. Pass the draft's signature so the pack is conditioned on THIS draft. Facts + arithmetic only — descriptive, receipt-backed, never predictions. Degrades honestly per scope.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| aspect | No | Render aspect, e.g. 9:16. | |
| medium | No | Is the draft a cut or a page? Norms are split by medium — a page is compared to pages. Omitting this treats the draft as motion, which for an image ad compares its backing runtime and its zero cut-rate against the video distribution. | |
| draft_text | No | The draft's grammar in words (hook line · claims · kind, plus on-screen text for a static) — enables 'analyzed ads like this draft'. | |
| offer_text | No | The draft's OWN offer words, if any ('50% off', 'watch free'), verbatim and short. Send an EMPTY string to mean 'we looked and there is no offer'; omit the field entirely to mean 'not measured'. | |
| cuts_per_sec | No | Draft cut cadence. | |
| duration_sec | No | Draft duration in seconds. | |
| has_captions | No | Speech is captioned (≥30% coverage). | |
| has_screen_text | No | Does the draft put any words on screen (OCR + the timeline's own text)? Omit if not measured — omitted is absent, not 'no'. | |
| product_reveal_sec | No | First product-visible second (omit if never). |