Class FiscalParameters

java.lang.Object
neqsim.process.fielddevelopment.economics.FiscalParameters
All Implemented Interfaces:
Serializable

public final class FiscalParameters extends Object implements Serializable
Data class holding all fiscal parameters for a specific country or region.

This class encapsulates all the tax and fiscal parameters that vary by jurisdiction, including:

  • Tax rates (corporate, petroleum/resource, royalty)
  • Depreciation rules
  • Investment incentives (uplift, accelerated depreciation)
  • Loss carry-forward rules
  • Cost recovery limits

Supported Fiscal System Types

  • Concessionary: Company owns resources, pays taxes/royalties (e.g., Norway, UK, US)
  • Production Sharing Contract (PSC): State owns resources, company recovers costs and shares profit (e.g., Indonesia, Angola)
  • Service Contract: Company provides services for fee (e.g., Iraq, Iran)

Example Usage

// Create custom parameters
FiscalParameters params = FiscalParameters.builder("CustomCountry").corporateTaxRate(0.25)
    .resourceTaxRate(0.40).royaltyRate(0.10).depreciationYears(5).build();

// Or use predefined country
FiscalParameters norway = FiscalRegimeRegistry.getParameters("Norway");
Version:
1.0
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • countryCode

      private final String countryCode
      Country or region code (e.g., "NO", "UK", "US-GOM").
    • countryName

      private final String countryName
      Full country or region name.
    • description

      private final String description
      Description of the fiscal regime.
    • validFromYear

      private final int validFromYear
      Year the parameters are valid from.
    • fiscalSystemType

      private final FiscalParameters.FiscalSystemType fiscalSystemType
    • corporateTaxRate

      private final double corporateTaxRate
      Corporate income tax rate (0-1).
    • resourceTaxRate

      private final double resourceTaxRate
      Resource/petroleum/mineral tax rate (0-1).
    • royaltyRate

      private final double royaltyRate
      Royalty rate on gross production (0-1).
    • windfallTaxRate

      private final double windfallTaxRate
      Windfall/excess profit tax rate (0-1).
    • windfallTaxThreshold

      private final double windfallTaxThreshold
      Windfall tax threshold (price above which windfall tax applies).
    • stateParticipation

      private final double stateParticipation
      State participation percentage (0-1).
    • depreciationMethod

      private final FiscalParameters.DepreciationMethod depreciationMethod
    • depreciationYears

      private final int depreciationYears
      Depreciation period in years (for straight-line).
    • decliningBalanceRate

      private final double decliningBalanceRate
      Declining balance rate (for declining balance method).
    • upliftRate

      private final double upliftRate
      Investment uplift rate per year (0-1).
    • upliftYears

      private final int upliftYears
      Number of years for uplift.
    • investmentTaxCredit

      private final double investmentTaxCredit
      Investment tax credit rate (0-1).
    • enhancedRdDeduction

      private final boolean enhancedRdDeduction
      Whether R&D expenses are deductible at enhanced rate.
    • rdEnhancementFactor

      private final double rdEnhancementFactor
      R&D enhancement factor (e.g., 1.5 for 150% deduction).
    • costRecoveryLimit

      private final double costRecoveryLimit
      Maximum cost recovery per period as fraction of revenue (0-1).
    • profitShareGovernment

      private final double profitShareGovernment
      Profit oil/gas government share (0-1).
    • profitShareContractor

      private final double profitShareContractor
      Profit oil/gas contractor share (0-1).
    • lossCarryForward

      private final boolean lossCarryForward
      Whether losses can be carried forward.
    • lossCarryForwardYears

      private final int lossCarryForwardYears
      Maximum years for loss carry-forward (0 = unlimited).
    • lossCarryForwardInterest

      private final double lossCarryForwardInterest
      Interest rate on carried-forward losses (0-1).
    • lossCarryBack

      private final boolean lossCarryBack
      Whether losses can be carried back.
    • lossCarryBackYears

      private final int lossCarryBackYears
      Maximum years for loss carry-back.
    • ringFenced

      private final boolean ringFenced
      Whether ring-fencing applies (losses cannot offset other fields).
    • ringFenceLevel

      private final FiscalParameters.RingFenceLevel ringFenceLevel
    • decommissioningDeductible

      private final boolean decommissioningDeductible
      Whether decommissioning costs are tax deductible.
    • decommissioningFundDeductible

      private final boolean decommissioningFundDeductible
      Whether decommissioning fund contributions are tax deductible.
  • Constructor Details

  • Method Details

    • builder

      public static FiscalParameters.Builder builder(String countryCode)
      Creates a builder for custom fiscal parameters.
      Parameters:
      countryCode - country or region code
      Returns:
      new builder instance
    • getTotalMarginalTaxRate

      public double getTotalMarginalTaxRate()
      Gets the total marginal tax rate.
      Returns:
      sum of corporate and resource tax rates
    • getTotalUpliftPercentage

      public double getTotalUpliftPercentage()
      Gets the total uplift percentage.
      Returns:
      uplift rate times uplift years
    • isPscSystem

      public boolean isPscSystem()
      Checks if this is a PSC-type fiscal system.
      Returns:
      true if PSC or similar
    • hasInvestmentIncentives

      public boolean hasInvestmentIncentives()
      Checks if investment incentives are available.
      Returns:
      true if uplift or investment tax credit available
    • getCountryCode

      public String getCountryCode()
    • getCountryName

      public String getCountryName()
    • getDescription

      public String getDescription()
    • getValidFromYear

      public int getValidFromYear()
    • getFiscalSystemType

      public FiscalParameters.FiscalSystemType getFiscalSystemType()
    • getCorporateTaxRate

      public double getCorporateTaxRate()
    • getResourceTaxRate

      public double getResourceTaxRate()
    • getRoyaltyRate

      public double getRoyaltyRate()
    • getWindfallTaxRate

      public double getWindfallTaxRate()
    • getWindfallTaxThreshold

      public double getWindfallTaxThreshold()
    • getStateParticipation

      public double getStateParticipation()
    • getDepreciationMethod

      public FiscalParameters.DepreciationMethod getDepreciationMethod()
    • getDepreciationYears

      public int getDepreciationYears()
    • getDecliningBalanceRate

      public double getDecliningBalanceRate()
    • getUpliftRate

      public double getUpliftRate()
    • getUpliftYears

      public int getUpliftYears()
    • getInvestmentTaxCredit

      public double getInvestmentTaxCredit()
    • isEnhancedRdDeduction

      public boolean isEnhancedRdDeduction()
    • getRdEnhancementFactor

      public double getRdEnhancementFactor()
    • getCostRecoveryLimit

      public double getCostRecoveryLimit()
    • getProfitShareGovernment

      public double getProfitShareGovernment()
    • getProfitShareContractor

      public double getProfitShareContractor()
    • isLossCarryForward

      public boolean isLossCarryForward()
    • getLossCarryForwardYears

      public int getLossCarryForwardYears()
    • getLossCarryForwardInterest

      public double getLossCarryForwardInterest()
    • isLossCarryBack

      public boolean isLossCarryBack()
    • getLossCarryBackYears

      public int getLossCarryBackYears()
    • isRingFenced

      public boolean isRingFenced()
    • getRingFenceLevel

      public FiscalParameters.RingFenceLevel getRingFenceLevel()
    • isDecommissioningDeductible

      public boolean isDecommissioningDeductible()
    • isDecommissioningFundDeductible

      public boolean isDecommissioningFundDeductible()
    • toString

      public String toString()
      Overrides:
      toString in class Object