This diagram shows how all input parameters flow through calculations to produce the final decision.
Arrows show directional influence: increases (+) or decreases (-).
The Optimization Preference slider controls weighting between cost-focused and throughput-focused metrics.
graph TD
%% === INPUT PARAMETERS (Blue) ===
RR[Request Rate]
RD[Request Duration]
SG[Speed Gain %]
TH[Time Horizon]
IT[Implementation Time]
MT[Maintenance Time]
CC[Compute Cost/Hour]
DR[Developer Hourly Rate]
OP["`โ๏ธ Optimization Preference
Slider`"]
%% === THROUGHPUT PATH (Green - benefits from optimization) ===
RR rre@==>|"increases (+)"| TTS[Total Time Saved]
rre@{ animate: true }
RD rde@==>|"increases (+)"| TTS
rde@{ animate: true }
SG sge@==>|"increases (+)"| TTS
sge@{ animate: true }
TH the@==>|"increases (+)"| TTS
the@{ animate: true }
TTS tts@==>|"increases (+)"| NB_T["`Net Benefit
Time-based`"]
tts@{ animate: true }
TTS tts2@==>|"increases (+)"| ROI_T["`ROI %
Time-based`"]
tts2@{ animate: true }
TTS ttsbe@-->|"decreases (-)"| BE_T["`Break-even
Time-based`"]
ttsbe@{ animate: true }
%% === COST PATH (Red - costs of optimization) ===
IT ite@==>|"increases (+)"| TC_T["`Total Cost
Time-based`"]
ite@{ animate: true }
MT mte@==>|"increases (+)"| TC_T
mte@{ animate: true }
TH the2@==>|"increases (+)"| TC_T
the2@{ animate: true }
TC_T tcnbt@-->|"decreases (-)"| NB_T
tcnbt@{ animate: true }
TC_T tcroit@-->|"decreases (-)"| ROI_T
tcroit@{ animate: true }
TC_T tc_t@==>|"increases (+)"| BE_T
tc_t@{ animate: true }
%% === MONETARY PATH (Purple - financial impact) ===
TTS tts3@==>|"increases (+)"| CCS["`Compute Cost
Savings`"]
tts3@{ animate: true }
CC cc@==>|"increases (+)"| CCS
cc@{ animate: true }
IT ite2@==>|"increases (+)"| TC_M["`Total Cost
Money-based`"]
ite2@{ animate: true }
MT mte2@==>|"increases (+)"| TC_M
mte2@{ animate: true }
DR dre@==>|"increases (+)"| TC_M
dre@{ animate: true }
TH the3@==>|"increases (+)"| TC_M
the3@{ animate: true }
CCS ccs@==>|"increases (+)"| NB_M["`Net Benefit
Money-based`"]
ccs@{ animate: true }
TC_M tcnbm@-->|"decreases (-)"| NB_M
tcnbm@{ animate: true }
NB_M nbme@==>|"increases (+)"| ROI_M["`ROI %
Money-based`"]
nbme@{ animate: true }
TC_M tcroim@-->|"decreases (-)"| ROI_M
tcroim@{ animate: true }
NB_M nbmbem@-->|"decreases (-)"| BE_M["`Break-even
Money-based`"]
nbmbem@{ animate: true }
TC_M tc_m@==>|"increases (+)"| BE_M
tc_m@{ animate: true }
%% === DECISION LOGIC (Yellow - weighted by preference) ===
NB_T -->|"`weighted by
throughput %`"| DC[DecisionConfidence]
ROI_T -->|"`weighted by
throughput %`"| DC
BE_T -->|"`weighted by
throughput %`"| DC
NB_M -->|"`weighted by
cost %`"| DC
ROI_M -->|"`weighted by
cost %`"| DC
BE_M -->|"`weighted by
cost %`"| DC
SG -->|"`small fixed
weight`"| DC
OP -->|"`determines
metric weights`"| DC
DC -->|"`High confidence โ YES
Medium confidence โ MAYBE
Low confidence โ NO`"| FD[๐ Recommendation]
%% === STYLING ===
classDef inputParam fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000
classDef throughput fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px,color:#000
classDef cost fill:#ffebee,stroke:#c62828,stroke-width:2px,color:#000
classDef money fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#000
classDef decision fill:#fff9c4,stroke:#f57f17,stroke-width:3px,color:#000
classDef finalDecision fill:#ffeb3b,stroke:#f57f17,stroke-width:4px,color:#000
classDef leverage fill:#ff9800,stroke:#e65100,stroke-width:3px,color:#000
class RR,RD,SG,TH,IT,MT,CC,DR inputParam
class TTS,NB_T,ROI_T,BE_T throughput
class TC_T cost
class CCS,NB_M,ROI_M,BE_M,TC_M money
class DC decision
class FD finalDecision
class OP leverage