Finance scenario
Capital markets workflow showing committee exposure reporting — pivots, weighted averages, and committee export
Your Role
You are preparing for a risk committee or internal exposure review.
import {AdaptableOptions} from '@adaptabletools/adaptable';
import {ExposureRow} from './rowData';
export const adaptableOptions: AdaptableOptions<ExposureRow> = {
primaryKey: 'id',
adaptableId: 'Showcase: Exposure by Sector',
exportOptions: {
appendFileTimestamp: true,
exportDateFormat: 'yyyy-MM-dd',
exportDataFormat: 'formattedValue',
},
initialState: {
Dashboard: {
Tabs: [
{
Name: 'Reporting',
Toolbars: ['Layout', 'Export', 'GridFilter'],
},
],
ModuleButtons: ['Layout', 'Export', 'CalculatedColumn', 'SettingsPanel'],
},
StatusBar: {
StatusBars: [
{
Key: 'Center Panel',
StatusBarPanels: ['Layout', 'Export'],
},
],
},
Theme: {CurrentTheme: 'dark'},
NamedQuery: {
NamedQueries: [
{
Name: 'Material Exposure',
BooleanExpression:
'[weightPct] > 0.05 OR ABS([pnlPct]) > 0.03',
},
],
},
Layout: {
CurrentLayout: 'Sector × Region',
Layouts: [
{
Name: 'Positions',
AutoSizeColumns: true,
TableColumns: [
'symbol',
'sector',
'region',
'book',
'marketValue',
'pnl',
'pnlPct',
'weightPct',
'varContribution',
'sector_market_value',
'rating',
],
},
{
Name: 'By Sector (grouped)',
AutoSizeColumns: true,
SuppressAggFuncInHeader: true,
RowGroupedColumns: ['sector'],
RowGroupValues: {
RowGroupDefaultBehavior: 'expanded',
},
ColumnPinning: {'ag-Grid-AutoColumn': 'left'},
TableAggregationColumns: [
{ColumnId: 'marketValue', AggFunc: 'sum'},
{ColumnId: 'pnl', AggFunc: 'sum'},
{
ColumnId: 'pnlPct',
AggFunc: {
type: 'weightedAverage',
weightedColumnId: 'marketValue',
},
},
{ColumnId: 'varContribution', AggFunc: 'sum'},
{ColumnId: 'id', AggFunc: 'count'},
],
TableColumns: [
'ag-Grid-AutoColumn',
'symbol',
'region',
'book',
'marketValue',
'pnl',
'pnlPct',
'weightPct',
'varContribution',
'sector_market_value',
'rating',
],
},
{
Name: 'Sector × Region',
SuppressAggFuncInHeader: true,
PivotGroupedColumns: ['sector'],
PivotColumns: ['region'],
PivotAggregationColumns: [
{ColumnId: 'marketValue', AggFunc: 'sum', Total: true},
{ColumnId: 'pnl', AggFunc: 'sum', Total: true},
{ColumnId: 'varContribution', AggFunc: 'sum', Total: true},
{ColumnId: 'id', AggFunc: 'count', Total: true},
],
},
{
Name: 'By Book',
SuppressAggFuncInHeader: true,
PivotGroupedColumns: ['book'],
PivotColumns: ['region'],
PivotAggregationColumns: [
{ColumnId: 'marketValue', AggFunc: 'sum', Total: 'before'},
{ColumnId: 'pnl', AggFunc: 'sum', Total: true},
{ColumnId: 'weightPct', AggFunc: 'sum', Total: 'after'},
],
},
{
Name: 'Material Names',
AutoSizeColumns: true,
TableColumns: [
'symbol',
'sector',
'region',
'book',
'marketValue',
'pnl',
'pnlPct',
'weightPct',
'varContribution',
],
GridFilter: {
Expression: 'QUERY("Material Exposure")',
},
},
],
},
CalculatedColumn: {
CalculatedColumns: [
{
FriendlyName: 'Sector Market Value',
ColumnId: 'sector_market_value',
Query: {
AggregatedScalarExpression:
'SUM([marketValue], GROUP_BY([sector]))',
},
CalculatedColumnSettings: {
DataType: 'number',
Filterable: true,
Groupable: true,
},
},
],
},
FormatColumn: {
FormatColumns: [
{
Name: 'format-negative-pnl',
Scope: {ColumnIds: ['pnl', 'pnlPct']},
Rule: {BooleanExpression: '[pnl] < 0'},
Style: {ForeColor: '#ff6b6b'},
},
{
Name: 'format-positive-pnl',
Scope: {ColumnIds: ['pnl', 'pnlPct']},
Rule: {BooleanExpression: '[pnl] > 0'},
Style: {ForeColor: '#4ade80'},
},
{
Name: 'format-high-var',
Scope: {ColumnIds: ['varContribution']},
Rule: {BooleanExpression: '[varContribution] > 0.04'},
Style: {
BackColor: 'var(--ab-color-palette-3)',
ForeColor: 'var(--ab-color-palette-4)',
},
},
{
Name: 'format-market-value',
Scope: {
ColumnIds: ['marketValue', 'sector_market_value'],
},
DisplayFormat: 'Million',
},
{
Name: 'format-pnl',
Scope: {ColumnIds: ['pnl']},
DisplayFormat: 'Accounting',
},
{
Name: 'format-percentages',
Scope: {ColumnIds: ['pnlPct', 'weightPct', 'varContribution']},
DisplayFormat: 'Percentage',
},
],
},
Export: {
CurrentReport: 'Committee Pack',
CurrentFormat: 'Excel',
Reports: [
{
Name: 'Committee Pack',
ReportColumnScope: 'ScopeColumns',
ReportRowScope: 'AllRows',
Scope: {
ColumnIds: [
'symbol',
'sector',
'region',
'book',
'marketValue',
'pnl',
'pnlPct',
'weightPct',
'varContribution',
'sector_market_value',
'rating',
],
},
},
{
Name: 'Material Exposure',
ReportColumnScope: 'ScopeColumns',
ReportRowScope: 'ExpressionRows',
Scope: {
ColumnIds: [
'symbol',
'sector',
'region',
'book',
'marketValue',
'pnl',
'pnlPct',
'weightPct',
'varContribution',
],
},
Query: {
BooleanExpression: 'QUERY("Material Exposure")',
},
},
],
},
},
};Read-onlyLoading demo…