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 usTreasury ALM Risk Controller
The Treasury & ALM Risk Controller agent provides comprehensive oversight of treasury operations and asset-liability management. It assesses FX exposures, counterparty risks, and key ALM metrics, leveraging a knowledge base of regulatory standards, treasury policies, and risk limits alongside analytical tools to ensure compliance and identify vulnerabilities.
Instructions
Step 1: FX & Counterparty Risk Assessment
- Input: Cash positions by currency and counterparty, FX rates, and counterparty limits.
- Tool: calculate_fx_counterparty_risk
- Knowledge: Reference the knowledge base for counterparty limits, FX exposure policies, and regulatory compliance requirements.
- Action: Calculate FX-adjusted exposures, identify limit breaches, and recommend mitigation actions (hedging, reallocation).
Step 2: ALM Metrics Calculation
- Input: Balance sheet data including asset and liability types, amounts, maturities, and currencies; current interest rates.
- Tool: calculate_alm_metrics
- Knowledge: Reference the knowledge base for liquidity ratio thresholds, interest rate gap policies, and capital adequacy requirements.
- Action: Compute key ALM metrics (liquidity ratio, interest rate gap, capital adequacy ratio), assess compliance, and identify risks.
Step 3: Reporting & Recommendations
- Input: Results from FX/counterparty risk assessment and ALM metrics calculation.
- Action: Summarize FX exposures, counterparty limit breaches, and key ALM metrics (liquidity ratio, interest rate gap, capital adequacy ratio). Provide actionable recommendations to maintain financial equilibrium and ALM compliance.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 3
calculate_fx_counterparty_risk
Calculates FX exposure and counterparty risk for treasury operations.
Parameters:
- cash_positions: JSON string — list of objects with keys Date (str), Currency (str),
Counterparty (str), Amount (float).
Example: '[{"Date":"2024-01-01","Currency":"USD","Counterparty":"BankA","Amount":1000000}]'
- fx_rates: Dictionary with currency codes as keys and FX rate to base currency as values.
Example: {"USD": 1.08, "GBP": 1.25, "EUR": 1.0}
- counterparty_limits: Dictionary with counterparty names as keys and maximum allowed exposure as values.
Example: {"BankA": 5000000, "BankB": 3000000}
Returns:
- JSON string with calculated exposures, FX-adjusted amounts, and limit breaches.
calculate_fx_counterparty_risk
Calculates FX exposure and counterparty risk for treasury operations. Parameters: - cash_positions: JSON string — list of objects with keys Date (str), Currency (str), Counterparty (str), Amount (float). Example: '[{"Date":"2024-01-01","Currency":"USD","Counterparty":"BankA","Amount":1000000}]' - fx_rates: Dictionary with currency codes as keys and FX rate to base currency as values. Example: {"USD": 1.08, "GBP": 1.25, "EUR": 1.0} - counterparty_limits: Dictionary with counterparty names as keys and maximum allowed exposure as values. Example: {"BankA": 5000000, "BankB": 3000000} Returns: - JSON string with calculated exposures, FX-adjusted amounts, and limit breaches.
def calculate_fx_counterparty_risk(cash_positions: str, fx_rates: Dict[str, float], counterparty_limits: Dict[str, float]) -> str: """ Calculates FX exposure and counterparty risk for treasury operations. Parameters: - cash_positions: JSON string — list of objects with keys Date(str), Currency(str), Counterparty(str), Amount(float). Example: '[{"Date":"2024-01-01","Currency":"USD","Counterparty":"BankA","Amount":1000000}]' - fx_rates: Dictionary with currency codes as keys and FX rate to base currency as values. Example: {"USD": 1.08, "GBP": 1.25, "EUR": 1.0} - counterparty_limits: Dictionary with counterparty names as keys and maximum allowed exposure as values. Example: {"BankA": 5000000, "BankB": 3000000} Returns: - JSON string with calculated exposures, FX-adjusted amounts, and limit breaches. """ try: data = json.loads(cash_positions) if isinstance(cash_positions, str) else cash_positions df = pd.DataFrame(data) df['FX_Amount'] = df.apply(lambda x: x['Amount'] * fx_rates.get(x['Currency'], 1), axis=1) df['Limit'] = df['Counterparty'].apply(lambda c: counterparty_limits.get(c, float('inf'))) df['LimitBreach'] = df['FX_Amount'] > df['Limit'] result = df[['Date', 'Currency', 'Counterparty', 'Amount', 'FX_Amount', 'Limit', 'LimitBreach']] return result.to_json(orient='records', indent=2) except Exception as e: return json.dumps({'error': str(e)})
calculate_alm_metrics
Calculates key ALM metrics including liquidity ratios, interest rate gaps, and capital adequacy.
Parameters:
- balance_sheet: JSON string — list of objects with keys Type ('Asset' or 'Liability'),
Amount (float), Maturity (int, days), Currency (str).
Example: '[{"Type":"Asset","Amount":5000000,"Maturity":365,"Currency":"EUR"}]'
- interest_rates: Dictionary with currency as key and current interest rate as value.
Example: {"EUR": 0.03, "USD": 0.05}
Returns:
- JSON string with TotalAssets, TotalLiabilities, LiquidityRatio, InterestRateGap, CapitalAdequacyRatio.
calculate_alm_metrics
Calculates key ALM metrics including liquidity ratios, interest rate gaps, and capital adequacy. Parameters: - balance_sheet: JSON string — list of objects with keys Type ('Asset' or 'Liability'), Amount (float), Maturity (int, days), Currency (str). Example: '[{"Type":"Asset","Amount":5000000,"Maturity":365,"Currency":"EUR"}]' - interest_rates: Dictionary with currency as key and current interest rate as value. Example: {"EUR": 0.03, "USD": 0.05} Returns: - JSON string with TotalAssets, TotalLiabilities, LiquidityRatio, InterestRateGap, CapitalAdequacyRatio.
def calculate_alm_metrics(balance_sheet: str, interest_rates: Dict[str, float]) -> str: """ Calculates key ALM metrics including liquidity ratios, interest rate gaps, and capital adequacy. Parameters: - balance_sheet: JSON string — list of objects with keys Type('Asset' or 'Liability'), Amount(float), Maturity(int, days), Currency(str). Example: '[{"Type":"Asset","Amount":5000000,"Maturity":365,"Currency":"EUR"}]' - interest_rates: Dictionary with currency as key and current interest rate as value. Example: {"EUR": 0.03, "USD": 0.05} Returns: - JSON string with TotalAssets, TotalLiabilities, LiquidityRatio, InterestRateGap, CapitalAdequacyRatio. """ try: data = json.loads(balance_sheet) if isinstance(balance_sheet, str) else balance_sheet df = pd.DataFrame(data) total_assets = float(df[df['Type'] == 'Asset']['Amount'].sum()) total_liabilities = float(df[df['Type'] == 'Liability']['Amount'].sum()) liquidity_ratio = total_assets / max(total_liabilities, 1) def weighted_ir(row: Any) -> float: rate = interest_rates.get(row['Currency'], 0) return row['Amount'] * rate * (1 if row['Type'] == 'Asset' else -1) interest_rate_gap = float(df.apply(weighted_ir, axis=1).sum()) capital = total_assets - total_liabilities capital_adequacy_ratio = capital / max(total_assets, 1) return json.dumps({ 'TotalAssets': round(total_assets, 2), 'TotalLiabilities': round(total_liabilities, 2), 'LiquidityRatio': round(liquidity_ratio, 4), 'InterestRateGap': round(interest_rate_gap, 2), 'CapitalAdequacyRatio': round(capital_adequacy_ratio, 4) }, indent=2) except Exception as e: return json.dumps({'error': str(e)})
file_tools
FileTools from agno framework
file_tools
FileTools from agno framework
Test Agent
Configure model settings at the top, then test the agent below
Enter your question or instruction for the agent