Methodology
Every result in this workbench is derived from inputs you can see and edit. This page describes the data masking model in plain English and lists every assumption used.
Modeling rules
- Year 0 setup, then Years 1 through the selected time horizon. Setup investment is modeled in Year 0. Annual benefits and run costs flow from Year 1 onward.
- Scope percentage by year applies to every benefit bucket each year. It models rollout pace.
- Realization factors estimate how much modeled value becomes measurable financial value. Each benefit bucket has its own factor.
- K2view license/subscription is entered by year. No automatic escalation is applied. Update each year directly to reflect the contract.
- CPI / cost-of-living adjustment is not applied in the data masking MVP.
- Cost risk uplift is not applied in the data masking MVP.
- Confidence score weights each required input by source (Customer provided = 1.0 / Benchmark = 0.75 / Estimated = 0.5 / K2view default = 0.35) and per-field confidence (Low 1, Med 2, High 3). Editing a numeric value does not move the score — only changing source or confidence does.
Avoiding double counting
- Do not count the same hours in Less manual masking work and Lower masking tool and maintenance cost.
- Do not count the same delay in Faster delivery and Less retesting and rework.
- If retiring a tool also reduces storage, count license/admin savings under Tool and maintenance and infrastructure savings under Optional value only once each.
- Keep privacy-risk value optional, narrow, and conservative. Avoid broad breach-cost claims.
- Keep all K2view costs in the Costs page, not inside benefit buckets.
- Within each benefit bucket that offers two methods (Faster delivery, Retesting and rework, Optional infrastructure, Optional privacy risk), use only one method unless the assumptions are clearly distinct.
Formulas
All percentages in inputs are entered as percentage points (e.g. 40 means 40%) and divided by 100 internally. scope[y] refers to scopePctByYear[y]. Realization factors are abbreviated as RF.
1. Less manual masking work (year y)
manualWorkSavings[y] = maskedDataRequestsPerYear × scope[y] × max(avgHoursPerRequestToday − avgHoursPerRequestWithK2view, 0) × blendedHourlyLaborRate × RF.manualWork
2a. Faster delivery — release-delay method (year y)
fasterDeliverySavings[y] = applicationsInScope × releasesPerAppPerYear × scope[y] × max(avgDelayPerReleaseTodayDays − avgDelayPerReleaseWithK2viewDays, 0) × avgCostPerReleaseDay × deliveryValueCaptureRate × RF.fasterDelivery
2b. Faster delivery — affected team-time method (year y)
fasterDeliverySavings[y] = peopleAffectedByDeliveryBottlenecks × handsOnHoursSavedPerPersonPerCycle × cyclesPerYear × scope[y] × blendedHourlyLaborRate × deliveryValueCaptureRate × RF.fasterDelivery
3a. Less retesting and rework — rerun/retest method (year y)
retestingSavings[y] = dataRelatedRerunsPerYear × avgHoursPerRerun × estimatedReductionWithK2view × scope[y] × blendedHourlyLaborRate × RF.retesting
3b. Less retesting and rework — shift-left defect method (year y)
retestingSavings[y] = productionDefectsPerYearTiedToPoorNonProdData × defectsCaughtEarlierPct × max(avgProductionStageFixCostPerDefect − avgTestStageFixCostPerDefect, 0) × scope[y] × RF.retesting
4. Lower tool and maintenance cost (year y)
homegrown[y] =
( max(annualHoursMaintainingScriptsToday − annualHoursMaintainingWithK2view, 0)
× blendedHourlyLaborRate
+ annualContractorServicesSpendRetired )
× scope[y] × RF.toolMaintenance
commercial[y] =
( annualLicenseSupportCostRetired
+ max(annualAdminHoursExistingToolsToday − annualAdminHoursWithK2view, 0)
× blendedHourlyLaborRate
+ annualServicesIntegrationSpendRetired )
× scope[y] × RF.toolMaintenance
toolMaintenanceSavings[y] = homegrown[y] + commercial[y]5. Optional infrastructure (year y)
copiesRetired[y] = enabled ? nonProductionCopiesRetired × annualCostPerCopy × scope[y] × RF.infrastructure : 0 tbReduction[y] = enabled ? tbReduced × annualCostPerTb × scope[y] × RF.infrastructure : 0 infrastructure[y] = copiesRetired[y] + tbReduction[y]
6. Optional privacy risk (year y)
fineProbability[y] = enabled ? perceivedMaxFineExposure × probabilityReduction × scope[y] × RF.privacy : 0 expectedLoss[y] = enabled ? expectedAnnualPrivacyRelatedLoss × expectedReductionFromK2viewMasking × scope[y] × RF.privacy : 0 privacyRisk[y] = fineProbability[y] + expectedLoss[y]
Total benefits (year y)
totalBenefits[y] = manualWorkSavings[y] + fasterDeliverySavings[y] + retestingSavings[y]
+ toolMaintenanceSavings[y] + infrastructure[y] + privacyRisk[y]Setup costs (Year 0)
setupCosts = implementationServices + customerImplementationFtes × implementationDurationMonths × monthlyLoadedCostPerImplementationFte + oneTimeInfraSetupCost
Annual run costs (year y)
annualRunCosts[y] = k2viewLicenseSubscriptionByYear[y] + annualOngoingAdminSupportHours × blendedHourlyLaborRate + annualRecurringServicesCost + annualRecurringInfrastructureCost
Net cash flow
cashFlow[0] = -setupCosts cashFlow[y] = totalBenefits[y] − annualRunCosts[y]
ROI %, NPV, Payback
totalCosts = setupCosts + Σ annualRunCosts[y] netBenefit = Σ totalBenefits[y] − totalCosts ROI% = netBenefit / totalCosts × 100 NPV = -setupCosts + Σ (totalBenefits[y] − annualRunCosts[y]) / (1 + discountRate/100)^y Payback = first month where cumulative cash flow ≥ 0 (or "Not within selected horizon")
Glossary of inputs
Every assumption used by the model, grouped by section.