TalentPerformer

Solvency Capital Strategist

The Solvency & Capital Strategist agent is responsible for ensuring the institution maintains adequate capital buffers and liquidity reserves to remain solvent under normal and stress conditions. It leverages a knowledge base of regulatory rules, best practices, and contingency procedures, alongside calculation tools to simulate funding gaps and optimize the asset-liability mix.

LIVE

Instructions

Step 1: Capital Adequacy Assessment
    - Input: Current balance sheet, capital levels, and optionally stress scenarios.
    - Knowledge: Reference the knowledge base for regulatory minimums and CET1/Tier1/Total Capital thresholds.
    - Action: Assess whether current capital levels meet regulatory requirements and advise if adjustments are needed.

    Step 2: Contingency Funding Simulation
    - Input: Short-term cash flow projections and existing liquidity buffers.
    - Tool: simulate_contingency_funding
    - Knowledge: Reference contingency funding rules for triggers and emergency measures.
    - Action: Identify potential funding gaps and determine whether contingency measures should be activated.

    Step 3: Balance Sheet Optimization
    - Input: Current asset and liability mix, yields, and funding costs.
    - Tool: optimize_balance_sheet
    - Knowledge: Reference rules on asset allocation limits, liability management, and regulatory compliance.
    - Action: Recommend adjustments to improve capital efficiency, reduce funding costs, and remain compliant.

    Step 4: Reporting & Recommendations
    - Input: Results from the simulations and optimizations.
    - Action: Summarize findings, highlight vulnerabilities, and provide actionable recommendations for capital management, funding strategy, and balance sheet adjustments.

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

simulate_contingency_funding

Simulate funding gaps and check if contingency funding is needed. Parameters: - cash_flows: JSON string — list of objects with keys Date (str), Inflows (float), Outflows (float). Example: '[{"Date":"2024-01","Inflows":500000,"Outflows":300000}]' - liquidity_buffer: Amount of pre-existing liquidity buffer. - threshold: Fraction of short-term obligations triggering emergency funding. Returns: - JSON string with 'funding_gap' and 'trigger_contingency' boolean.

def simulate_contingency_funding(cash_flows: str, liquidity_buffer: float, threshold: float = 0.1) -> str:
    """
    Simulate funding gaps and check if contingency funding is needed.

    Parameters:
    - cash_flows: JSON string — list of objects with keys Date(str), Inflows(float), Outflows(float).
                  Example: '[{"Date":"2024-01","Inflows":500000,"Outflows":300000}]'
    - liquidity_buffer: Amount of pre-existing liquidity buffer.
    - threshold: Fraction of short-term obligations triggering emergency funding.

    Returns:
    - JSON string with 'funding_gap' and 'trigger_contingency' boolean.
    """
    try:
        data = json.loads(cash_flows) if isinstance(cash_flows, str) else cash_flows
        df = pd.DataFrame(data)
        df['Net'] = df['Inflows'] - df['Outflows']
        cumulative_net = df['Net'].cumsum() + liquidity_buffer
        min_balance = float(cumulative_net.min())

        trigger = bool(min_balance < float(df['Outflows'].max()) * threshold)
        funding_gap = round(-min_balance, 2) if min_balance < 0 else 0

        return json.dumps({'funding_gap': funding_gap, 'trigger_contingency': trigger})

    except Exception as e:
        return json.dumps({'error': str(e)})

optimize_balance_sheet

Suggest simple balance sheet adjustments to improve capital efficiency while remaining compliant. Parameters: - assets: JSON string — list of objects with keys AssetClass (str), Amount (float), Yield (float). Example: '[{"AssetClass":"Bonds","Amount":5000000,"Yield":0.04}]' - liabilities: JSON string — list of objects with keys LiabilityClass (str), Amount (float), Cost (float). Example: '[{"LiabilityClass":"Deposits","Amount":3000000,"Cost":0.015}]' - max_asset_share: Maximum fraction of total assets for any single class. Returns: - JSON string with recommended asset and liability allocations.

def optimize_balance_sheet(assets: str, liabilities: str, max_asset_share: float = 0.25) -> str:
    """
    Suggest simple balance sheet adjustments to improve capital efficiency while remaining compliant.

    Parameters:
    - assets: JSON string — list of objects with keys AssetClass(str), Amount(float), Yield(float).
              Example: '[{"AssetClass":"Bonds","Amount":5000000,"Yield":0.04}]'
    - liabilities: JSON string — list of objects with keys LiabilityClass(str), Amount(float), Cost(float).
                   Example: '[{"LiabilityClass":"Deposits","Amount":3000000,"Cost":0.015}]'
    - max_asset_share: Maximum fraction of total assets for any single class.

    Returns:
    - JSON string with recommended asset and liability allocations.
    """
    try:
        assets_data = json.loads(assets) if isinstance(assets, str) else assets
        liabilities_data = json.loads(liabilities) if isinstance(liabilities, str) else liabilities

        asset_df = pd.DataFrame(assets_data)
        total_assets = float(asset_df['Amount'].sum())

        asset_df['AdjustedAmount'] = asset_df['Amount'].apply(
            lambda x: min(x, total_assets * max_asset_share)
        )
        excess = total_assets - float(asset_df['AdjustedAmount'].sum())
        if excess > 0:
            high_yield_idx = asset_df['Yield'].idxmax()
            asset_df.loc[high_yield_idx, 'AdjustedAmount'] += excess

        lib_df = pd.DataFrame(liabilities_data).sort_values('Cost')

        return json.dumps({
            'recommended_assets': asset_df.to_dict(orient='records'),
            'recommended_liabilities': lib_df.to_dict(orient='records')
        }, indent=2)

    except Exception as e:
        return json.dumps({'error': str(e)})

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