CREATE TABLE `SRRisk`.`MsgFutureRiskSummaryV5` (
`fkey_at` ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY') NOT NULL DEFAULT 'None',
`fkey_ts` ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','EUX','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFE') NOT NULL DEFAULT 'None',
`fkey_tk` VARCHAR(12) NOT NULL DEFAULT '',
`fkey_yr` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
`fkey_mn` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`fkey_dy` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`accnt` VARCHAR(16) NOT NULL DEFAULT '',
`tradeDate` DATE NOT NULL DEFAULT '1900-01-01',
`riskSession` ENUM('Regular','PostClose') NOT NULL DEFAULT 'Regular',
`clientFirm` VARCHAR(16) NOT NULL DEFAULT '' COMMENT 'SR assigned client firm',
`ticker_at` ENUM('None','EQT','IDX','BND','CUR','COM','FUT','SYN','WAR','FLX','MUT','SPD','MM','MF','COIN','TOKEN','ANY') NOT NULL DEFAULT 'None' COMMENT 'Ticker that this future is associated with',
`ticker_ts` ENUM('None','SR','NMS','CME','ICE','CFE','CBOT','NYMEX','COMEX','RUT','CIDX','ARCA','NYSE','OTC','NSDQ','MFQS','MIAX','DJI','CUSIP','ISIN','BXE','EUX','ANY','CXE','DXE','NXAM','NXBR','NXLS','NXML','NXOS','NXP','EUREX','CEDX','ICEFE') NOT NULL DEFAULT 'None' COMMENT 'Ticker that this future is associated with',
`ticker_tk` VARCHAR(12) NOT NULL DEFAULT '' COMMENT 'Ticker that this future is associated with',
`uPrc` DOUBLE NOT NULL DEFAULT 0 COMMENT 'current live underlier price (can be from risk server, tool server, or srse server)',
`uMark` DOUBLE NOT NULL DEFAULT 0 COMMENT 'current underlier price [as of risk server record publish] [freezes at 4pm EST]',
`uOpnMark` DOUBLE NOT NULL DEFAULT 0 COMMENT 'start-of-day SR underlier mark (rotated from prior day record)',
`beta` FLOAT NOT NULL DEFAULT 0 COMMENT 'beta (usually beta to SPX; see AccountConfig.betaSource)',
`betaSource` ENUM('None','betaSPX','betaQQQ','betaIWM','clientBeta') NOT NULL DEFAULT 'None',
`lnDDelta` DOUBLE NOT NULL DEFAULT 0 COMMENT 'long net position delta value (today; SR marks )',
`shDDelta` DOUBLE NOT NULL DEFAULT 0 COMMENT 'short net position delta value (today; SR marks )',
`futMktValueMid` DOUBLE NOT NULL DEFAULT 0 COMMENT 'future position market value (today; SR mid marks)',
`optMktValueMid` DOUBLE NOT NULL DEFAULT 0 COMMENT 'option position market value (SR mid marks); =sum[opCurPosM * opr.optVolMark]',
`optMktValueVol` DOUBLE NOT NULL DEFAULT 0 COMMENT 'option position market value (SR vol marks); =sum[opCurPosM * opr.optMidMark]',
`fcAbsCurPos` INT NOT NULL DEFAULT 0 COMMENT 'abs number of future contracts (position + fills);=sum[abs(fpr.cnCurPos)]',
`fcAbsOpnClr` INT NOT NULL DEFAULT 0 COMMENT 'abs number of start of period future contracts (CLR view);=sum[abs(fpr.cnOpnClr)]',
`fcAbsOpnPrv` INT NOT NULL DEFAULT 0 COMMENT 'abs number of start of period future contracts (SR view);=sum[abs(fpr.cnOpnPrv)]',
`fcAbsOpnPos` INT NOT NULL DEFAULT 0 COMMENT 'abs number of start of period future contracts (effective);=sum[abs(fpr.cnOpnPos)]',
`fcAbsOpnBrk` INT NOT NULL DEFAULT 0 COMMENT 'abs number of future contract start of period breaks (CLR - PRV);=sum[abs(fpr.cnOpnClr - fpr.cnOpnPrv)]',
`fcNetCurPos` INT NOT NULL DEFAULT 0 COMMENT 'net future contract position;=sum[fpr.cnOpnClr + fpr.cnBot - fpr.cnSld]',
`fcBot` INT NOT NULL DEFAULT 0 COMMENT 'number of futures contracts bot today;=sum(frr.cnBot)',
`fcSld` INT NOT NULL DEFAULT 0 COMMENT 'number of futures contracts sld today;=sum(frr.cnSld)',
`fcBotHdg` INT NOT NULL DEFAULT 0 COMMENT 'number of contracts bot today from hedging (spdrSource=HedgeTool)',
`fcSldHdg` INT NOT NULL DEFAULT 0 COMMENT 'number of contracts sld today from hedging (spdrSource=HedgeTool)',
`fcBotTrh` INT NOT NULL DEFAULT 0 COMMENT 'number of contracts bot today from hedging (spdrSource=TradeHedge)',
`fcSldTrh` INT NOT NULL DEFAULT 0 COMMENT 'number of contracts sld today from hedging (spdrSource=TradeHedge)',
`fcBotOpn` INT NOT NULL DEFAULT 0 COMMENT 'number of contracts bot today from hedging (spdrSource=OpenHedge)',
`fcSldOpn` INT NOT NULL DEFAULT 0 COMMENT 'number of contracts sld today from hedging (spdrSource=OpenHedge)',
`fcBotTrd` INT NOT NULL DEFAULT 0 COMMENT 'number of contracts bot today from a trade hedging source (AutoHedge or Trades loop)',
`fcSldTrd` INT NOT NULL DEFAULT 0 COMMENT 'number of contracts sld today from a trade hedging source (AutoHedge or Trades loop)',
`fcMnyBot` DOUBLE NOT NULL DEFAULT 0 COMMENT 'futures money bot today',
`fcMnySld` DOUBLE NOT NULL DEFAULT 0 COMMENT 'futures money sld today',
`maxFutDttm` DATETIME(6) NOT NULL DEFAULT '1900-01-01 00:00:00.000000' COMMENT 'DateTime of most recent SpdrFuturenExecution (if any)',
`fcPnlMid` FLOAT NOT NULL DEFAULT 0 COMMENT 'Futures Open Pnl (SR marks); =sum[fpr.cnOpnClr * fpr.unitsPerCn * (fpr.futMark - fpr.futOpnMidMark]',
`fcPnlClr` FLOAT NOT NULL DEFAULT 0 COMMENT 'Futures Open Pnl (CLR marks); =sum[fpr.cnOpnClr * fpr.unitsPerCn * (fpr.futMark - fpr.futOpnClrMark]',
`fcPnlDay` FLOAT NOT NULL DEFAULT 0 COMMENT 'Futures Day Pnl;=sum(fpr.dayPnl)',
`opCnAbsCurPos` INT NOT NULL DEFAULT 0 COMMENT 'abs number of option contracts (position + fills);=sum[abs(opr.cnCurPos)]',
`opCnAbsOpnClr` INT NOT NULL DEFAULT 0 COMMENT 'abs number of start of period option contracts (CLR view); =sum[abs(opr.cnOpnClr)]',
`opCnAbsOpnPrv` INT NOT NULL DEFAULT 0 COMMENT 'abs number of start of period option contracts (SR view); =sum[abs(opr.cnOpnPrv)]',
`opCnAbsOpnPos` INT NOT NULL DEFAULT 0 COMMENT 'abs number of start of period option contracts; =sum[abs(opr.cnOpnPos)]',
`opCnAbsOpnBrk` INT NOT NULL DEFAULT 0 COMMENT 'abs number of option contract start of period breaks (CLR - PRV);=sum[abs(opr.cnOpnClr - opr.cnOpnPrv)]',
`opCnPosCall` INT NOT NULL DEFAULT 0 COMMENT 'net number of call contracts;=sum[opr.cnOpnClr + opr.cnBot - opr.cnSld] (if call)',
`opCnPosPut` INT NOT NULL DEFAULT 0 COMMENT 'net number of call contracts;=sum[opr.cnOpnClr + opr.cnBot - opr.cnSld] (if put)',
`opCnAbsPair` INT NOT NULL DEFAULT 0 COMMENT 'abs number of option contracts with CP reversals removed; =sum[abs(opr.cnOpnClr + opr.cnBot - opr.cnSld) - abs(opr.cnNetPos)]',
`opCnAbsAtmEquiv` FLOAT NOT NULL DEFAULT 0 COMMENT 'abs atm equivalent contracts; = sum[abs(opr.cnOpnPos + opr.cnBot - opr.cnSld) * opr.ve / opr.atmVega]',
`opCnBot` INT NOT NULL DEFAULT 0 COMMENT 'number of option contracts bot today;=sum[opr.cnBot]',
`opCnSld` INT NOT NULL DEFAULT 0 COMMENT 'number of option contracts sld today;=sum[opr.cnSld]',
`opMnyBot` DOUBLE NOT NULL DEFAULT 0 COMMENT 'option money bot',
`opMnySld` DOUBLE NOT NULL DEFAULT 0 COMMENT 'option money sld',
`opPremBot` FLOAT NOT NULL DEFAULT 0 COMMENT 'option premium bot today;=sum[(max(0, opr.optVolMark - opr.loBound) * opr.pointValue) * opr.cnBot]',
`opPremSld` FLOAT NOT NULL DEFAULT 0 COMMENT 'option premium sld today;=sum[(max(0, opr.optVolMark - opr.loBound) * opr.pointValue) * opr.cnSld]',
`maxOptDttm` DATETIME(6) NOT NULL DEFAULT '1900-01-01 00:00:00.000000' COMMENT 'DateTime of most recent SpdrOptionExecution (if any)',
`opPnlVol` DOUBLE NOT NULL DEFAULT 0 COMMENT 'Option Open Pnl (SR vol marks); =sum[opr.opnPnlVolMark]',
`opPnlMid` DOUBLE NOT NULL DEFAULT 0 COMMENT 'Option Open Pnl (SR mid marks); =sum[opr.opnPnlMidMark]',
`opPnlClr` DOUBLE NOT NULL DEFAULT 0 COMMENT 'Option Open Pnl (CLR marks); =sum[opr.opnPnlClrMark]',
`opPnlBrk` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Mark Break (catch-up) Pnl (SR vol marks to CLR marks);=sum[(opr.cnOpnClr * opr.pointValue) * (opr.optVolMark - opr.optClrMark)]',
`opPnlDay` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Day Pnl;=sum[opr.dayPnl]',
`opDnPnlDay` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option DN Day Pnl (delta neutral);=sum[opr.dnDayPnl]',
`opDayVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'option vega traded today',
`opDayWVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'option (vol weighted) vega traded today',
`opDayTVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'option (time weighted) vega traded today',
`opDayWtVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'option (vol time weighted) vega traded today',
`opDayTheta` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Day Theta;=sum[opr.th * ((opr.cnBot - opr.cnSld) * opr.pointValue)]',
`opDayDelta` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Day Delta;=sum[opr.de * ((opr.cnBot - opr.cnSld) * opr.underliersPerCn)]',
`opTrdDelta` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Trade Delta (delta fixed at time of trade);=sum[opr.trdDelta]',
`opnDelta` FLOAT NOT NULL DEFAULT 0,
`opnDDelta` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position ($) Open Delta (Open Positions + Open Hedge Trades Only)',
`contHedgePnl` FLOAT NOT NULL DEFAULT 0 COMMENT 'Estimated continuous hedging pnl (open positions only) [~1 minute intervals]',
`contHedgePnl1` FLOAT NOT NULL DEFAULT 0 COMMENT 'Estimated continuous hedging pnl (open positions only) [~10 minute intervals]',
`opEdgeOpened` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Edge Opened (new risk);=sum[opr.edgeOpened]',
`opEdgeClosed` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Edge Closed (new risk);=sum[opr.edgeClosed]',
`pnlDn` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: delta neutral pnl: =sum[volPnl - shClrM * dUPrc * opr.dePr]',
`pnlDe` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: delta pnl;=sum[shClrM * dUPrc * opr.dePr]',
`pnlSl` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: slope pnl;=sum[shClrM * dUPrc * opr.vePr * opr.slPr]',
`pnlGa` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: gamma pnl;=sum[shClrM * 0.5 * dUPrc * dUPrc * (opr.ga + opr.gaPr)/2]',
`pnlTh` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: theta pnl;=sum[shClrM * dTime * -opr.thPr]',
`pnlVe` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: vega pnl;=sum[shClrM * 100 * dVol * opr.vePr]',
`pnlVo` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: volga pnl;=sum[shClrM * 0.5 * 100 * 100 * dVol * dVol * opr.voPr]',
`pnlVa` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: vanna pnl;=sum[shClrM * 100 * dVol * dUPrc * opr.vaPr]',
`pnlErr` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: error (unexplained) pnl;=sum[shClrM * (volPnl - pnlDe - pnlGa - pnlTh - pnlVe)]',
`pnlRate` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: rate pnl;=sum[shClrM * 100 * dRate * opr.rhPr]',
`pnlSDiv` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: sdiv pnl;=sum[shClrM * 100 * dSDiv * opr.phPr]',
`pnlDDiv` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: ddiv pnl;=sum[shClrM * 100 * (opr.ddiv - opr.ddivPr) / opr.uPrc * opr.phPr]',
`pnlTe` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Pnl Attr: theo edge pnl;=sum[shClrM * ((opr.tOpx - opr.optVolMark) - (opr.tOpxPr - opr.optOpnVolMark))]',
`pctIvChange` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Avg IVol Change (Numerator);=sum[abs(shClrM) * opr.ve * log(opr.iVol/opr.iVolPr)]',
`pctIvVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Avg IVol Change (Denominator);=sum[abs(shClrM) * opr.ve]',
`pctTvChange` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Avg TVol Change (Numerator);=sum[abs(shClrM) * opr.ve * log(opr.tVol/opr.tVolPr)]',
`pctTvVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Avg TVol Change (Denominator);=sum[abs(shClrM) * opr.ve]',
`futWidthMny` FLOAT NOT NULL DEFAULT 0 COMMENT 'Future Market Width Value;=sum[0.5 * abs(fcCurPosM) * (fpr.futAsk - fpr.futBid)]',
`optWidthMny` FLOAT NOT NULL DEFAULT 0 COMMENT 'Option Market Width Value;=sum[0.5 * abs(shCurPosM) * (opr.optAsk - opr.optBid)]',
`dayDDelta` FLOAT NOT NULL DEFAULT 0 COMMENT 'Day $Delta (bot or sld;all sources) today;',
`delta` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Delta;=sum[shCurPos] + sum[fcCurPosM] + sum[shCurPosM * opr.de] + sum[other.delta]',
`ddelta` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position $Delta (Delta * DDMult)',
`deDecay` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position DeltaDecay;=sum[shCurPosM * opr.deDecay] + sum[other.deDecay]',
`ddDecay` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position $DeltaDecay (DeltaDecay * DDMult) [change in $delta when one trading day (1.0/252.0) is taken out of option pricing]',
`gamma` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Gamma;=sum[shCurPosM * opr.ga] + sum[other.gamma]',
`dGamma` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position $Gamma',
`theta` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Theta;=sum[shCurPosM * opr.th] + sum[other.theta]',
`rho` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Rho;=sum[shCurPosM * opr.rh] + sum[other.rho]',
`vega` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Vega;=sum[shCurPosM * opr.ve] + sum[other.vega]',
`tVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Time Weight Vega;=sum[shCurPosM * opr.ve / sqrt(max(0.1, opr.years * 4))]',
`wVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Vol Weighted Vega;=sum[shCurPosM * opr.iVol * opr.ve]',
`wtVega` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Vol Time Weighted Vega;=sum[shCurPosM * opr.iVol * opr.ve / sqrt(max(0.1, opr.years * 4))]',
`ivolVe` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Avg Vol Numerator (vega weighted) (avg = ivolVe / avega);=sum[abs(shCurPosM) * opr.iVol * opr.ve]',
`volga` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Volga;=sum[shCurPosM * opr.vo] + sum[other.volga]',
`vanna` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Vanna;=sum[shCurPosM * opr.va] + sum[other.vanna]',
`slope` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position VegaDelta (uPrc/Vol correlation factor);=sum[shCurPosM * opr.sl * opr.ve] + sum[other.slope]',
`avega` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Postion Abs Vega;=sum[abs(shCurPosM ) * opr.ve]',
`atheta` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Postion Abs Theta;= sum[abs(shCurPosM) * opr.th]',
`hedgeGamma` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Postion Hedge Gamma (either iVol or tVol based;can go binary);=sum[shCurPos * opr.hedgeGa]',
`hedgeDGamma` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Postion Hedge $Gamma',
`premOvPar` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Premium Over Parity;=sum[shCurPosM * max(0, opr.optVolMark - opr.loBound)]',
`wtVeDd` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Dd Time Weighted Vega;=sum[wtVega] if opr.xde < -0.30',
`wtVeDn` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Dn Time Weighted Vega;=sum[wtVega] if -0.30 <= opr.xde < -0.10',
`wtVeAt` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate At Time Weighted Vega;=sum[wtVega] if abs(opr.xde) <= 0.10',
`wtVeUp` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Up Time Weighted Vega;=sum[wtVega] if +0.10 < opr.xde <= +0.30',
`wtVeDu` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Du Time Weighted Vega;=sum[wtVega] if +0.30 < opr.xde',
`wtVeM1` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate M1 Time Weighted Vega; =sum[wtVega] if days < 10',
`wtVeM2` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate M2 Time Weighted Vega; =sum[wtVega] if 10 < days < 25',
`wtVeM3` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate M3 Time Weighted Vega; =sum[wtVega] if 25 < days < 65',
`wtVeM4` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate M4 Time Weighted Vega; =sum[wtVega] if 65 < days < 130',
`wtVeM5` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate M5 Time Weighted Vega; =sum[wtVega] if 130 < days',
`pinXX` FLOAT NOT NULL DEFAULT 0 COMMENT 'Pin Strike nearest to current uPrc (zero = none) (only exists near expirations)',
`opnDeBelow` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Open Delta (Open Positions + Open Hedge Trades Only) if liveUPrc < pinXX',
`opnDeAbove` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Open Delta (Open Positions + Open Hedge Trades Only) if liveUPrc > pinXX',
`opnDDeBelow` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position ($) Open Delta (Open Positions + Open Hedge Trades Only) if liveUPrc < pinXX',
`opnDDeAbove` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position ($) Open Delta (Open Positions + Open Hedge Trades Only) if liveUPrc > pinXX',
`posDeBelow` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Hedge Delta (Current Position) if liveUPrc < pinXX',
`posDeAbove` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Hedge Delta (Current Position) if liveUPrc > pinXX',
`posDDeBelow` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Hedge Delta (Current Position) if liveUPrc < pinXX',
`posDDeAbove` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Hedge Delta (Current Position) if liveUPrc > pinXX',
`posHedgeDeltaEx` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position Hedge Delta (Current Position) if exDate != today',
`posHedgeDDeltaEx` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Position ($) Hedge Delta (Current Position) if exDate != today',
`tEdge` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate $ Theo Edge;=sum[shNetPosM * (opr.tOpx - opr.optVolMark)] if opr.tVol > 0.01 and opr.tOpx > 0.0 and opr.optVolMark > 0.0',
`tEdgeMult` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Abs Net Contracts (Rev/Conv contracts removed);= sum[abs(shNetPosM)]',
`tEdgePr` FLOAT NOT NULL DEFAULT 0 COMMENT 'Prior Day $ Theo Edge',
`tEdgeMultPr` FLOAT NOT NULL DEFAULT 0 COMMENT 'Prior Day Aggregate Abs Net Contracts',
`numTVolErrors` SMALLINT NOT NULL DEFAULT 0 COMMENT 'number of opr.tErr != 0 or opr.tVol < 0.01',
`pairPnl` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Dn Pair Pnl;=sum[shNetClrM * (opr.optVolMark - opr.optOpnVolMark - opr.hedgeDePr * (opr.uMark - opr.uOpnMark))]',
`posTEdgeWV` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Vol Weighted Vega (wvega) where (opr.tOpx > 0 and (opr.tOpx - opr.optVolMark) >= 0)',
`negTEdgeWV` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Vol Weighted Vega (wvega) where (opr.tOpx > 0 and (opr.tOpx - opr.optVolMark) < 0)',
`badTEdgeWV` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Vol Weighted Vega (wvega) where (opr.tOpx = 0)',
`posTEdgePnl` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Dn Pair Pnl where (opr.tOpxPr > 0 and (opr.tOpxPr - opr.priorOpxVolMark) >= 0)',
`negTEdgePnl` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Dn Pair Pnl where (opr.tOpxPr > 0 and (opr.tOpxPr - opr.priorOpxVolMark) < 0)',
`badTEdgePnl` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Dn Pair Pnl where (opr.tOpxPr = 0)',
`span01` FLOAT NOT NULL DEFAULT 0 COMMENT 'span1: uPrc=unch, vol=up',
`span02` FLOAT NOT NULL DEFAULT 0 COMMENT 'span2: uPrc=unch, vol=down',
`span03` FLOAT NOT NULL DEFAULT 0 COMMENT 'span3: uPrc=+33.33%, vol=up',
`span04` FLOAT NOT NULL DEFAULT 0 COMMENT 'span4: uPrc=+33.33%, vol=dn',
`span05` FLOAT NOT NULL DEFAULT 0 COMMENT 'span5: uPrc=-33.33%, vol=up',
`span06` FLOAT NOT NULL DEFAULT 0 COMMENT 'span6: uPrc=-33.33%, vol=down',
`span07` FLOAT NOT NULL DEFAULT 0 COMMENT 'span7: uPrc=+66.67%, vol=up',
`span08` FLOAT NOT NULL DEFAULT 0 COMMENT 'span8: uPrc=+66.67%, vol=down',
`span09` FLOAT NOT NULL DEFAULT 0 COMMENT 'span9: uPrc=-66.67%, vol=up',
`span10` FLOAT NOT NULL DEFAULT 0 COMMENT 'span10: uPrc=-66.67%, vol=down',
`span11` FLOAT NOT NULL DEFAULT 0 COMMENT 'span11: uPrc=+100%, vol=up',
`span12` FLOAT NOT NULL DEFAULT 0 COMMENT 'span12: uPrc=+100%, vol=down',
`span13` FLOAT NOT NULL DEFAULT 0 COMMENT 'span13: uPrc=-100%, vol=up',
`span14` FLOAT NOT NULL DEFAULT 0 COMMENT 'span14: uPrc=-100%, vol=down',
`span15` FLOAT NOT NULL DEFAULT 0 COMMENT 'span15: uPrc=+300%; price slide * 0.33',
`span16` FLOAT NOT NULL DEFAULT 0 COMMENT 'span16: uPrc=-300%, price slide * 0.33',
`futLiqRisk` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Future Liquidation Risk',
`optLiqRisk` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Option Liquidation Risk',
`fcBotC0` INT NOT NULL DEFAULT 0 COMMENT 'hypothetical future contracts bot (~ 1 minute intervals)',
`fcSldC0` INT NOT NULL DEFAULT 0 COMMENT 'hypothetical future contracts sld',
`fcMnyC0` FLOAT NOT NULL DEFAULT 0 COMMENT 'hypothetical money',
`fcBotC1` INT NOT NULL DEFAULT 0 COMMENT 'hypothetical future contracts bot (~ 10 minute intervals)',
`fcSldC1` INT NOT NULL DEFAULT 0 COMMENT 'hypothetical future contracts sld',
`fcMnyC1` FLOAT NOT NULL DEFAULT 0 COMMENT 'hypothetical money',
`futMargin` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate Future Risk Margin',
`marginUDnVDn` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate RiskSlide: uPrc dn, vol dn',
`marginUDnVUp` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate RiskSlide: uPrc dn, vol up',
`marginUUpVDn` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate RiskSlide: uPrc up, vol dn',
`marginUUpVUp` FLOAT NOT NULL DEFAULT 0 COMMENT 'Aggregate RiskSlide: uPrc up, vol up',
`numFutErrors` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'number of futures positions with a computation error (should be zero)',
`numOptErrors` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'number of options positions with a computation error (should be zero)',
`updateSource` ENUM('None','Loop','Priority') NOT NULL DEFAULT 'None',
`futMarkFlag` VARCHAR(255) NOT NULL DEFAULT 'None' COMMENT 'Future position error flag',
`optMarkFlag` VARCHAR(255) NOT NULL DEFAULT 'None' COMMENT 'Option position error flag',
`timestamp` DATETIME(6) NOT NULL DEFAULT '1900-01-01 00:00:00.000000',
PRIMARY KEY USING HASH (`fkey_tk`,`fkey_yr`,`fkey_mn`,`fkey_dy`,`fkey_at`,`fkey_ts`,`accnt`,`tradeDate`,`riskSession`,`clientFirm`)
) ENGINE=SRSE DEFAULT CHARSET=LATIN1 COMMENT='FutureRiskSummary records contain live future level risk aggregation of OptionPositionRecord and FuturePositionRecord details.\nRecords are published if/when positions change and about once per minute otherwise.';