Skip to Content

📦 Element Library · Layer 5 · v8.4

VALUE PROP BLOCK v2 · Self-Employed · V8.4 vertically centered

Internal anatomy: block_label · intro_text · value_headline · bullets · inline_CTA · Paul-approved 2026-05-08 · V8.4 vertical centering · margin above = below · 4 aspect variants

📐 V8.4 row 1 (clean · production) — VPB vertically centered between H1 zone bottom and compliance footer top. Equal margin above + below (±1px tolerance, gate PASS on all 4 aspects).

4x5 1080×1350
V8.4 VPB vertically centered 4x5

IG portrait · bottom-band

  • Margin above: 130px
  • Margin below: 130px
  • Diff: 0px (≤5px gate PASS)
  • VPB height: 540px · centered

att 19283

9x16 1080×1920
V8.4 VPB vertically centered 9x16

Reels / Stories / TikTok

  • Margin above: 222px
  • Margin below: 223px
  • Diff: 1px (≤5px gate PASS)
  • VPB height: 691px · centered

att 19285

16x9 1920×1080
V8.4 VPB vertically centered 16x9

YouTube · LinkedIn · Web hero

  • Margin above: 20px
  • Margin below: 20px
  • Diff: 0px (≤5px gate PASS)
  • VPB height: 546px · centered

att 19287

1.91x1 1200×630
V8.4 VPB vertically centered 1.91x1

LinkedIn share · OG image

  • Margin above: 20px
  • Margin below: 20px
  • Diff: 0px (≤5px gate PASS)
  • VPB height: 298px · centered

att 19289

🎯 V8.4 row 2 · with banner-slot opportunities marked — dead-space rectangles annotated for future auto_banner_placement skill (Track 51). Cyan dashed boxes show where standardized ad-sized fills will land. 4:5 + 9:16 portrait formats have generous slots; 16:9 + 1.91:1 right-third layouts have narrow columns.

4x5 slot markers
V8.4 with banner-slot markers 4x5
  • Top slot: 728×90 leaderboard
  • Bottom slot: 728×90 leaderboard
  • Auto-fill via auto_banner_placement skill (Track 51)

att 19284

9x16 slot markers
V8.4 with banner-slot markers 9x16
  • Top slot: 728×90 leaderboard
  • Bottom slot: 728×90 leaderboard
  • Auto-fill via auto_banner_placement skill (Track 51)

att 19286

16x9 slot markers
V8.4 with banner-slot markers 16x9
  • Top slot: (narrow column)
  • Bottom slot: (narrow column)
  • Auto-fill via auto_banner_placement skill (Track 51)

att 19288

1.91x1 slot markers
V8.4 with banner-slot markers 1.91x1
  • Top slot: (narrow column)
  • Bottom slot: (narrow column)
  • Auto-fill via auto_banner_placement skill (Track 51)

att 19290

Reusable Element Library

Every photo, Ideogram H1 render, persona portrait, cobrand mark, and EHL logo on jhoward is tagged with reusable metadata. The composer engine pulls elements by tag and assembles unique compositions on demand.

Total tagged: 80 REL layer elements (purged 2026-05-08 — removed 54 deprecated/orphan items per Paul direct) composer.build.assemble_composition() · Schema: /home/paul/_tools/composer/element_registry.yaml

REL-ONLY · Element library purged 2026-05-08 per Paul direct: only REL composable layers remain (L1 photo · L2 persona · L3 ideogram_h1 · L5 value_prop_block · cobrand_logo · ehl_logo). 54 deprecated/orphan cards removed. All-aspects gate: 168 renders queued — see RENDER_QUEUE.md.
Brand scope:
Showing: Mortgage assets

IDEOGRAM H1 HEADLINES — Reusable hero typography (L3)

22 transparent-bg PNGs (orphan ad-hoc renders purged 2026-05-08) rendered with Ideogram V3 Turbo. Composer drops these on top of photos as the L3 headline layer · Detroit (6 patterns) + 5 cities geo-declarative + national/product lanes (DSCR, RM, AXIA, OTC).

Anatomy: White-on-transparent typography · 2-line headline format · Pairs with photo + cobrand + EHL

Detroit (DSCR · 6 patterns) · 6 cards
#01
ideogram_h1_detroit_specific-number
H1: Detroit · specific-number
"UP TO 80% LTV. / NO TAX RETURNS."
DSCR · MORTGAGE
element_type=ideogram_h1geo=detroitproduct=dscrheadline_pattern=specific-numberaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#02
ideogram_h1_detroit_pattern-interrupt
H1: Detroit · pattern-interrupt
"TIRED OF / TAX-RETURN UNDERWRITING?"
DSCR · MORTGAGE
element_type=ideogram_h1geo=detroitproduct=dscrheadline_pattern=pattern-interruptaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#03
ideogram_h1_detroit_geo-declarative
H1: Detroit · geo-declarative
"DETROIT DSCR. / QUALIFY ON THE RENTS."
DSCR · MORTGAGE
element_type=ideogram_h1geo=detroitproduct=dscrheadline_pattern=geo-declarativeaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#04
ideogram_h1_detroit_time-to-close
H1: Detroit · time-to-close
"21-DAY CLOSE / ON RENTAL PROPERTIES."
DSCR · MORTGAGE
element_type=ideogram_h1geo=detroitproduct=dscrheadline_pattern=time-to-closeaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#05
ideogram_h1_detroit_no-w2
H1: Detroit · no-w2
"SELF-EMPLOYED? / RENT QUALIFIES."
DSCR · MORTGAGE
element_type=ideogram_h1geo=detroitproduct=dscrheadline_pattern=no-w2aspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#06
ideogram_h1_detroit_scale-framed
H1: Detroit · scale-framed
"STOP HITTING / THE 4-PROPERTY CAP."
DSCR · MORTGAGE
element_type=ideogram_h1geo=detroitproduct=dscrheadline_pattern=scale-framedaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
Tampa (DSCR · geo-declarative) · 1 card
#07
ideogram_h1_tampa_geo-declarative
H1: Tampa · geo-declarative
"TAMPA DSCR. / QUALIFY ON THE RENTS."
DSCR · MORTGAGE
element_type=ideogram_h1geo=tampaproduct=dscrheadline_pattern=geo-declarativeaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
Indianapolis (DSCR · geo-declarative) · 1 card
#08
ideogram_h1_indianapolis_geo-declarative
H1: Indianapolis · geo-declarative
"INDIANAPOLIS DSCR. / QUALIFY ON THE RENTS."
DSCR · MORTGAGE
element_type=ideogram_h1geo=indianapolisproduct=dscrheadline_pattern=geo-declarativeaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
Cleveland (DSCR · geo-declarative) · 1 card
#09
ideogram_h1_cleveland_geo-declarative
H1: Cleveland · geo-declarative
"CLEVELAND DSCR. / QUALIFY ON THE RENTS."
DSCR · MORTGAGE
element_type=ideogram_h1geo=clevelandproduct=dscrheadline_pattern=geo-declarativeaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
Memphis (DSCR · geo-declarative) · 1 card
#10
ideogram_h1_memphis_geo-declarative
H1: Memphis · geo-declarative
"MEMPHIS DSCR. / QUALIFY ON THE RENTS."
DSCR · MORTGAGE
element_type=ideogram_h1geo=memphisproduct=dscrheadline_pattern=geo-declarativeaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
Atlanta (DSCR · geo-declarative) · 1 card
#11
ideogram_h1_atlanta_geo-declarative
H1: Atlanta · geo-declarative
"ATLANTA DSCR. / QUALIFY ON THE RENTS."
DSCR · MORTGAGE
element_type=ideogram_h1geo=atlantaproduct=dscrheadline_pattern=geo-declarativeaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
National & Product Lanes (5 DSCR patterns + RM + AXIA + OTC) · 11 cards
#12
ideogram_h1_national_specific-number
H1: National · specific-number
"UP TO 80% LTV. / NO TAX RETURNS."
DSCR · MORTGAGE
element_type=ideogram_h1geo=nationalproduct=dscrheadline_pattern=specific-numberaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#13
ideogram_h1_national_pattern-interrupt
H1: National · pattern-interrupt
"TIRED OF / TAX-RETURN UNDERWRITING?"
DSCR · MORTGAGE
element_type=ideogram_h1geo=nationalproduct=dscrheadline_pattern=pattern-interruptaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#14
ideogram_h1_national_time-to-close
H1: National · time-to-close
"21-DAY CLOSE / ON RENTAL PROPERTIES."
DSCR · MORTGAGE
element_type=ideogram_h1geo=nationalproduct=dscrheadline_pattern=time-to-closeaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#15
ideogram_h1_national_no-w2
H1: National · no-w2
"SELF-EMPLOYED? / RENT QUALIFIES."
DSCR · MORTGAGE
element_type=ideogram_h1geo=nationalproduct=dscrheadline_pattern=no-w2aspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#16
ideogram_h1_national_scale-framed
H1: National · scale-framed
"STOP HITTING / THE 4-PROPERTY CAP."
DSCR · MORTGAGE
element_type=ideogram_h1geo=nationalproduct=dscrheadline_pattern=scale-framedaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#17
ideogram_h1_national_rm-equity
H1: National · rm-equity
"TAP YOUR EQUITY. / KEEP YOUR HOME."
REVERSE · MORTGAGE
element_type=ideogram_h1geo=nationalproduct=reverse_mortgageheadline_pattern=rm-equityaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#18
ideogram_h1_national_rm-age-62
H1: National · rm-age-62
"62+? FUND / YOUR RETIREMENT."
REVERSE · MORTGAGE
element_type=ideogram_h1geo=nationalproduct=reverse_mortgageheadline_pattern=rm-age-62aspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#19
ideogram_h1_national_axia-banks-no
H1: National · axia-banks-no
"BANKS SAID NO? / WE SAY LET'S TALK."
AXIA · BUSINESS
element_type=ideogram_h1geo=nationalproduct=axiaheadline_pattern=axia-banks-noaspect=transparentcomposition_anchor=top-bannercompliance_profile=business
#20
ideogram_h1_national_axia-days
H1: National · axia-days
"BUSINESS FUNDING / IN DAYS."
AXIA · BUSINESS
element_type=ideogram_h1geo=nationalproduct=axiaheadline_pattern=axia-daysaspect=transparentcomposition_anchor=top-bannercompliance_profile=business
#21
ideogram_h1_national_otc-one-close
H1: National · otc-one-close
"ONE CLOSE. / NO SECOND APPRAISAL."
OTC · MORTGAGE
element_type=ideogram_h1geo=nationalproduct=otcheadline_pattern=otc-one-closeaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage
#22
ideogram_h1_national_otc-build-now
H1: National · otc-build-now
"BUILD NOW. / REFI AT STABILIZATION."
OTC · MORTGAGE
element_type=ideogram_h1geo=nationalproduct=otcheadline_pattern=otc-build-nowaspect=transparentcomposition_anchor=top-bannercompliance_profile=mortgage

L5 Value Prop Block · v2 PRIMARY (CTA inside)

24 blocks · 6 archetypes × 4 display variants · CTA built into the block (no standalone L6 paste) · content-driven height (no empty padding) · per Paul direct 2026-05-08.

Anatomy: Block label · Bullet stack · Inline CTA

#01
vpblock_brrrr_disp-leftrail_1080x1080
Value Prop Block (v2 — CTA inside)
BRRRR · disp-leftrail
Anatomy: Block label · Bullet stack · Inline CTA "Run the Numbers"
MORTGAGEV2 PRIMARY
att_18898 · vpblock_brrrr_disp-leftrail_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=brrrrdisplay_variant=disp-leftrailcomposition_anchor=thirds-tlaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#02
vpblock_brrrr_disp-rightcard_1080x1080
Value Prop Block (v2 — CTA inside)
BRRRR · disp-rightcard
Anatomy: Block label · Bullet stack · Inline CTA "Run the Numbers"
MORTGAGEV2 PRIMARY
att_18899 · vpblock_brrrr_disp-rightcard_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=brrrrdisplay_variant=disp-rightcardcomposition_anchor=thirds-braspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#03
vpblock_brrrr_disp-tilegrid_1080x1080
Value Prop Block (v2 — CTA inside)
BRRRR · disp-tilegrid
Anatomy: Block label · Bullet stack · Inline CTA "Run the Numbers"
MORTGAGEV2 PRIMARY
att_18900 · vpblock_brrrr_disp-tilegrid_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=brrrrdisplay_variant=disp-tilegridcomposition_anchor=center-bottomaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#04
vpblock_brrrr_disp-verticalstrip_1080x1080
Value Prop Block (v2 — CTA inside)
BRRRR · disp-verticalstrip
Anatomy: Block label · Bullet stack · Inline CTA "Run the Numbers"
MORTGAGEV2 PRIMARY
att_18901 · vpblock_brrrr_disp-verticalstrip_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=brrrrdisplay_variant=disp-verticalstripcomposition_anchor=full-widthaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#05
vpblock_str-airbnb_disp-leftrail_1080x1080
Value Prop Block (v2 — CTA inside)
STR / AIRBNB · disp-leftrail
Anatomy: Block label · Bullet stack · Inline CTA "See If It Qualifies"
MORTGAGEV2 PRIMARY
att_18902 · vpblock_str-airbnb_disp-leftrail_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=str-airbnbdisplay_variant=disp-leftrailcomposition_anchor=thirds-tlaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#06
vpblock_str-airbnb_disp-rightcard_1080x1080
Value Prop Block (v2 — CTA inside)
STR / AIRBNB · disp-rightcard
Anatomy: Block label · Bullet stack · Inline CTA "See If It Qualifies"
MORTGAGEV2 PRIMARY
att_18903 · vpblock_str-airbnb_disp-rightcard_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=str-airbnbdisplay_variant=disp-rightcardcomposition_anchor=thirds-braspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#07
vpblock_str-airbnb_disp-tilegrid_1080x1080
Value Prop Block (v2 — CTA inside)
STR / AIRBNB · disp-tilegrid
Anatomy: Block label · Bullet stack · Inline CTA "See If It Qualifies"
MORTGAGEV2 PRIMARY
att_18904 · vpblock_str-airbnb_disp-tilegrid_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=str-airbnbdisplay_variant=disp-tilegridcomposition_anchor=center-bottomaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#08
vpblock_str-airbnb_disp-verticalstrip_1080x1080
Value Prop Block (v2 — CTA inside)
STR / AIRBNB · disp-verticalstrip
Anatomy: Block label · Bullet stack · Inline CTA "See If It Qualifies"
MORTGAGEV2 PRIMARY
att_18905 · vpblock_str-airbnb_disp-verticalstrip_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=str-airbnbdisplay_variant=disp-verticalstripcomposition_anchor=full-widthaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#09
vpblock_buyhold_disp-leftrail_1080x1080
Value Prop Block (v2 — CTA inside)
BUYHOLD · disp-leftrail
Anatomy: Block label · Bullet stack · Inline CTA "Schedule a Call"
MORTGAGEV2 PRIMARY
att_18906 · vpblock_buyhold_disp-leftrail_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=buyholddisplay_variant=disp-leftrailcomposition_anchor=thirds-tlaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#10
vpblock_buyhold_disp-rightcard_1080x1080
Value Prop Block (v2 — CTA inside)
BUYHOLD · disp-rightcard
Anatomy: Block label · Bullet stack · Inline CTA "Schedule a Call"
MORTGAGEV2 PRIMARY
att_18907 · vpblock_buyhold_disp-rightcard_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=buyholddisplay_variant=disp-rightcardcomposition_anchor=thirds-braspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#11
vpblock_buyhold_disp-tilegrid_1080x1080
Value Prop Block (v2 — CTA inside)
BUYHOLD · disp-tilegrid
Anatomy: Block label · Bullet stack · Inline CTA "Schedule a Call"
MORTGAGEV2 PRIMARY
att_18908 · vpblock_buyhold_disp-tilegrid_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=buyholddisplay_variant=disp-tilegridcomposition_anchor=center-bottomaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#12
vpblock_buyhold_disp-verticalstrip_1080x1080
Value Prop Block (v2 — CTA inside)
BUYHOLD · disp-verticalstrip
Anatomy: Block label · Bullet stack · Inline CTA "Schedule a Call"
MORTGAGEV2 PRIMARY
att_18909 · vpblock_buyhold_disp-verticalstrip_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=buyholddisplay_variant=disp-verticalstripcomposition_anchor=full-widthaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#13
vpblock_no-w2_disp-leftrail_1080x1080
Value Prop Block (v2 — CTA inside)
NO / W2 · disp-leftrail
Anatomy: Block label · Bullet stack · Inline CTA "Apply Now"
MORTGAGEV2 PRIMARY
att_18910 · vpblock_no-w2_disp-leftrail_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=no-w2display_variant=disp-leftrailcomposition_anchor=thirds-tlaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#14
vpblock_no-w2_disp-rightcard_1080x1080
Value Prop Block (v2 — CTA inside)
NO / W2 · disp-rightcard
Anatomy: Block label · Bullet stack · Inline CTA "Apply Now"
MORTGAGEV2 PRIMARY
att_18911 · vpblock_no-w2_disp-rightcard_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=no-w2display_variant=disp-rightcardcomposition_anchor=thirds-braspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#15
vpblock_no-w2_disp-tilegrid_1080x1080
Value Prop Block (v2 — CTA inside)
NO / W2 · disp-tilegrid
Anatomy: Block label · Bullet stack · Inline CTA "Apply Now"
MORTGAGEV2 PRIMARY
att_18912 · vpblock_no-w2_disp-tilegrid_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=no-w2display_variant=disp-tilegridcomposition_anchor=center-bottomaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#16
vpblock_no-w2_disp-verticalstrip_1080x1080
Value Prop Block (v2 — CTA inside)
NO / W2 · disp-verticalstrip
Anatomy: Block label · Bullet stack · Inline CTA "Apply Now"
MORTGAGEV2 PRIMARY
att_18913 · vpblock_no-w2_disp-verticalstrip_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=no-w2display_variant=disp-verticalstripcomposition_anchor=full-widthaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#17
vpblock_scale_disp-leftrail_1080x1080
Value Prop Block (v2 — CTA inside)
SCALE · disp-leftrail
Anatomy: Block label · Bullet stack · Inline CTA "Talk to a Lender"
MORTGAGEV2 PRIMARY
att_18914 · vpblock_scale_disp-leftrail_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=scaledisplay_variant=disp-leftrailcomposition_anchor=thirds-tlaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=outlineversion=v2
#18
vpblock_scale_disp-rightcard_1080x1080
Value Prop Block (v2 — CTA inside)
SCALE · disp-rightcard
Anatomy: Block label · Bullet stack · Inline CTA "Talk to a Lender"
MORTGAGEV2 PRIMARY
att_18915 · vpblock_scale_disp-rightcard_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=scaledisplay_variant=disp-rightcardcomposition_anchor=thirds-braspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=outlineversion=v2
#19
vpblock_scale_disp-tilegrid_1080x1080
Value Prop Block (v2 — CTA inside)
SCALE · disp-tilegrid
Anatomy: Block label · Bullet stack · Inline CTA "Talk to a Lender"
MORTGAGEV2 PRIMARY
att_18916 · vpblock_scale_disp-tilegrid_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=scaledisplay_variant=disp-tilegridcomposition_anchor=center-bottomaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=outlineversion=v2
#20
vpblock_scale_disp-verticalstrip_1080x1080
Value Prop Block (v2 — CTA inside)
SCALE · disp-verticalstrip
Anatomy: Block label · Bullet stack · Inline CTA "Talk to a Lender"
MORTGAGEV2 PRIMARY
att_18917 · vpblock_scale_disp-verticalstrip_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=scaledisplay_variant=disp-verticalstripcomposition_anchor=full-widthaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=outlineversion=v2
#21
vpblock_cashflow_disp-leftrail_1080x1080
Value Prop Block (v2 — CTA inside)
CASHFLOW · disp-leftrail
Anatomy: Block label · Bullet stack · Inline CTA "Run the Numbers"
MORTGAGEV2 PRIMARY
att_18918 · vpblock_cashflow_disp-leftrail_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=cashflowdisplay_variant=disp-leftrailcomposition_anchor=thirds-tlaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#22
vpblock_cashflow_disp-rightcard_1080x1080
Value Prop Block (v2 — CTA inside)
CASHFLOW · disp-rightcard
Anatomy: Block label · Bullet stack · Inline CTA "Run the Numbers"
MORTGAGEV2 PRIMARY
att_18919 · vpblock_cashflow_disp-rightcard_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=cashflowdisplay_variant=disp-rightcardcomposition_anchor=thirds-braspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#23
vpblock_cashflow_disp-tilegrid_1080x1080
Value Prop Block (v2 — CTA inside)
CASHFLOW · disp-tilegrid
Anatomy: Block label · Bullet stack · Inline CTA "Run the Numbers"
MORTGAGEV2 PRIMARY
att_18920 · vpblock_cashflow_disp-tilegrid_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=cashflowdisplay_variant=disp-tilegridcomposition_anchor=center-bottomaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2
#24
vpblock_cashflow_disp-verticalstrip_1080x1080
Value Prop Block (v2 — CTA inside)
CASHFLOW · disp-verticalstrip
Anatomy: Block label · Bullet stack · Inline CTA "Run the Numbers"
MORTGAGEV2 PRIMARY
att_18921 · vpblock_cashflow_disp-verticalstrip_1080x1080
element_type=value_prop_blockproduct=dscrarchetype=cashflowdisplay_variant=disp-verticalstripcomposition_anchor=full-widthaspect=1080x1080compliance_profile=mortgagecontains_inline_cta=Truecta_style=solidversion=v2

CTA Buttons (standalone — use OUTSIDE Value Prop Block)

When using a Value Prop Block (above), the inline CTA is built in — do NOT add a standalone CTA. Standalone CTA library is for compositions WITHOUT a value-prop block (e.g. headline-only, image+CTA-only).

HCP + AXIA cobrand (use on dark)
att_16472 — HCP+AXIA cobrand
BUSINESS
use on dark backgrounds
element_type=cobrand_logoproduct=axiaaspect=transparentcomposition_anchor=compliance-bar-bottomcompliance_profile=business
HCP + NEXA cobrand black (use on light)
att_8261 — HCP+NEXA cobrand BLACK
MORTGAGE
use on light backgrounds
element_type=cobrand_logoproduct=hcp_mainaspect=transparentcomposition_anchor=compliance-bar-bottomcompliance_profile=mortgage
HCP + NEXA cobrand white (use on dark)
att_16767 — HCP+NEXA cobrand WHITE
MORTGAGE
use on dark backgrounds
element_type=cobrand_logoproduct=hcp_mainaspect=transparentcomposition_anchor=compliance-bar-bottomcompliance_profile=mortgage
Equal Housing Lender white (use on dark)
att_11121 — Equal Housing Lender WHITE
MORTGAGE
use on dark backgrounds
element_type=ehl_logoproduct=hcp_mainaspect=transparentcomposition_anchor=compliance-bar-bottomcompliance_profile=mortgage
local: scr_library/reference_photos/detroit_virginia_park_brain.jpg
detroit_virginia_park_brain
SHARED
element_type=photogeo=detroitproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
local: scr_library/reference_photos/detroit_brick_house_yandura.jpg
detroit_brick_house_yandura
SHARED
element_type=photogeo=detroitproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
local: -08_dscr_library/reference_photos/tampa_seminole_heights.jpg
tampa_seminole_heights
SHARED
element_type=photogeo=tampaproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
local: 5-08_dscr_library/reference_photos/tampa_pastel_bungalow.jpg
tampa_pastel_bungalow
SHARED
element_type=photogeo=tampaproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
local: ry_wave2_photos/cleveland/cleveland_tremont_auburn_lemay.jpg
cleveland_tremont_auburn_lemay
SHARED
element_type=photogeo=clevelandproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
local: wave2_photos/cleveland/cleveland_ohio_city_carroll_lemay.jpg
cleveland_ohio_city_carroll_lemay
SHARED
element_type=photogeo=clevelandproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
local: tos/memphis/memphis_cooper_young_intersection_machnitzki.jpg
memphis_cooper_young_intersection_machnitzki
SHARED
element_type=photogeo=memphisproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
local: photos/memphis/memphis_midtown_cooper_madison_machnitzki.jpg
memphis_midtown_cooper_madison_machnitzki
SHARED
element_type=photogeo=memphisproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
local: e2_photos/indianapolis/indianapolis_lockerbie_riley_home.jpg
indianapolis_lockerbie_riley_home
SHARED
element_type=photogeo=indianapolisproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
local: e2_photos/indianapolis/indianapolis_old_northside_turret.jpg
indianapolis_old_northside_turret
SHARED
element_type=photogeo=indianapolisproduct=dscrarchetype=str-airbnbaspect=1080x1080composition_anchor=full-bleed
persona__suburban-executive_01_audi-ncia-p-blica-os-trabalhos-inovadores-realizados-por-far.jpg
persona__suburban-executive_01_audi-ncia-p-blica-os-trabalhos-inovadores-realizados-por-far.jpg
SHARED
edge-case
element_type=personageo=nationalarchetype=suburban-executiveaspect=transparentcomposition_anchor=thirds-blcompliance_profile=sharedgender=fage_range=40-55ethnicity=hispanic-latinacontext=in-scenephotographer=Assembleia Legislativa do Espírito Santolicense=CC BY 2.0viability=edge-case
persona__suburban-executive_02_senator-kelly-loeffler-cropped-2.jpg
persona__suburban-executive_02_senator-kelly-loeffler-cropped-2.jpg
SHARED
production-ready
element_type=personageo=nationalarchetype=suburban-executiveaspect=transparentcomposition_anchor=thirds-tlcompliance_profile=sharedgender=fage_range=40-55ethnicity=whitecontext=portraitphotographer=Office of Senator Kelly Loefflerlicense=Public domainviability=production-ready
persona__suburban-executive_03_a-book-i-want-to-read-51229131947.jpg
persona__suburban-executive_03_a-book-i-want-to-read-51229131947.jpg
SHARED
rejected
element_type=personageo=nationalarchetype=suburban-executiveaspect=transparentcomposition_anchor=thirds-blcompliance_profile=sharedgender=mage_range=60-75ethnicity=whitecontext=in-scenephotographer=Chic Beelicense=CC BY 2.0viability=rejected
persona__suburban-executive_04_cirkus-ngen-6-september-2014-05.jpg
persona__suburban-executive_04_cirkus-ngen-6-september-2014-05.jpg
SHARED
rejected
element_type=photogeo=nationalarchetype=suburban-executiveaspect=transparentcomposition_anchor=full-bleedcompliance_profile=sharedgender=unspecifiedage_range=unspecifiedethnicity=unspecifiedcontext=background-onlyphotographer=Arild Vågenlicense=CC BY-SA 4.0viability=rejected
persona__suburban-executive_05_mohamed-amersi-sept23.jpg
persona__suburban-executive_05_mohamed-amersi-sept23.jpg
SHARED
production-ready
element_type=personageo=nationalarchetype=suburban-executiveaspect=transparentcomposition_anchor=thirds-tlcompliance_profile=sharedgender=mage_range=50-65ethnicity=south-asiancontext=portraitphotographer=Robinokellylicense=CC BY-SA 4.0viability=production-ready
persona__suburban-executive_06_todd-hagopian-professional-headshot-2022.jpg
persona__suburban-executive_06_todd-hagopian-professional-headshot-2022.jpg
SHARED
production-ready
element_type=personageo=nationalarchetype=suburban-executiveaspect=transparentcomposition_anchor=thirds-tlcompliance_profile=sharedgender=mage_range=35-50ethnicity=whitecontext=headshotphotographer=ToddHagopianAuthorlicense=CC BY-SA 4.0viability=production-ready
persona__self-employed-contractor_01_usda-rd-usec-xochitl-torres-small-in-colorado-20230316-usda-.jpg
persona__self-employed-contractor_01_usda-rd-usec-xochitl-torres-small-in-colorado-20230316-usda-.jpg
SHARED
edge-case
element_type=personageo=nationalarchetype=self-emp-contractoraspect=transparentcomposition_anchor=thirds-blcompliance_profile=sharedgender=fage_range=35-50ethnicity=hispanic-latinacontext=in-scenephotographer=USDAgovlicense=Public domainviability=edge-case
persona__self-employed-contractor_02_aldeia-t-pica-jos-franco-sobreiro-portugal-51334387181.jpg
persona__self-employed-contractor_02_aldeia-t-pica-jos-franco-sobreiro-portugal-51334387181.jpg
SHARED
edge-case
element_type=personageo=nationalarchetype=self-emp-contractoraspect=transparentcomposition_anchor=thirds-brcompliance_profile=sharedgender=mage_range=50-65ethnicity=whitecontext=with-propertyphotographer=Vitor Oliveira from Torres Vedras, PORTUGALlicense=CC BY-SA 2.0viability=edge-case
persona__self-employed-contractor_04_hena-evyatar-at-the-technion-s-carpentry-workshop.jpg
persona__self-employed-contractor_04_hena-evyatar-at-the-technion-s-carpentry-workshop.jpg
SHARED
production-ready
element_type=personageo=nationalarchetype=self-emp-contractoraspect=transparentcomposition_anchor=thirds-blcompliance_profile=sharedgender=fage_range=30-45ethnicity=whitecontext=in-scenephotographer=HenaEvyatarArchivelicense=CC BY-SA 4.0viability=production-ready
persona__out-of-state-visitor_01_0020reinvent-your-world-with-globe-blackpink-the-show-10.jpg
persona__out-of-state-visitor_01_0020reinvent-your-world-with-globe-blackpink-the-show-10.jpg
SHARED
rejected
element_type=photogeo=nationalarchetype=out-of-state-visitoraspect=transparentcomposition_anchor=full-bleedcompliance_profile=sharedgender=unspecifiedage_range=unspecifiedethnicity=unspecifiedcontext=background-onlyphotographer=Judgeflorolicense=CC0viability=rejected
persona__out-of-state-visitor_02_20201117-staatstheater-saarbr-cken-02.jpg
persona__out-of-state-visitor_02_20201117-staatstheater-saarbr-cken-02.jpg
SHARED
rejected
element_type=photogeo=nationalarchetype=out-of-state-visitoraspect=transparentcomposition_anchor=full-bleedcompliance_profile=sharedgender=unspecifiedage_range=unspecifiedethnicity=unspecifiedcontext=background-onlyphotographer=Flocci Nivislicense=CC BY 4.0viability=rejected
persona__out-of-state-visitor_04_barrierefreiheit-002-2021-08-31.jpg
persona__out-of-state-visitor_04_barrierefreiheit-002-2021-08-31.jpg
SHARED
edge-case
element_type=personageo=nationalarchetype=out-of-state-visitoraspect=transparentcomposition_anchor=thirds-blcompliance_profile=sharedgender=mage_range=35-50ethnicity=whitecontext=in-scenephotographer=Friedrich Haaglicense=CC BY-SA 4.0viability=edge-case
persona__out-of-state-visitor_05_chaplin-road-n17-unreadable-street-nameplates-update-october.jpg
persona__out-of-state-visitor_05_chaplin-road-n17-unreadable-street-nameplates-update-october.jpg
SHARED
rejected
element_type=photogeo=nationalarchetype=out-of-state-visitoraspect=transparentcomposition_anchor=full-bleedcompliance_profile=sharedgender=unspecifiedage_range=unspecifiedethnicity=unspecifiedcontext=background-onlyphotographer=Alan Stantonlicense=CC BY-SA 2.0viability=rejected
persona__section-8-landlord_01_double-yella-2.jpg
persona__section-8-landlord_01_double-yella-2.jpg
SHARED
rejected
element_type=photogeo=nationalarchetype=section-8-landlordaspect=transparentcomposition_anchor=full-bleedcompliance_profile=sharedgender=unspecifiedage_range=unspecifiedethnicity=unspecifiedcontext=background-onlyphotographer=Alan Stantonlicense=CC BY-SA 2.0viability=rejected
persona__section-8-landlord_03_house-at-164-lombard-street-buffalo-new-york-20210723.jpg
persona__section-8-landlord_03_house-at-164-lombard-street-buffalo-new-york-20210723.jpg
SHARED
edge-case
element_type=personageo=nationalarchetype=section-8-landlordaspect=transparentcomposition_anchor=thirds-brcompliance_profile=sharedgender=unspecifiedage_range=unspecifiedethnicity=unspecifiedcontext=with-propertyphotographer=Andre Carrotflowerlicense=CC BY-SA 4.0viability=edge-case
persona__section-8-landlord_05_20221021-fpac-lsc-0467-mp4-18-43-23-44-still001.jpg
persona__section-8-landlord_05_20221021-fpac-lsc-0467-mp4-18-43-23-44-still001.jpg
SHARED
edge-case
element_type=personageo=nationalarchetype=section-8-landlordaspect=transparentcomposition_anchor=thirds-blcompliance_profile=sharedgender=mage_range=40-55ethnicity=whitecontext=in-scenephotographer=USDAgovlicense=Public domainviability=edge-case
persona__section-8-landlord_06_20221021-fpac-lsc-0468-mp4-15-47-47-13-still001.jpg
persona__section-8-landlord_06_20221021-fpac-lsc-0468-mp4-15-47-47-13-still001.jpg
SHARED
edge-case
element_type=personageo=nationalarchetype=section-8-landlordaspect=transparentcomposition_anchor=thirds-blcompliance_profile=sharedgender=mage_range=40-55ethnicity=whitecontext=in-scenephotographer=USDAgovlicense=Public domainviability=edge-case
persona__detroit-portfolio-scaler_01_888-w-big-beaver-rd-looking-southeast.jpg
persona__detroit-portfolio-scaler_01_888-w-big-beaver-rd-looking-southeast.jpg
SHARED
rejected
element_type=photogeo=detroitarchetype=detroit-portfolio-scaleraspect=transparentcomposition_anchor=full-bleedcompliance_profile=sharedgender=unspecifiedage_range=unspecifiedethnicity=unspecifiedcontext=background-onlyphotographer=Lrgjr72license=CC BY-SA 4.0viability=rejected
persona__detroit-portfolio-scaler_04_detroit-24413466028.jpg
persona__detroit-portfolio-scaler_04_detroit-24413466028.jpg
SHARED
rejected
element_type=photogeo=detroitarchetype=detroit-portfolio-scaleraspect=transparentcomposition_anchor=full-bleedcompliance_profile=sharedgender=unspecifiedage_range=unspecifiedethnicity=unspecifiedcontext=background-onlyphotographer=bryan...license=CC BY-SA 2.0viability=rejected
persona__detroit-portfolio-scaler_05_detroit-37573382884.jpg
persona__detroit-portfolio-scaler_05_detroit-37573382884.jpg
SHARED
rejected
element_type=photogeo=detroitarchetype=detroit-portfolio-scaleraspect=transparentcomposition_anchor=full-bleedcompliance_profile=sharedgender=unspecifiedage_range=unspecifiedethnicity=unspecifiedcontext=background-onlyphotographer=bryan...license=CC BY-SA 2.0viability=rejected

🎯 V2 BLOCKS · SLOT MARKERS · saliency-aware

Track 57 #1 recommendation: cv2.saliency replaces variance heuristic in focal_point.py. Each card overlays the V2 VPB block with green focal box (where NOT to place) + colored slot rectangles (where to place + which IAB ad size fits). 8 representative blocks (6 archetypes × tilegrid + 2 extras). Full set of 24 lives in /home/paul/_outbox/2026-05-08_saliency_v2_slot_markers/v2_slot_markers/.

Saliency upgrade verified
focal before/after

BEFORE (left, red): variance-grid focal at low-detail corner. AFTER (right, green): saliency lands on actual property subject. Δ ≈ 926px on test image.

vpblock_brrrr_disp-tilegrid_1080x1080
brrrr · disp-tilegrid
focal=1 · slots=1
att 19305
vpblock_str-airbnb_disp-tilegrid_1080x1080
str-airbnb · disp-tilegrid
focal=1 · slots=1
att 19306
vpblock_buyhold_disp-tilegrid_1080x1080
buyhold · disp-tilegrid
focal=1 · slots=1
att 19307
vpblock_no-w2_disp-tilegrid_1080x1080
no-w2 · disp-tilegrid
focal=1 · slots=1
att 19308
vpblock_scale_disp-tilegrid_1080x1080
scale · disp-tilegrid
focal=1 · slots=1
att 19309
vpblock_cashflow_disp-tilegrid_1080x1080
cashflow · disp-tilegrid
focal=1 · slots=1
att 19310
vpblock_brrrr_disp-rightcard_1080x1080
brrrr · disp-rightcard
focal=1 · slots=1
att 19311
vpblock_scale_disp-leftrail_1080x1080
scale · disp-leftrail
focal=1 · slots=1
att 19312

💡 CTA VARIANTS · pick canonical

Paul direct 2026-05-08: "CTA variants with arrows · emojis · icons · part of the CTA button". Existing standing rule (feedback_cta_icon_arrow_canonical_2026-05-08.md) mandates arrow on mortgage CTAs — reviewing 4 candidates for canonical pick. Side-by-side compare: open full comparison →

CTA A
CTA-A
canonical → arrow
att 19314
CTA B
CTA-B
› chevron variant
att 19315
CTA C
CTA-C
🧮 calculator emoji
att 19316
CTA D
CTA-D
SVG arrow icon
att 19317

Verdict ask: pick A/B/C/D as canonical for V2 deployment. Reverse-mortgage 62+ creative inherits A regardless (arrow, no emoji).