Best Practices for Real-Time Cost Control with Autodesk© Constructware© Jeff Marsh – Autodesk, Inc. CR4948 - Autodesk Constructware is a configurable Software-as-a-Service (SaaS) construction project management solution that helps deliver projects efficiently with near-time visibility into job costs. So, how do you achieve this "near-time visibility"? It is all about the setup behind the scenes: the configuration that is invisible to the end-users yet fundamental to making the system mold itself to your business practices, terminology, and principles. Learn from the product manager how to set up your system to minimize duplicate entry and ensure that users' activities in workflows keep your costs visible, accurate, and up-to-date. Learning Objectives At the end of this class, you will be able to: Understand Cost Management Anatomy in Constructware Learn the 7 best practices for real-time cost control in Constructware About the Speaker Jeff currently is a Technical Product Manager for Autodesk® Constructware. Prior to this role at Autodesk, Jeff was a technical consultant where he implemented and trained over 80 Constructware customers, large and small, in best practices for using project management systems on their projects. Prior to joining Autodesk in 2006, Jeff served the AEC industry selling construction project and building product data, and as a project manager with a regional contractor in the Atlanta area. Jeff enjoys spending time with his three children, working on construction projects around the home, and riding-racing anything that has two wheels. Best Practices for Real-Time Cost Control with Autodesk® Constructware® Introduction Autodesk Constructware® is the easily configured Software-as-a-Service (SaaS) construction project management solution that helps construction projects run more smoothly and be delivered more predictably and on-budget. To get your project delivered on-budget predictably, you need a system that gives you real-time cost data, including projected final costs. To achieve this, you have to make it easy for the end user – and this means doing some effective setup behind the scenes. Templates Auto Reports Advanced Macros Real-Time Cost Management ERP Integration Project Copy Workflow / Routing Masking & Labeling By doing this, you will make managing costs an extension of your users‟ documentation and communication – not a separate task that must be kept up with. End users like that – they don‟t want to be bothered with why it works, or how the cost gets updated: they just want it to work! To be able to talk about the behind the scenes setup, you need to understand how Constructware‟s Cost Management works. If you want to know more about Constructware overall, you may want to check out this short YouTube video, because the class does not take the time to go into an overall Constructware demo. http://tinyurl.com/8min-cw-demo 2 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Introduction Understanding Cost Management Cost Management in Constructware consists of 4 main areas: Budgeting Procurement (Contracts and POs) Change Management (Cost Events, RCOs, OCOs, CCOs, POCOs) Billing (Invoices and Payment Applications) For the purposes of this presentation, we‟re really discussing the items under Procurement and Change Management, and how they relate to the budget. It‟s pretty simple. The header documents like Cost Events and Contracts, contain child “Cost Items” that tie together a vendor (or your own firm), a scope or description, and the amounts to hit a cost code in the budget. One Cost Item can be on multiple header documents (an OCO (Owner Change Order) and on a CCO (Contract Change Order), for example). The status of the header document updates the Cost Item, and there‟s a separate “Budget Status” and “Cost Status” to impact the two sides of the ledger (Budget and Cost). All of this is very flexible and able to work your way – but you do need to do the setup. The purpose of this class is to tell you how to do it. Figure 1 Cost to Complete Report The Cost to Complete Report (Figure 2) is at the heart of the Cost Management process in Constructware. The report is where real-time Cost Management gets reported. The Cost to Complete Report allows the project team to anticipate and track projected cost. It is “real-time” because the updates come from the real-time documents that are created in Constructware. The movement of dollars on the Cost to Complete Report depends on the status of the document’s Cost Items. 3 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Figure 2 The columns on the left side are budget columns, and the columns in the middle are cost columns, and the right columns are the actual dollars paid out on the job. It‟s flexible, and you don‟t have to use all of these columns, but this is the basic concept. Certain documents will only affect thebudget side of the Cost to Complete Report (Budget Adjustments), and others will only affect the cost of the Cost to Complete Report (Contracts, Purchase Orders, Contract Change Orders (CCOs). Cost and Actual documents will have a cost status. Again the status of the document’s Cost Items will dictate where the dollars will appear on the Cost to Complete Report. For example, a Contract Change Order (CCO), which affects the cost, has a „Pending Change‟ cost status. The CCO dollars will appear in the “Pend. Rev.” column of the Cost to Complete Report (Figure 3), because of a setting you have made in a template (see Best Practice #1 below). When the CCO has its cost status changed to an “Approved Change”, the CCO will move from the “Pend. Rev.” to the “App. Rev.” column of the Cost to Complete Report. Figure 3 4 Best Practices for Real-Time Cost Control with Autodesk® Constructware® The dollars associated with these documents affect the Cost to Complete Report based on a Cost „Status‟ and a „Dollar‟ field (Figure 4). The available statuses and dollar fields are shown below. Notice that the „Estimated’, ‘Proposed’ and ‘Committed’ dollar fields correspond to the Cost documents, and the ‘Submitted’ and ‘Approved’ dollar fields correspond to the Budget documents. Cost Management documents with a dollar amount in a dollar field and a Budget or Cost status will appear in the Cost to Complete Report based on the assigned rules and formulas. Figure 4 Again, this is all very flexible and based on how you set up your site – which we will discuss in these best practices below. Best Practice #1 – Use Templates In the Cost Management introduction, you heard about how header documents interact with the cost codes in the budget to drive the real-time reporting in the Cost to Complete report. To make the budget coding system work your way – and be compatible with your accounting system (Best Practice #5), you‟ll need to get your Cost Code Template set up. The Cost Code Template drives the budget code structure. To get the cost to hit the right column in your ledger – you‟ll first need to actually have a ledger to hit. You create this with a Ledger Template. Your site can have as many Cost Code Templates and Ledger Templates as you want, but each project gets one of each to make a budget. Figure 5 5 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Cost Code Templates Set up your Cost Code Templates in Maintenance > Data Maintenance > Cost Code Templates. The help system has exact steps, so here we‟ll just explain the concept. You can have up to 15 segments of up to 9 characters each. I‟m not smart enough to have a 15-segment cost code, so I just have four in this example. But I‟ve seen smart people have 10 to 15 segments before. A few key points to make here: The Name will show up on your budget reports, so be sure to use something short but meaningful. The width will be enforced, and should match up to your accounting system. The Separator is not part of the code, but shows up to make the code more readable. Figure 6 Ledger Templates The Ledger Template is what creates all the columns like “Original Budget,” “Pending Change Orders”, “Projected Bomb Crater” and things like that. Seriously, whatever you use in your business to track the status of money – as committed, spent, or whatever – you should set that up using the Ledger Template. Again, the online help gives you the step by step, but this is a really important thing to get the way you want it before you start tracking costs, because changing after the fact on an ongoing project isn‟t that much fun. You can make as many columns as you want to in your Ledger Template, but there are only so many Budget Statuses and Cost Statuses to go around. That‟s typically not an issue, because most people tend to not want an infinite number of “buckets”, but tend to have more calculated columns off of those buckets, and you can have as many calculated columns as you want to. My example has a whole bunch of columns in it (evidently I‟ve decided I‟m smarter on Ledgers than on Cost Codes), but you don‟t have to. I have seen really nice Ledger Templates with only 5-6 columns in them, and I‟ve seen some with over 20. It‟s up to you and how you track and project costs. A few key points to make about Ledger Templates: Columns can either be “Data” or “Calculated”. Data columns are like “buckets” that documents dump money into or withdraw it from based on their status. Calculated columns are formula driven, and can include other data or calculated columns, or some “macros” for stuff like the Original Budget value from a Budget Code. Some of the formulas are very simple, as in “This column plus that column”. Some of them are more complex, and involve nested formulas. You can get really fancy with Best Practice #2 - Advanced Macros by inserting SQL statements into the formulas. Budget Templates A Budget Template lets you have a pretty much canned budget for your project. You can include costs in there (which is sort of weird except for prototypical projects), or not. But you can 6 Best Practices for Real-Time Cost Control with Autodesk® Constructware® save yourself a lot of time by creating templates that include all the codes you want to have in your project, complete with the appropriate Cost Code Template and Ledger Template. Then when you create a new budget, just pick the right template and go. You don’t want to let the project get started and have to catch up with the budget later. Best Practice #2 – Use Advanced Macros Ok, for this one we‟re going to re-visit the Ledger Templates subject. So far, all of the formulas I have shown you include pretty simple equations, like “A + B”, or even tough ones like “(A + B)/A.” However, if you want to have some conditional formulas in there, to execute logic like, “If I haven‟t written a commitment, just assume that the final cost is equal to the budget,” you‟ll need to write some SQL. You can use the following SQL commands in a formula: = != < > CASE WHEN ELSE END AND OR NOT NULL THEN ( ) + * / ^ Additionally, Constructware has the following built-in short-cuts to values or calculations, that can be included in formulas just like another column. These are listed below. [BudgetCodeBudget] Budget code budget amount. [BudgetCodeEstimate] Budget code estimate amount. [BudgetCodeForecast] Budget code forecast amount. [BudgetCodeWorkComplete] Budget code percent work complete. [BudgetCodeBilled] Budget code billed amount. [BudgetCodeActual] Budget code actual amount. [CommittedExists] Committed amount exists (0=False,1=True). So, let‟s talk about some examples you could create in your projects, shown below: Example Description Sample SQL Check for #Div/0 Error I want to know the Change Orders as a % of Budget CASE WHEN [Org Bgt] = 0 THEN 0 ELSE [APPROVED COs]/[Org Bgt] END Expected Final Cost If there are commitments, tally the expected final cost. If not, just show the updated budget. CASE WHEN [CommittedExists] = 0 THEN [Pend. Rev. Bud.] ELSE [Orig. Comm. Cost]+[App. Cost Chg.]+[Pend. Cost Chg.]+[Proj. Cost Chg.] END 7 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Buyout If there are commitments, calculate the original budget buyout. If not, show 0 because there‟s no contract yet. Case WHEN [CommittedExists] = 1 THEN [ADJUSTED BUDGET]-[ORIGINAL COMMITS] ELSE 0 END Hyper-Conservative Estimate at Complete If the Total Appropriations is greater than the Total Projected costs, then project the Total Appropriations as Estimate at Completion. CASE WHEN [TOTAL APP]>[TOT PROJ] THEN [TOTAL APP] WHEN [TOTAL APP]<[TOTAL PROJ] THEN [TOTAL PROJ] WHEN [TOTAL APP]=[TOTAL PROJ] THEN [TOTAL PROJ] END Best Practice #3 – Copy Projects Even better than copying a budget template is copying a project and its budget when you have a prototypical project. I typically refer to this as a “template project” (Figure 7). This is better because if your Ledger Template depends on the Forecasts in the Budget, you can include those to have a balanced budget (no over and under) from day one. Figure 7 8 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Figure 8 Note that not only can I copy my Budget and Cost Codes, I can also copy my ERP Integration (“Data Exchange Setup”) – to be discussed with Best Practice #6 below. By copying this information from project to project, and not setting it up manually – you can greatly increase your chances of achieving “real time” Cost Management. Best Practice #4 – Masking & Labeling Constructware Cost Management modules have a lot of fields available in them, and they use some pretty generic terminology that is intended to apply to many companies large and small, owners and contractors alike. But, if you want your users to really understand intuitively how to use the forms – and to actually fill them out in real time - you should consider simplifying and “translating” them for the users. You do this with Masking & Labeling, an option you can find in Maintenance > Data Maintenance > Module Customization. Figure 9 9 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Masking Masking is simply taking the fields in a form, and making them read-only or hidden. If you aren‟t going to be using a field – HIDE IT! Users always feel compelled to fill in fields that you present to them, so don‟t make their busy lives any harder than necessary by leaving fields in there when you‟re not using them. You do this by creating a new “Masking” template, changing the settings of each field, and saving it. Oh, and whichever template is marked “In Use” is the one that‟s being used in the site. Figure 10 Figure 11 Labeling Labeling is your opportunity to use your own business terminology in Constructware. This makes it a lot easier for your users to use – of course – because the module names and field names mean the same thing to them in Constructware that those words mean elsewhere. Again, like Masking, this is super-easy to set up. All you do is create a new Labels template, decide which Figure 12 10 Best Practices for Real-Time Cost Control with Autodesk® Constructware® fields you intend to rename, and rename them. It may be helpful to print out the screen from the Masking you will be using, so you can remember which fields are going to be hidden – so that you don‟t bother with those. Note that not only can you change the names of the fields – you can even change the name of the modules themselves for many modules! On the Attributes tab of the Labels template, the items under “Module” refer to the various forms of a Module Name used in the product – abbreviations, plurals, and in the menu. You won‟t believe how helpful it is to reduce the number of fields and improve the usability of the system by relabeling it to match your existing business terminology! Go from this…. Figure 13 11 Best Practices for Real-Time Cost Control with Autodesk® Constructware® …to this: Figure 14 Note in the above, that many of the fields between Type and Scope of Work have been removed, and that the module has been renamed to “Potential Change Orders” from “Cost Events.” Best Practice #5 – Use Workflow People have a really hard time following processes. It‟s not because the people are lazy or don‟t want to do things the right way, but because they have a lot to do, and let‟s face it – some of our process are really complex. So, as a result, we don‟t know about change orders pending, or statuses are not updated properly – so we don‟t know what‟s happening in the field except as a distant rear-view mirror. 12 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Good news: you can set up workflows in Constructware to systematize your processes. Now all of the other setup you‟ve done to get your Cost Code Template, Ledger Template, and Cost and Budget Statuses the way you need them will start to flow, because the workflows themselves can manipulate that stuff for you. All the users have to do is create documents, and send them around for approvals. We call this functionality “Routing,” and you can set up some really complex workflows there. Figure 15 Routes can be set up across your site (“client level”), or at the project level. To the extent possible, I recommend setting them up at the site level and then copying them to projects if there are special tweaks. It‟s just easier that way. You set these up in Maintenance Data Maintenance > Module Customization on the Routing tab of a given module. The routes are module-specific because they are able to manipulate the specifics of the modules, like the contents of certain fields. As with the other areas, there is good online help for the step by step guides, but here I‟ll try to let you know some important stuff to pay attention to. First, when you create a Route, make sure you give it a name that is going to make sense to your users. Don‟t just name it something like “Cost Event Route” unless it‟s the only route you‟re going to create. 13 Best Practices for Real-Time Cost Control with Autodesk® Constructware® A few other things you need to decide on the General tab (Figure 16) are: Whether you‟re going to let anybody change the document during the route, or if it‟s just an “as-is” approval flow. Whether the document or form gets locked at the end of the route. This is good for Contracts or Purchase Orders as you do not want anyone to be able to change a contractual commitment. It forces them to create a Change Order. Whether or not the person with ballin-court can send the document to others for additional input, or even delegate their responsibility to respond. What causes this route to get selected or shown as an available route? For example, you can have one route for owner-requested change orders, and another one for changes originating in the field. Figure 16 The Document Updates tab (Figure 17) is another important tab for automating real-time cost visibility. This is where you decide how the route manipulates the document under review or workflow. For example, do you want the Cost Status and Budget Status set to certain values based on the initiation and completion of the workflow? I strongly Figure 17 14 Best Practices for Real-Time Cost Control with Autodesk® Constructware® recommend that you set this up – it is what will make the status changes invisible to the end user while at the same time updating the information on the Cost to Complete report. Finally, the workflows steps (Figure 18) themselves are set up on the Routing Steps tab. The best tip I can give you here is that it‟s usually less clicks to set this up starting with the last step in the route, ending with the first one. That way the „next step‟ for each step will generally already exist while you‟re taking this step. A few things to point out here: Give the step a meaningful name. More importantly, write meaningful instructions for the user that will be in this step. They‟ll often receive the notification out of the blue and instructions make it much easier. The Step Type determines the responses available to the end user. Use Routing Roles instead of specific users in your setup, whenever possible. This way, you can put people in roles on projects in the Project Team and easily switch them out. Reminders are great, but don‟t get too overactive with them (like my example). The Step Exit Conditions are very important if you want to have “intelligent” Figure 18 routes that branch based on the contents of the document or form under review. Constructware evaluates the exit conditions top to bottom, and the first one that‟s true will get executed. With your routes set up, the users just have to click the “Route” button with a document selected, pick the route they want to follow (if more than one is available) and submit it. Then, the answers in the route or workflow will update the Cost Status and Budget Status – giving you real time updates as to cost. 15 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Best Practice #6 – Integrate With ERP Constructware can be integrated with your ERP or Accounting systems, and to eliminate duplicate entry of data, you should do this. I‟m not trying to tell you you‟re wrong for not integrating the two, but your users will sure appreciate not entering the same data in both places. And your management will sure appreciate it when the data in the field matches the data in your ERP system, including the latest information about pending change orders. Integrating with your ERP system requires that you – or somebody who knows how to – write some software to move data from Point A to Point B. The approach taken in Constructware is to use XML (eXtensible Markup Language) as a carrier for data. XML is nice because the data elements are described in the tags, and it‟s very readable by humans. And, because the data is described by tags around it, it‟s easy to only post and get the data you want, and the order of fields is not important. I recommend hiring a firm that knows how to integrate Constructware and accounting systems, like Jitterbit, because that makes it easy. Constructware has been integrated with at least these accounting systems to date: JD Edwards (World and One World) SAP GEAC Timberline Comdata (credit card transactions) Star Builder Computer Guidance (CGC) Walker Oracle Financials Custom proprietary system There may be others. Since it‟s such a loose coupling, unless the customer tells us what they‟re integrating with, we won‟t know. To make the project easiest, I recommend that you get people in Accounting and Operations in the same room (oh, the horrors!) and decide what types of documents are going to be “owned” by Constructware, and what types will originate in the ERP system. For example, are budgets going to start in Constructware, or be inserted into Constructware? For that matter, are projects going to start in Constructware, or be inserted there? You can see how there are lots of decisions to make. Then, take screen shots in each system, and map the fields together (Figure 19). Figure 19 16 Best Practices for Real-Time Cost Control with Autodesk® Constructware® After that, you can map the fields together in what we creatively call a “Technical Field Mapping”, where you can be sure the data types line up, and that you can really match the fields together (Figure 20). Figure 20 Only then should you have a programmer start writing the software that moves the data. In reality, this software is pretty easy to write – and is already written by folks like Jitterbit – but if you haven‟t thought through the mapping of data on the business side, there‟s no point in writing software. Figure 21 17 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Best Practice #7 – Auto Reports Now that the cost management has been configured for the project, the last best practice is to give the users preconfigured reports that will automatically run at a predetermined time. So instead of your users trying to determine what reports to run, give them a step up by creating auto reports that they will need to run. It is also a good idea to discuss this during the project‟s kickoff meeting with internal and external users to determine timings (daily, weekly, or monthly) and other reporting criteria. As with the other areas, there is good online help for the step by step guides, but here I‟ll try to let you know some important stuff to pay attention to. Figure 22 Figure 22 First determine which reports you want to run. Here are a few examples: Cost to Complete Report - Basic (Figure 23) Figure 23 18 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Cost to Complete Report - Detailed (Figure 24 and 25) Figure 24 Figure 25 Cost to Complete Report with certain columns hidden Cost Events sorted by Status Outstanding Events (Figure 26) 19 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Figure 26 Overdue Routes (Figure 27 and 28) Figure 27 Figure 28 20 Best Practices for Real-Time Cost Control with Autodesk® Constructware® Once you find a report to use continue to refine the report by making changes on the detail page. Such items to consider are (Figure 29): Projects – Do you need to run the report on more than one project. Filtering – Are you looking for a certain budget code or a specific company or contact Sorting – Sort by number, Budget or Cost Status Display Options – Certain fields do not automatically show on the report. You can toggle which fields are displayed. Report Header – Do you want your company‟s logo to display on the report. Would you rather have lines vs. the rows being shaded. Figure 29 Once you have the report looking good, you create the auto report by clicking. Once here there are a couple of options: Rename the report especially if creating several auto reports with the same report. For example, Cost to Complete – Basic vs. Cost to Complete – Detailed Figure 30 Who to you want the report to go to? When you add a user as a recipient, they will see the report on the CW Desktop in the Auto Reports section every time the report runs. Otherwise the user would have to “manually” run the report by navigating to the Auto Reports tab. 21 Best Practices for Real-Time Cost Control with Autodesk® Constructware® How often (frequency) do you want the reports to run? Choices include Daily, Weekly, Monthly or Manually. Manual frequency means that you must view the Auto Report manually from the Auto Reports tab. What day do you want the reports to run. For example if you want the report to run every Monday, then choose a date that falls on a Monday. Figure 31 22