Source profileQuality 91/100

equinor/neqsim/.github/skills/neqsim-equipment-cost-estimation/SKILL.md

neqsim-equipment-cost-estimation

Equipment and process CAPEX estimation — Turton/Peters/Ulrich/Seider correlations, CEPCI escalation, material/pressure factors, bare-module to grass-roots, AACE class 1-5, location factors, currency conversion, CostEstimateResult reconciliation, and mechanical-design-driven topsides/SURF/well rollups. USE WHEN: a task requires a +30%/-30% Class-3/4 estimate for equipment, a process flowsheet, topsides, SURF, wells, or reservoir-to-market CAPEX. Anchors on CostEstimationCalculator and ProcessCost

Source repository stars
147
Declared platforms
0
Static risk flags
0
Last source update
2026-08-28
Source checked
2026-08-28

Decision brief

What it does: where it fits

Class-3/4 (AACE 18R-97) order-of-magnitude to study estimates for individual process equipment and early process/facility CAPEX rollups - the bridge between sized equipment and a project economics model. Wraps Turton (5e), Peters–Timmerhaus, Ulrich, and Seider correlations with…

Best for

  • Quickly cost a sized vessel, column, HX, pump, compressor, filter, reactor, mixer, splitter, or manifold
  • Build a bare-module → total-module → grass-roots stackup
  • Apply CEPCI to escalate published correlations to current year

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/equinor/neqsim --skill ".github/skills/neqsim-equipment-cost-estimation"
Safe inspection promptEditorial

Inspect the Agent Skill "neqsim-equipment-cost-estimation" from https://github.com/equinor/neqsim/blob/9e4e36d4b6a59404ac9aa629740fbc312610d3c8/.github/skills/neqsim-equipment-cost-estimation/SKILL.md at commit 9e4e36d4b6a59404ac9aa629740fbc312610d3c8. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Pattern 9 — Cost Estimate for a Whole Process

    Use this rollup for reservoir-to-market screening once the flowsheet contains unit operations for the major equipment. It initializes each unit's mechanical design, runs calcDesign(), calls the attached estimator, and aggregates the result by equipment category.

    Use this rollup for reservoir-to-market screening once the flowsheet contains unit operations for the major equipment. It initializes each unit's mechanical design, runs calcDesign(), calls the attached estimator, and a…
  2. 02

    When to Use

    For project-level economics, asset valuation, or fiscal regimes, use neqsim-field-economics. This skill is the CAPEX basis skill that feeds those economics workflows.

    Quickly cost a sized vessel, column, HX, pump, compressor, filter, reactor, mixer, splitter, or manifoldBuild a bare-module → total-module → grass-roots stackupApply CEPCI to escalate published correlations to current year
  3. 03

    AACE Cost Estimate Classes

    Review the “AACE Cost Estimate Classes” section in the pinned source before continuing.

    Review and apply the “AACE Cost Estimate Classes” source section.
  4. 04

    Pattern 1 — Bare-module Cost for a Vessel

    Review the “Pattern 1 — Bare-module Cost for a Vessel” section in the pinned source before continuing.

    Review and apply the “Pattern 1 — Bare-module Cost for a Vessel” source section.
  5. 05

    Pattern 2 — End-to-end via calculateCostEstimate

    Review the “Pattern 2 — End-to-end via calculateCostEstimate” section in the pinned source before continuing.

    Review and apply the “Pattern 2 — End-to-end via calculateCostEstimate” source section.

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars147SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
equinor/neqsim
Skill path
.github/skills/neqsim-equipment-cost-estimation/SKILL.md
Commit
9e4e36d4b6a59404ac9aa629740fbc312610d3c8
License
Apache-2.0
Collected
2026-08-28
Default branch
master
View the original SKILL.md

NeqSim Equipment Cost Estimation Skill

Class-3/4 (AACE 18R-97) order-of-magnitude to study estimates for individual process equipment and early process/facility CAPEX rollups - the bridge between sized equipment and a project economics model. Wraps Turton (5e), Peters–Timmerhaus, Ulrich, and Seider correlations with CEPCI escalation, material factors, pressure factors, and Lang/Hand factors. The preferred NeqSim path is mechanical-design driven: call each unit's initMechanicalDesign(), calcDesign(), then getMechanicalDesign().getCostEstimate().calculateCostEstimate() or let ProcessCostEstimate.calculateAllCosts() do that rollup for a full flowsheet.

When to Use

  • Quickly cost a sized vessel, column, HX, pump, compressor, filter, reactor, mixer, splitter, or manifold
  • Build a bare-moduletotal-modulegrass-roots stackup
  • Apply CEPCI to escalate published correlations to current year
  • Compare alternatives (e.g. centrifugal vs reciprocating compressor)
  • Produce a scope-safe CostEstimateResult for equipment, process, topsides, SURF, subsea, well, or field-development estimates
  • Reconcile located process totals against located equipment rows while retaining base equipment costs
  • Feed equipment cost into NPV / IRR via neqsim-field-economics

For project-level economics, asset valuation, or fiscal regimes, use neqsim-field-economics. This skill is the CAPEX basis skill that feeds those economics workflows.

AACE Cost Estimate Classes

ClassMaturityAccuracyMethod
5Concept−50% / +100%Capacity-factor (six-tenths)
4Pre-FEED−30% / +50%Equipment-factored (this skill)
3FEED−20% / +30%Sized equipment + bulk MTOs
2Detailed−15% / +20%Detailed quantity takeoff
1Final−10% / +15%Vendor quotes

Pattern 1 — Bare-module Cost for a Vessel

import neqsim.process.costestimation.CostEstimationCalculator;

CostEstimationCalculator cost = new CostEstimationCalculator();
cost.setCurrentCepci(CostEstimationCalculator.CEPCI_2025);   // 840
cost.setMaterialOfConstruction("SS316");                     // sets Fm = 2.1
cost.setLocationByRegion("Norway");                          // location factor

double shellWeight_kg = 8500.0;        // from mechanical design
double designP_barg   = 110.0;
double Cp = cost.calcVerticalVesselCost(shellWeight_kg);
double Cbm = cost.calcBareModuleCost(Cp, designP_barg);      // applies Fp & Fm
double Ctm = cost.calcTotalModuleCost(Cbm);                  // + contingency + fees
double Cgr = cost.calcGrassRootsCost(Ctm);                   // + auxiliary facilities

Pattern 2 — End-to-end via calculateCostEstimate

cost.calculateCostEstimate(
    Cp,                  // purchased equipment cost
    designP_barg,        // for Fp
    shellWeight_kg,      // for installation man-hours
    "vertical_vessel"    // equipment category
);
String json = cost.toJson();   // structured output for results.json

Pattern 3 — Volume-Based Vessel Cost

For screening work, use the volume-based methods when the mechanical design knows vessel diameter and length but the shell weight is not yet reliable. These are now the preferred basis for separator, absorber, column, filter, and reactor vessel screening.

double vesselVolume_m3 = Math.PI * diameter_m * diameter_m / 4.0 * tanTanLength_m;
double verticalCp = cost.calcVerticalVesselCostByVolume(vesselVolume_m3);
double horizontalCp = cost.calcHorizontalVesselCostByVolume(vesselVolume_m3);

Keep the legacy calcVerticalVesselCost(weight_kg) and calcHorizontalVesselCost(weight_kg) methods for cases where the mechanical design has already produced a defensible shell weight.

Pattern 4 — CEPCI Escalation

C_today = C_published × CEPCI_today / CEPCI_published

Built-in indices: CEPCI_2019 (607.5) through CEPCI_2025 (840). Escalate any literature correlation that's published with a base year.

Pattern 5 — Equipment-Specific Methods

EquipmentMethodSizing input
Vertical pressure vesselcalcVerticalVesselCost(weight_kg)shell weight
Horizontal vesselcalcHorizontalVesselCost(weight_kg)shell weight
Vertical vessel screeningcalcVerticalVesselCostByVolume(volume_m3)vessel volume
Horizontal vessel screeningcalcHorizontalVesselCostByVolume(volume_m3)vessel volume
Distillation columncalcColumnShellCost(weight_kg) + calcSieveTraysCost(D, N)weight + diameter + tray count
Shell-tube HXcalcShellTubeHeatExchangerCost(area_m2)area
Plate HXcalcPlateHeatExchangerCost(area_m2)area
Air coolercalcAirCoolerCost(area_m2)bare-tube area
Centrifugal pumpcalcCentrifugalPumpCost(power_kW)shaft power
Centrifugal compressorcalcCentrifugalCompressorCost(power_kW)shaft power
Reciprocating compressorcalcReciprocatingCompressorCost(power_kW)shaft power
PipingcalcPipingCost(D_m, L_m, schedule)diameter, length
Control valvecalcControlValveCost(Cv)Cv

Pattern 6 — Mechanical-Design Estimator Wiring

Equipment-specific mechanical designs own their estimator selection. This is what makes full-process rollups work: ProcessCostEstimate does not need to know every unit's detailed sizing correlation; it asks the unit for its mechanical design and cost estimate.

unit.initMechanicalDesign();
MechanicalDesign design = unit.getMechanicalDesign();
design.calcDesign();
design.getCostEstimate().calculateCostEstimate();
double grassRootsCostUSD = design.getCostEstimate().getGrassRootsCost();

Current topside coverage includes specialized mechanical-design/cost paths for separators, scrubbers, columns, absorbers, adsorbers, mercury removal, pumps, compressors, expanders, ejectors, heat exchangers, BAHX units, tanks, pipelines, valves, mixers, splitters, filters, reactors, and manifolds. Header-like units such as mixers and splitters should calculate dry weight during calcDesign(); filter/reactor/manifold estimators reuse the mechanical design outputs instead of duplicating sizing logic.

Pattern 7 — Material and Pressure Factors (Turton)

double Fp = CostEstimationCalculator.getPressureFactor(designP_barg);  // ~1.0–3.0
// Fm constants: FM_CARBON_STEEL=1.0, FM_SS304=1.8, FM_SS316=2.1,
//               FM_SS316L=2.3, FM_MONEL=3.2, FM_HASTELLOY_C=3.8, FM_TITANIUM=4.5

Pattern 8 — Stackup Convention

Cp        = purchased equipment, FOB factory          (input)
Cbm       = Cp × (B1 + B2 × Fm × Fp)                  bare module
Ctm       = Cbm × 1.18                                + contingency 15% + fees 3%
Cgr       = Ctm × 1.30                                + 30% auxiliary (utilities, storage, OSBL)

Pattern 9 — Cost Estimate for a Whole Process

ProcessCostEstimate processCost = new ProcessCostEstimate(process);
processCost.calculateAllCosts();
double totalCgr = processCost.getTotalGrassRootsCost();

Use this rollup for reservoir-to-market screening once the flowsheet contains unit operations for the major equipment. It initializes each unit's mechanical design, runs calcDesign(), calls the attached estimator, and aggregates the result by equipment category.

Pattern 10 — Result Schema and Reconciliation

Use CostEstimateResult when handing estimates to reports, agents, or downstream economics. The map names encode whether rows are additive, summary totals, or non-cost quantities:

MapMeaningReconciliation Rule
capitalCosts_USDAdditive direct capital-cost linesSum only inside the same scope
capitalCostBreakdown_USDSupplementary detail behind a capital lineDo not add to the parent line
capitalCostSummary_USDCapital subtotals/totalsShow as totals; do not re-sum
projectCosts_USDAdditive project-cost linesSum only inside the matching project scope
projectCostSummary_USDProject subtotals/totalsShow as totals; do not re-sum
quantityBasisNon-cost quantities with unitsNever mix into USD totals
weightBasis_kg and materialTakeOffPhysical basis and MTO traceabilityKeep separate unless building a controlled MTO rollup

Examples of intended placement:

  • Unit estimators: purchasedEquipmentCost in capitalCosts_USD; bareModuleCost, totalModuleCost, and grassRootsCost in capitalCostSummary_USD; installationManHours in quantityBasis.
  • ProcessCostEstimate: process PEC/BMC/TMC/grass-roots in capitalCostSummary_USD; totalProjectCost in projectCostSummary_USD; totalInstallationManHours in quantityBasis.
  • Topsides facilities: direct field cost and excluded non-topsides scope in capitalCostSummary_USD; totalTopsidesCapex in projectCostSummary_USD; module detail in capitalCostBreakdown_USD.
  • SURF/development: totalSURF and totalDevelopment in capitalCostSummary_USD; vessel days in quantityBasis.

ProcessCostEstimate.toJson() reports equipment rows with location-adjusted costs in the standard *_USD fields, because those rows must reconcile with the process totals and costByEquipmentType_USD. Base, unlocated rows remain under basePurchasedEquipmentCost_USD, baseBareModuleCost_USD, baseTotalModuleCost_USD, and baseGrassRootsCost_USD, with locationFactor shown explicitly.

Common Mistakes

MistakeFix
Using outdated CEPCIAlways set setCurrentCepci(CEPCI_<year>) before calculating
Hardcoding Fm = 1Pick from FM_* constants based on actual material of construction
Missing pressure factor at high PUse getPressureFactor(P) — silently × the cost at HP/HIPPS service
Reporting Cp as "installed cost"Cp is FOB only; installed = at minimum Cbm
Mixing currenciesUse setCurrency(code, rate) then read all costs through convertFromUSD/convertToUSD
Adding capitalCostSummary_USD into capitalCosts_USD totalsSummary rows are already subtotals/totals; show them separately
Treating quantityBasis rows as USD costsQuantity rows carry units like man-hour or vessel-day, not currency
Comparing located process totals to base equipment rowsUse located *_USD equipment fields for reconciliation, base fields for pre-location analysis
Claiming Class-3 accuracy on capacity-factoredCapacity factor (six-tenths) → Class 5; named in AACE 18R-97
Ignoring locationsetLocationByRegion("Norway") ≈ 1.3× US Gulf Coast for offshore
Adding a new mechanical design but leaving the base estimatorAssign the unit-specific costEstimate in the mechanical design constructor
Passing shell weight to a volume correlationUse calc*ByVolume(volume_m3) only with vessel volume

Validation Checklist

  • CEPCI year matches the project base year
  • Material of construction set per stream service (e.g. SS316L for wet sour)
  • Pressure factor applied for design P > 10 barg
  • AACE class declared in report (5/4/3) with stated accuracy band
  • Stackup shown: Cp → Cbm → Ctm → Cgr with each multiplier
  • Currency and location factor stated
  • Additive cost rows, summary totals, supplementary breakdowns, and non-cost quantities are kept in separate CostEstimateResult maps
  • Process equipment rows reconcile on the same basis as totals: located-to-located or base-to-base
  • JSON saved via cost.toJson() to results.json under capex section
  • Sensitivity to ±20% on key drivers (compressor power, column trays) reported
  • Full-process screens include major reservoir-to-market equipment rather than only topside separators and compressors
  • New equipment classes expose a specialized mechanical design and estimator before relying on ProcessCostEstimate

Related Skills

Frequently asked questions

What to verify before installation and use

What does the neqsim-equipment-cost-estimation source document cover?

Class-3/4 (AACE 18R-97) order-of-magnitude to study estimates for individual process equipment and early process/facility CAPEX rollups - the bridge between sized equipment and a project economics model. Wraps Turton (5e), Peters–Timmerhaus, Ulrich, and Seider correlations with…

How do I install neqsim-equipment-cost-estimation?

The source record exposes this install command: npx skills add https://github.com/equinor/neqsim --skill ".github/skills/neqsim-equipment-cost-estimation". Inspect the command and pinned source before running it.

Alternatives

Compare before choosing

Computed 10045,960

coreyhaines31/marketingskills

ab-testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

Computed 10045,960

coreyhaines31/marketingskills

churn-prevention

When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o

Computed 10014,706

prowler-cloud/prowler

postgresql-indexing

PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance

Computed 100147

oaustegard/claude-skills

featuring

Generate hierarchical _FEATURES.md files that describe what a codebase DOES from a user/consumer perspective, anchored to source symbols via tree-sitting. Supports large complex codebases through feature-driven decomposition into sub-feature files. Uses a multi-pass synthesis: orientation → detail → overview rewrite. Use when someone says "what does this do", "document features", "feature inventory", "_FEATURES.md", or needs to understand a codebase's purpose before modifying it. Complements tre