Class WellCostEstimator
java.lang.Object
neqsim.process.mechanicaldesign.subsea.WellCostEstimator
Cost estimation calculator for subsea wells.
Provides cost estimation for drilling and completing subsea wells including:
- Drilling costs (rig, casing, cement, mud, bits)
- Completion costs (tubing, packers, screens, safety valves)
- Wellhead and Xmas tree procurement
- Logging and evaluation
- Contingency and risk allowances
Cost data is based on industry benchmarks and regional factors. Baseline costs are representative of Norwegian Continental Shelf (NCS) development wells in the 2020-2024 timeframe, aligned with data from actual field development plans (e.g., Ultima Thule concept study estimates).
Cost Breakdown Structure
| Category | Oil Producer | Water Injector |
|---|---|---|
| Drilling | 55-60% | 55-60% |
| Completion | 20-25% | 15-20% |
| Wellhead/Tree | 10-12% | 12-15% |
| Logging | 5-8% | 4-6% |
| Contingency | 15% | 15% |
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleDrill bits and downhole tools cost.private doubleCasing cost per tonne USD.private doubleCasing material cost.private doubleCement and cementing services cost.private doubleCement cost per m3 USD.private doubleCompletion equipment base cost USD (injector).private doubleCompletion equipment base cost USD (producer).private doubleCompletion equipment cost (tubing, packers, screens).private doubleContingency allowance.private doubleContingency percentage (default 15%).private doubleDHSV cost USD.private doubleDrilling rig and services cost.private doubleLogging, surveys and evaluation cost.private doubleLogging base cost per day USD.private doubleDrilling mud / fluids cost.private doubleMud cost per m3 USD.private SubseaCostEstimator.RegionRegion for cost adjustment — reuses SubseaCostEstimator.Region.private doubleRegional cost factor.private doubleRig day rate in USD.private doubleSafety valves (DHSV, SCSSV) cost.private doubleTotal well cost.private doubleWellhead and tree base cost USD.private doubleWellhead and Xmas tree cost.private doubleWell testing cost.private doubleWell test cost per day USD. -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.Constructor with region. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidApply regional cost adjustment factor.voidcalculateWellCost(String wellType, String rigType, String completionType, double measuredDepth, double waterDepth, double drillingDays, double completionDays, double rigDayRateOverride, boolean hasDHSV, int numberOfCasingStrings) Calculate total well cost.createBOMItem(String name, String description, String category, double quantity, String unit) Create a BOM item.private doubleestimateCasingWeight(double measuredDepth, int numberOfStrings) Estimate casing weight from well depth and string count.private doubleestimateCementVolume(double measuredDepth, int numberOfStrings) Estimate cement volume from depth and string count.private doubleestimateMudVolume(double measuredDepth) Estimate mud volume from depth.Generate bill of materials for a well.doubleGet bits and tools cost.doubleGet casing material cost.doubleGet cement cost.doubleGet completion cost.private doublegetCompletionTypeFactor(String completionType) Get completion type cost factor.doubleGet contingency cost.doubleGet contingency percentage.Get cost breakdown as a nested Map for reporting.doubleGet drilling cost.doubleGet logging cost.doubleGet mud cost.Get region.doubleGet regional cost factor.private doublegetRigTypeFactor(String rigType) Get rig type cost factor.doubleGet safety valve cost.doubleGet total cost.doubleGet wellhead cost.doubleGet well test cost.voidsetContingencyPct(double contingencyPct) Set contingency percentage.voidsetRegion(SubseaCostEstimator.Region region) Set region.voidsetRigDayRate(double rigDayRate) Set rig day rate.toJson()Convert results to JSON string.private doubleEstimate total cement volume from well properties.
-
Field Details
-
region
Region for cost adjustment — reuses SubseaCostEstimator.Region. -
drillingCost
private double drillingCostDrilling rig and services cost. -
casingMaterialCost
private double casingMaterialCostCasing material cost. -
cementCost
private double cementCostCement and cementing services cost. -
mudCost
private double mudCostDrilling mud / fluids cost. -
bitsCost
private double bitsCostDrill bits and downhole tools cost. -
completionCost
private double completionCostCompletion equipment cost (tubing, packers, screens). -
wellheadCost
private double wellheadCostWellhead and Xmas tree cost. -
safetyValveCost
private double safetyValveCostSafety valves (DHSV, SCSSV) cost. -
loggingCost
private double loggingCostLogging, surveys and evaluation cost. -
wellTestCost
private double wellTestCostWell testing cost. -
contingencyCost
private double contingencyCostContingency allowance. -
totalCost
private double totalCostTotal well cost. -
contingencyPct
private double contingencyPctContingency percentage (default 15%). -
regionFactor
private double regionFactorRegional cost factor. -
rigDayRate
private double rigDayRateRig day rate in USD. -
casingCostPerTonne
private double casingCostPerTonneCasing cost per tonne USD. -
cementCostPerM3
private double cementCostPerM3Cement cost per m3 USD. -
mudCostPerM3
private double mudCostPerM3Mud cost per m3 USD. -
completionBaseCostProducer
private double completionBaseCostProducerCompletion equipment base cost USD (producer). -
completionBaseCostInjector
private double completionBaseCostInjectorCompletion equipment base cost USD (injector). -
wellheadBaseCost
private double wellheadBaseCostWellhead and tree base cost USD. -
loggingDayRate
private double loggingDayRateLogging base cost per day USD. -
dhsvCost
private double dhsvCostDHSV cost USD. -
wellTestDayRate
private double wellTestDayRateWell test cost per day USD.
-
-
Constructor Details
-
WellCostEstimator
public WellCostEstimator()Default constructor. -
WellCostEstimator
Constructor with region.- Parameters:
region- cost estimation region
-
-
Method Details
-
applyRegionFactor
private void applyRegionFactor()Apply regional cost adjustment factor.Regional factors reflect differences in rig markets, labor costs, logistics, and regulatory requirements.
-
calculateWellCost
public void calculateWellCost(String wellType, String rigType, String completionType, double measuredDepth, double waterDepth, double drillingDays, double completionDays, double rigDayRateOverride, boolean hasDHSV, int numberOfCasingStrings) Calculate total well cost.- Parameters:
wellType- well type string (OIL_PRODUCER, GAS_PRODUCER, WATER_INJECTOR, etc.)rigType- rig type string (SEMI_SUBMERSIBLE, DRILLSHIP, etc.)completionType- completion type stringmeasuredDepth- measured depth in meterswaterDepth- water depth in metersdrillingDays- planned drilling dayscompletionDays- planned completion daysrigDayRateOverride- rig day rate override (0 to use default)hasDHSV- whether well has downhole safety valvenumberOfCasingStrings- number of casing strings
-
getRigTypeFactor
Get rig type cost factor.- Parameters:
rigType- rig type string- Returns:
- cost factor multiplier
-
getCompletionTypeFactor
Get completion type cost factor.- Parameters:
completionType- completion type string- Returns:
- cost factor multiplier
-
estimateCasingWeight
private double estimateCasingWeight(double measuredDepth, int numberOfStrings) Estimate casing weight from well depth and string count.- Parameters:
measuredDepth- measured depth in metersnumberOfStrings- number of casing strings- Returns:
- estimated weight in tonnes
-
estimateCementVolume
private double estimateCementVolume(double measuredDepth, int numberOfStrings) Estimate cement volume from depth and string count.- Parameters:
measuredDepth- measured depth in metersnumberOfStrings- number of casing strings- Returns:
- cement volume in m3
-
estimateMudVolume
private double estimateMudVolume(double measuredDepth) Estimate mud volume from depth.- Parameters:
measuredDepth- measured depth in meters- Returns:
- mud volume in m3
-
getCostBreakdown
-
generateBillOfMaterials
Generate bill of materials for a well.- Parameters:
well- the SubseaWell to generate BOM for- Returns:
- list of BOM items as maps
-
createBOMItem
private Map<String,Object> createBOMItem(String name, String description, String category, double quantity, String unit) Create a BOM item.- Parameters:
name- item namedescription- item descriptioncategory- item categoryquantity- quantityunit- unit of measure- Returns:
- map representing the BOM item
-
totalCementVolumeFrom
Estimate total cement volume from well properties.- Parameters:
well- the subsea well- Returns:
- estimated cement volume in m3
-
toJson
Convert results to JSON string.- Returns:
- JSON representation of cost estimate
-
getTotalCost
public double getTotalCost()Get total cost.- Returns:
- total well cost in USD
-
getDrillingCost
public double getDrillingCost()Get drilling cost.- Returns:
- drilling cost in USD
-
getCompletionCost
public double getCompletionCost()Get completion cost.- Returns:
- completion cost in USD
-
getWellheadCost
public double getWellheadCost()Get wellhead cost.- Returns:
- wellhead and tree cost in USD
-
getLoggingCost
public double getLoggingCost()Get logging cost.- Returns:
- logging and evaluation cost in USD
-
getCasingMaterialCost
public double getCasingMaterialCost()Get casing material cost.- Returns:
- casing material cost in USD
-
getContingencyCost
public double getContingencyCost()Get contingency cost.- Returns:
- contingency allowance in USD
-
getContingencyPct
public double getContingencyPct()Get contingency percentage.- Returns:
- contingency as a fraction (e.g., 0.15 for 15%)
-
getRegion
-
setRegion
Set region.- Parameters:
region- the cost region
-
setContingencyPct
public void setContingencyPct(double contingencyPct) Set contingency percentage.- Parameters:
contingencyPct- contingency as a fraction (e.g., 0.15 for 15%)
-
setRigDayRate
public void setRigDayRate(double rigDayRate) Set rig day rate.- Parameters:
rigDayRate- rig day rate in USD
-
getCementCost
public double getCementCost()Get cement cost.- Returns:
- cement cost in USD
-
getMudCost
public double getMudCost()Get mud cost.- Returns:
- drilling mud cost in USD
-
getBitsCost
public double getBitsCost()Get bits and tools cost.- Returns:
- bits cost in USD
-
getSafetyValveCost
public double getSafetyValveCost()Get safety valve cost.- Returns:
- safety valve cost in USD
-
getWellTestCost
public double getWellTestCost()Get well test cost.- Returns:
- well test cost in USD
-
getRegionFactor
public double getRegionFactor()Get regional cost factor.- Returns:
- regional factor multiplier
-