prebuilt.startup.ideation.models¶

Startup idea models for the Haive framework.

This module provides comprehensive data models for brainstorming, researching, and evaluating startup ideas using AI agents. These models integrate with the pitch deck models to create a complete startup development pipeline.

The models support: - Idea generation and brainstorming - Market research and validation - Competitive analysis - Problem-solution fit assessment - Business model exploration - Risk and opportunity analysis

Attributes¶

Classes¶

BusinessModelCanvas

Business model canvas for startup ideas.

CompetitorAnalysis

Analysis of a specific competitor.

IdeaBrainstorm

A brainstorming session for generating startup ideas.

IdeaCategory

Categories of startup ideas.

IdeaGenerationRequest

Request model for idea generation.

IdeaGenerationResponse

Response model for idea generation.

IdeaMetrics

Metrics for evaluating startup ideas.

IdeaPortfolio

Portfolio of startup ideas being developed.

IdeaStage

Stage of idea development.

MarketResearch

Market research data for a startup idea.

MarketSize

Market size categories.

ProblemStatement

Defines a problem that the startup idea aims to solve.

RiskAssessment

Risk assessment for a startup idea.

RiskLevel

Risk level assessment.

SolutionConcept

Defines a solution concept for a problem.

StartupIdea

Complete startup idea with all research and validation.

ValidationMethod

Methods for validating ideas.

ValidationResult

Results from idea validation activities.

Functions¶

create_basic_idea(→ StartupIdea)

Create a basic startup idea from minimal information.

create_problem_from_description(→ ProblemStatement)

Create a problem statement from a simple description.

Module Contents¶

class prebuilt.startup.ideation.models.BusinessModelCanvas(/, **data: Any)¶

Bases: pydantic.BaseModel

Business model canvas for startup ideas.

Based on the standard Business Model Canvas framework.

classmethod validate_required_lists(v, info)¶

Ensure critical lists are not empty.

channels: list[str] = None¶
cost_structure: list[str] = None¶
customer_relationships: list[str] = None¶
customer_segments: list[str] = None¶
key_activities: list[str] = None¶
key_partnerships: list[str] = None¶
key_resources: list[str] = None¶
metrics: list[str] = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

revenue_streams: list[str] = None¶
unfair_advantage: str | None = None¶
value_propositions: list[str] = None¶
class prebuilt.startup.ideation.models.CompetitorAnalysis(/, **data: Any)¶

Bases: pydantic.BaseModel

Analysis of a specific competitor.

Detailed competitive intelligence for strategic planning.

competitor_name: str = None¶
customer_satisfaction: float | None = None¶
description: str = None¶
employee_count: str | None = None¶
estimated_revenue: float | None = None¶
founded_year: int | None = None¶
funding_raised: float | None = None¶
key_features: list[str] = None¶
market_share: float | None = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

opportunities_to_differentiate: list[str] = None¶
potential_threats: list[str] = None¶
pricing_model: str | None = None¶
recent_developments: list[str] = None¶
strengths: list[str] = None¶
target_customers: list[str] = None¶
unique_selling_points: list[str] = None¶
weaknesses: list[str] = None¶
website: str | None = None¶
class prebuilt.startup.ideation.models.IdeaBrainstorm(/, **data: Any)¶

Bases: pydantic.BaseModel

A brainstorming session for generating startup ideas.

Tracks the ideation process and generated concepts.

add_raw_idea(idea: str, agent_id: str | None = None) None¶

Add a raw idea to the session.

constraints: list[str] = None¶
focus_areas: list[str] = None¶
inspiration_sources: list[str] = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

participating_agents: list[str] = None¶
raw_ideas: list[str] = None¶
refined_ideas: list[StartupIdea] = None¶
session_date: datetime.datetime = None¶
session_id: str = None¶
session_notes: str = None¶
techniques_used: list[str] = None¶
class prebuilt.startup.ideation.models.IdeaCategory¶

Bases: str, enum.Enum

Categories of startup ideas.

AI_ML = 'ai_ml'¶
B2B_SAAS = 'b2b_saas'¶
B2C_APP = 'b2c_app'¶
BIOTECH = 'biotech'¶
BLOCKCHAIN = 'blockchain'¶
DEEPTECH = 'deeptech'¶
ECOMMERCE = 'ecommerce'¶
EDTECH = 'edtech'¶
ENTERTAINMENT = 'entertainment'¶
FINTECH = 'fintech'¶
HARDWARE = 'hardware'¶
HEALTHTECH = 'healthtech'¶
MARKETPLACE = 'marketplace'¶
OTHER = 'other'¶
SOCIAL = 'social'¶
SUSTAINABILITY = 'sustainability'¶
class prebuilt.startup.ideation.models.IdeaGenerationRequest(/, **data: Any)¶

Bases: pydantic.BaseModel

Request model for idea generation.

constraints: list[str] = None¶
focus_area: str | None = None¶
inspiration_keywords: list[str] = None¶
num_ideas: int = None¶
target_audience: str | None = None¶
class prebuilt.startup.ideation.models.IdeaGenerationResponse(/, **data: Any)¶

Bases: pydantic.BaseModel

Response model for idea generation.

ideas: list[dict[str, Any]] = None¶
rationale: str = None¶
class prebuilt.startup.ideation.models.IdeaMetrics(/, **data: Any)¶

Bases: pydantic.BaseModel

Metrics for evaluating startup ideas.

Comprehensive scoring across multiple dimensions.

calculate_scores()¶

Calculate overall scores.

feasibility: float = None¶
founder_fit: float = None¶
investment_readiness: float | None = None¶
market_opportunity: float = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

overall_score: float | None = None¶
problem_severity: float = None¶
resource_requirements: float = None¶
scalability: float = None¶
solution_uniqueness: float = None¶
timing: float = None¶
class prebuilt.startup.ideation.models.IdeaPortfolio(/, **data: Any)¶

Bases: pydantic.BaseModel

Portfolio of startup ideas being developed.

Manages multiple ideas and tracks their progress.

add_idea(idea: StartupIdea) bool¶

Add an idea to the portfolio.

get_ideas_by_stage(stage: IdeaStage) list[StartupIdea]¶

Get all ideas at a specific stage.

get_portfolio_summary() dict[str, Any]¶

Get summary statistics of the portfolio.

get_top_ideas(n: int = 3) list[StartupIdea]¶

Get top N ideas by score.

created_at: datetime.datetime = None¶
description: str = None¶
focus_categories: list[IdeaCategory] = None¶
ideas: list[StartupIdea] = None¶
max_ideas: int = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str = None¶
portfolio_id: str = None¶
target_market_size: MarketSize | None = None¶
updated_at: datetime.datetime = None¶
class prebuilt.startup.ideation.models.IdeaStage¶

Bases: str, enum.Enum

Stage of idea development.

LAUNCHED = 'launched'¶
MVP_READY = 'mvp_ready'¶
PROTOTYPED = 'prototyped'¶
RAW_CONCEPT = 'raw_concept'¶
RESEARCHED = 'researched'¶
VALIDATED = 'validated'¶
class prebuilt.startup.ideation.models.MarketResearch(/, **data: Any)¶

Bases: pydantic.BaseModel

Market research data for a startup idea.

Contains comprehensive market analysis and research findings.

validate_market_sizes()¶

Ensure market sizes are logical.

confidence_level: float = None¶
data_sources: list[str] = None¶
direct_competitors: list[dict[str, Any]] = None¶
early_adopters: list[str] = None¶
growth_rate: float | None = None¶
indirect_competitors: list[dict[str, Any]] = None¶
market_barriers: list[str] = None¶
market_drivers: list[str] = None¶
market_gaps: list[str] = None¶
market_size_category: MarketSize = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

primary_customers: list[dict[str, Any]] = None¶
research_date: datetime.datetime = None¶
secondary_customers: list[dict[str, Any]] = None¶
serviceable_addressable_market: float | None = None¶
serviceable_obtainable_market: float | None = None¶
total_addressable_market: float | None = None¶
class prebuilt.startup.ideation.models.MarketSize¶

Bases: str, enum.Enum

Market size categories.

LARGE = 'large'¶
MASSIVE = 'massive'¶
MEDIUM = 'medium'¶
NICHE = 'niche'¶
SMALL = 'small'¶
class prebuilt.startup.ideation.models.ProblemStatement(/, **data: Any)¶

Bases: pydantic.BaseModel

Defines a problem that the startup idea aims to solve.

This is the foundation of any good startup idea - a clear problem definition.

affected_users: list[str] = None¶
current_solutions: list[str] = None¶
description: str = None¶
emotional_impact: str | None = None¶
evidence: list[str] = None¶
financial_impact: str | None = None¶
frequency: Literal['daily', 'weekly', 'monthly', 'occasionally', 'rarely'] = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

pain_points: list[str] = None¶
problem_id: str = None¶
property problem_score: float¶

Calculate a score for how good this problem is to solve.

quotes: list[str] = None¶
research_sources: list[str] = None¶
severity: Literal['critical', 'high', 'medium', 'low'] = None¶
validation_score: float = None¶
class prebuilt.startup.ideation.models.RiskAssessment(/, **data: Any)¶

Bases: pydantic.BaseModel

Risk assessment for a startup idea.

Comprehensive risk analysis across multiple dimensions.

calculate_overall_risk()¶

Calculate overall risk from individual components.

competitive_risk: RiskLevel = None¶
financial_risk: RiskLevel = None¶
identified_risks: list[dict[str, Any]] = None¶
market_risk: RiskLevel = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

overall_risk_level: RiskLevel = None¶
regulatory_risk: RiskLevel = None¶
risk_mitigation_strategies: list[str] = None¶
team_risk: RiskLevel = None¶
technical_risk: RiskLevel = None¶
class prebuilt.startup.ideation.models.RiskLevel¶

Bases: str, enum.Enum

Risk level assessment.

HIGH = 'high'¶
LOW = 'low'¶
MEDIUM = 'medium'¶
VERY_HIGH = 'very_high'¶
class prebuilt.startup.ideation.models.SolutionConcept(/, **data: Any)¶

Bases: pydantic.BaseModel

Defines a solution concept for a problem.

This represents how the startup plans to solve the identified problem.

classmethod validate_features(v)¶

Ensure we have at least 3 key features.

description: str = None¶
implementation_complexity: RiskLevel = None¶
key_features: list[str] = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str = None¶
required_technologies: list[str] = None¶
solution_id: str = None¶
technical_feasibility: float = None¶
unique_aspects: list[str] = None¶
user_journey: list[str] = None¶
value_proposition: str = None¶
wow_factor: str | None = None¶
class prebuilt.startup.ideation.models.StartupIdea(/, **data: Any)¶

Bases: pydantic.BaseModel

Complete startup idea with all research and validation.

This is the main model that brings together all components of a startup idea.

add_research(research_type: str, data: Any) None¶

Add research data to the idea.

add_validation(validation: ValidationResult) None¶

Add validation results.

calculate_readiness() dict[str, Any]¶

Calculate how ready this idea is for next steps.

get_research_gaps() list[str]¶

Identify what research is still needed.

to_pitch_deck_brief() dict[str, Any]¶

Convert idea to a brief for pitch deck generation.

This creates a structured brief that can be used by pitch deck agents.

update_timestamp()¶

Update timestamp on changes.

business_model: BusinessModelCanvas | None = None¶
category: IdeaCategory = None¶
competitor_analyses: list[CompetitorAnalysis] = None¶
contributing_agents: list[str] = None¶
created_at: datetime.datetime = None¶
idea_id: str = None¶
market_research: MarketResearch | None = None¶
metrics: IdeaMetrics | None = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str = None¶
problem: ProblemStatement = None¶
research_sources: list[str] = None¶
risk_assessment: RiskAssessment | None = None¶
solution: SolutionConcept = None¶
stage: IdeaStage = None¶
tagline: str = None¶
updated_at: datetime.datetime = None¶
validation_results: list[ValidationResult] = None¶
class prebuilt.startup.ideation.models.ValidationMethod¶

Bases: str, enum.Enum

Methods for validating ideas.

COMPETITOR_ANALYSIS = 'competitor_analysis'¶
CUSTOMER_INTERVIEWS = 'customer_interviews'¶
EXPERT_CONSULTATION = 'expert_consultation'¶
LANDING_PAGE = 'landing_page'¶
MARKET_RESEARCH = 'market_research'¶
PILOT_PROGRAM = 'pilot_program'¶
PROTOTYPE_TESTING = 'prototype_testing'¶
SURVEYS = 'surveys'¶
class prebuilt.startup.ideation.models.ValidationResult(/, **data: Any)¶

Bases: pydantic.BaseModel

Results from idea validation activities.

Tracks validation efforts and findings.

confidence_score: float = None¶
date_conducted: datetime.datetime = None¶
key_insights: list[str] = None¶
method: ValidationMethod = None¶
model_config¶

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

next_steps: list[str] = None¶
pivot_recommendations: list[str] = None¶
response_rate: float | None = None¶
sample_size: int | None = None¶
summary: str = None¶
supporting_data: dict[str, Any] = None¶
validates_hypothesis: bool | None = None¶
validation_id: str = None¶
prebuilt.startup.ideation.models.create_basic_idea(name: str, problem: str, solution: str, category: IdeaCategory) StartupIdea¶

Create a basic startup idea from minimal information.

prebuilt.startup.ideation.models.create_problem_from_description(description: str, severity: str = 'high') ProblemStatement¶

Create a problem statement from a simple description.

prebuilt.startup.ideation.models.TResearch¶
prebuilt.startup.ideation.models.TValidation¶