The instrument below is the frozen codebook the pipeline researches against. Each run snapshots it, so mid-study edits never contaminate in-flight work.
Research question
How is the top tier of the US wealth-advisory market structured (firms, channels, AUM, client niches), and how do these advisors position and market themselves — what value propositions, differentiators, and marketing channels do they use?
Study population: the 2026 Forbes/SHOOK "America's Top Wealth Advisors" list and the current Forbes/SHOOK "America's Top Next-Gen Advisors" list.
Unit space
A unit is an individual advisor appearing on at least one of the two Forbes lists.
normalized_name = person_name | ascii_downcase | gsub("[^a-z0-9]"; "").
If two distinct advisors normalize to the same key, append the two-letter state
code: <normalized_name><state_abbrev_downcase>. An advisor on both lists is ONE
unit with two list_appearances.
Inclusion / exclusion
- Include: every advisor on the 2026 Forbes Top Wealth Advisors list (https://www.forbes.com/lists/top-wealth-advisors/).
- Include: every advisor on the current Forbes Top Next-Gen Advisors list (https://www.forbes.com/lists/top-next-gen-advisors/).
- Exclude: advisors from prior-year editions who are not on the current lists.
- Exclude: firms/teams as such — the unit is always the named individual.
Variable codebook
Seed context (rank, firm, city, state, and the Forbes Q&A block with AUM,
minimums, and experience) arrives in raw_mention from the gather stage. Enrich
fields below; where the Forbes seed already answers a field, confirm and cite it.
Identity & firm
firm— string; employing firm or team name as the advisor presents it.parent_company— string; ultimate parent (e.g. Bank of America for Merrill), orindependent.firm_type— enumwirehouse | bank_brokerage | independent_ria | hybrid_ria | ibd_rep | insurance_bd | other. Classify by the advisor's primary registration/affiliation.team_name— string; branded team name (e.g. "The Erdmann Group"), ornull+ gap.team_size— integer; people on the team, ornull+ gap.crd_number— string; the individual's CRD from SEC IAPD (adviserinfo.sec.gov) or FINRA BrokerCheck.years_experience— integer; years in the industry.designations— array of strings fromCFP | CFA | CPWA | CIMA | ChFC | CPA | JD | AIF | other:<text>.
Book of business
aum_team_musd— number; team or individual AUM in USD millions. Prefer the Forbes/SHOOK figure; note the as-of date in the citation.account_minimum_musd— number; stated new-account minimum in USD millions, ornull+ gap.typical_client_net_worth_musd— number; typical client net worth in USD millions, ornull+ gap.client_niche— short string; primary client specialty in the advisor's own framing (e.g. "tech founders pre/post-exit", "multigenerational families", "athletes and entertainers"), orgeneralist.custodians— array of strings; custodians used (RIAs/hybrids only), elsenot_applicablegap.fee_model— enumaum_fee | fee_plus_commission | flat_or_retainer | not_public.
Positioning & marketing
website_url— string; the advisor's team or firm profile page URL.value_prop_quote— string; VERBATIM positioning sentence(s) from the team/firm site — the language they lead with. Quote, do not paraphrase.differentiators— array of short strings; distinct claims the advisor/team makes about why they are different (max 5).content_marketing— enumnone | occasional | active; blog, insights, newsletter, or market commentary published under the advisor's/team's name.active= multiple pieces in the last 6 months.has_podcast— boolean; hosts (not guests) a podcast.books_published— integer; books authored by the advisor.linkedin_url— string, ornull+ gap.social_presence— array fromlinkedin_active | x | youtube | instagram | tiktok | none; channels with advisor/team-controlled posting in the last 6 months.press_awards— array of short strings; non-Forbes rankings and notable professional-press coverage (Barron's, AdvisorHub, InvestmentNews, etc.), max 5.
Visual brand
has_distinct_logo— boolean; the team has its own logo/mark distinct from the parent firm's corporate branding.logo_url— string; direct URL to the team's (or, if none, the firm's) logo image asset as served on their site, ornull+ gap. Prefer SVG/PNG asset URLs over screenshots.visual_brand_notes— short string (≤40 words); observed visual identity: palette, typography feel, imagery style (e.g. "navy/gold serif, yacht-and-estate photography" vs. "monochrome sans, founder-desk candids").
Evidence policy
Source roles, high → low:
sec_finra_regulatory > forbes_shook > firm_official > professional_press > general_press > social_or_third_party_db.
- Regulatory facts (CRD, registration, firm affiliation): cite SEC IAPD / FINRA BrokerCheck.
- AUM, minimums, experience: Forbes/SHOOK profile is authoritative unless the firm publishes a newer audited figure.
- Positioning fields (
value_prop_quote,differentiators): MUST come fromfirm_official(the team/firm's own site or profile) — never from press paraphrase. - Visual-brand fields (
has_distinct_logo,logo_url,visual_brand_notes): MUST come fromfirm_official; cite the page the logo/branding appears on. - Every field write carries a verbatim quote and source URL. Third-party databases (wealthmanagement.com directories, AdvisorHub DBs) are last resort and must be flagged
confidence: low.
Verify-set
aum_team_musd— auto-enqueue verify onconfidence: low.firm_type— auto-enqueue verify onconfidence: low.crd_number— auto-enqueue verify onconfidence: low.value_prop_quote— auto-enqueue verify onconfidence: low.
Gap reasons
not_found_after_search | not_public | paywalled | not_applicable | unclear_definition | conflict_unresolved | out_of_scope.