SUMMARY·5 steps·click to expand
1
CODES MERGED
Low-frequency or overlapping codes absorbed into functionally equivalent parent codes with rationale
2
CODES REMOVED
Codes eliminated for insufficient frequency or lacking distinct structural persuasion function
3
DISCRIMINANT CROSS-CHECK
Verify remaining codes have non-overlapping discriminants to prevent annotation confusion
4
FREQUENCY VALIDATION
Apply minimum occurrence thresholds to confirm each surviving code has corpus support
5
TAXONOMY FINALIZATION
Produce cleaned v1.0 taxonomy with consolidated codes and updated discriminant definitions

VALIDATION SECTION

Taxonomy v1.0 — Merge/Removal Decisions & Discriminant Cross-Check


1. CODES MERGED (and why)

Absorbed CodeMerged IntoRationale
PARADOXICAL_QUESTION (4 freq)CURIOSITY_OPENSub-type of curiosity hook. A paradoxical question IS a curiosity opener; the question format doesn't change the structural function. Discriminant for CURIOSITY_OPEN already covers it ("creates a specific unanswered question or information gap").
CONTRARIAN_HOOK (2 freq)CURIOSITY_OPENSub-type of curiosity opening via expectation violation. 2 occurrences only. A contrarian statement opens a curiosity loop by challenging expectations — same functional outcome.
SCROLL_STOP (0 freq)CURIOSITY_OPENPlatform-specific visual/auditory mechanic. In text transcripts (our processing format), scroll-stop IS the first curiosity beat. Cannot be detected from text alone.
CURIOSITY_AMPLIFIER (0 freq)CURIOSITY_OPENMid-ad curiosity re-opening is functionally another curiosity open at a different position. Not distinct enough to warrant a separate code at 0 frequency.
PAIN_AGITATE (0 freq)PAIN_ARTICULATEBR annotators consistently merged naming and amplifying pain. No corpus evidence of a distinct "agitation" step separate from articulation.
CONSEQUENCES_OF_PROBLEM (3 freq)FEAR_DEEPENDescribing downstream negative consequences IS fear deepening — same mechanism (escalating perceived danger). Discriminant for FEAR_DEEPEN covers "consequence that is WORSE than what the viewer was already aware of."
CONSPIRACY_LEAN (0 freq)ENEMY_FRAMEStronger version of enemy framing. At 0 frequency and functionally a subset of naming an external villain. The ENEMY_FRAME discriminant's "deliberately harming, deceiving, or profiting" covers conspiracy-adjacent framing.
IDENTITY_SPEAK (0 freq)SELF_SELECT"People like us" is a form of qualification by identity. 0 freq in corpus. SELF_SELECT's discriminant covers addressing "a specific type of person."
QUALIFY (0 freq)SELF_SELECTSame function as SELF_SELECT at a different position. Position is captured by typical_position field. No functional difference in text analysis.
MEDICAL_AUTHORITY (7 freq)PROOF_AUTHORITYMedical credentialing is a sub-type of authority proof. The discriminant for PROOF_AUTHORITY ("institutional credentials, media appearances, professional affiliations") covers medical credentials. Keeping both would cause >50% discriminant overlap.
TESTIMONIAL_PROOF (3 freq)PROOF_SOCIALNamed individual testimony IS social proof — just a more specific form. PROOF_SOCIAL's discriminant covers "citing experiences of OTHER PEOPLE — through numbers, testimonials, or named individuals."
PROOF_THAT_SOLUTION_WORKS (2 freq)PROOF_SCIENTIFICDirect proof of MSOL working is typically delivered via scientific/clinical evidence. 2 freq and discriminant overlaps with PROOF_SCIENTIFIC ("clinically proven" language).
PROOF_SPECIFICITY (0 freq)PROOF_SCIENTIFICPrecise numbers/percentages are almost always from scientific contexts in DR ads. 0 freq in corpus. PROOF_SCIENTIFIC's discriminant covers "specific statistical data."
CREDIBILITY_SEED (0 freq)EXPERT_PRESENTAn early credibility signal is typically the beginning of expert introduction. 0 freq. EXPERT_PRESENT handles the full range from initial credential drop to full introduction.
PRODUCT_BUILDING (2 freq)EXPERT_PRESENTNarrating the product's creation journey is the expert's origin story — functions as extended expert credentialing. 2 freq.
MARKETING_THESIS (1 freq)REMOVEDSee removals section.
CTA_EMOTIONAL (0 freq)CTA_BUILDAn emotionally wrapped CTA is built through CTA_BUILD's framing function. The emotional layer is captured by co-occurring EMOTION codes, not a separate CTA code.
IDENTITY_CLOSE (0 freq)CTA_BUILD"You're the kind of person who..." at CTA is a form of CTA building through identity framing. 0 freq.
MOMENT_OF_TRUTH (3 freq)CTA_BUILD"Hora da verdade" is a dramatic variant of CTA_BUILD — the dramatic framing IS the build. Discriminant for CTA_BUILD covers "framing the moment of decision."
OFFER (2 freq)OFFER_PRESENTRenamed and kept as distinct code. The transactional frame (pricing/bonuses/guarantees) is functionally different from CTA_MECHANICAL (click instruction).
SOLUTION_2_0_BRIDGE (5 freq)HOPE_BRIDGEThe "1.0 → 2.0" bridge is a specific form of the problem-to-solution pivot. HOPE_BRIDGE's discriminant covers "shifts from problem or fear to hope or solution." The invalidation component is captured by the co-occurring INVALIDATE_SOLUTIONS code.
GOSSIP_INTIMATE_TONE (3 freq)STEALTH_FRAMEThe "fofoca" register is a culture-specific variant of stealth framing — disguising sales as casual conversation. Same functional outcome: lowering ad-resistance filters.
RESULTADO_FINAL (4 freq)PROMISEConcrete end-state visualization IS the promise made tangible. PROMISE's discriminant covers "specific end result, transformation, or outcome." The visual concreteness is a style variant, not a distinct function.
EXCLUSIVITY_UNIQUENESS (2 freq)DESIRE_MIRRORPositioning the buyer as "elite" or "unique" is a form of desire mirroring — reflecting the viewer's desire for status and specialness. 2 freq.
ANALOGY (2 freq)REMOVEDSee removals section.

2. CODES REMOVED (and why)

Removed CodeFreqRationale
MARKETING_THESIS1Single occurrence across 31 ads. Meta-strategic explanation of marketing rationale. Not a discrete persuasion beat; it's a rare fourth-wall break. Fails the "≥3 occurrences OR clearly distinct function" test.
ANALOGY2Rhetorical device, not a structural function. Analogies are a delivery mechanism WITHIN MUP_EXPLAIN or MSOL_EXPLAIN, not a separate persuasive beat. 2 freq and overlaps with explanation codes.
EMOTIONAL_MOBILIZATION (0 freq)0Meta/emergent property — describes cumulative emotional intensity, not a discrete beat. Cannot be identified in a single sentence; it emerges from the entire sequence.
TRIBAL_MOBILIZATION (0 freq)00 freq in corpus. Not observed in health/beauty DR niche. Partially covered by SELF_SELECT and DESIRE_MIRROR.
VIRAL_TRIGGER (0 freq)00 freq. Irrelevant to paid direct-response ads. Shareability optimization is a different domain from conversion copywriting.
TRANSITION_PIVOT (0 freq)0Generic structural marker. In line-by-line annotation, every sentence transition is implicit. Not a persuasive function. 0 freq.
PAUSE_FOR_EMPHASIS (0 freq)0Audiovisual element undetectable in text transcripts. Our processing pipeline works from transcribed text.

3. DISCRIMINANT DIFFERENTIATION: CONFUSABLE PAIRS

SPOILER_MUP vs. MUP_EXPLAIN

SPOILER_MSOL vs. SOLUTION_PRESENT vs. MSOL_EXPLAIN

ENEMY_FRAME vs. INVALIDATE_SOLUTIONS

FEAR_DEEPEN vs. PAIN_ARTICULATE vs. NEGATIVE_FUTURE_PACE

PROOF_SOCIAL vs. PROOF_PERSONAL vs. PROOF_SCIENTIFIC

CTA_MECHANICAL vs. CTA_BUILD

SCARCITY_INFO vs. SCARCITY_OFFER

CURIOSITY_OPEN vs. INVALIDATE_BELIEF

INVALIDATE_SOLUTIONS vs. SOLUTION_DIFFERENTIATE

METHOD_SIMPLE vs. RAPID_RESULT

PROMISE vs. FUTURE_PACE vs. BENEFITS

WORKS_FOR_ALL vs. AUDIENCE_EXPAND


4. UNCERTAINTY FLAGS

STORY_TRANSPORT — position ambiguity

The code appears in early position but can extend across many sentences. As a delivery VEHICLE rather than a discrete beat, its annotation may overlap with PAIN_ARTICULATE (story about pain) or PROOF_PERSONAL (personal story as proof). Resolution: STORY_TRANSPORT should be tagged when the PRIMARY function of the sentence is NARRATIVE TRANSPORT (telling a story) rather than pain articulation or proof delivery. If the story is clearly serving as proof of the product working, tag PROOF_PERSONAL instead. If it's articulating pain through narrative, tag PAIN_ARTICULATE.

VALUE_FRAME vs. INVALIDATE_ON_PRICE — boundary cases

VALUE_FRAME positively frames OWN price. INVALIDATE_ON_PRICE attacks competitor price. When a sentence does BOTH ("Unlike $500 surgeries, this is just $49"), it should receive both tags. The discriminants are designed to be complementary, not mutually exclusive, in this case.

SELF_SELECT — absorbed too many codes?

SELF_SELECT absorbed QUALIFY, IDENTITY_SPEAK, and IDENTITY_CLOSE. The concern is that qualification early in the ad serves a different strategic purpose than qualification near the CTA. Resolution: The typical_position field is "first" because that's the FIRST typical appearance, but the code can appear at any position. Annotators should note position context. A future v2.0 could re-split if position data reveals distinct functions.

HOPE_BRIDGE — absorbed SOLUTION_2_0_BRIDGE

The "1.0 → 2.0" pattern is culturally specific to Brazilian DR and represents a distinct rhetorical move (explicitly naming the upgrade). Absorbing it into HOPE_BRIDGE may lose this nuance. Resolution: For v1.0, the merge is justified because the structural function (pivot from problem to solution) is identical. If Brazilian-specific analysis needs to distinguish "generic hope bridge" from "explicit 2.0 upgrade," a future version could re-introduce it.


5. FINAL CODE COUNT BY CATEGORY

CategoryCodesCode Names
ATTENTION (4)4CURIOSITY_OPEN, INVALIDATE_BELIEF, THE_ONE_THING, STORY_TRANSPORT
QUALIFICATION (3)3SELF_SELECT, WORKS_FOR_ALL, AUDIENCE_EXPAND
PROBLEM (6)6PAIN_ARTICULATE, SPOILER_MUP, MUP_EXPLAIN, ROOT_CAUSE_REVEAL, COMMON_ERROR, REASON_WHY
INVALIDATION (2)2INVALIDATE_SOLUTIONS, INVALIDATE_ON_PRICE
SOLUTION (11)11SPOILER_MSOL, SOLUTION_PRESENT, MSOL_EXPLAIN, METHOD_SIMPLE, METHOD_NATURAL, RAPID_RESULT, PROMISE, BENEFITS, VALUE_FRAME, OBJECTION_HANDLE, SOLUTION_DIFFERENTIATE
PROOF (8)8PROOF_SOCIAL, PROOF_PERSONAL, PROOF_DEMONSTRATION, PROOF_SCIENTIFIC, DISCOVERY_FRAME, EXPERT_PRESENT, PROOF_AUTHORITY, SUPERSTRUCTURE
EMOTION (5)5FEAR_DEEPEN, ENEMY_FRAME, FUTURE_PACE, NEGATIVE_FUTURE_PACE, DESIRE_MIRROR
CTA (3)3CTA_BUILD, CTA_MECHANICAL, OFFER_PRESENT
SCARCITY (2)2SCARCITY_OFFER, SCARCITY_INFO
PACING (5)5SKEPTICISM_DISARM, HOPE_BRIDGE, BULLET_STACK, STEALTH_FRAME, FUNNEL_BRIDGE
META (1)1VIEWER_PSYCHOLOGY
TOTAL50

End of Validation Section Taxonomy v1.0 — 50 operational codes from 78 analytical codes 78 → 50: 21 merges, 7 removals