Checklist

Robo-Advisor Pre-Launch Data Coverage Checklist

Published May 8, 2026

Robo-advisors operate at the intersection of consumer-friction (must onboard fast) and fiduciary obligation (must produce best-interest recommendations). The SEC's 2021 robo-advisor risk-alert documented the gaps that recur — incomplete profiling, allocation-mismatch, missing audit trail, hands-off maintenance. Most of these gaps trace back to data the system didn't collect or didn't carry forward. This checklist enumerates the data and event coverage your robo platform should support before launch. Items map to specific SEC findings.

0 / 21 complete0%

Risk profiling & investor characterization

  • Risk-tolerance score with questionnaire trail

    Numeric or categorical risk score with the underlying question-by-question response trail and the date taken. Score without the questionnaire trail is a 2021-sweep finding.

    risk_profile.score, .questionnaire_responses[], .completed_at
  • Risk-capacity (vs. tolerance) decoupling

    Risk-capacity field distinct from risk-tolerance — capacity reflects the household's ability to absorb loss, tolerance reflects willingness. Conflating them produces over-aggressive allocations for high-tolerance / low-capacity clients.

    risk_profile.capacity_score, .tolerance_score
  • Time horizon per goal

    Time horizon for each financial goal, not a single household horizon. A 60-year-old with a 5-year college-funding goal and a 25-year retirement-income goal needs different horizons by sub-portfolio.

    goals[].time_horizon_years
  • Liquidity needs and emergency-fund coverage

    Documented liquidity reserve target and current coverage. Robos that allocate 100% of household assets in long-horizon equities even when emergency-fund coverage is zero are a fiduciary risk.

    liquidity.reserve_target, .current_coverage_months
  • Annual reassessment trigger

    Per FINRA / SEC guidance, annual reassessment trigger or material-life-event trigger. The trigger inventory plus reassessment-execution log must reconcile.

    risk_profile.next_reassessment_due, reassessment_log[]

Allocation & portfolio construction

  • Target allocation per goal sub-portfolio

    Target allocation defined at the goal-portfolio level rather than household level. Multi-goal robos must allocate per goal, not aggregate.

    goals[].target_allocation
  • Allocation drift tolerance bands

    Per-asset-class drift tolerance bands that trigger rebalancing. Static rebalancing schedules without drift bands are inferior on tax-efficiency.

    rebalance.drift_tolerance_bands[]
  • Tax-aware vs. tax-agnostic mode flag

    Account-level flag for tax-aware mode (taxable accounts) vs. tax-agnostic (tax-deferred). Same-rule rebalancing across both produces unnecessary tax drag.

    accounts[].tax_aware_mode
  • Asset-location optimization signal

    Signal indicating which asset classes belong in which account types (bonds in tax-deferred, equities in taxable, REITs in tax-deferred). Robos that don't asset-locate leave alpha on the table.

    asset_location.optimal_placement[]

Trading, rebalancing, and tax events

  • Lot-level cost basis tracking

    Lot-by-lot cost basis with acquisition date and cost. Aggregate average-cost basis is insufficient for tax-aware harvesting and Specific-ID accounting.

    lots[].acquisition_date, .cost_basis, .shares
  • Wash-sale prevention across accounts

    Wash-sale check across all accounts in the household (taxable, IRAs, spouse's accounts). Robos that check only the trading account miss ~6% of wash-sale conflicts.

    trading.wash_sale_prevention.cross_account == true
  • Tax-loss harvesting candidate identification

    Continuous identification of TLH candidates with realized vs. unrealized loss tracking, $3,000 ordinary-income offset cap, and replacement-security inventory.

    tlh.candidates[], tlh.replacement_inventory[]
  • Corporate-action handling

    Handling for splits, mergers, spin-offs, dividends, and special distributions. Each corporate action must update lot-level basis correctly.

    corporate_actions[].type, .effect_on_lots
  • 1099-B / 1099-DIV / 1099-R artifact generation

    Year-end tax-form artifacts generated automatically with reconciliation to underlying lot transactions. Mismatches between 1099-B and lot-level history are tax-season trust hits.

    tax_artifacts[].form_type, .reconciliation_status

Best-interest & audit trail

  • Recommendation rationale per allocation change

    For every allocation change presented to the client, a structured rationale explaining the change. Required for the Care Obligation arm of Reg BI.

    recommendations[].rationale, .triggered_by
  • Disclosure acknowledgment timestamps

    Form CRS, ADV Part 2A, and product-specific disclosure acknowledgment timestamps. Robos with no acknowledgment trail can't demonstrate disclosure delivery.

    disclosures[].type, .acknowledged_at
  • Conflict-of-interest documentation

    If the robo uses proprietary funds or has revenue-sharing arrangements, the conflict-of-interest disclosure with acknowledgment is mandatory.

    conflicts[].type, .disclosure_text, .acknowledged_at
  • Decision audit trail (input → recommendation → execution)

    End-to-end audit trail showing inputs to the recommendation engine, the recommendation produced, the client decision, and the execution. Examiners walk this trail end-to-end.

    audit_trail[].decision_id, .inputs, .recommendation, .executed

Maintenance & ongoing supervision

  • Material-life-event detection signals

    Signals to detect material life events (large deposit, large withdrawal, address change, new account) that should trigger profile reassessment. Hands-off post-onboarding is a 2021 sweep finding.

    supervision.life_event_signals[]
  • Inactive-account flagging

    Flagging for inactive accounts where rebalancing or contribution patterns have stalled. Useful for proactive outreach.

    supervision.inactivity_flags[]
  • Performance reporting with benchmark comparison

    Quarterly performance reporting with appropriate benchmark comparison and net-of-fee disclosure. Misrepresentations here are an enforcement focus under the Marketing Rule.

    reporting.quarterly[].benchmark, .net_of_fee_returns

Key takeaways

  • The SEC's 2021 robo-advisor sweep findings cluster in profiling depth (capacity vs. tolerance, time horizon per goal) and ongoing supervision (no life-event detection, no reassessment trigger).
  • Lot-level cost basis is the foundation for everything tax-aware — TLH, asset location, corporate actions, year-end forms. Aggregate-cost-basis robos can't credibly claim tax-awareness.
  • Cross-account wash-sale prevention catches ~6% more conflicts than single-account checks. Without it, tax-aware claims are partially false advertising.
  • Audit trail is the compliance artifact regulators ask for first. Recommendation rationale + disclosure acknowledgment + execution trace must be retrievable end-to-end.