PMP – Contract Types

Procurement Management Process helps us to identify suitable suppliers/contractor for product delivery or provide proper services or equipment lease. A project manager must have good understanding on procurement concepts, no matter whether he is a buyer or seller. Contract type is one of the tools & techniques to plan procurement. Generally when a procurement happens, a legal document gets sign off between the buyer and the seller. This contractual relationship usually falls into following categories –

  • Fixed Price Contract
  • Cost Reimbursement Contract
  • Time & Material Contract.

Let’s get in to the detail of these contract types…

Fixed Price Contract: These type of contracts usually take place when the scope of work is clearly define. Once the contract is signed, seller is legally bound to complete the work within the agreed time or money. So the seller is at the higher risk. However there are also provision of incentives in these contracts if the quantifiable parameters mentioned in scope of work exceed in certain level as defined and agreed between buyer and seller.

According to PMI, there are three types of fixed price contract.

Firm Fixed Price Contract (FFP) – This is a straight forward and simplest contract. In this type of contract, price or fee is fixed for the products or services. The scope of work is well defined and there is no incentives. Seller is at the highest risk. Any additional cost or time due to bad performance of seller must be borne by the seller. A typical example of fixed price contract can be – a purchase order given to seller for delivering 10 printer cartridges on a specific date.

Fixed Price Incentive Free Contracts (FPIF) – In such contract there is a provision of incentive for the seller based on the pre-defined performance. If the seller meet or exceed the agreed pre-defined performance, s/he gets the incentive.  The incentive can be tied to any project metrics such as cost, time or performance. An example can be – 10% of total contract value will be paid to the contractor as incentive if s/he can complete the deployment of ERP within two months.

Fixed Price with Economic Price Adjustment Contracts (FP-EPA) – This type of contracts are long term contract, typically span over the year or multiple years. To safeguard both buyers and sellers interest from external conditions that are beyond their control, such as Inflation, Exchange rate etc, special provision is kept as contract clause. Example of this contract is – 8% of contract value will be increase in every three years base on SLA performance for ten years contract.

Cost Reimbursement Contract – When scope of work is uncertain or can change as the work progress, this type of contract is use. In such contract, sellers are paid the actual cost to accomplish the work along with profit. As the scope of work is not known hence cost is also unknown, buyers are in higher risk.

As per PMI, there are four types of Cost Reimbursement Contract –

Cost Plus Fixed Fee Contract (CPFF) – In this type of contract sellers are paid the cost incurred to complete the work plus a fixed agreed fee. This fee is decided as percentage of initial cost or fixed amount. In such contract buyer is in highest risk as the fee remain unchanged regardless of seller’s performance.  Example: Total cost to build a web site plus 2% fixed fee on total cost.

Cost Plus Incentive Fee Contract (CPIF) – In cost plus incentive fee contract, seller is paid the total cost of the work plus an incentive based on gaining certain performance. Performance measurement parameters are determined based on pre-define performance targets. An example can be – 20% of total project cost will be paid to the seller if the project gets delivered within two months and with 5% less cost.

Cost Plus Award Fee Contract (CPAF) – In such contract, all cost of work is paid to the seller plus some award fee. Award fee is determine based on the buyer’s satisfaction on certain performance of seller. Here to note that incentive fee and award fee are totally different. Incentive fees are calculated based on the KPI measurement formula given in contract. Whereas award fee is based on buyer’s satisfaction and it is a subjective evaluation. An example can be – if a seller can meet certain quality standards while deploying a solution, s/he will be paid award up to $10,000.

Cost Plus Percentage of Cost Contract (CPPC) – In this type of contract seller is paid all cost of work plus a pre-determined percentage of total cost. This type of contract is not preferable as the seller may take the chance to artificially raise cost to gain higher profit. Example: Total cost plus 10% of cost to seller.

Time and Materials Contract – This is a hybrid contract, mix of fixed price and cost reimbursable contract.  Here risk is distributed to both parties. This type of contracts are in use when project duration is long, scope of work is not clear in start and deliverables are in fixed i.e. time or materials. Example: Technician will be paid $30/hour


Selecting right contract type is an important decision for a project manager. Right selection of contract will increase the performance of the project and will also mitigate risks.

That’s all folks……..!

ref : PMBOK, PMP Study

Posted in Contract, Procurement Management, Project Management | Tagged , , , , | Leave a comment

Voice Blog using Asterisk AGI

Isn’t it nice to have your own voice blogging solution where you can share your voice blogs, discuss with in your friends or private groups. Asterisk, the most used open source IP PBX is there to create your own voice blogging platform.

In this document, I described, how to create a voice blogging platform using asterisk’s dial plan with AGI functions.


  • Record and listen your own voice
  • Search and listen your friend’s voice using his/her cell no.

Component used

  • Asterisk 3.0.1 with FreePBX
  • Asterisk Gateway Interface (AGI)
  • PHP
  • MySQL

How it works

Like any other IVR application, this application also designed with menu based choice selection. Dial plan has been used to handle the choice tree, voice record and play. vBlog associated information has been stored in MySQL table and AGI has been used to access that information through PHP.


  1. Make sure your installed distribution contains AGI with phpagi class
localhost*CLI> module show like agi
Module                         Description                           Use Count                     Asterisk Gateway Interface (AGI)         1
1 modules loaded

2. Check the phpagi.php file in your asterisk installation path/agi-bin directory. In my case it is in /var/lib/asterisk/agi-bin

[root@localhost agi-bin]# pwd
[root@localhost agi-bin]# ls ph*
phpagi-asmanager.php phpagi.php

3. Check MySQL configuration

[root@localhost ~]# service mysqld status
mysqld (pid 1357) is running…

4. Configure cdr_msql.conf for storing CDR
[root@localhost asterisk]# pwd
[root@localhost asterisk]# more cdr_mysql.conf

hostname = <your DB hostname>
dbname=<your DB name>
password = <your password>
user = <your username>

5. Create a table in your database to store vblog information. In my case, I used following table structure

CREATE TABLE `voice_rec` (
  `rec_id` mediumint(9) NOT NULL AUTO_INCREMENT,
  `caller_id` varchar(11) NOT NULL,
  `rec_date` datetime DEFAULT NULL,
  `approved` bit(1) DEFAULT NULL,
  `rec_file_name` varchar(20) NOT NULL,
  `c_like` int(11) DEFAULT NULL,
  PRIMARY KEY (`rec_id`)

Now we are ready to design the application. So for this example we need a main menu and two legs with following distribution


main menu – Welcome prompt and prompts for each leg e.g. a) press one to record your voice b) press two to search and listen your friends voice

Next step is to configure dial plan. Here is how it looks like.

exten => 100,1,Answer()
exten => 100,n,Playback(custom/welcome) ;Welcome prompt
exten => 100,n,Goto(mainmenu,s,1)
;Main menu
exten => s,1,Answer()
exten => s,n,Set(br=${br}0-) ;variable to record caller’s navigation
exten => s,n(lbl_mainmenu_0),Set(TIMEOUT(response)=5)
exten => s,n,Set(TIMEOUT(digit)=1)
exten => s,n,Background(custom/main_menu) ;Menu choice prompt 
exten => s,n,WaitExten()
exten => I,1,Playback(custom/invalid)
exten => i,n,Goto(s,lbl_mainmenu_0)
exten => t,1,Goto(s,lbl_mainmenu_0)
exten => h,1,Set(CDR(userfield)=${br})
exten => 1,1,Goto(menu-1,s,1)
exten => 2,1,Goto(menu-2,s,1)
exten => 3,1,Goto(menu-3,s,1)
exten => s,1,Playback(custom/B1L1) ;prompt “Record your voice after beep”
exten => s,n,Set(fname=${STRFTIME(${EPOCH},,%Y%m%d)}-${CALLERID(num)})
exten => s,n,Set(clid=${CALLERID(num)})
exten => s,n,Set(rdate=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)})
exten => s,n,Set(br=${br}1-)
exten => s,n,Playback(beep)
exten => s,n,Record(custom/customer/${fname}.wav)
exten => s,n,Set(TIMEOUT(response)=5)
exten => s,n,Set(TIMEOUT(digit)=1)
exten => s,n,Background(custom/B1L2) ;prompt to get confirmation to save (1 to save, 2 to discard) the blog after playback
exten => s,n,Playback(custom/customer/${STRFTIME(${EPOCH},,%Y%m%d)}-${CALLERID(num)})
exten => s,n,WaitExten(5)
exten => 1,1,AGI(vblog.php,M4,${clid},${rdate},${fname}) ;Prompt call AGI to save recorded file’s information in database.
exten => 1,n,Playback(custom/B1L2_1) ;Prompt Confirming saving of the blog
exten => 1,n,Goto(mainmenu,s,1)
exten => 2,1,Goto(menu-1,s,1)
exten => i,1,Playback(custom/invalid) ;prompt Invalid choice
exten => i,n,Goto(menu-1,s,1)
exten => t,1,Goto(menu-1,s,1)
exten => h,1,Set(CDR(userfield)=${br})
;Menu 2
exten => s,1,Read(mobileno,custom/B2L1,11,,3,5) ;Prompt please enter mobile no
exten => s,n,GotoIf($[“${READSTATUS}” = “TIMEOUT”]?s,1)
exten => s,n,Set(br=${br}2-)
exten => s,n,Playback(custom/B2L2) ;Prompt you have entered
exten => s,n,SayDigits(${mobileno}) ;Prompt read the entered mobile no
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Set(TIMEOUT(digit)=1)
exten => s,n,Background(custom/B2L2_1) ;Prompt Confirm Mobile no, 1-OK, 2-ask again from mobile no
exten => s,n,WaitExten()
exten => i,1,Playback(custom/invalid) ;Prompt Invalid Choice
exten => i,n,Goto(s,mainmenu)
exten => t,1,Goto(s,mainmenu)
exten => h,1,Set(CDR(userfield)=${br})
exten => 0,1,Goto(mainmenu,s,1)
exten => 1,1,Goto(menu-2-1,s,1)
exten => 2,1,Goto(menu-2,s,1)
exten => s,1,Set(TIMEOUT(response)=15)
exten => s,n,Set(TIMEOUT(digit)=1)
exten => s,n,Set(br=${br}1-)
exten => s,n,Background(custom/B2_1L1) ;Prompt “Now you will hear your friend’s blog, Press 1 = Confirm, 2 – Main menu”
exten => s,n,WaitExten()
exten => 1,1,AGI(kothabarta.php,M3,${mobileno})
exten => 1,n,GotoIf($[${fname}=0]?err)
exten => 1,n,Playback(custom/customer/${fname})
exten => 1,n,Playback(beep)
exten => 1,n,Goto(mainmenu,s,1)
exten => 1,n(err),Playback(custom/B2_1L2) ;Prompt “You friend does not record any blog”
exten => 1,n,Goto(menu-2,s,1)
exten => 2,1,Goto(mainmenu,s,1)
exten => i,1,Playback(custom/invalid)
exten => i,n,Goto(s,mainmenu,1)
exten => t,1,Goto(s,mainmenu,1)
exten => h,1,Set(CDR(userfield)=${br})

Now that we have the dial plan done, we need create vblog.php file to handle AGI calls and perform database manipulation.

#!/usr/bin/php -q
require ‘phpagi.php’;
$agi = new AGI();

// DB connect
$db = ‘<your dbname>’;
$user = ‘<username>’;
$pass = ‘<password>’;
$host = ‘<hostname>’;

$mysqli = new mysqli($host, $user, $pass, $db);


// check connection
if (mysqli_connect_errno()) {
    echo “Connect failed: %s\n”, mysqli_connect_error();
        $agi->set_variable(“dberr”, “1”);

if ($d==”M3″){
        $result = $mysqli->query(“select rec_file_name from voice_rec where caller_id = ‘$mn'”);
        $num_row = mysqli_num_rows($result);
        if ($num_row == 0){
                $agi->set_variable(“fname”, 0);
        } else {
                while ($row = $result->fetch_array()){
                        $agi->set_variable(“fname”, $row[‘rec_file_name’]);
} elseif ($d==”M4″){
        $result = $mysqli->query(“select rec_file_name from voice_rec where  caller_id = ‘$c_id'”);
        $num_row = mysqli_num_rows($result);
        if ($num_row == 0){
                $agi->set_variable(“resp”, $num_row);
                $mysqli->query(“INSERT INTO voice_rec(caller_id,rec_date,rec_file_name) values (‘$c_id’,’$rd’,’$fn’)”);
        } else {
                 $mysqli->query(“update voice_rec set rec_date = ‘$rd’, rec_file_name = ‘$fn’, approved = null, c_like = 0 where caller_id = ‘$c_id'”);
                 $agi->set_variable(“resp”,D );

So the vBlog application access code is 100. When the call comes in, caller will hear the welcome and ask for menu choice. For menu one, caller will be given option to record his/her message, the same will be played back to him/her and will be asked for confirmation before saving the recorded voice file. On callers confirmation, AGI will perform the DB manipulation.

Using the same table structure more functionalities can be added.

  1. Put an admin approval process before publishing the blog.
  2. Like friends blog.
  3. Listen most liked blogs.
  4. Listen live count of your own blog.


That’s all folks……..!


Posted in Asterisk, IP PBX, IVR | Tagged , , , , | Leave a comment

Sensitivity check while sending email

How many times you have sent an email and then realized that there are some recipients in entire mail list who should not get that mail? Often people make habit of `reply to all` while replying any message and ends up with question to mail admin “Can you stop this email?!”

There are number of commercial tools and add-ons available that can be pushed to end users email client from mail server to check mail sensitivity before sending.

However for a small organization of 10 – 20 size, it might not be cost effective to go for such solutions.

This example below shows, how to develop your own outlook macro and distribute it among your colleagues. It has been tested with Outlook 2013.


  1. Popup to check sensitivity i.e. Confidential, Internal and Public before sending an email.
  2. Change subject line and mark email as confidential or internal after subject
  3. Allow user to cancel send mail and review again.


  1. Open MS outlook and click on Developer Menu then visual basic.


  1. In the visual basic window, insert a user form and design it as below. Click on insert then user form.


  1. Check recipient list for internal and confidential mails base on their email domain and if there any recipients with other domain found in the list a popup will be given to user for his/her consent. Besides mail subject line will be modified by adding confidential or Internal at the end subject to users selection.


Add following code in ItemSend event under ThisOutlookSession object..

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

Dim myFrm As frmOption

Dim Recipients As Outlook.Recipients

Dim recip As Outlook.Recipient

Dim pa As Outlook.PropertyAccessor

Dim mailadd As String

Dim i

Dim resp

Set myFrm = New frmOption


On Error Resume Next

‘ use lower case for the address

‘ LCase converts all addresses in the To field to lower case

If myFrm.optInt.Value = True Then

Set Recipients = Item.Recipients

If InStr(1, Item.Subject, “Internal”, vbTextCompare) = 0 Then

Item.Subject = Item.Subject & ” – (Internal)”

End If

For i = Recipients.Count To 1 Step -1

Set recip = Recipients.Item(i)

mailadd = recip.AddressEntry.GetExchangeUser.PrimarySmtpAddress

If Right(LCase(mailadd), 14) <> “” Then

‘–here 14 is the length of

resp = MsgBox(“There are external email addresses in the recipient list!” & vbCrLf & _

“Do you still want to send this mail?”, vbYesNo, “Alert!”)

If resp = vbNo Then

Cancel = True

End If

Exit For

End If

Next i

End If

 If myFrm.OptConf.Value = True Then

Set Recipients = Item.Recipients

If InStr(1, Item.Subject, “Confidential”, vbTextCompare) = 0 Then

Item.Subject = Item.Subject & ” – (Confidential)”

End If

For i = Recipients.Count To 1 Step -1

Set recip = Recipients.Item(i)

mailadd = recip.AddressEntry.GetExchangeUser.PrimarySmtpAddress

If Right(LCase(mailadd), 14) <> “” Then

‘–here 14 is the length of

   resp = MsgBox(“There external email addresses in the recipient list!” & vbCrLf & _

“Do you still want to send this mail?”, vbYesNo, “Alert!”)

If resp = vbNo Then

Cancel = True

End If

Exit For

End If

Next i

End If


If myFrm.optPub.Value = True Then

Cancel = False

End If


If myFrm.OptDonSend = True Then

Cancel = True

End If

End Sub


  1. Put following codes to handle user action on the form…

Private Sub cmdOk_Click()

If Me.OptConf = False And Me.optInt = False And Me.optPub = False And Me.OptDonSend = False Then

MsgBox “Please select a sensitivity level.”, vbOKOnly, “Alert”


Unload Me

End If

End Sub

 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If Me.OptConf = False And Me.optInt = False And Me.optPub = False And Me.OptDonSend = False Then

MsgBox “Please select a sensitivity level.”, vbOKOnly, “Alert”

Cancel = (CloseMode = 0)

End If

End Sub

And you are done with the macro!! Next you need to get this macro signed with digital certificate. Otherwise every time you run Outlook, it will prompt you to enable this macro. To do so please follow the steps written in

That’s all folks……..!

Posted in Email | Tagged , , , | Leave a comment

Incident Management

Incident management is a process to handle incidents that may happen or already happened to an IT service operation. An unplanned disruption or degradation of service is called as an incident.

How does it work?

Incident can be reported by the users, system admins, servers, network devices or any process failure that may degrade or stop IT service. As soon as an incident gets reported, incident management team should log this incident with following information….

1. An unique incident ID for tracking.

2. Assign severity level

3. Assignment Resource

Depending on the nature of incident, the case can be handled in three ways…

1. Fix the problem with regular ops activity therefore without changing anything. For example, if database server goes done….bring it up immediately and restore service….collect logs for further analysis…and take measure for permanent fix.

2. Call change management process, if the incident requires making changes in the system to restore the service.

3. Call problem management process, if the issue requires involvement of software or hardware manufacture to get a fix. In such case it is advisable to provide temporary arrangement as workaround to restore the service.

Applying incident management effectively

Applying incident management in service operation can be really challenge-some if you are in a heterogeneous environment with so many integrations, to keep the service up and running. Usually in a big operation, there are a lot of critical applications/services run to provide support to business. These applications/services can be as critical as 24×7. In such environment followings are advisable to implement incident management process more effective…

1. List and categories the applications/services as per their critical level. This can determine from the availability, integrity and confidentiality requirements of an application/service from the business.

2. Quantifiable impact analysis on business such as financial loss, revenue leakage etc. during service disruption/downtime.

3. Availability of following to incident management team

– Matrix containing impact and severity level for each critical applications/services

– Escalation matrix

– Notification matrix

4. Periodic update to all stakeholders as per the notification matrix.

Often it happens that the severity level given to an incident during primary stage remains same even if the service continues degrading. Therefore it is better to have a time bound impact matrix to follow, so that the incident gets proper attention and get handled properly.

That’s all for today…………..

Posted in ITIL | Tagged , , | Leave a comment

PM – Forward and Backward Pass

While doing critical path calculation two Project Management terms (PM) will always come in picture. These are Forward Pass and Backward Pass. These terms are to figure out start and finishing time of an activity and its effect on critical path calculation.

Forward Pass : it is a mechanism to move forward through a diagram to calculate total activity duration. Backward path is other way around.

  • Forward pass is used by Early Start (ES) and Early Finish (EF)
  • Backward pass is used by Late start (ES) and Late finish (EF)

Let’s run through the following diagram to get more clear idea……..

Early Start (ES) activity is A as it is scheduled on third day where B is scheduled on sixth day.  For the second activity early start day is fourth therefore the activity C and E can be performed in parallel. The reason ES for second activity is day fourth is, activity A will take three days and at earliest C and E can be started in on fourth day. So the logic is “The duration of preceding activity + 1”

Early Finish (EF) is the earliest time that an activity can be finished. To calculate early finish we use (ES for the activity + Activity duration) -1. So early finish for activity C is day seventh. The reason is activity C will start on day fourth and will take total four day (fourth, fifth, sixth and seventh).  So the earliest time it can finish is on day Seventh.

Late Start (LS) is the latest time an activity needs to start without delaying the project. Late start can be calculated by adding float to the activity early start. As per the diagram above we know that activity E has one day float and activity E’s ES is 4. So LS for activity C will be 1+4=5. Similarly, we know that activity C is on critical path therefore has zero float and activity C’s ES is 4. So LS for activity C will be 0+4=4.

Late Finish (LF) is the latest time an activity can be completed without delaying the project. LF can be calculated by LF = (Activity’s LS + Activity Duration) – 1. So the LF of Activity E = (5 + 5) – 1 = 9.

Thats all for today…………….:)

Posted in Project Management | Tagged , , , | Leave a comment

Critical Path Method (CPM)

Critical Path Method (CPM) is a project management technique that allows Project Manager to analyze project activities. And helps to find out which activities have least or no re-scheduling flexibility. These activities considered as mission critical activity and project duration schedule completely depend on completion of these activities. Not only that this tool also help project manager to predict the completion of the project and forecast of delay to the stakeholders.

The whole chain of these activities is called as critical path. Activities that fall in this path cannot be delayed at all. Any delay completion of any of these activities will end up with delay project completion.

Steps to calculate Critical Path

A critical path is a network of activities where each activity is linked to its following activity. In this network each activity represents itself as a node in the network. And the links connecting each node represent the timeline or schedule of the activity completion. To identify the critical path and calculate the schedule of the same following steps needs to be performed by the project manager.

Step 1: Create work break down structure (WBS)

Refer to my earlier post on WBS (  While creating WBS, put extra caution on the sequence of activities and Estimate time. This requires detail understanding of the scope document, activity list and the linking sequence. Linking the activities should be done very carefully and properly. Any mistake or wrong presentation will lead the path in false direction and eventually produce erroneous project completion date.

Time for each activity can be estimated using previous experience and taking support of the subject matter expert. The estimation accuracy will help to get more clearly critical path.

After finishing the listing of activities, sequencing and estimation of time, it is time to picturize the whole activity network.

Step 2: Identify the Critical Path

The critical path is the longest duration path of the network. Activities located in this path cannot be delayed without delaying the project. Therefore critical path analysis is one of the most importance elements of project planning. There are few parameters that help to identify Critical path and these are….

Early Start (ES): The earliest time to start an activity considering prior activity is been completed (this is must)

Early Finish (EF): The earliest finish time for an activity.

Late Finish (LF): Latest time for an activity must be completed.

Late Start (LS): Earliest time for an activity must start.

How to view the critical path in MS project

To view the critical path in MS project, click on view menu and select network diagram. All activities in red color are in critical path. Or click on view menu, click on more views and select detail Gantt.

Thats all for today………….

Posted in Project Management | Leave a comment

Point of total assumption (PTA)

In a fixed price incentive free (FPIF) contract, the point where buyer stops bearing cost is the Point of total assumption (PTA). In other word, it is the point, up to where buyer
bears the cost, however any cost above the PTA is not shared by buyer and totally imbibed by the seller. Surprisingly there is no discussion on “point of total assumption” in PMBOK, even the term is also absent there, but there is a possibility of having question in PMP exam on PTA, (though I didn’t get any in my exam).

Let’s take an example of PTA. The project is estimated to the cost of $30,000 and the seller (contractor) will get $10,000 as fee. The project scope is clearly defined and seller agrees on the scope. However as there is always a possibility of unknown risk and hence cost overrun, buyer agrees on bearing 70% of cost overrun and rest 30% goes on seller. At the same time buyer puts the cost limit of $50,000 for the project that includes project
cost, seller’s fee plus cost overrun share. So the ceiling price of the contract s $50,000.

Point of Total Assumption

Now seller needs to closely watch the cost of the project. Though initially buyer bear the 70% of the cost over run, but as soon as the ost hits buyers ceiling price, buyer stop taking over any additional cost. At that point and onward seller starts bearing 100% of additional cost. This point is the point of total assumption.

 PTA calculation

From the above example we get few points.

  1. The estimated cost of the project i.e. $30,000. This is the target cost.
  2. The fee of the seller i.e. $10,000. This is the target fee.
  3. Total estimated cost of the project i.e. target cost + target fee ($30,000 + $10,000). This is the Target price
  4. Cost overrun share ratio i.e. 70% buyer, 30% seller.
  5. Max price of project buyer agrees on is $50,000. This is the ceiling price.

As PTA only comes in picture in case of cost over run
therefore it can be assumed that PTA will be more then target cost. So

  • cost over run at PTA = PTA – target cost
  • Total price that buyer pay at PTA = (target cost + target fee) + buyer’s share of cost over run
  • as (target cost + target fee) = target price and cost over run at PTA ((PTA – target cost) x buyer’s share ratio) is buyer’s share of cost over run, therefore
  • Total price that buyer pay at PTA = target price + (PTA-target cost) x buyer’s share ratio
  • Now the Total price that buyer pay at PTA = ceiling price
  • so ceiling price = target price + (PTA-target cost) X buyer’s share ratio

or in other way

  • target price + (PTA-target cost) x buyer’s share ratio = ceiling price
  • (PTA-target cost) x buyer’s share ratio = ceiling price – target price
  • PTA-target cost = (ceiling price – target price)/buyer’s share ratio
  • PTA = ((ceiling price – target price) / buyer’s share ratio) + target cost

Hope it helps you understand the concept and calculation of PTA.

That’s all folks……………….

Posted in Project Management | Tagged , | 2 Comments