Contract Express Lessons Learned

I have been working with and following Contract Express as a consultant for a number of years.  I recently had the opportunity to convert a complex GhostFill document assembly system to Contract Express.  In working on the project I had chance to do an in depth look at Contract Express in its current incarnation.  At the outset of the project, after initial planning but before coding began, Contract Express enabled developers and consultant to create custom functions.  This brand new feature became key to leveraging features that had existed in GhostFill, but, till that time, were beyond the reach of Contract Express.

Interview Design Methodology

Because this project was a conversion, and not built from scratch, my interactions with attorneys and paralegals was limited.  Typically, I spend 8-12 hours reviewing the documents closely with the attorneys to extract from them the business rules and logic, as well as to identify and organize the variables.  In this case, I already had that work done.  Albeit, with GhostFill clauses, I had to do much work bring back in all the clauses into a series of master templates.  While Contract Express does have support for an INCLUDE function to insert clauses, the programs works best when the author can see all the text in one document.  My current design methodology or document assembly projects includes:

  • Map in Excel a list of all the current legacy variables
  • Group the variables into Pages (or Dialogs) and then Sections.  You should also determine the order of variables with the more important coming first.  This is particularly important in Contract Express where a common error message is that the relevance of field is controlled by a variable that follows the current variable.
  • Know your variable type and create the appropriate prompt.  While Contract Express supports check boxes for boolean variables, you will find the Yes/No version to be preferable.  Frame your prompt accordingly (e.g. “Include preventative maintenance clause?”
  • Take advantage of Sections and usage of Active Text.  If you have a section called “Spouse”, you don’t need a prompt for “Enter name of Spouse”.  You can go with “Name” which is shorter and easier to understand in the context.
  • Assign the properties and any options in the spreadsheet FIRST before you start coding the template.

I use the approach of a shared template to store my data dictionary.  In this case, I copy my list of variables from the spreadsheet into a word document and use that as a base template.  When you are done creating all the variables, you can surround the table with square brackets and the word “FALSE” so that the text is not used to measure relevance.

Template Coding

Square bracket notation takes a while to get used to.  It is important to use the “expand to span” to figure out where your span for optional text ends.  Sometimes, this is a chicken and egg situation where a span is broken.  The template has “too many errors” for you to expand to select the span; but until you do that you can’t see where the coding error is.  I have taken blocks of text and put them into a separate document to identify and correct span errors.  Here are some lessons I have learned.

  • Start Simple. You can always add complexity.  But try to keep the rules simple and short.  Create computed variables for any complex combination that occurs in multiple spots.
  • Pay attention to bracket placement.  A span CANNOT begin in one paragraph and finish in the middle of another paragraph.
  • Know your Venn Diagram Logic.  There is no “ELSE” span.  Rather you need to state the rule and then surround the rule in parenthesis and precede it with a NOT.  You can easily get either both or none of the text you desire coming in.
  • Color Code.  Run colors; they are your friend.  The process will force you to validate your template before you make too many errors.
  • Pop-out the Dictionary.  If you dock the dictionary, you should size it large enough to see the values and options.  It lets you find in template where your active variable is being used.  However, if you are working on computed variables or multiple choice, it is a good idea to undock the dictionary.  This will temporarily lock the template from editing, but it lets you see all the variable configuration options.

I hope you have enjoyed these tips.  If you need a Contract Express consultant to help you with your project, please feel free to contact me directly by clicking here.


Leave a Reply