Finance
Accountant Module
Accounting Controller Module
Analyst Financial Reporting & Ref Module
Asset-Liability Management Module
Consolidation Module
CSRD Consultant Module
Environmental, Social & Governance Module
- Corporate Strategy Integration AgentLive
- ESG Business Processes AgentLive
- ESG Management TeamLive
- Identifying Regulatory Requirements AgentLive
- Regulatory Reporting AgentLive
- Sectoral Decarbonization Pathways AgentLive
- Strategic Decision-Making AgentLive
- Taxonomy Business Processes AgentLive
- Taxonomy Compliance AgentLive
- Taxonomy Regulatory Requirements AgentLive
Financial Reporting Module
Forward Looking Financial Actuarial Module
IFRS17 & Solvency2 Module
Inventory Actuary Module
ISR Consultant Module
Life & Health Module
Product Design Aging Module
Product Design Life Insurance Module
Structural Risk Analyst Module
Tax Specialist Module
Need a custom agent?
Build tailored AI solutions
Work with our team to develop custom AI agents for your business.
Contact usBehavioral Analyses Agent
An AI agent specialized in policyholder behavior modeling and claims behavior analysis. Focuses on lapse/surrender modeling, renewal behavior analysis, and fraud detection for insurance portfolios.
Instructions
You are Behavioral_Analyses_Agent, an AI-powered behavioral modeling specialist operating under the Inventory Actuary Module.
## Input Handling & Tool Usage:
1. **Input Handling**
- You have access to a **file**, using CsvTools(), containing relevant data. Accepted file types include:
- CSV files containing policy data, behavioral metrics, and claims information.
- Text documents (PDF, DOCX, TXT) summarizing behavioral studies, policy analysis, or claims reports.
- Extract relevant information from the file, such as policy characteristics, behavioral patterns, and claims data.
- Pay particular attention to insurance-sector-specific behavioral factors like lapse rates, renewal patterns, and claims frequency.
2. **Knowledge & Research Usage**
- Use your built-in knowledge of behavioral economics, actuarial science, and insurance risk management.
- Use ExaTools for research on current behavioral modeling practices and industry trends.
- Apply this knowledge to:
- Determine optimal behavioral assumptions for different insurance products.
- Identify behavioral patterns and their impact on risk assessment.
- Guide the company to develop robust behavioral models and risk frameworks.
- Suggest improvements and practical approaches for behavioral risk management.
## Your Responsibilities:
1. **Policyholder Behavior Modeling**
- Model lapse and surrender behavior by policy duration and product type
- Analyze renewal behavior for health, P&C, and group contracts
- Model option exercise behavior (guaranteed annuity options, early withdrawals)
- Assess market sensitivity and economic impact on behavioral patterns
- Develop behavioral assumptions for pricing and reserving
2. **Claims Behavior Analysis**
- Analyze claim frequency and severity trends over time
- Identify abnormal claims patterns and potential fraud indicators
- Model catastrophe impact on claims experience
- Assess behavioral response to market conditions and regulatory changes
- Develop claims frequency and severity assumptions
3. **Market Behavior Impact**
- Model behavioral response to interest rate changes and economic stress
- Assess impact of regulatory changes on policyholder behavior
- Analyze competitive factors and market dynamics
- Model behavioral sensitivity to product design and pricing changes
- Develop stress testing scenarios for behavioral assumptions
## Tool Usage Guidelines:
- Use ExaTools for research on behavioral modeling best practices and industry trends
- Use CsvTools to process and analyze CSV data files for behavioral and claims information
- Use compute_lapse_rates_by_duration for lapse rate analysis and duration-based modeling
- Use compute_renewal_rates_by_segment for renewal behavior analysis and segmentation
- Use detect_claim_outliers_zscore for fraud detection and abnormal claims identification
- Always reference actuarial standards and behavioral modeling best practices
Your goal is to provide **comprehensive behavioral analysis** that enables accurate risk assessment and supports pricing, reserving, and risk management decisions.Knowledge Base (.md)
Business reference guide
Drag & Drop or Click
.md, .txt, .pdf
Data Files
Upload data for analysis (CSV, JSON, Excel, PDF)
Drag & Drop or Click
Multiple files: .json, .csv, .xlsx, .xls, .pdf, .docx, .pptx, .txt
Tools 5
csv_tools
CsvTools from agno framework
csv_tools
CsvTools from agno framework
compute_lapse_rates_by_duration
Model for storing functions that can be called by an agent.
compute_lapse_rates_by_duration
Model for storing functions that can be called by an agent.
@tool( name="compute_lapse_rates_by_duration", description="Compute lapse rates by policy duration with optional multiplicative shock for scenarios.", show_result=True, ) def compute_lapse_rates_by_duration( exposures_by_duration: Dict[int, float], lapses_by_duration: Dict[int, float], shock_up: float = 0.0 ) -> Dict[str, Any]: """ Compute base and shocked lapse rates by duration. Args: exposures_by_duration: {duration: exposure_count} lapses_by_duration: {duration: lapse_count} shock_up: multiplicative shock(e.g., 0.10 for +10%) Returns: Dict of base rates, shocked rates, and weighted averages. """ base: Dict[int, float] = {} shocked: Dict[int, float] = {} total_exp = 0.0 total_lap = 0.0 for d, exp in exposures_by_duration.items(): laps = lapses_by_duration.get(d, 0.0) rate = (laps / exp) if exp > 0 else 0.0 base[d] = round(rate, 6) shocked[d] = round(rate * (1.0 + shock_up), 6) total_exp += exp total_lap += laps weighted_base = (total_lap / total_exp) if total_exp > 0 else 0.0 weighted_shocked = weighted_base * (1.0 + shock_up) return { "base_lapse_rates_by_duration": base, "shocked_lapse_rates_by_duration": shocked, "weighted_base_lapse_rate": round(weighted_base, 6), "weighted_shocked_lapse_rate": round(weighted_shocked, 6), "shock_applied": shock_up }
compute_renewal_rates_by_segment
Model for storing functions that can be called by an agent.
compute_renewal_rates_by_segment
Model for storing functions that can be called by an agent.
@tool( name="compute_renewal_rates_by_segment", description="Compute renewal rates by segment and overall weighted average.", show_result=True, ) def compute_renewal_rates_by_segment( offers_by_segment: Dict[str, float], renewals_by_segment: Dict[str, float] ) -> Dict[str, Any]: """ Compute renewal rates per segment and a weighted average. Args: offers_by_segment: {segment: number_of_offers} renewals_by_segment: {segment: number_of_renewals} Returns: Dict with per-segment rates and weighted average. """ rates: Dict[str, float] = {} tot_offers = 0.0 tot_ren = 0.0 for seg, offers in offers_by_segment.items(): rens = renewals_by_segment.get(seg, 0.0) rate = (rens / offers) if offers > 0 else 0.0 rates[seg] = round(rate, 6) tot_offers += offers tot_ren += rens weighted = (tot_ren / tot_offers) if tot_offers > 0 else 0.0 return { "renewal_rate_by_segment": rates, "weighted_renewal_rate": round(weighted, 6), "totals": {"offers": tot_offers, "renewals": tot_ren} }
detect_claim_outliers_zscore
Model for storing functions that can be called by an agent.
detect_claim_outliers_zscore
Model for storing functions that can be called by an agent.
@tool( name="detect_claim_outliers_zscore", description="Flag claim amount outliers using simple z-scores.", show_result=True, ) def detect_claim_outliers_zscore( claim_amounts: List[float], z_threshold: float = 3.0 ) -> Dict[str, Any]: """ Compute mean and std, then flag outliers with |z| > threshold. Args: claim_amounts: list of claim amounts z_threshold: threshold in standard deviations Returns: Dict with summary stats, outlier indices and values. """ n = len(claim_amounts) if n == 0: return {"error": "Empty list."} mean = sum(claim_amounts) / n var = sum((x - mean) ** 2 for x in claim_amounts) / n std = var ** 0.5 outliers: List[Tuple[int, float, float]] = [] if std == 0: "color: #6b7280;"># All equal amounts return { "mean": round(mean, 2), "std": 0.0, "z_threshold": z_threshold, "outliers": [], "note": "Standard deviation is zero; no outliers by z-score." } for idx, x in enumerate(claim_amounts): z = (x - mean) / std if abs(z) > z_threshold: outliers.append((idx, round(x, 2), round(z, 3))) return { "mean": round(mean, 2), "std": round(std, 2), "z_threshold": z_threshold, "outliers": [{"index": i, "amount": v, "z": z} for i, v, z in outliers], "outliers_count": len(outliers) }
exa
ExaTools is a toolkit for interfacing with the Exa web search engine, providing
functionalities to perform categorized searches and retrieve structured results.
Args:
enable_search (bool): Enable search functionality. Default is True.
enable_get_contents (bool): Enable get contents functionality. Default is True.
enable_find_similar (bool): Enable find similar functionality. Default is True.
enable_answer (bool): Enable answer generation. Default is True.
enable_research (bool): Enable research tool functionality. Default is False.
all (bool): Enable all tools. Overrides individual flags when True. Default is False.
text (bool): Retrieve text content from results. Default is True.
text_length_limit (int): Max length of text content per result. Default is 1000.
api_key (Optional[str]): Exa API key. Retrieved from `EXA_API_KEY` env variable if not provided.
num_results (Optional[int]): Default number of search results. Overrides individual searches if set.
start_crawl_date (Optional[str]): Include results crawled on/after this date (`YYYY-MM-DD`).
end_crawl_date (Optional[str]): Include results crawled on/before this date (`YYYY-MM-DD`).
start_published_date (Optional[str]): Include results published on/after this date (`YYYY-MM-DD`).
end_published_date (Optional[str]): Include results published on/before this date (`YYYY-MM-DD`).
type (Optional[str]): Specify content type (e.g., article, blog, video).
category (Optional[str]): Filter results by category. Options are "company", "research paper", "news", "pdf", "github", "tweet", "personal site", "linkedin profile", "financial report".
include_domains (Optional[List[str]]): Restrict results to these domains.
exclude_domains (Optional[List[str]]): Exclude results from these domains.
show_results (bool): Log search results for debugging. Default is False.
model (Optional[str]): The search model to use. Options are 'exa' or 'exa-pro'.
timeout (int): Maximum time in seconds to wait for API responses. Default is 30 seconds.
exa
ExaTools is a toolkit for interfacing with the Exa web search engine, providing functionalities to perform categorized searches and retrieve structured results. Args: enable_search (bool): Enable search functionality. Default is True. enable_get_contents (bool): Enable get contents functionality. Default is True. enable_find_similar (bool): Enable find similar functionality. Default is True. enable_answer (bool): Enable answer generation. Default is True. enable_research (bool): Enable research tool functionality. Default is False. all (bool): Enable all tools. Overrides individual flags when True. Default is False. text (bool): Retrieve text content from results. Default is True. text_length_limit (int): Max length of text content per result. Default is 1000. api_key (Optional[str]): Exa API key. Retrieved from `EXA_API_KEY` env variable if not provided. num_results (Optional[int]): Default number of search results. Overrides individual searches if set. start_crawl_date (Optional[str]): Include results crawled on/after this date (`YYYY-MM-DD`). end_crawl_date (Optional[str]): Include results crawled on/before this date (`YYYY-MM-DD`). start_published_date (Optional[str]): Include results published on/after this date (`YYYY-MM-DD`). end_published_date (Optional[str]): Include results published on/before this date (`YYYY-MM-DD`). type (Optional[str]): Specify content type (e.g., article, blog, video). category (Optional[str]): Filter results by category. Options are "company", "research paper", "news", "pdf", "github", "tweet", "personal site", "linkedin profile", "financial report". include_domains (Optional[List[str]]): Restrict results to these domains. exclude_domains (Optional[List[str]]): Exclude results from these domains. show_results (bool): Log search results for debugging. Default is False. model (Optional[str]): The search model to use. Options are 'exa' or 'exa-pro'. timeout (int): Maximum time in seconds to wait for API responses. Default is 30 seconds.
Test Agent
Configure model settings at the top, then test the agent below
Enter your question or instruction for the agent