{"text_format":"3","workbook":"xlsx","n_sheets":17,"sheets":["Revision History","Version Changes","Deployment input","Output Summary","Voice recording storage","Screen recording storage","MCP","ICON","RP","Voice Processor","Muxer","RCS","RWS","Elasticsearch","Cassandra","WebDAV","SpeechMiner"],"not_rendered":{"defined_names":6,"comments":5},"read":"whole","date_system":"1900"}

{"sheet":"Revision History","index":0,"n_rows":20,"n_cols":4,"rows_kept":20,"merged":[[0,0,0,3]]}
["Revision History"]
["Date","Version","Description","Author"]
["2015-12-18",1,"Initial Publication","Henry Lum"]
["2016-03-16",{"v":2,"d":"2.0"},"Update to include performance data for voice/screen decryption through GWS ","Henry Lum"]
["2016-06-29",{"v":3,"d":"3.0"},"Update to account for RWS sizing after Jetty change.","Henry Lum"]
["2016-07-15",3.1,"Update RP sizing to account for Interaction Receiver improvements; added instructions","Henry Lum"]
["2016-12-02",3.2,"Fix GIR-8924","Henry Lum"]
["2017-03-24",3.3,"Added info about IVR Recording","Alex Lee"]
["2018-02-09",3.4,"Updated SpeechMiner tab with new results and new CPU models","David Konig"]
["2018-02-09",3.5,"Changed all \"HTCC\" to \"RWS\" to reflect product name change","Alex Lee"]
["2018-06-06",3.6,"Updated SpeechMiner tab when using new Elasticsearch for its index","Alex Lee"]
["2018-06-29",3.7,"Fix GIR-20849","Sathya Narayanan"]
["2018-08-03",3.8,"Fix GIR-21167, GIR-21815","Alex Lee"]
["2018-09-20",{"v":3.9,"d":"4 "},"Fix GIR-22739","Alex Lee"]
["2019-01-02",4.1,"Provide sizing info for Muxer and Voice Processor.  Fix GIR-21938, GIR-23771, GIR-22923, 22739","Alex Lee"]
["2019-04-01",4.2,"Updated maximum number of documents supported in Elasticsearch","Jamie Murison"]
["2019-04-08",4.3,"Updated SpeechMiner Elasticsearch content; separated RWS Elasticsearch from RWS as separate pages","Jamie Murison"]
["2019-10-16",4.4,"Fixed Output Summary \"Screen size required per day (GB)\"; adjusted ES disk usage to reflect V2 schema; added CPU information used for testing","Jamie Murison"]
["2020-04-06",4.5,"Clarified that Speechminer Elasticsearch Data nodes must use SSD storage","Jamie Murison"]
["2022-01-25",4.6,"Added an important note on the Cassandra tab.","Dmitriy Vakulenko / Marudhu Pandian"]

{"sheet":"Version Changes","index":1,"n_rows":15,"n_cols":6,"rows_kept":15,"merged":[[0,1,0,5]]}
["Version Changes","Version #"]
[null,"8.5.208.01","8.5.210.01","8.5.211.01","8.5.211.02","8.5.212.03"]
["Components"]
["MCP","x",{"$nulls":3},"x"]
["ICON","x"]
["Recording Processor","x",null,"x","x"]
["Recording Crypto Server","x","x"]
["RWS (formerly known as HTCC)","x","x",null,"x"]
["SpeechMiner","x"]
["Storage Sizing"]
["Voice Recording Storage and Network Bandwidth","x"]
["Screen Recording Storage and Network Bandwidth","x"]
["3rd Party Software"]
["Cassandra","x"]
["WebDAV (httpd)","x"]

{"sheet":"Deployment input","index":2,"n_rows":47,"n_cols":6,"rows_kept":47,"merged":[[1,0,1,4]]}
["Instructions"]
["Fill in all fields with orange or red. Use the default value if you are not sure what to enter. If you see a green checkmark next to \"All inputs entered?\" then the deployment input is complete. Incomplete fields are marked as red. The sizing output is in \"Output Summary\" view."]
[]
[]
["Total agents"]
[]
["Voice Agents",null,null,"IVR"]
["Concurrent agents being recorded",null,null,"Total IVR Ports",{"$f":"E12+E13","v":0}]
["Percentage of calls recorded",{"v":1,"d":"100%"},null,"IVR average duration",0]
["Busy hour agent interaction",{"v":0.8,"d":"80%"},null,"Busy hour calls",{"$f":"IF(E9>0,E8*3600/E9,0)","v":0}]
["Busy hour calls",{"$f":"B8*B10*3600/B15*B9","v":0},null,"Recordings per day",0]
["Recordings per day",null,null,"IVR Ports recorded using agent recording method with SIP  Server DN configuration",0]
["Peak interaction factor",{"v":1,"d":"1.0"},null,"IVR Ports recorded using VXML application-level control",0]
["Call attempts per second (Voice)",{"$f":"(1+B16+B17)*B11*B13/3600","v":{"v":0,"d":"0.00"}},null,"Number of MCP servers provisioned for IVR, based on GVP Sizing",0,{"$f":"IF(OR(AND(E14=0, E16<>0), AND(E14<>0,E16=0)),1,0)","v":0}]
["Average talk time (seconds)",240]
["Percentage of calls with call transfers (same site)",{"v":0.1,"d":"10%"},null,"Call attempts per second (IVR)",{"$f":"E10/3600","v":{"v":0,"d":"0.00"}}]
["Percentage of calls with call transfers (different site)",{"v":0,"d":"0%"}]
[]
["Voice Recording"]
["Total busy hour calls (voice + IVR)",{"$f":"B11+E10","v":0},null,"System Inputs"]
["Total CAPS",{"$f":"B14+E16","v":{"v":0,"d":"0.00"}},null,"Network interface speed (Mbps)",1000]
["Voice retention period (days)",360,null,"Disk IOPS provisioned for each server",150]
["Number of attached data per call",40]
["Concurrent Recording UI users for playback",50,null,"MCP Sizing Input"]
["Concurrent API users for playback",0,null,"Recording bitrate","16kbps mp3 (stereo)"]
[{"$nulls":3},"Encryption?","Encryption enabled"]
["Screen Recording for Voice Agents",null,null,"GIR or GIR+GIA?","GIR"]
["Percentage of screen recorded for voice interactions",{"v":0.2,"d":"20%"},null,"Operating System","Windows 2008 R2"]
["Screen recording upload CAPS",{"$f":"B14*B28","v":{"v":0,"d":"0.00"}},null,"CPU cores per VM (up to 8)",8]
["Average duration of after call work (s)",0]
[]
["Screen Recording for Non-Voice only Agents",null,null,"All inputs entered?",{"$f":"SUM(COUNTBLANK(B5),COUNTBLANK(B8:B17),COUNTBLANK(B20:B25),COUNTBLANK(B28:B30),COUNTBLANK(B33:B35),COUNTBLANK(B38:B41),COUNTBLANK(E8:E11),COUNTBLANK(E16),COUNTBLANK(E21:E22),COUNTBLANK(B44:B44))","v":3}]
["Non-voice agents",0]
["Average hours recorded per agent per day",0]
["Average file duration (minutes)",0]
[]
["Screen Recording"]
["Video quality","low (color)"]
["Upload window (hours per day; zero for immediate)",0]
["Video retention period (days)",90]
["Concurrent SpeechMiner users for screen playback",50]
[]
["Speechminer Elasticsearch"]
["Number of replicas configured in Elasticsearch",1]
[]
["Metadata Processing"]
["Component used for Metadata Processing","Classic Recording Processor"]

{"sheet":"Output Summary","index":3,"n_rows":36,"n_cols":9,"rows_kept":36,"merged":[[33,5,34,12]]}
["All inputs entered?",{"$f":"'Deployment input'!E32","v":3}]
["Total number of ES document",{"$f":"'Deployment input'!B12*'Deployment input'!B22*('Deployment input'!B23+1)","v":0}]
["Is the sizing within the size limit of this spreadsheet?",{"$f":"IF(B2<24000000000,1,0)","v":1},"Note: This sizing spreadsheet should only be used when the total number of Elasticsearch documents are within 24 billion records.  Please contact GIR Engineering team if the number of ES documents exceeds this number"]
[]
["Voice Recording Storage"]
["Voice size required per day (GB)",{"$f":"'Voice recording storage'!B20","v":0}]
["Voice size required for retention (GB)",{"$f":"'Voice recording storage'!B21","v":0},{"$f":"CONCATENATE(CEILING(B7/1024, 1), \" TB\")","v":"0 TB"}]
[]
["Screen Recording Storage"]
["Screen size required per day (GB)",{"$f":"'Screen recording storage'!B38","v":0}]
["Screen size required for retention (GB)",{"$f":"'Screen recording storage'!B39","v":0},{"$f":"CONCATENATE(CEILING(B11/1024, 1), \" TB\")","v":"0 TB"}]
[]
["Screen recording client upload bandwidth (Mbps)",{"$f":"'Screen recording storage'!B46","v":0}]
[]
[]
["Component sizing output","CPU","Memory (MB)","IOPS","Disk space (GB)","Network bandwidth (Mbps)","# of instances required","Servers needed","Cores per VM"]
["Classic RP (per instance)",{"$f":"RP!B19","v":{"v":0.24,"d":"24%"}},{"$f":"RP!C19","v":{"v":50.19,"d":"50"}},{"$f":"RP!B6","v":60},null,null,{"$f":"RP!E19","v":0}]
["Docker Voice Processor (per instance)",{"$f":"'Voice Processor'!B15","v":{"v":0,"d":"0%"}},{"$f":"'Voice Processor'!C15","v":0},"n/a","n/a","negligible",{"$f":"'Voice Processor'!D15","v":0},{"$f":"'Voice Processor'!D15","v":0},{"$f":"CEILING(RP!B19,1)","v":1}]
["Muxer",{"$f":"Muxer!B11","v":{"v":1.5,"d":"150%"}},{"$f":"Muxer!C11","v":2048},{"$f":"Muxer!D11","v":200},{"$f":"Muxer!E11","v":120},{"$f":"Muxer!F11","v":0},{"$f":"Muxer!G11","v":0},null,2]
["RCS (per instance)",{"$f":"RCS!B21","v":{"v":0.05998969999999999,"d":"6%"}},{"$f":"RCS!C21","v":600},null,120,{"$f":"RCS!D21","v":7.32421875}]
["RWS (per instance)",{"$f":"RWS!D57","v":{"v":0.024020833333333335,"d":"2%"}},{"$f":"RWS!B6*1024","v":8192},null,120,{"$f":"'Screen recording storage'!B46*2/3","v":0},3,null,{"$f":"RWS!B5","v":4}]
["Elasticsearch (per instance)",null,{"$f":"Elasticsearch!B6*1024","v":16384},null,{"$f":"Elasticsearch!B27","v":0},null,3,null,{"$f":"Elasticsearch!B5","v":4}]
["Cassandra (per instance)",{"$f":"Cassandra!B29","v":{"v":0,"d":"0%"}},{"$f":"Cassandra!C29","v":2076},{"$f":"Cassandra!D29","v":8},{"$f":"Cassandra!E29","v":0},null,3]
["MCP for agent-like recording (per server)",null,null,{"$f":"MCP!B28","v":{"v":59.190000000000005,"d":"59"}},null,{"$f":"MCP!B29+'Voice recording storage'!B27","v":{"v":76.75,"d":"77"}},null,{"$f":"MCP!B27","v":0},{"$f":"'Deployment input'!E29","v":8}]
["Additional MCPs for IVR recording (per server).\nThis is in addition to the MCPs already provisioned\nfrom GVP sizing as needed for IVR purposes ",null,null,{"$f":"MCP!B38","v":{"v":268.8,"d":"269"}},null,{"$f":"MCP!B39+'Voice recording storage'!B27","v":385},null,{"$f":"MCP!B36","v":0},{"$f":"'Deployment input'!E29","v":8}]
["Apache httpd WebDAV",{"$f":"WebDAV!B16","v":{"v":0,"d":"0%"}},null,{"$f":"WebDAV!C16","v":0},"refer to recording storage",{"$f":"'Screen recording storage'!B47+'Voice recording storage'!B27","v":0}]
[]
[]
["SpeechMiner Server Recommendations for GIR","CPU","RAM","Disk space (GB)","Servers needed"]
["UPlatform (Scheduler)",{"$f":"SpeechMiner!B20","v":"Dual 8-Core Xeon Silver 4110 2.1GHz"},{"$f":"SpeechMiner!C20","v":"16GB"},160,2]
["Interaction Receiver",{"$f":"SpeechMiner!B21","v":"Dual 8-Core Xeon Silver 4110 2.1GHz"},{"$f":"SpeechMiner!C21","v":"16GB"},160,{"$f":"SpeechMiner!B44","v":0}]
["Web",{"$f":"SpeechMiner!B21","v":"Dual 8-Core Xeon Silver 4110 2.1GHz"},{"$f":"SpeechMiner!C21","v":"16GB"},160,{"$f":"SpeechMiner!B43","v":1}]
["Database",{"$f":"SpeechMiner!B41","v":"Dual 8-Core Xeon Silver 4110 2.1GHz"},{"$f":"SpeechMiner!C41","v":"16GB"},{"$f":"160+SpeechMiner!B17+SpeechMiner!C17+SpeechMiner!D17","v":177.5},1]
["Elasticsearch Master nodes",{"$f":"SpeechMiner!B28","v":"4-Core Xeon Silver 4112  2.6 GHz "},{"$f":"SpeechMiner!C28","v":"8GB"},160,{"$f":"SpeechMiner!B45","v":3},"NOTE: Elasticsearch Data nodes must use SSD storage. In cases where there are less than 5 Elasticsearch Data nodes, you can put the Master nodes and the Data nodes on the same machine.  E.g. if you need 2 Data nodes, then you need two Data node machines and one Master node machine. "]
["Elasticsearch Data nodes",{"$f":"SpeechMiner!B29","v":"Dual 8-Core Xeon Silver 4110  2.1 GHz "},{"$f":"SpeechMiner!C29","v":"64GB"},{"$f":"160+SpeechMiner!B48","v":160},{"$f":"SpeechMiner!B46","v":2}]
["Indexer",{"$f":"SpeechMiner!B27","v":"4-Core Xeon Silver 4112  2.6 GHz"},{"$f":"SpeechMiner!C27","v":"8GB"},160,2]

{"sheet":"Voice recording storage","index":4,"n_rows":27,"n_cols":3,"rows_kept":27}
["Audio Quality"]
["16kbps mp3 (stereo)",16]
["8kbps mp3 (mono)",8]
[]
["mp3 bitrate for calculation",{"$f":"IF('Deployment input'!E25='Voice recording storage'!A2,'Voice recording storage'!B2,'Voice recording storage'!B3)","v":16}]
[]
["Voice Agents"]
["Calls per day",{"$f":"'Deployment input'!B12","v":0}]
["Average voice file length (s)",{"$f":"'Deployment input'!B15","v":240}]
["Average voice file size (KB)",{"$f":"B9*B5/8","v":480}]
["Recording size per day (MB)",{"$f":"$B$8*$B$9*$B$5/8/1024","v":0},{"$f":"CONCATENATE(CEILING(B11/1024, 1), \" GB\")","v":"0 GB"}]
[]
["IVR"]
["Calls per day",{"$f":"'Deployment input'!E11","v":0}]
["Average file length (s)",{"$f":"'Deployment input'!E9","v":0}]
["Recording size per day (MB)",{"$f":"B14*B15*B5/8/1024","v":0},{"$f":"CONCATENATE(CEILING(B16/1024, 1), \" GB\")","v":"0 GB"}]
[]
["Output"]
["Voice retention period (days)",{"$f":"'Deployment input'!B22","v":360}]
["Total size required per day (GB)",{"$f":"(B11+B16)/1024","v":0}]
["Total size required for retention (GB)",{"$f":"(B11+B16)/1024*B19","v":0},{"$f":"CONCATENATE(CEILING(B21/1024, 1), \" TB\")","v":"0 TB"}]
[]
["Network Bandwidth Requirement"]
["Busy Hour agent calls",{"$f":"'Deployment input'!B11","v":0}]
["Busy Hour IVR calls",{"$f":"'Deployment input'!E10","v":0}]
["Busy hour total recording size (MB)",{"$f":"B24*B9*B5/8/1024 + B25*B15*B5/8/1024","v":0}]
["MCP to WebDAV (Mbps)",{"$f":"B26/3600*8","v":0}]

{"sheet":"Screen recording storage","index":5,"n_rows":47,"n_cols":4,"rows_kept":47}
["Video Quality","Kbps","KB/minute","KB/Min with voice"]
["off",0,0,0]
["low (grayscale)",83,{"$f":"B3/8*60","v":622.5},{"$f":"C3+'Voice recording storage'!$B$5/8*60","v":742.5}]
["standard (grayscale)",100,750,{"$f":"C4+'Voice recording storage'!$B$5/8*60","v":870}]
["high (grayscale)",121,907.5,{"$f":"C5+'Voice recording storage'!$B$5/8*60","v":1027.5}]
["low (color)",118,885,{"$f":"C6+'Voice recording storage'!$B$5/8*60","v":1005}]
["standard (color)",144,1080,{"$f":"C7+'Voice recording storage'!$B$5/8*60","v":1200}]
["high (color)",187,1402.5,{"$f":"C8+'Voice recording storage'!$B$5/8*60","v":1522.5}]
[]
["Screen Recording for Voice"]
["bitrate for this deployment",{"$f":"VLOOKUP('Deployment input'!B38,A2:B8,2,FALSE)","v":118}]
["Recording size KB/minute",{"$f":"VLOOKUP('Deployment input'!B38,A2:D8,4,FALSE)","v":1005}]
["Busy hour agent calls",{"$f":"'Deployment input'!B11","v":0}]
["Number of agents",{"$f":"'Deployment input'!B8","v":0}]
["Number of calls per day",{"$f":"'Deployment input'!B12","v":0}]
["Percentage of screen recorded for voice interactions",{"$f":"'Deployment input'!B28","v":{"v":0.2,"d":"20%"}}]
["Average voice recording duration",{"$f":"'Deployment input'!B15","v":240}]
["Average ACW",{"$f":"'Deployment input'!B30","v":0}]
["Average screen recording duration (s)",{"$f":"SUM(B17:B18)","v":240}]
["Average raw screen file size (KB)",{"$f":"B19*VLOOKUP('Deployment input'!B38,A2:D8,3,FALSE)/60","v":3540}]
["Average muxed screen file size (KB)",{"$f":"B19*B12/60","v":4020}]
["Video retention period (days)",{"$f":"'Deployment input'!B40","v":90}]
["Video recording duration during busy hour (s)",{"$f":"(B13*B16*B19)","v":0}]
["Video recording uploaded per day (MB)",{"$f":"B15*B19*B11/1024/8*B16","v":0},{"$f":"CONCATENATE(CEILING(B24/1024, 1), \" GB\")","v":"0 GB"}]
["Total storage per day - muxed with audio",{"$f":"B15*B19/60*B12/1024*B16","v":0},{"$f":"CONCATENATE(CEILING(B25/1024, 1), \" GB\")","v":"0 GB"}]
[]
["Screen Recording for Non-Voice"]
["Recording size KB/minute",{"$f":"VLOOKUP('Deployment input'!B38,A2:D8,3,FALSE)","v":885}]
["Number of agents",{"$f":"'Deployment input'!B33","v":0}]
["Average duration per day per agent (hours)",{"$f":"'Deployment input'!B34","v":0}]
["Video size per agent per day (MB)",{"$f":"B30*60*B28/1024","v":0}]
["Video recording duration during busy hour (s)",{"$f":"B29*3600","v":0}]
["Video recording per day (MB)",{"$f":"B31*B29","v":0},{"$f":"CONCATENATE(CEILING(B33/1024, 1), \" GB\")","v":"0 GB"}]
[]
["Screen Recording"]
["Retention period",{"$f":"'Deployment input'!B40","v":90}]
["Total recording uploaded per day (GB)",{"$f":"(B24+B33)/1024","v":0}]
["Total storage per day (GB)",{"$f":"(B25+B33)/1024","v":0}]
["Total storage required for retention (GB)",{"$f":"B38*B36","v":0},{"$f":"CONCATENATE(CEILING(B39/1024, 1), \" TB\")","v":"0 TB"}]
[]
[]
["Network Bandwidth Requirement"]
["Upload window",{"$f":"'Deployment input'!B39","v":0}]
["Busy hour total screen recording duration(s)",{"$f":"B23+B32","v":0}]
["Busy hour total bandwidth (Mbps)",{"$f":"B44*B11/1024/3600","v":0}]
["Screen recording client to RWS (Mbps)",{"$f":"IF(B43=0,B45,B37*1024*8/(B43*3600))","v":0}]
["RWS to WebDAV",{"$f":"B46","v":0}]

{"sheet":"MCP","index":6,"n_rows":39,"n_cols":6,"rows_kept":39,"merged":[[19,0,19,1],[29,0,29,1]]}
["Keywords"]
["CPU Model: Xeon Ivy Bridge family, 2.4 GHz, or better"]
["Operating System","Encryption?","GIR or GIR+GIA?","Recording Format"]
["Windows 2008 R2","No encryption","GIR","16kbps mp3 (stereo)"]
["RHEL 6","Encryption enabled","GIR+GIA","8kbps mp3 (mono)"]
[]
["Port Density Factors","Baseline","IVR Recording Baseline","Encryption","mp3+wav","8kbps mp3 mono"]
["Windows 2008 R2",43.75,220,{"v":0.875,"d":"87.50%"},{"v":0.6,"d":"60%"},{"v":1.2857,"d":"128.57%"}]
["RHEL 6",37.5,220,{"v":1,"d":"100%"},{"v":0.6,"d":"60%"},{"v":2,"d":"200%"}]
[]
["Disk IOPS","c","k"]
["Windows 2008 R2",7,0.17]
["RHEL 6",7,0.2]
[]
[]
["Input Parameters"]
["Encryption",{"$f":"IF('Deployment input'!E26=MCP!B4,100%,IF('Deployment input'!E28=MCP!A4,MCP!D8,MCP!D9))","v":{"v":0.875,"d":"88%"}}]
["mp3+wav",{"$f":"IF('Deployment input'!E27=MCP!C4,100%,IF('Deployment input'!E28=MCP!A4,MCP!E8,MCP!E9))","v":{"v":1,"d":"100%"}}]
["recording format",{"$f":"IF('Deployment input'!E25=MCP!D4,100%,IF('Deployment input'!E28=MCP!A4,F8,F9))","v":{"v":1,"d":"100%"}}]
["Agent -like recordings"]
["Baseline",{"$f":"IF('Deployment input'!E28 = A4, B8,B9)","v":43.75}]
["Derived density",{"$f":"B21*B17*B18*B19","v":{"v":38.28125,"d":"38.3"}}]
["Concurrent agent-like recordings",{"$f":"'Deployment input'!B8+'Deployment input'!E12","v":0}]
["core per CPU",{"$f":"IF('Deployment input'!E29>8,0,'Deployment input'!E29)","v":8}]
["Ports per server",{"$f":"CEILING(B22*B24,1)","v":307}]
["Servers needed (no HA)",{"$f":"CEILING(B23/B25,1)","v":0}]
["Servers needed (HA)",{"$f":"CEILING(B26/10,1)+B26","v":0}]
["Disk IOPS per server",{"$f":"IF('Deployment input'!E28=MCP!A4,B12+MCP!B25*MCP!C12*IF('Deployment input'!E27=MCP!C4,1,2),B13+B25*C13*IF('Deployment input'!E27=C4,1,2))","v":59.190000000000005}]
["G711 bandwidth for bridging (Mbps)",{"$f":"B25*4*64/1024","v":76.75}]
["VXML application-level control IVR recordings"]
["IVR Recording Baseline",{"$f":"IF('Deployment input'!E28 = A4, C8,C9)","v":220}]
["Derived density",{"$f":"B31*B17*B18*B19","v":192.5}]
["Concurrent VXML application-level controlled recordings",{"$f":"'Deployment input'!E13","v":0}]
["core per CPU",{"$f":"IF('Deployment input'!E29>8,0,'Deployment input'!E29)","v":8}]
["Ports per server",{"$f":"CEILING(B32*B34,1)","v":1540}]
["Additional MCP servers for IVR recordings needed",{"$f":"CEILING(B33/B35,1)","v":0}]
["Total MCP servers needed",{"$f":"B36+'Deployment input'!E14","v":0}]
["Additional Disk IOPS per server",{"$f":"IF('Deployment input'!E28=MCP!A4,B12+MCP!B35*MCP!C12*IF('Deployment input'!E27=MCP!C4,1,2),B13+B35*C13*IF('Deployment input'!E27=C4,1,2))*IF(B37=0,1,B36/B37)","v":268.8}]
["Additional G711 bandwidth for bridging (Mbps)",{"$f":"B35*4*64/1024*IF(B37=0,1,B36/B37)","v":385}]

{"sheet":"ICON","index":7,"n_rows":35,"n_cols":9,"rows_kept":35}
["Configurations","Configuration 1"]
["VM instances",1]
["Core speed (Ghz)",2.4]
["Total cores ",4]
["Total RAM",8]
["Disk"]
["IOPS"]
["Host OS","ESX"]
["Guest OS","Ubuntu"]
[]
[]
["ICON DB (SQL Server)"]
["AHT","CAPS","CPU per core %","IO Read KB/sec","IO Write KB/sec","Mem (MB)","CPU/CAPS","IO read /CAPS","IO write /CAPS"]
[200,1,6.2,1.2,63,187,{"$f":"C14/B14","v":{"v":6.2,"d":"6.20"}},{"$f":"D14/$B14","v":1.2},{"v":63,"d":"63.0"}]
[100,2,13,2.6,112,185,{"$f":"C15/B15","v":{"v":6.5,"d":"6.50"}},1.3,{"v":56,"d":"56.0"}]
[67,3,15.6,3.3,193,185,{"$f":"C16/B16","v":{"v":5.2,"d":"5.20"}},{"v":1.0999999999999999,"d":"1.1"},{"v":64.33333333333333,"d":"64.3"}]
[]
["average CPU/CAPS",{"$f":"AVERAGE(G14:G16)","v":{"v":5.966666666666666,"d":"5.97"}}]
["memory usage",{"$f":"F16","v":{"v":185,"d":"185.00"}}]
["average IO read KB/sec per CAPS",{"$f":"AVERAGE(H14:H16)","v":{"v":1.2,"d":"1.20"}}]
["averge IO write KB/sec per CAPS",{"$f":"AVERAGE(I14:I16)","v":{"v":61.11111111111111,"d":"61.11"}}]
[]
["ICON"]
["AHT","CAPS","CPU per core %","Mem (MB)","CPU/CAPS"]
[200,1,0.75,53,{"$f":"C25/B25","v":{"v":0.75,"d":"0.750"}}]
[100,2,1.25,53,{"$f":"C26/B26","v":0.625}]
[67,3,1.75,53,{"$f":"C27/B27","v":{"v":0.5833333333333334,"d":"0.583"}}]
[{"$nulls":3},"Average CPU/CAPS",{"$f":"AVERAGE(E25:E27)","v":{"v":0.6527777777777778,"d":"0.653"}}]
[]
[]
["Input parameters"]
["CAPS",{"$f":"'Deployment input'!B21","v":{"v":0,"d":"0.00"}}]
[]
[null,"CPU","Memory"]
["ICON estimated usage ",{"$f":"$B$32*$E$28/100","v":{"v":0,"d":"0.00%"}}]

{"sheet":"RP","index":8,"n_rows":19,"n_cols":5,"rows_kept":19}
["Response time for RWS (s)",0.7]
["Response time for Interaction Receiver (s)",0.3]
["RP internal processing time + ICON (s)",0.5]
["Total RP processing time (s)",{"$f":"SUM(B1:B3)","v":1.5}]
["CAPS per RP instance",{"$f":"1/B4","v":0.6666666666666666}]
["IOPS per CAPS",60]
["Memory per instance (>5000 agents)",230]
["Memory per instance (<5000 agents)",50.19]
["Average CPU per instance (>5000 agents)",{"v":0.3,"d":"30%"}]
["Average CPU per instance (<5000 agents)",{"v":0.24,"d":"24%"}]
[]
["Input Parameters"]
["Number of agents",{"$f":"'Deployment input'!B5","v":0}]
["CAPS",{"$f":"'Deployment input'!B21","v":{"v":0,"d":"0.00"}}]
[]
[]
[]
[null,"CPU per instance","Memory (MB) per instance","IOPS per CAPS","Number of instances (no HA)"]
["RP estimated usage (total)",{"$f":"IF(B13>5000,B9,B10)","v":{"v":0.24,"d":"24.00%"}},{"$f":"IF(B13>5000,B7,B8)","v":50.19},{"$f":"B14*B6","v":{"v":0,"d":"0.00"}},{"$f":"CEILING(B14/B5,1)","v":0}]

{"sheet":"Voice Processor","index":9,"n_rows":15,"n_cols":4,"rows_kept":15}
["Keywords"]
["Classic Recording Processor","Docker Voice Processor"]
[]
["Constants"]
["% CPU usage per CAP",{"v":0.024,"d":"2.40%"}]
["Memory usage per CAP (MB)",50]
["Limit for CAP per Voice Processor instance",30]
[]
["Input Parameters"]
["Using Voice Processor?",{"$f":"IF('Deployment input'!B47 = B2,1,0)","v":0}]
["CAPS",{"$f":"'Deployment input'!B21","v":{"v":0,"d":"0.00"}}]
[]
[]
[null,"CPU per instance","Memory (MB) per instance","Number of instances (no HA)"]
["Voice Processor estimated usage (total)",{"$f":"B11*B5/MAX(1,D15)","v":{"v":0,"d":"0.00%"}},{"$f":"B11*B6/MAX(1,D15)","v":0},{"$f":"CEILING(B11/B7,1)","v":0}]

{"sheet":"Muxer","index":10,"n_rows":11,"n_cols":7,"rows_kept":11}
["CPU Model: Xeon Ivy Bridge  family, 2.0 GHz, or better"]
["Constants"]
["Max peak CAPS",5]
["Max peak data throughput (kbps)",80000]
[]
["Input Parameters"]
["Peak CAPS",{"$f":"'Deployment input'!B29","v":{"v":0,"d":"0.00"}}]
["Peak Data Throughput (kbps)",{"$f":"'Screen recording storage'!B21*8*B7","v":0}]
[]
[null,"CPU per instance","Memory (MB) per instance","IOPS","Disk Space (GB)","Network bandwidth (Mbps)","Number of instances (no HA)"]
["Muxer estimated usage (total)",{"v":1.5,"d":"150.00%"},{"$f":"2048","v":2048},200,120,{"$f":"B8/1024/MAX(1,G11)","v":0},{"$f":"ROUNDUP(MAX(B7/B3,B8/B4),0)","v":0}]

{"sheet":"RCS","index":11,"n_rows":21,"n_cols":4,"rows_kept":21}
["CPU Model: Xeon Ivy Bridge  family, 2.0 GHz, or better"]
["Average CPU per CAPS",{"v":0.1,"d":"10%"}]
["Average CPU per kbps (voice)",{"v":1.344E-5,"d":"0.0013440%"}]
["Average CPU per kbps (screen)",{"v":6.523e-06,"d":"0.0006523%"}]
[]
["Playback Input Parameters"]
["Total concurrent playback users (voice)",{"$f":"SUM('Deployment input'!$B$24:$B$25,'Deployment input'!$B$41)","v":100}]
["Playback bitrate (kbps)",{"$f":"'Voice recording storage'!B5","v":16}]
["Total concurrent playback users (screen)",{"$f":"'Deployment input'!B41","v":50}]
["Playback bitrate (kbps)",{"$f":"'Screen recording storage'!B11","v":118}]
["Total Playback bitrate",{"$f":"B7*B8+B9*B10","v":7500}]
["Muxer (retrieve) CAPS",{"$f":"RWS!B43","v":{"v":0,"d":"0.00"}}]
["Average audio files size (KB)",{"$f":"'Voice recording storage'!B10","v":480}]
["Average screen file size (KB)",{"$f":"'Screen recording storage'!B21","v":4020}]
[]
["Output"]
["RCS estimated usage ","CPU","Memory","Bandwidth (Mbps)"]
["Voice playback usage",{"$f":"B7*B8*B3","v":{"v":0.021504,"d":"2%"}},null,{"$f":"B7*B8/1024","v":1.5625}]
["Screen playback usage",{"$f":"B9*B10*B4","v":{"v":0.0384857,"d":"4%"}},null,{"$f":"B9*B10/1024","v":5.76171875}]
["Muxer usage",{"$f":"(B12*B13*8*B3)+(B12*B14*8*B4)","v":{"v":0,"d":"0%"}},null,{"$f":"(B12*B13*8+B12*B14*8)/1024","v":0}]
[null,{"$f":"SUM(B18:B20)","v":{"v":0.05998969999999999,"d":"6.00%"}},600,{"$f":"SUM(D18:D20)","v":7.32421875}]

{"sheet":"RWS","index":12,"n_rows":57,"n_cols":4,"rows_kept":57}
["RWS"]
["CPU Model: Xeon Haswell family, 2.4 GHz, or better"]
["Configurations","Profile 1"]
["VM instances",3]
["Total cores ",{"$f":"IF((B26+B32)>20,8,4)","v":4}]
["Total RAM (GB)",8]
["Disk"]
["IOPS"]
["Host OS","ESX"]
["Guest OS","RHEL6"]
[]
[]
[]
["Average CPU/CAPS (voice upload)",{"v":0.067,"d":"6.70%"}]
["Average CPU/CAPS (screen upload)",{"v":0.2809,"d":"28.09%"}]
["Average CPU/CAPS (voice playback)",{"v":0.1153,"d":"11.53%"}]
["Average CPU/CAPS (screen playback)",{"v":0.1576,"d":"15.76%"}]
["Memory base for voice (MB)",2480]
["Memory increase per voice CAPS (MB)",0.249]
["Memory base for screen (MB)",1750]
["Memory increase per screen CAPS (MB)",443]
["IOPS"]
[]
[]
["Voice Input Parameters"]
["Voice CAPS",{"$f":"'Deployment input'!B21","v":{"v":0,"d":"0.00"}}]
["Number of recordings per day",{"$f":"'Deployment input'!B12+'Deployment input'!E11","v":0}]
["Voice retention period (days)",{"$f":"'Deployment input'!B22","v":360}]
["Amount of records",{"$f":"B27*B28","v":0}]
[]
["Screen Input Parameters"]
["Screen CAPS",{"$f":"'Deployment input'!B29","v":{"v":0,"d":"0.00"}},"times this by 2"]
["Number of recordings per day",{"$f":"'Deployment input'!B12*'Deployment input'!B28","v":0}]
["Retention period (days)",{"$f":"'Deployment input'!B40","v":90}]
["Amount of records",{"$f":"B33*B34","v":0}]
[]
["Playback Input Parameters"]
["Voice playback duration (+ACW)",{"$f":"('Deployment input'!$B$15+'Deployment input'!$B$30)","v":240}]
["IVR playback duration",{"$f":"'Deployment input'!E9","v":{"v":0,"d":"0.00"}}]
["Total concurrent voice playback users",{"$f":"'Deployment input'!B24+'Deployment input'!B25","v":50}]
["Total concurrent screen playback users",{"$f":"'Deployment input'!B41","v":50}]
["Average playback duration (s)",{"$f":"AVERAGEIF(B38:B39,\">0\")","v":240}]
["Muxer (Retrieve) CAPS",{"$f":"IF(B32=0,0,B32)","v":{"v":0,"d":"0.00"}}]
["Muxer (update) CAPS",{"$f":"IF(B32=0,0,B32)","v":{"v":0,"d":"0.00"}}]
["Voice playback CAPS",{"$f":"B40/B38","v":{"v":0.20833333333333334,"d":"0.21"}}]
["Screen playback CAPS",{"$f":"B41/B38","v":{"v":0.20833333333333334,"d":"0.21"}}]
[]
[null,"Memory (MB)","IOPS"]
["RWS 3 node cluster",{"$f":"B18+2*((B26*B19)+(B32*B21))","v":2480},"Refer to cassandra"]
[null,"Average CPU/CAPS","CAPS","CPU"]
["Voice usage",{"$f":"B14","v":{"v":0.067,"d":"6.70%"}},{"$f":"B26","v":{"v":0,"d":"0.00"}},{"$f":"B51*C51","v":{"v":0,"d":"0.00%"}}]
["Screen usage",{"$f":"B15","v":{"v":0.2809,"d":"28.09%"}},{"$f":"B32","v":{"v":0,"d":"0.00"}},{"v":0,"d":"0.00%"}]
["Muxer (retrieve) usage",{"$f":"B16+B17","v":{"v":0.2729,"d":"27.29%"}},{"$f":"B43","v":{"v":0,"d":"0.00"}},{"v":0,"d":"0.00%"}]
["Muxer (update) usage",{"$f":"B14","v":{"v":0.067,"d":"6.70%"}},{"$f":"B44","v":{"v":0,"d":"0.00"}},{"v":0,"d":"0.00%"}]
["Voice Playback usage",{"$f":"B16","v":{"v":0.1153,"d":"11.53%"}},{"$f":"B45","v":{"v":0.20833333333333334,"d":"0.21"}},{"v":0.024020833333333335,"d":"2.40%"}]
["Screen Playback usage",{"$f":"B17","v":{"v":0.1576,"d":"15.76%"}},{"$f":"B46","v":{"v":0.20833333333333334,"d":"0.21"}},{"v":0.03283333333333333,"d":"3.28%"}]
["Total usage",null,null,{"$f":"SUM(D51:D55)","v":{"v":0.024020833333333335,"d":"2.40%"}}]

{"sheet":"Elasticsearch","index":13,"n_rows":27,"n_cols":2,"rows_kept":27}
["Elasticsearch used by RWS"]
["CPU Model: Xeon Haswell family, 2.3 GHz, or better"]
["Configurations","Profile 1"]
["VM instances",3]
["Cores per VM",{"$f":"IF((B11+B18)>20,8,4)","v":4}]
["RAM (GB) per VM",{"$f":"IF((B11+B18)>20,32,16)","v":16}]
["Configured heap size (GB)",{"$f":"IF((B11+B18)>20,16,8)","v":8}]
[]
[]
["Voice Input Parameters"]
["Voice CAPS",{"$f":"'Deployment input'!B21","v":{"v":0,"d":"0.00"}}]
["Number of attached data per call",{"$f":"'Deployment input'!B23","v":40}]
["Number of recordings per day",{"$f":"'Deployment input'!B12+'Deployment input'!E11","v":0}]
["Retention period (days)",{"$f":"'Deployment input'!B22","v":360}]
["Amount of records",{"$f":"B13*B14","v":0}]
[]
["Screen Input Parameters"]
["Screen CAPS",{"$f":"'Deployment input'!B29","v":{"v":0,"d":"0.00"}}]
["Number of recordings per day",{"$f":"'Deployment input'!B12*'Deployment input'!B28","v":0}]
["Retention period (days)",{"$f":"'Deployment input'!B40","v":90}]
["Amount of records",{"$f":"B19*B20","v":0}]
[]
[null,"Disk space (GB)"]
["Voice usage",{"$f":"((55*B12*B15)/1024/1024/1024)","v":0}]
["Screen usage",{"$f":"(800*B21)/1024/1024/1024","v":0}]
["Total usage (all indexes, no replication)",{"$f":"SUM(B24:B25)","v":0}]
["Total usage (per instance, allowing for replication)",{"$f":"2*B26/B4","v":0}]

{"sheet":"Cassandra","index":14,"n_rows":29,"n_cols":7,"rows_kept":29,"merged":[[1,6,28,18]]}
["CPU Model: Xeon Haswell family, 2.4 GHz, or better"]
["Configurations","Configuration 1",{"$nulls":4},"Important Note: Estimated size here represents the size of the expected unique records, after removal of duplicated records in SSTables as a result of the compaction process executed by Cassandra, based on its configuration made by the customer.\n \nThe default setting for Cassandra compaction is usually set to maintaining up to 4 SSTables before starting compaction. Cassandra administrators can change the compaction strategy.\n \nSo, depending on your setup and the number of updates that Cassandra will receive in relation to the existing records – you must estimate the  actual required amount of storage, based on the expected quantity and speed of additional SSTables creation, and the time at which the compactions will be executed. With the default setting for example, you must multiply the received value by 5 to be on the safe side, assuming 4 SSTables to be kept until the time of compaction and the new SSTable creation, which would be consolidating unique records with the most recently updated values.\n \nTherefore, it is your responsibility to use the expected Cassandra DB size, and adjust/multiply the value estimated here, according to your Cassandra setup.\n\nAlso supporting and maintaining the 3rd party Cassandra system in a healthy state is the responsibility of the administrators at the customer's site.\n \nMore info: When does the SSTable compaction occur?\n \nAs data continues to be written and updated, more immutable SSTable files are created. So the same record, with different versions of the data, may be found across the different SSTable files on disk. The system understands which of these records are the most current, and only responds to query requests with the latest version. However, without some way to remove the outdated records, the SSTable count and data volume stored would get very high, and the disks would fill up.\n \nCompaction is a process that writes a whole new file using data found across the extant SSTables. This process deduplicates obsolete records and only writes the most current changes for the same key on different SSTables, writing a new SSTable file. Deleted rows (indicated by a marker called a tombstone) or entire deleted columns are also cleaned up, and the process creates a new index for the compacted SSTable file.\n \nYou can find more information about Cassandra here: https://cassandra.apache.org."]
["VM instances"]
["Total cores "]
["Total RAM"]
["Disk"]
["IOPS"]
["Host OS"]
["Guest OS"]
[]
["Disk growth per 100K records (MB)",50]
["CPU",2.28]
["memory base",2076]
["memory per CAPS",0]
["IOPS base for voice",2]
["IOPS per CAPS (voice)",3.36]
["IOPS base for screen",6]
["IOPS per CAPS (screen)",1.11]
[]
["CAPS (voice)",{"$f":"'Deployment input'!B21","v":{"v":0,"d":"0.00"}}]
["CAPS (screen)",{"$f":"'Deployment input'!B29","v":{"v":0,"d":"0.00"}}]
["CAPS (muxer) updates same as screen",{"$f":"B21","v":{"v":0,"d":"0.00"}}]
["Total CAPS",{"$f":"SUM(B20:B22)","v":{"v":0,"d":"0.00"}}]
["Voice records during retention",{"$f":"RWS!B29","v":0}]
["Screen records durin retention",{"$f":"RWS!B35","v":0}]
[]
[]
[null,"CPU","Memory","IOPS","Disk space (GB)"]
["Cassandra estimated usage ",{"$f":"B23*B12/100","v":{"v":0,"d":"0.00%"}},{"$f":"B13 +B14*B23","v":2076},{"$f":"(B15+(B20+B22)*B16)+(B17+B22*B18)","v":{"v":8,"d":"8.00"}},{"$f":"SUM(B24:B25)/100000*B11/1024","v":0}]

{"sheet":"WebDAV","index":15,"n_rows":16,"n_cols":3,"rows_kept":16}
["CPU",18.26]
["Data written per write operation (KBytes)",4]
["Data read per read operation (KBytes)",100]
[]
["Total CAPS (voice+screen)",{"$f":"'Deployment input'!B21+'Deployment input'!B29","v":{"v":0,"d":"0.00"}}]
["Data rate for uploading voice recording (Kbytes/sec)",{"$f":"'Deployment input'!B21*'Voice recording storage'!B10","v":{"v":0,"d":"0.00"}}]
["Data rate for screen recording upload (Kbytes/sec)",{"$f":"'Deployment input'!B29*'Screen recording storage'!B20","v":{"v":0,"d":"0.00"}}]
["Data rate for Muxer to read recordings (Kbytes/sec)",{"$f":"'Deployment input'!B29*'Screen recording storage'!B21","v":{"v":0,"d":"0.00"}}]
["Data rate for Muxer to write recordings (Kbytes/sec)",{"$f":"'Deployment input'!B29*'Screen recording storage'!B21","v":{"v":0,"d":"0.00"}}]
["Data rate for voice playback (Kbytes/sec)",{"$f":"('Deployment input'!B24+'Deployment input'!B25)*'Voice recording storage'!B5/8","v":{"v":100,"d":"100.00"}}]
["Data rate for screen playback (Kbytes/sec)",{"$f":"'Deployment input'!B41*'Screen recording storage'!B12/60","v":{"v":837.5,"d":"837.50"}}]
["Total IOPS for read operations",{"$f":"(B8+B10+B11)/B3","v":{"v":9.375,"d":"9.38"}}]
["Total IOPS for write operations",{"$f":"(B6+B7+B9)/B2","v":{"v":0,"d":"0.00"}}]
[]
[null,"CPU","IOPS"]
["Apache httpd WebDAV estimated usage ",{"$f":"B5*B1/100","v":{"v":0,"d":"0.00%"}},{"$f":"B13","v":{"v":0,"d":"0.00"}}]

{"sheet":"SpeechMiner","index":16,"n_rows":48,"n_cols":4,"rows_kept":48}
["SpeechMiner DB initial size (GB)",10]
["Size increase per 100K records (GB)",0.1]
["Number of SpeechMiner Elasticsearch shards per Data Node",16]
["Disk space used per recording (Bytes)",{"$f":"300+(80*'Deployment input'!B23)","v":3500}]
["Number of recordings stored in SpeechMiner Elasticsearch per shard",30000000]
[]
["Number of recordings per day",{"$f":"'Deployment input'!B12+'Deployment input'!E11","v":0}]
["Voice retention period (days)",{"$f":"'Deployment input'!B22","v":360}]
["Amount of records",{"$f":"B7*B8","v":0}]
["Concurrent recorded agents",{"$f":"'Deployment input'!B8","v":0}]
["Concurrent SpeechMiner users for playback",{"$f":"'Deployment input'!B24","v":50}]
["CAPS",{"$f":"'Deployment input'!B21","v":0}]
["Number of copies of data stored in Elasticsearch",{"$f":"'Deployment input'!B44+1","v":2}]
["Total number of recording copies stored",{"$f":"B9*B13","v":0}]
[]
["SpeechMiner storage sizing","DB ( Data) ","DB ( log) ","DB ( Temp)"]
["Disk space required (GB)",{"$f":"B9/100000*B2+B1","v":{"v":10,"d":"10.00"}},{"$f":"0.5*B17","v":{"v":5,"d":"5.00"}},{"$f":"0.25*B17","v":{"v":2.5,"d":"2.50"}}]
[]
["SpeechMiner Server specification","CPU","RAM"]
["Uplatform","Dual 8-Core Xeon Silver 4110 2.1GHz","16GB"]
["Interaction Receiver","Dual 8-Core Xeon Silver 4110 2.1GHz","16GB"]
["Web","Dual 8-Core Xeon Silver 4110 2.1GHz","16GB"]
["DB (small)","Dual 8-Core Xeon Silver 4110 2.1GHz","16GB"]
["DB (medium)","Dual 8-Core Xeon Silver 4110 2.1GHz","32GB"]
["DB (large)","Dual 8-Core Xeon E5-4655 v4 2.5 GHz","64GB"]
["DB (xlarge)","Dual 16-Core Xeon E5-4660 v4 2.2 GHz","128GB"]
["Indexer","4-Core Xeon Silver 4112  2.6 GHz","8GB"]
["SpeechMiner Elasticsearch Master node","4-Core Xeon Silver 4112  2.6 GHz ","8GB"]
["SpeechMiner Elasticsearch Data node","Dual 8-Core Xeon Silver 4110  2.1 GHz ","64GB"]
[]
["SpeechMiner deployment size","Concurrent recorded agents"]
["small",260]
["medium",625]
["large",3000]
["xlarge",7000]
[]
["Number of Concurrent SpeechMiner users supported per server",120]
["Number of CAPS per  IR ",20]
[]
["Recommended DB Server size","CPU","RAM"]
[{"$f":"IF($B$10>$B$34,\"xlarge\",IF($B$10>$B$33,\"large\",IF($B$10>$B$32,\"medium\",\"small\")))","v":"small"},{"$f":"IF($B$10>$B$34,B$26,IF($B$10>$B$33,B$25,IF($B$10>$B$32,B$24,B$23)))","v":"Dual 8-Core Xeon Silver 4110 2.1GHz"},{"$f":"IF($B$10>$B$34,C$26,IF($B$10>$B$33,C$25,IF($B$10>$B$32,C$24,C$23)))","v":"16GB"}]
[]
["Recommended Web Server Quantity without High Availability",{"$f":"ROUNDUP(B11/B37,0)","v":1}]
["Recommended IR Quantity without High Availability",{"$f":"ROUNDUP(B12/B38,0)","v":0}]
["Recommended number of Elasticsearch Master Nodes with High Availability",3]
["Recommended number of Elasticsearch Data Nodes",{"$f":"ROUNDUP(MAX(2, B9/(B5*B3)),0)","v":2}]
["Recommended number of Indexer machines",2]
["Average disk usage per Elasticsearch Data Node (Gbytes)",{"$f":"B14*B4/B46/1000000000","v":0},"NOTE: Elasticsearch Data nodes must use SSD storage"]