ProFAST Financial Model#
The Production Financial Analysis Scenario Tool or (ProFAST)[https://www.nrel.gov/hydrogen/profast-access] is a financial modeling tool developed at the NREL based on General Accepted Accounting Principles (GAAP) methodology. The model provides a quick and convenient way to conduct in-depth financial analysis for production system and services.
Currently there are two ProFAST models that can be used:
ProFastComp: A price-taker model that calculates levelized cost of commodity (or breakeven price) using ProFAST.ProFastNPV: A price-setter model that calculates the net present value of a commodity using ProFAST.
Finance parameters overview#
To set up the ProFast models correctly there are several financial parameters that need to be set. There are several ways of setting the information both within the plant_config and the tech_config for technology specific information.
Here is the information for setting the parameters:
required: financial parameters (
paramssection). These can be input in theProFastBaseformat or theProFASTformat. These two formats are described in the following sections:required: default capital item parameters (
capital_itemssection). These parameters can be overridden for specific technologies if specified in thetech_config. Example usage of overriding values in thetech_configis outlined here
Providing Finance Parameters: ProFastBase Format#
Below is an example inputting financial parameters directly in the finance_parameters section of plant_config:
finance_parameters:
finance_model: "ProFastComp" #finance model
model_inputs: #inputs for finance_model
params: #Financing parameters
analysis_start_year: 2032 #year that financial analysis starts
installation_time: 36 #installation period in months
# Inflation parameters
inflation_rate: 0.0 # 0 for nominal analysis
# Finance parameters
discount_rate: 0.09
debt_equity_ratio: 2.62
property_tax_and_insurance: 0.03
total_income_tax_rate: 0.257
capital_gains_tax_rate: 0.15
sales_tax_rate: 0.07375
debt_interest_rate: 0.07
debt_type: "Revolving debt" #"Revolving debt" or "One time loan"
loan_period_if_used: 0 #loan period if debt_type is 'One time loan'
cash_onhand_months: 1
admin_expense: 0.00 #administrative expense as a fraction of sales
#default parameters for capital items unless specified in tech_config
capital_items:
depr_type: "MACRS" #depreciation method for capital items, can be "MACRS" or "Straight line"
depr_period: 5 #depreciation period for capital items in years.
refurb: [0.] #refurbishment schedule, values represent the replacement cost as a fraction of the CapEx
# To adjust costs for technologies to target_dollar_year
cost_adjustment_parameters:
target_dollar_year: 2022
cost_year_adjustment_inflation: 0.025
This approach also relies on data from plant_config:
plant_life: used as theoperating lifeProFAST parameter
Note
inflation_rate is used to populate the escalation and inflation rates in ProFAST entries with a value of 0 corresponding to a nominal analysis.
Providing Finance Parameters: ProFAST format#
Note
To avoid errors, please check that plant_config['plant']['plant_life'] is equal to plant_config['finance_parameters']['model_inputs']['params']['operating life']. Or remove operating life from the finance parameter inputs.`
plant config parameter |
equivalent |
|---|---|
|
|
Below is an example of the finance_parameters section of plant_config if using ProFAST input format to specify financial parameters:
finance_parameters:
finance_model: "ProFastComp"
model_inputs:
params: !include "profast_params.yaml" #Finance information
capital_items: #default parameters for capital items unless specified in tech_config
depr_type: "MACRS" ##depreciation method for capital items, can be "MACRS" or "Straight line"
depr_period: 5 #depreciation period for capital items
refurb: [0.]
cost_adjustment_parameters:
target_dollar_year: 2022
cost_year_adjustment_inflation: 0.025 # used to adjust costs for technologies to target_dollar_year
Below is an example of a valid ProFAST params config that may be specified in the finance_parameters['model_inputs']['params] section of plant_config:
# Installation information
maintenance:
value: 0.0
escalation: 0.0
non depr assets: 250000 #such as land cost
end of proj sale non depr assets: 250000 #such as land cost
installation cost:
value: 0.0
depr type: "Straight line"
depr period: 4
depreciable: False
# Incentives information
incidental revenue:
value: 0.0
escalation: 0.0
annual operating incentive:
value: 0.0
decay: 0.0
sunset years: 0
taxable: true
one time cap inct:
value: 0.0
depr type: "MACRS"
depr period: 5
depreciable: True
# Sales information
analysis start year: 2032
operating life: 30 #if included, should equal plant_config['plant']['plant_life']
installation months: 36
demand rampup: 0
# Take or pay specification
TOPC:
unit price: 0.0
decay: 0.0
support utilization: 0.0
sunset years: 0
# Other operating expenses
credit card fees: 0.0
sales tax: 0.0
road tax:
value: 0.0
escalation: 0.0
labor:
value: 0.0
rate: 0.0
escalation: 0.0
rent:
value: 0.0
escalation: 0.0
license and permit:
value: 0.0
escalation: 0.0
admin expense: 0.0
property tax and insurance: 0.015
# Financing information
sell undepreciated cap: True
capital gains tax rate: 0.15
total income tax rate: 0.2574
leverage after tax nominal discount rate: 0.0948
debt equity ratio of initial financing: 1.72
debt interest rate: 0.046
debt type: "Revolving debt"
general inflation rate: 0.0
cash onhand: 1 # number of months with cash on-hand
tax loss carry forward years: 0
tax losses monetized: True
loan period if used: 0
Override defaults for specific technologies#
Capital item entries can be overridden for individual technologies.
This means that specific technologies can have different financial parameters defined in tech_config than the defaults set in the plant_config.
Override depreciation period:#
Suppose the default depreciation period for capital items is 5 years (set in the plant_config['finance_parameters']['model_inputs]['capital_items']['depr_period']), but we want the depreciation period for the electrolyzer to be 7 years. This can be done in the tech_config as shown below:
technologies:
electrolyzer:
model_inputs:
finance_parameters:
capital_items:
depr_period: 7
Custom refurbishment period:#
Suppose the default refurbishment schedule for capital items is [0.] (set in the plant_config['finance_parameters']['model_inputs]['capital_items']['refurb']), but we want our battery to be replaced in 15-years and the replacement cost is equal to the capital cost. This can be accomplished in the tech_config as shown below:
technologies:
battery:
model_inputs:
finance_parameters:
capital_items:
refurbishment_period_years: 15
replacement_cost_percent: 1.0