1 ECIC Onboarding Form v8 - Complete Data Structure Documentation
1.1 Overview
This document defines the complete data structure for ECIC’s client onboarding form. The form collects raw behavioral, financial, and ethical data that is evaluated collectively with discovery call transcripts and notes to determine appropriate investment strategies.
Critical Note: No automated scoring or risk assessment occurs at form submission. All behavioral responses are stored as raw data for evaluation during the onboarding call process.
1.2 Workflow Sequence
- Discovery Call
- “You said yes!” → Onboarding form sent
- Form completion (raw data collection only)
- Onboarding call (strategy mix designed based on form + call context)
1.3 Raw Data Collection Schema
1.3.1 Section 1: Contact Information
{
"primary_contact": {
"email": "string (required)",
"legal_name": "string (required)",
"preferred_name": "string (required)",
"pronouns": "string[] (he/him, she/her, they/them, other)",
"mailing_address": "string (required, no PO boxes)",
"phone": "string (required)",
"birthday": "date (required)",
"employment_status": "enum (full_time, part_time, self_employed, retired, unemployed)",
"employer_name": "string (required)",
"job_title": "string (required)",
"marital_status": "enum (complicated, single, married, partnered)"
},
"household_addition": "boolean",
"co_client": {
"legal_name": "string (conditional)",
"preferred_name": "string (conditional)",
"email": "string (conditional)",
"pronouns": "string[] (conditional)",
"phone": "string (conditional)",
"birthday": "date (conditional)",
"employment_status": "enum (conditional)",
"employer_name": "string (conditional)",
"shared_address": "boolean (conditional)",
"mailing_address": "string (conditional)"
}
}1.3.2 Section 2: Communication Preferences
{
"communication_preferences": {
"preferred_method": "enum (email, phone, virtual_meetings, client_initiated)",
"newsletter_subscription": "boolean"
}
}1.3.3 Section 3: Raw Behavioral Responses
(NO SCORING - Just Raw Data Collection)
{
"behavioral_responses": {
"q1_missed_gains_tolerance": {
"question": "It would bother me if my account gained 10% over a 3-6 month period, but it could have gained 25%",
"response": "enum (strongly_agree, agree, neutral, disagree, strongly_disagree)"
},
"q2_worst_case_vs_returns": {
"question": "Avoiding the worst case scenario matters more to me than maximizing my investment returns",
"response": "enum (strongly_agree, agree, neutral, disagree, strongly_disagree)"
},
"q3_general_risk_avoidance": {
"question": "I try to avoid risk in most areas of my life",
"response": "enum (strongly_agree, agree, neutral, disagree, strongly_disagree)"
},
"q4_stress_sleep_patterns": {
"question": "I rarely, if ever, lose sleep because of stress and anxiety",
"response": "enum (strongly_agree, agree, neutral, disagree, strongly_disagree)"
},
"q5_long_term_commitment": {
"question": "I plan to stay invested for a long enough period to recover from a temporary decline in stock prices",
"response": "enum (strongly_agree, agree, neutral, disagree, strongly_disagree)"
},
"q6_values_alignment_worry": {
"question": "I'd worry less about my finances if my investments fully aligned with my values",
"response": "enum (strongly_agree, agree, neutral, disagree, strongly_disagree)"
},
"q7_volatility_vs_ethics": {
"question": "I would rather experience financial volatility than compromise my ethical beliefs",
"response": "enum (strongly_agree, agree, neutral, disagree, strongly_disagree)"
}
}
}1.3.4 Section 4: Ethical Framework Input
{
"ethical_input": {
"primary_considerations": "string[] (animal_welfare, corporate_governance, corruption, environmental_impact, human_rights, labor_practices, social_justice, other)",
"divestment_alignments": "string[] (bds, fossil_fuels, modern_slavery, private_prisons, tobacco, weapons, other)",
"understanding_importance": "enum (extremely, very, somewhat, not_very, other)",
"framework_evolution_comfort": "enum (strongly_support, support, neutral, concerned, other)",
"novel_ethical_concerns": "text (open_ended)"
}
}1.3.5 Section 5: Financial Context (Raw Data Only)
{
"financial_context": {
"investment_experience": "enum (nonexistent, limited, average, advanced, professional)",
"emergency_liquidity": "enum (yes, no, unsure)", // $1k access question
"net_worth_estimate": "string (raw_input)",
"liquid_net_worth": "string (raw_input)",
"investable_net_worth": "string (raw_input)",
"approach_familiarity": "enum (not_very, get_gist, understand, deep_understanding)",
"previous_advisor_experience": "enum (yes, no, unsure)",
"requested_account_types": "string[] (unsure, transfer_existing, individual_taxable, roth_ira, trust_account, corporate_account, joint_account, high_yield_savings, other)"
}
}1.3.6 Section 6: Professional Coordination
{
"professional_coordination": {
"existing_team_coordination": "text (names_contacts)",
"referral_requests": "string[] (accountant, attorney, bookkeeper, financial_planner, insurance_agent, money_coach, therapist, other)",
"additional_life_context": "text (open_ended)"
}
}1.3.7 Section 7: Form Metadata
{
"form_metadata": {
"version": "v8",
"submission_timestamp": "datetime",
"completion_duration": "integer (minutes)",
"partial_saves": "integer (count)",
"browser_info": "string (user_agent)",
"referral_source": "string (how_they_found_form)"
}
}1.4 Post-Discovery Call Processing Pipeline
1.4.1 Call Recording Processing
{
"call_processing": {
"google_meet_recording": {
"raw_video_url": "string",
"duration_minutes": "integer",
"participants": "string[]"
},
"workers_ai_transcription": {
"full_transcript": "text",
"speaker_segments": "array",
"confidence_scores": "array",
"processing_time": "integer"
},
"hetzner_s3_storage": {
"compressed_video_url": "string",
"transcript_file_url": "string",
"storage_bucket": "string",
"file_sizes": "object"
}
}
}1.4.2 Collective Evaluation Context
{
"evaluation_context": {
"discovery_call_transcript": "text (full_transcript)",
"google_doc_notes": "text (structured_notes)",
"onboarding_form_responses": "object (complete_form_data)",
"synthesis_for_strategy": {
"risk_assessment": "determined_by_sloane_post_call",
"strategy_mix_recommendation": "determined_by_sloane_post_call",
"special_considerations": "array (trust_accounts, coordination_needed, etc)",
"ethical_flags": "array (novel_concerns, research_needed)"
}
}
}1.5 Form Source Reference
- Current Version: v8
- Platform: LACRM Forms (
https://forms.lessannoyingcrm.com/view/4050759343360583472689106586874) - Form Opening: “I’m delighted to welcome you to Ethical Capital. Our client relationships are lifelong partnerships, so this form is designed to quicken the ‘getting to know you’ process…”
- Closing: “We’ll be in touch shortly! In the meantime, you’ll get a little something from Sloane in your inbox momentarily… a link to schedule an onboarding call.”
1.6 Technical Implementation Notes
- Form uses progressive disclosure with conditional Co-Client section
- Mix of required and optional fields based on section importance
- Multiple choice, text input, and Likert scale question types
- All behavioral data stored as raw responses without algorithmic interpretation
- Strategy assessment occurs during human-led onboarding call process