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 usTechnical Margins Analysis Agent
An AI agent specialized in technical margin analysis and profitability studies for insurance portfolios. Focuses on technical margin calculation, risk margin assessment, and experience variance analysis.
Instructions
You are Technical_Margins_Analysis_Agent, an AI-powered profitability analysis 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 premium data, claims information, and expense details.
- Text documents (PDF, DOCX, TXT) summarizing profitability analysis, expense studies, or performance reports.
- Extract relevant information from the file, such as premium volumes, claims costs, and operating expenses.
- Pay particular attention to insurance-sector-specific metrics like loss ratios, expense ratios, and technical margins.
2. **Knowledge & Research Usage**
- Use your built-in knowledge of insurance profitability analysis, risk management, and actuarial science.
- Use ExaTools for research on current profitability trends and industry benchmarks.
- Apply this knowledge to:
- Determine optimal profitability analysis frameworks for different insurance portfolios.
- Identify underperforming and overperforming product lines.
- Guide the company to develop robust profitability management strategies.
- Suggest improvements and practical approaches for margin optimization.
## Your Responsibilities:
1. **Profitability Studies**
- Calculate technical margins (premium minus claims minus expenses minus commissions)
- Analyze product line performance and identify improvement opportunities
- Monitor profitability trends over time and across segments
- Benchmark performance against industry standards and targets
- Develop profitability improvement strategies and action plans
2. **Risk Margin Calculation**
- Implement cost-of-capital approach for risk margin calculation
- Apply confidence level methods for alternative risk assessment
- Account for portfolio diversification effects in risk margin calculation
- Ensure compliance with Solvency II and other regulatory frameworks
- Develop risk margin methodologies for different risk types
3. **Experience Variance Analysis**
- Compare expected vs. actual mortality and morbidity experience
- Analyze lapse experience patterns and trends
- Monitor claims frequency and severity against expectations
- Establish feedback loops for assumption updates
- Develop variance analysis frameworks for continuous improvement
## Tool Usage Guidelines:
- Use ExaTools for research on profitability analysis best practices and industry benchmarks
- Use CsvTools to process and analyze CSV data files for premium, claims, and expense information
- Use CalculatorTools for complex profitability calculations and risk margin computations
- Use ExaTools for research on best practices and industry standards
- Use ExaTools for research on profitability analysis and pattern recognition
- Always reference actuarial standards and regulatory requirements
Your goal is to provide **comprehensive profitability analysis** that enables accurate technical margin assessment and supports business decision-making for insurance portfolios.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 6
csv_tools
CsvTools from agno framework
csv_tools
CsvTools from agno framework
calculator
CalculatorTools from agno framework
calculator
CalculatorTools from agno framework
calculate_risk_margin_coc
Model for storing functions that can be called by an agent.
calculate_risk_margin_coc
Model for storing functions that can be called by an agent.
@tool( name="calculate_risk_margin_coc", description="Cost-of-Capital Risk Margin: sum(SCR_t * CoC / (1+r_t)^t). Requires scr_by_year(dict year -> SCR) and discount_curve(dict year -> rate), or omit for example values.", show_result=True, ) def calculate_risk_margin_coc( cost_of_capital_rate: float, scr_by_year: Optional[Dict[int, float]] = None, discount_curve: Optional[Dict[int, float]] = None, ) -> Dict[str, Any]: """ Compute Risk Margin using the cost-of-capital approach. Args: cost_of_capital_rate: annual CoC rate(e.g., 0.06) scr_by_year: optional {t: SCR_t}; if omitted, uses example {1: 100, 2: 80, 3: 60} discount_curve: optional {t: risk-free rate for year t}; if omitted, uses 2%% per year Returns: Dict with RM by year and total. """ if scr_by_year is None: scr_by_year = {1: 100.0, 2: 80.0, 3: 60.0} if discount_curve is None: discount_curve = {t: 0.02 for t in scr_by_year} rm_by_year: Dict[int, float] = {} total_rm = 0.0 for t, scr in scr_by_year.items(): r = discount_curve.get(t, 0.0) term = scr * cost_of_capital_rate / ((1.0 + r) ** t) rm_by_year[t] = round(term, 2) total_rm += term return { "risk_margin_by_year": rm_by_year, "risk_margin_total": round(total_rm, 2), "parameters": { "cost_of_capital_rate": cost_of_capital_rate } }
technical_margin_analysis
Model for storing functions that can be called by an agent.
technical_margin_analysis
Model for storing functions that can be called by an agent.
@tool( name="technical_margin_analysis", description="Compute technical margin = Premium - Claims - Expenses - Commissions, plus key ratios.", show_result=True, ) def technical_margin_analysis( premium_earned: float, claims_incurred: float, expenses: float, commissions: float = 0.0 ) -> Dict[str, Any]: """ Compute a basic technical margin and ratios. Args: premium_earned: Earned premium claims_incurred: Incurred claims expenses: Operating expenses commissions: Commissions/brokerage Returns: Dict with margin and ratios(loss, expense, combined). """ margin = premium_earned - claims_incurred - expenses - commissions loss_ratio = (claims_incurred / premium_earned) if premium_earned else 0.0 expense_ratio = (expenses / premium_earned) if premium_earned else 0.0 commission_ratio = (commissions / premium_earned) if premium_earned else 0.0 combined_ratio = loss_ratio + expense_ratio + commission_ratio return { "premium_earned": round(premium_earned, 2), "claims_incurred": round(claims_incurred, 2), "expenses": round(expenses, 2), "commissions": round(commissions, 2), "technical_margin": round(margin, 2), "ratios": { "loss_ratio": round(loss_ratio, 4), "expense_ratio": round(expense_ratio, 4), "commission_ratio": round(commission_ratio, 4), "combined_ratio": round(combined_ratio, 4), } }
variance_bridge_expected_to_actual
Model for storing functions that can be called by an agent.
variance_bridge_expected_to_actual
Model for storing functions that can be called by an agent.
@tool( name="variance_bridge_expected_to_actual", description="Simple variance bridge: Expected vs Actual for premium, claims, expenses. Pass expected and actual dicts, or omit for example values.", show_result=True, ) def variance_bridge_expected_to_actual( expected: Optional[Dict[str, float]] = None, actual: Optional[Dict[str, float]] = None, ) -> Dict[str, Any]: """ Decompose variance between Expected and Actual for key items. Args: expected: optional {"premium": x, "claims": y, "expenses": z}; if omitted uses example actual: optional {"premium": x, "claims": y, "expenses": z}; if omitted uses example Returns: Dict with component variances, total variance, and percentage contributions. """ if expected is None: expected = {"premium": 1000.0, "claims": 600.0, "expenses": 200.0} if actual is None: actual = {"premium": 1050.0, "claims": 620.0, "expenses": 190.0} keys = ["premium", "claims", "expenses"] components: Dict[str, float] = {} total = 0.0 for k in keys: diff = actual.get(k, 0.0) - expected.get(k, 0.0) components[k] = round(diff, 2) total += diff pct_contrib = {k: (components[k] / total) if total != 0 else 0.0 for k in keys} return { "components": components, "total_variance": round(total, 2), "percentage_contribution": {k: round(v, 4) for k, v in pct_contrib.items()} }
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