Recommendations
{{actions.data.actions.data.actions.count()}}
{{actions.data.actions.data.actions.filter(`priority=='high'`).count()}} high priority No high priority actions
Netting opportunities
{{sc_netting_opportunities.data.netting_opportunities.data.summary.bucket_count.default(0)}}
{{sc_netting_opportunities.data.netting_opportunities.data.summary.fully_coverable_bucket_count.default(0)}} fully coverable
Net exposure
{{directional_positions.data.directional_postions.data.kpis[0].total_net_exposure.formatCurrency(directional_positions.data.directional_postions.data.base_currency_symbol, '.', ',', 0)}}
Net directional exposure
Unallocated FX
{{directional_positions.data.directional_postions.data.kpis[0].unallocated_fx_base_gross.formatCurrency(directional_positions.data.directional_postions.data.base_currency_symbol, '.', ',', 0)}}
FX foreign holdings
Max exposure
{{'-'+directional_positions.data.directional_postions.data.kpis[0].max_exposure_curr_symbol+directional_positions.data.directional_postions.data.kpis[0].max_exposure_amount.abs().default(0).formatNumber(0, '.', ',')}} {{directional_positions.data.directional_postions.data.kpis[0].max_exposure_curr_symbol+directional_positions.data.directional_postions.data.kpis[0].max_exposure_amount.abs().default(0).formatNumber(0, '.', ',')}}
{{directional_positions.data.directional_postions.data.kpis[0].max_exposure_curr_code+' · '+directional_positions.data.directional_postions.data.base_currency_symbol+directional_positions.data.directional_postions.data.kpis[0].max_exposure_amount_base.default(0).formatNumber(0, '.', ',')+' equivalent'}} {{directional_positions.data.directional_postions.data.kpis[0].max_exposure_curr_code+' · -'+directional_positions.data.directional_postions.data.base_currency_symbol+directional_positions.data.directional_postions.data.kpis[0].max_exposure_amount_base.abs().default(0).formatNumber(0, '.', ',')+' equivalent'}}
Treasury P&L
{{directional_positions.data.directional_postions.data.kpis[0].total_pnl.default(0).formatCurrency(directional_positions.data.directional_postions.data.base_currency_symbol, '.', ',', 0)}} -{{directional_positions.data.directional_postions.data.base_currency_symbol}}{{directional_positions.data.directional_postions.data.kpis[0].total_pnl.abs().default(0).formatNumber(0, '.', ',')}}
MTM movement

Applied filters

Currencies: {{applied_treasury_currencies.value}} Direction: {{applied_treasury_direction.value.capitalize()}} MTM: {{applied_treasury_mtm.value.capitalize()}} Source: {{applied_treasury_action_source.value.replace('_', ' ').capitalize()}}

Recommended Actions

Current treasury actions from open transaction requirements and unallocated FX positions. Apply netting shows recommended internal coverage and residual external FX.

Priority key: Low Medium High
Priority Action Pair Source Open amount Reference rate Current rate MTM P&L First due Actions
Loading recommended actions...
No recommended actions
There are no treasury actions requiring attention.
Low Medium High
{{action_label}}
{{action_secondary_label}}
{{pair_label}}
{{action_bought_currency_code}}
{{source_label}} {{open_amount.formatCurrency(open_amount_currency_symbol, '.', ',', 2)}}
≈{{base_equivalent.formatCurrency(base_currency_symbol, '.', ',', 0)}}
{{affected_bucket_count}} affected buckets
{{reference_rate.formatNumber(5, '.', ',')}}Not applicable
{{'('+action_bought_currency_code+'/'+action_sold_currency_code+': '+inverse_reference_rate.formatNumber(5, '.', ',')+')'}}
{{current_rate.formatNumber(5, '.', ',')}}
{{'+'+rate_change_pct.formatNumber(1, '.', ',')+'%'}}{{rate_change_pct.formatNumber(1, '.', ',')+'%'}}
Not applicable
{{mtm_pnl.formatCurrency(mtm_pnl_currency_symbol, '.', ',', 0)}}
{{mtm_pnl_base.formatCurrency(base_currency_symbol, '.', ',', 0)}}
Not applicable
{{first_due_date.formatDate('d MMMM')}}Multiple

Directional Treasury Position

Currency-level treasury view combining open transaction requirements and unallocated FX positions.

Direction key: Long Short Base currency
Currency Direction Open exposure Unallocated FX Net position MTM P&L Pairs Sources Actions
Loading treasury positions...
No treasury positions
There are no directional positions to show.
{{currency_code}}
{{currency_name}}
{{direction_label}} {{open_bucket_amount.formatCurrency(currency_symbol, '.', ',', 2)}}
{{open_bucket_base_equivalent.formatCurrency(directional_positions.data.directional_postions.data.base_currency_symbol, '.', ',', 2)}}
base currency
{{unallocated_fx_amount.formatCurrency(currency_symbol, '.', ',', 2)}}
{{unallocated_fx_base_equivalent.formatCurrency(directional_positions.data.directional_postions.data.base_currency_symbol, '.', ',', 2)}}
base currency
{{'+'+currency_symbol+net_position_abs.formatNumber(2,'.',',')}} {{'-'+currency_symbol+net_position_abs.formatNumber(2,'.',',')}}
{{net_position_base_equivalent.formatCurrency(directional_positions.data.directional_postions.data.base_currency_symbol, '.', ',', 2)}}
base currency
-{{(currency_symbol + mtm_pnl.abs().formatNumber(2, '.', ','))}} {{currency_symbol+mtm_pnl.formatNumber(2,'.',',')}}
{{mtm_pnl_base.formatCurrency(directional_positions.data.directional_postions.data.base_currency_symbol, '.', ',', 2)}}
base currency
{{pair_count}} {{source_count}}
transactions {{bucket_source_count+' txns, '+fx_trade_count+' FX'}} FX inventory base

Netting Opportunities

Cover outbound requirements with available incoming currency.

Currency Reason Required Need by Coverage Nettable now Residual external Details
Loading netting opportunities...
No netting opportunities
There are no eligible receivable positions available for current treasury requirements.
{{bought_currency_code}}
{{bought_currency_name}}
Payable to {{counterparties[0].org_name}} +{{(counterparties.count() - 1)}} more
Settlement requirement
coverable from incoming {{bought_currency_code}} receivables
{{remaining_bought_amount.formatCurrency(bought_currency_symbol, '.', ',', bought_currency_minor_units)}}
≈ {{remaining_reference_sold_amount.formatCurrency(sold_currency_symbol, '.', ',', sold_currency_minor_units)}} to sell
{{bucket_value_date.formatDate('d MMM yyyy')}}
Overdue
{{coverage_type.capitalize()}}
{{on_time_position_count}} on time · {{overdue_position_count}} overdue · {{late_position_count}} late
{{max_nettable_amount.formatCurrency(bought_currency_symbol, '.', ',', bought_currency_minor_units)}}
instead of selling {{reference_sold_released_at_max_netting.formatCurrency(sold_currency_symbol, '.', ',', sold_currency_minor_units)}}
+{{total_overdue_available_amount.formatCurrency(bought_currency_symbol, '.', ',', bought_currency_minor_units)}} overdue
+{{total_late_available_amount.formatCurrency(bought_currency_symbol, '.', ',', bought_currency_minor_units)}} arriving late
{{remaining_bought_after_max_netting.formatCurrency(bought_currency_symbol, '.', ',', bought_currency_minor_units)}}
≈ {{remaining_reference_sold_after_max_netting.formatCurrency(sold_currency_symbol, '.', ',', sold_currency_minor_units)}} still to sell

Netting History

Confirmed and reversed treasury netting events.

Reference Status Confirmed Currencies Counterparties Requirements Positions Actions
Loading netting history...
No netting events have been confirmed.
{{netting_reference}}
{{notes.default('No notes')}}
{{status.capitalize()}}
{{confirmed_at.formatDate('d MMM yyyy HH:mm')}}
{{confirmed_by_name.default('System user')}}
{{currency_code+' '+netted_bought_amount.formatNumber(2,'.',',')}} {{org_name}} {{bucket_line_count}} {{position_link_count}}
Netting requirement
{{dd_netting_opportunity.data.bought_currency_code.default('Requirement detail')}} · Payable to {{dd_netting_opportunity.data.counterparties[0].org_name}}
{{dd_netting_opportunity.data.coverage_type.capitalize()}} cover available · needed by {{dd_netting_opportunity.data.bucket_value_date.formatDate('d MMM yyyy')}}
Select a requirement to see its detail.
Required
{{dd_netting_opportunity.data.remaining_bought_amount.formatCurrency(dd_netting_opportunity.data.bought_currency_symbol, '.', ',', 2)}}
≈ {{dd_netting_opportunity.data.remaining_reference_sold_amount.formatCurrency(dd_netting_opportunity.data.sold_currency_symbol, '.', ',', 2)}} to sell
Nettable now
{{dd_netting_opportunity.data.max_nettable_amount.formatCurrency(dd_netting_opportunity.data.bought_currency_symbol, '.', ',', 2)}}
instead of selling {{dd_netting_opportunity.data.reference_sold_released_at_max_netting.formatCurrency(dd_netting_opportunity.data.sold_currency_symbol, '.', ',', 2)}}
Residual external
{{dd_netting_opportunity.data.remaining_bought_after_max_netting.formatCurrency(dd_netting_opportunity.data.bought_currency_symbol, '.', ',', 2)}}
≈ {{dd_netting_opportunity.data.remaining_reference_sold_after_max_netting.formatCurrency(dd_netting_opportunity.data.sold_currency_symbol, '.', ',', 2)}} still to sell
Need by
{{dd_netting_opportunity.data.bucket_value_date.formatDate('d MMM yyyy')}}
Overdue — cash arriving up to today still countsCash must arrive by this date
  • {{message}}
Outbound payments driving this requirement
Pay toDueAmount
No itemised payments are recorded for this requirement.
{{org_name.default('Unattributed')}} {{due_date.formatDate('d MMM yyyy')}} {{required_bought_amount.formatCurrency(dd_netting_opportunity.data.bought_currency_symbol, '.', ',', 2)}}
Incoming receivables that can cover it
FromStatusArrivesAvailable
No eligible receivables found.
{{org_name.default('No counterparty')}}
{{source_type.default('receivable').replace('_', ' ')}}
{{position_status.capitalize()}} Overdue Late {{value_date.formatDate('d MMM yyyy')}} {{available_amount.formatNumber(2, '.', ',')}}
Netting event
{{sc_netting_event_detail.data.netting_event_detail.data.event.netting_reference.default('Netting event detail')}}
{{sc_netting_event_detail.data.netting_event_detail.data.event.confirmed_at.formatDate('d MMMM yyyy HH:mm')}}
Loading event detail...
Status
{{sc_netting_event_detail.data.netting_event_detail.data.event.status}}
Confirmed by
{{sc_netting_event_detail.data.netting_event_detail.data.event.confirmed_by_name.default('System user')}}
Requirement lines
{{sc_netting_event_detail.data.netting_event_detail.data.event.bucket_lines.count()}}
Commitments
{{sc_netting_event_detail.data.netting_event_detail.data.event.commitments.count()}}
{{sc_netting_event_detail.data.netting_event_detail.data.event.notes}}
Reversed: {{sc_netting_event_detail.data.netting_event_detail.data.event.reversal_reason}}
Source cash impaired: {{sc_netting_event_detail.data.netting_event_detail.data.event.impairment_reason}}
Substitute source cash
Source substitution audit
ChangedPositionsAmountReason
{{created_at.formatDate('d MMM yyyy HH:mm')}}
{{changed_by_name.default('System user')}}
{{old_currency_position_event_id+' → '+new_currency_position_event_id}}{{substituted_amount.formatNumber(6,'.',',')}}{{reason}}
Requirement impact
Pair / requirement Netted Released Positions
{{sold_currency_code}} / {{bought_currency_code}}
Requirement {{treasury_exposure_bucket_id}} · {{line_status}}
{{netted_bought_amount.formatCurrency(bought_currency_symbol,'.',',',2)}} {{reference_sold_amount_released.formatCurrency(sold_currency_symbol,'.',',',2)}}
{{currency_code}} {{amount_consumed.formatNumber(2,'.',',')}} · {{org_name.default('No counterparty')}}
{{sc_treasury_action_detail.data.action_detail.pair.sell_currency_code}} {{sc_treasury_action_detail.data.action_detail.pair.buy_currency_code}}
{{sc_treasury_action_detail.data.action_detail.summary.status_label}}
{{sc_treasury_action_detail.data.action_detail.summary.title}} · {{sc_treasury_action_detail.data.action_detail.summary.recommended_action_label}}
Open: {{sc_treasury_action_detail.data.action_detail.summary.open_buy_amount.default(0).formatCurrency(sc_treasury_action_detail.data.action_detail.pair.buy_currency_symbol, '.', ',', 2)}} FX inventory: {{sc_treasury_action_detail.data.action_detail.summary.available_bought_amount.default(0).formatCurrency(sc_treasury_action_detail.data.action_detail.pair.buy_currency_symbol, '.', ',', 2)}}
Loading action detail...
No action detail available
Select a treasury action to view details.
Summary
Recommendation includes internal netting
The exposure detail below remains gross. The recommended external FX action is lower because eligible incoming payment cash can cover part of it internally.
Gross: {{(action_drawer_residual_amount.value+action_drawer_netting_amount.value).formatCurrency(action_drawer_bought_symbol.value, '.', ',', 2)}} Net internally: {{action_drawer_netting_amount.value.formatCurrency(action_drawer_bought_symbol.value, '.', ',', 2)}} External FX: {{action_drawer_residual_amount.value.formatCurrency(action_drawer_bought_symbol.value, '.', ',', 2)}}
{{sc_treasury_action_detail.data.action_detail.summary.title}}
{{sc_treasury_action_detail.data.action_detail.summary.description}}
Open exposure
{{sc_treasury_action_detail.data.action_detail.summary.open_buy_amount.default(0).formatCurrency(sc_treasury_action_detail.data.action_detail.pair.buy_currency_symbol, '.', ',', 2)}}
{{sc_treasury_action_detail.data.action_detail.summary.open_buy_base_equivalent.default(0).formatCurrency(sc_treasury_action_detail.data.action_detail.base_currency_symbol, '.', ',', 0)}} equivalent
Reference sell
{{sc_treasury_action_detail.data.action_detail.summary.reference_sell_amount.default(0).formatCurrency(sc_treasury_action_detail.data.action_detail.pair.sell_currency_symbol, '.', ',', 2)}}
{{sc_treasury_action_detail.data.action_detail.summary.reference_sell_base_equivalent.default(0).formatCurrency(sc_treasury_action_detail.data.action_detail.base_currency_symbol, '.', ',', 0)}} equivalent
FX inventory
{{sc_treasury_action_detail.data.action_detail.summary.available_bought_amount.default(0).formatCurrency(sc_treasury_action_detail.data.action_detail.pair.buy_currency_symbol, '.', ',', 2)}}
{{sc_treasury_action_detail.data.action_detail.summary.available_bought_base_equivalent.default(0).formatCurrency(sc_treasury_action_detail.data.action_detail.base_currency_symbol, '.', ',', 0)}} equivalent
Recommendation
{{sc_treasury_action_detail.data.action_detail.summary.recommended_action_label}}
{{sc_treasury_action_detail.data.action_detail.summary.status_label}}
Open exposure
Source Sell Buy
{{source_label}}
{{source_reference}}
{{remaining_sell_amount.default(0).formatCurrency(sell_currency_symbol, '.', ',', 2)}} {{remaining_buy_amount.default(0).formatCurrency(buy_currency_symbol, '.', ',', 2)}}
FX inventory
Trade Bought Available
{{trade_reference}}
{{sold_amount.default(0).formatCurrency(sold_currency_symbol, '.', ',', 2)}} sold · {{trade_date.formatDate('d MMM yyyy')}}
{{bought_amount.default(0).formatCurrency(bought_currency_symbol, '.', ',', 2)}} {{available_bought_amount.default(0).formatCurrency(bought_currency_symbol, '.', ',', 2)}}
Unrealised MTM P&L
Source P&L
{{source_type_label}}
{{underlying_source_count}} sources
{{base_currency_symbol}}{{pnl_amount_base.default(0).formatNumber(2, '.', ',')}} -{{base_currency_symbol}}{{pnl_amount_base.abs().default(0).formatNumber(2, '.', ',')}}
{{pnl_currency_symbol}}{{pnl_amount.default(0).formatNumber(2, '.', ',')}} -{{pnl_currency_symbol}}{{pnl_amount.abs().default(0).formatNumber(2, '.', ',')}}
There is no current open exposure or FX inventory for this pair.
{{sc_position_detail.data.position_detail.currency.currency_code}} {{sc_position_detail.data.position_detail.currency.currency_name}}
{{sc_position_detail.data.position_detail.summary.direction_label}}
Rate to {{sc_position_detail.data.position_detail.base_currency_code}}: {{sc_position_detail.data.position_detail.summary.rate_to_base.default(0).formatNumber(6, '.', ',')}}
Net: {{sc_position_detail.data.position_detail.summary.net_position_amount.default(0).formatCurrency(sc_position_detail.data.position_detail.currency.currency_symbol, '.', ',', 2)}} Open exposure: {{sc_position_detail.data.position_detail.summary.open_exposure_amount.default(0).formatCurrency(sc_position_detail.data.position_detail.currency.currency_symbol, '.', ',', 2)}} MTM: {{sc_position_detail.data.position_detail.summary.total_pnl_base.default(0).formatCurrency(sc_position_detail.data.position_detail.base_currency_symbol, '.', ',', 2)}}
Loading position detail...
No position detail available
Select a currency position to view details.
Summary
Net position
{{sc_position_detail.data.position_detail.summary.net_position_amount.default(0).formatCurrency(sc_position_detail.data.position_detail.currency.currency_symbol, '.', ',', 2)}}
{{sc_position_detail.data.position_detail.summary.net_position_base.default(0).formatCurrency(sc_position_detail.data.position_detail.base_currency_symbol, '.', ',', 0)}} equivalent
Open exposure
{{sc_position_detail.data.position_detail.summary.open_exposure_amount.default(0).formatCurrency(sc_position_detail.data.position_detail.currency.currency_symbol, '.', ',', 2)}}
{{sc_position_detail.data.position_detail.summary.open_exposure_base.default(0).formatCurrency(sc_position_detail.data.position_detail.base_currency_symbol, '.', ',', 0)}} equivalent
Unallocated FX
{{sc_position_detail.data.position_detail.summary.unallocated_fx_amount.default(0).formatCurrency(sc_position_detail.data.position_detail.currency.currency_symbol, '.', ',', 2)}}
{{sc_position_detail.data.position_detail.summary.unallocated_fx_base.default(0).formatCurrency(sc_position_detail.data.position_detail.base_currency_symbol, '.', ',', 0)}} equivalent
MTM P&L
{{sc_position_detail.data.position_detail.summary.total_pnl_base.default(0).formatCurrency(sc_position_detail.data.position_detail.base_currency_symbol, '.', ',', 2)}}
Unrealised market movement
Components
Component Amount Equivalent
{{component_label}}
{{underlying_source_count}} sources
Total position
{{sc_position_detail.data.position_detail.currency.currency_symbol}}{{amount.default(0).formatNumber(2, '.', ',')}} -{{sc_position_detail.data.position_detail.currency.currency_symbol}}{{amount.abs().default(0).formatNumber(2, '.', ',')}} {{sc_position_detail.data.position_detail.currency.currency_symbol}}0.00 {{sc_position_detail.data.position_detail.base_currency_symbol}}{{base_amount.default(0).formatNumber(0, '.', ',')}} -{{sc_position_detail.data.position_detail.base_currency_symbol}}{{base_amount.abs().default(0).formatNumber(0, '.', ',')}} {{sc_position_detail.data.position_detail.base_currency_symbol}}0
Open exposure
Pair Amount Equivalent
{{pair_label}}
{{exposure_role_label}}
{{sc_position_detail.data.position_detail.currency.currency_symbol}}{{amount.default(0).formatNumber(2, '.', ',')}} -{{sc_position_detail.data.position_detail.currency.currency_symbol}}{{amount.abs().default(0).formatNumber(2, '.', ',')}} {{sc_position_detail.data.position_detail.base_currency_symbol}}{{amount_base.default(0).formatNumber(0, '.', ',')}} -{{sc_position_detail.data.position_detail.base_currency_symbol}}{{amount_base.abs().default(0).formatNumber(0, '.', ',')}}
FX inventory
Trade Position Equivalent
{{external_reference}}
{{trade_date.formatDate('d MMM yyyy')}}
{{sc_position_detail.data.position_detail.currency.currency_symbol}}{{position_amount.default(0).formatNumber(2, '.', ',')}} -{{sc_position_detail.data.position_detail.currency.currency_symbol}}{{position_amount.abs().default(0).formatNumber(2, '.', ',')}} {{sc_position_detail.data.position_detail.base_currency_symbol}}{{base_amount.default(0).formatNumber(0, '.', ',')}} -{{sc_position_detail.data.position_detail.base_currency_symbol}}{{base_amount.abs().default(0).formatNumber(0, '.', ',')}}
Unrealised MTM P&L
Source P&L
{{source_type_label}}
{{underlying_source_count}} sources
{{sc_position_detail.data.position_detail.base_currency_symbol}}{{pnl_base_amount.default(0).formatNumber(2, '.', ',')}} -{{sc_position_detail.data.position_detail.base_currency_symbol}}{{pnl_base_amount.abs().default(0).formatNumber(2, '.', ',')}}
{{sc_position_detail.data.position_detail.currency.currency_symbol}}{{pnl_amount.default(0).formatNumber(2, '.', ',')}} -{{sc_position_detail.data.position_detail.currency.currency_symbol}}{{pnl_amount.abs().default(0).formatNumber(2, '.', ',')}}
There is no current open exposure or FX inventory for this currency.