TalentPerformer

Finance

Finance

Treasury 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.

LIVE

Purpose

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.

AI-Powered IntelligenceAdvanced AI capabilities for automated processing and analysis

Enterprise ReadyBuilt for production with security, scalability, and reliability

Seamless IntegrationEasy to integrate with your existing systems and workflows

Agent Capabilities

This agent is equipped with the following advanced capabilities:

Knowledge Base

Vector search & retrieval

Knowledge (PgVector)

Available Tools

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.

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

Required Inputs

Cash positions by currency and counterparty, FX rates, and counterparty limits.

Balance sheet data including asset and liability types, amounts, maturities, and currencies; current interest rates.

Results from FX/counterparty risk assessment and ALM metrics calculation.

Generated Outputs

Business Value

Automated processing reduces manual effort and improves accuracy

Consistent validation logic ensures compliance and audit readiness

Early detection of issues minimizes downstream risks and costs

Graph

Treasury ALM Risk Controller preview

Pricing

Get in touch for a tailored pricing

Contact us to discuss your specific needs and requirements and get a personalized plan.

Custom Deployment

Tailored to your organization's specific workflows and requirements.

Enterprise Support

Dedicated support team and onboarding assistance.

Continuous Updates

Regular updates and improvements based on latest AI advancements.

Contact Us

For enterprise deployments.

Custom

one time payment

plus local taxes

Contact Sales

Tailored solutionsCustom pricing based on your organization's size and usage requirements.