There is a method to adding a “contingency” factor into your reports. This would basically let you add a percentage adjustment after the total to account for possible additions not included in the originally proposed quote. In this article, let me assist you in creating this custom report.





The instructions on this blog cover the technical “contingency” feature along with the functional/implementational aspects of this approach, but not the basics of the report designer. Let’s jump right in.


Technical – Creating the Report

1- Add the following fields:

  • Create a new report based on the Project Summary Detail Subreport
  • Add the following fields to the ReportFooter1 section
    • (Name) Label 2
      • Text: Contingency
    • (Name) txtcp15
      • Text: CP15
    • (Name) TextBox5
      • Text: %
    • (Name) TextBox2
      • Text: $123,456.78
    • (Name) Label3
      • Text: TotaContingencytigency:
    • (Name) TextBox3
      • Text: $123,456.78


  • Here is a list of all the fields:


  • Here is how the fields would look like:


2- Script Changes

  • Add the following script:

Sub ReportFooter1_BeforePrint


dim stotal as Double = ReportUtilities.ReturnTextBoxValue(rpt, “ReportFooter1”, “txtProjectTotal”)

dim percentage as Double

Double.TryParse(ReportUtilities.ReturnTextBoxValue(rpt, “ReportFooter1”, “txtcp15”), percentage)

dim result1 as Double = stotal * percentage / 100

ReportUtilities.SetTextBoxValue(rpt, “ReportFooter1”, “TextBox2”, result1)

dim result2 as Double = TextBox2.Value + txtProjectTotal.Value

ReportUtilities.SetTextBoxValue(rpt, “ReportFooter1”, “TextBox3”, result2)

End Sub


  • Once the report is published, bind this subreport to your main report


Implementation – Using the Feature

3- Setup the “Contingency” Label – (First time only)

  • Go to  Setup -> Control Panel
  • Click on Project Custom Fields 
  • Select a Custom Field that has a type number (15, 16 17 or 18)
  • Replace the text with “Contingency” (without the quotes)
  • Save Close.


4- Setup the “Contingency” amount (simulating a percentage)

  • Open a project of your choice
  • Go to Information -> Custom Fields
  • Scroll down and locate the “Contingency” Custom field.
  • Please note this will be available in Step #10 of the New Project Wizard moving forward.
  • Enter the contingency. I have set this up as a non-percentage field for usability purposes. For example, 10% (technically) would need to be entered as 0.10 however, to make it easier for the end user, they will just type “10” for 10%. This also allows to enter a partial percentage (i.e. 10.5% as 10.50):
  • This method allows you to pick and choose the contingency amount instead of having it fixed on the code.
  • Save and close.




Using a sample subreport with contingency:

5- To import your report

  • Contact our support team at and request this subreport file
  • Download the file they will send to you
  • Start -> Reports -> Manage Reports -> Import -> File
  • Select the attached file (downloaded into your machine) and click on “import”
  • Open any of your existing custom report (proposal or line item) and bind this report accordingly


6- To share with other users (Optional)

  • Start -> Reports -> Manage Reports -> Export -> Server
  • As all other users to click on Start -> Reports -> Manage Reports -> Import -> Server