Drew Terry
Micheondra Williams
CEPM4
12-8-05
Our program was created with the motive of estimating costs for an oil or gas
offshore platform. In order to do so, much research was necessary in order to find how
different factors effected price. After the research was completed, the program was
written and tested. With some final tweaking, we were able to create an accurate
program that receives some preliminary guidelines from a user and then gives the
specific information. Firstly, only three major platform locations were considered: the
Gulf of Mexico, Eastern Mediterranean, and West Africa. Some locations that were
purposely excluded were the North Sea, East Asia, United State’s West and East
Coast, Alaska, and Brazil. The three possible locations contain most of today’s offshore
platforms, so this assumption did not hurt the program in such a way as to make it
unusable. Secondly, all platforms are assumed to be fabricated in the United States and
then transported to an offshore installation site. With this assumption, differing costs of
labor and materials based on location could be ignored when considering the structural,
equipment, and outfitting costs. The different locations only affect the transport and
conventional fixed jacket and deck that is piled to the sea bed. As a result, our program
does not include tension leg platforms, SPAR platforms, etc. Lastly, a range of possible
platform configuration data points are used, and shown in the following tables. Only
these possible ranges are considered because any values outside of them are not
meaningful or economical.
Research was then done surrounding these assumptions. The first major
epiphany that we ran across was that engineers do not know how large a platform will
be when initially planning the construction. Instead, they take the type of production
facility (either gas or oil) and water depth into consideration, and then decide how large
a platform should be. Also, the production rate directly affects how large and costly the
deck itself will be. With this in mind, a set of initial questions that the program should
ask were created. The questions that set the parameters of all calculations give the
Mediterranean, or West Africa), type of production facility (gas or oil), type of platform
(production or drilling and production), water depth (in feet), and production rate (in
mmscfd or bopd). With this small amount of information, formulas were created to find
In order to create these formulas, the total cost of a platform was split up into five
parts: structural, equipment and outfitting, transport and installation, engineering and
project management, and contingency costs. Each of these five categories required
Structural costs include the cost of the jacket, piles, anodes, deck, protective
coatings, boat landings, bumpers, etc. To calculate the jacket cost, the weight was first
calculated, which was dependent upon water depth and platform type. Using many data
points of previously built platforms, different equations were created for each range of
water depth. After the weight, in tonnage, was derived, the jacket’s cost could be
determined by using a simple unit cost ($/tonnage) of material. This same technique
was utilized in finding equations for the piles’ weight and cost. The Anode’s weight was
then found easily because it was directly proportional to 1/15 of the jacket’s weight.
Then, a unit price was, again, used. When deriving equations for the deck cost, the
deck area was initially found in a similar manner as the jacket’s tonnage, and then a unit
cost ($/ ft2) was used. The deck area was dependent upon the production facility type,
production rate, and platform type. Also, the unit cost measurement was dependent
upon the facility type. A flat rate on all other miscellaneous costs averaged out to be
$250,000. From here, the total structural cost was set equal to the sum of the jacket,
electrical and instrument controls, and onshore hook-up and tests costs. Again, using
previous data, we found that the topside production equipment cost is dependent on the
facility type and production rate. All other costs under this category were conveniently
Transport and installation cost was the most difficult to derive and calculate
because the data was dependent upon the facility type, production rate, water depth,
and platform installation location. The task of generalizing each range of possibilities
proved to be very difficult. Attached to this report is a print out of all the factors included
in each range. Some connections and simplifications could be made off of these, but not
many. In the end, many “if then” statements were necessary to chip away at each
estimated to be around 12% of the subtotal. The subtotal includes all costs up until this
point. Contingency costs were included in case any construction goes awry, or costs
were miscalculated. Finally, the total estimated cost could then be calculated to be the
sum of the subtotal, engineering and project management cost, and the contingency
cost. To check if the final estimation was accurate, real data was used to compare off
Programming
In order to create a Visual Basic program that could execute these calculations,
we had to figure out a way to form a path leading from the user input values to the final
cost estimation. The obvious method of doing this was through “IF” statements and the
most efficient way of developing the program was through separate parts, or sub-
functions.
The first step was to create a user interface that would be straight forward so that
anyone, even someone who has never used a program before, could easily make
sense of what values should be input. To do this, the first three values to identify,
location, production type, and production facility, are simply chosen through option
buttons. Remaining inputs, water depth and production rate, are then entered into a
message box that asks the user to give numbers in a certain range. The program will
not continue until the user inputs values inside the suggested range. VB Code to do
this was written as the main body of the program along with variable assignments and
function calls.
After the user interface was developed, the next step was to write the functions
necessary to complete the program. Each function was written and tested individually
to easily identify and filter out any problems that may have occurred. Functions were
structured as levels of “IF” statements that led to the calculation of one cost value. For
example, the Transportation and Installation cost depends on not only the location of
the rig but the type of production, the production rate, and the water depth as well.
Obviously, every combination of variables had to be accounted for. So if the rig was
located in West Africa, if the rig was to produce gas, if the production rate was within a
certain range, and if the water depth was within a certain corresponding range, then the
Transportation and Installation cost was assigned a unique equation according to those
became quite tedious but proved to be an easy way to go about writing the code.
Once the main program was written, a method of outputting the program results
had to be decided upon. To allow the user to easily save the results, the estimated cost
values were written to a sequential text file in the C:\ drive. Also, a picture box was
added with a similar output as the sequential file to immediately display the results on
Generally speaking, the program came together quite easily and when finished,
Programming Problems
Problems that arose during the development of the program included repetition,
program was tested as each function was written, identifying a problem was made easy,
Repetition occurred when writing “IF” statements that had parameters depending
on water depth and production rate. For example, the user is asked to type in values
inside a certain range for water depth, but this range was split up into parts because
one equation does not describe the affected cost for all values of water depth. The
transition values from one range to the next had to be written carefully as not to overlap
any numbers; otherwise we would end up with two different equations for one water
depth.
Common occurrences that are easily overlooked are variable misprints. When
writing a program, it is easy to misspell or type a variable name wrong, a very small
mistake but as a result, the program will not function. Separating the program into
functions helped locate the misprints as we scrolled through the code to find where the
problems were.
Lastly, the program was halted due to improper variable declarations and
assignments. For example, in the first case a variable was mistakenly declared as two
different types, Currency and Single, so when the command button was pressed, errors
occurred. In the later case, equations assigning values to variables were missing a
overcome because the program could still be executed with no errors. The only way to
identify this problem was to test the program for all combinations and analyze the
output.
Overall, problems within the code were a small occurrence and whenever one
constructing oil and gas offshore platforms. Once this was done, we could write a
program that would allow users to set their own parameters and analyze an estimated