Construction projects can be massive endeavors involving multiple different parties. For example, there may be an owner who is funding the project, a general contractor (“GC”) who manages the overall construction project, and numerous subcontractors who provide labor and materials to the GC to build the project. Typically, there is a “prime contract” between the owner and the GC, outlining the GC's responsibilities for the project and the fees that the owner will pay to the GC. The GC, in turn, may enter into subcontracts with its subcontractors to complete portions of the construction project.
The prime contract between the owner and GC may reference construction specifications and drawings (e.g., architectural and engineering drawings), as well as a schedule of values (“SOV”) identifying how much the owner will pay the GC for each portion of the project. The SOV may include various cost codes associated with approved expenditures within each portion of the project. Similarly, a subcontract between the GC and subcontractor may describe the work that the subcontractor will perform for the construction project, along with the associated cost codes for the project, as well as an amount that the GC will pay the subcontractor for their work.
During the course of construction, subcontractors typically issue invoices to the GC for work they have provided during a given billing period. The GC, in turn, may invoice the owner for payment that includes the corresponding amounts due to the various subcontractors. Given that a construction project may involve dozens, if not hundreds of subcontractors, the process for a GC to create owner invoices can be extremely cumbersome.
Accordingly, having an effective and efficient project management system in place is important for any organization trying to manage contractual obligations in a complex construction project.
A prime contract between an owner and a GC can take a number of different forms. One of the most common is a guaranteed maximum price (“GMP”), also known as a “cost plus” or “not-to-exceed” contract, in which the owner pays the GC for the actual costs the GC incurs during the construction project, plus a fixed fee, all of which is subject to a maximum price. The SOV associated with a GMP contract can be quite detailed, including multiple divisions that represent general areas of work that will be done on the construction project (e.g., 01—General Requirements, 02—Site Construction, 03—Concrete, 04—Masonry, etc.). Further, each division (or division code) may include multiple cost codes representing more specific categories of work that will be performed within each division. Cost codes and their parent division codes may collectively be referred to as project codes, although another nomenclature is also possible.
For instance, within the division code 03-Concrete, the SOV of the prime contract (the “prime contract SOV”) may include cost codes such as 03-100—Concrete Reinforcement, 03-210—Cast-In-Place Concrete, 03-230—Anchor Bolts, and so on. Further, each line item of the prime contract SOV may have an associated cost type that indicates the type of cost corresponding to the line item in question. Example cost types include “Labor,” “Materials,” or “Commitment” which may indicate that the GC will obtain a commitment from a subcontract to complete the work. For example, the GC will typically enter subcontracts with numerous subcontractors to complete the work associated with one or more of the individual cost codes. Accordingly, each subcontract may include its own SOV (a “sub SOV”) that includes one or more line items matching up to a cost code and cost type from the prime contract SOV.
For each billing period during the project (e.g., monthly), the GC will receive invoices from its subcontractors (“sub invoices”) for the work that each subcontractor performed during that period, with each sub invoice listing the relevant project code, typically at the cost code level of detail. After reviewing and approving each sub invoice, the GC may then prepare a corresponding owner invoice that matches up the line item costs that the GC incurred, by cost code, to the associated cost codes in the prime contract SOV. With a large number of sub invoices, this process can be quite time consuming and difficult to manage.
Another common type of prime contract is a lump-sum, or fixed-price contract. Unlike a GMP contract, under a lump-sum contract, the owner and GC agree in advance on the fees that the GC will be paid for each portion of the project. These lump-sum fees include both the GC's costs as well as its profits. The prime contract SOV associated with a lump-sum contract is typically far less detailed than that of a GMP contract and may only include line items having project codes detailed at the division level, without drilling down on specific cost codes in each division. Nonetheless, a GC's subcontracts will typically still include a sub SOV detailing the specific cost code(s) for which a subcontractor is responsible, as above, as this may assist the GC in managing its own subcontracts, costs, and obligations during the construction project.
Although the owner does not pay the GC's actual costs under a lump-sum contract, it may still be desirable for the GC to invoice the owner an amount that is approximately equal to the invoices the GC received, and is obligated to pay, during a given period. Thus, the GC may include all approved sub invoices received during a billing period, as discussed above, in preparation of the owner invoice. However, the line item costs in each sub invoice will be associated with cost codes that are not present in the prime contract SOV, which includes only line items with a parent-level (i.e., division-level) project code.
Thus, the GC must determine, for each cost code in its sub invoices, the corresponding division code. For example, the cost code 03-100—Concrete Reinforcement corresponds to the division code 03—Concrete. The GC can then match each sub invoice line item to the corresponding division codes that appear in the prime contract SOV and prepare an owner invoice that aggregates the sub invoice costs within each respective division. In some cases, the GC may also include a markup of its costs to represent a portion of its profits that were built into the lump-sum contract. As with a GMP contract discussed above, the process of owner invoicing under a lump-sum contract can be very time consuming and cumbersome.
Further, under either type of prime contract, a construction project may also include additional contractual obligations in the way of change orders, which typically represent changes in project scope after the initial contract is agreed to. Change orders, once approved, may introduce new project codes to the prime contract SOV, change the costs associated with existing project codes, and/or introduce new subcontractors and new sub invoices. This may require even further coordination and diligence on the part of the GC to match sub invoice costs with the correct line items in the prime contract.
To address these and other problems associated with the numerous contractual responsibilities that may be associated with a construction project, disclosed herein is an improved software application that enables users to track and manage multiple layers and different types of contractual responsibilities among the parties involved, and to more easily generate owner invoices based on those contractual responsibilities. In this respect, the disclosed software application provides a flexible solution that allows users to manage projects in a more effective manner.
At a high level, the disclosed software application enables a GC (or other construction manager, project manager, etc.) to generate prefilled owner invoices that automatically match incoming costs from subcontractor invoices and other sources to the corresponding line items in a prime contract SOV, regardless of the format of the prime contract and inclusive of any approved change orders. This may facilitate the efficient preparation of owner invoices that is greatly improved over previous methods.
The processes discussed herein may involve querying all line items from approved sub invoices that fall into a selected period, and then indexing each sub invoice line item into an index table a plurality of times. For example, the indexing may involve adding each sub invoice line item to the index table a first time according to its associated cost code and cost type, and then a second time according to its associated division code, which the software application may derive from the cost code. After the index table is populated, the software application may, for each line item in the prime contract SOV, find all matching line items in the index table. Although each line item from the sub invoices is repeated in the index table due to the multiple indexing, each line item will only be matched to the prime contract SOV once based on the type of project code used in the prime contract SOV—division codes (e.g., a lump-sum contract) or cost codes (e.g., a GMP contract). Each of these processes, which may take various forms and may be carried out in various manners, are described in further detail below.
Accordingly, in one aspect, disclosed herein is a method that involves (1) receiving, via a first client station associated with a first user, a prime contract schedule of values (SOV), where the prime contract SOV includes a plurality of line items, each line item in the prime contract SOV having an associated project code and contract amount; (2) receiving, via a second client station associated with a second user, one or more sub invoices, where each sub invoice includes at least one sub invoice line item, each sub invoice line item having an associated cost code and sub invoice amount; (3) matching the cost code from each sub invoice line item to a corresponding project code in one of the plurality of line items in the prime contract SOV such that each sub invoice line item corresponds to one of the plurality of line items in the prime contract SOV; (4) based on the matching, generating a prefilled owner invoice such that the sub invoice amount from each respective sub invoice line item is applied to the contract amount from the corresponding line item in the prime contract SOV; and (5) causing a third client station associated with a third user to display the prefilled owner invoice.
In another aspect, disclosed herein is a computing system that includes a network interface, at least one processor, a non-transitory computer-readable medium, and program instructions stored on the non-transitory computer-readable medium that are executable by the at least one processor to cause the computing system to carry out the functions disclosed herein, including but not limited to the functions of the foregoing method.
In yet another aspect, disclosed herein is a non-transitory computer-readable storage medium provisioned with software that is executable to cause a computing system to carry out the functions disclosed herein, including but not limited to the functions of the foregoing method.
One of ordinary skill in the art will appreciate these as well as numerous other aspects in reading the following disclosure.
The following disclosure makes reference to the accompanying figures and several example embodiments. One of ordinary skill in the art should understand that such references are for the purpose of explanation only and are therefore not meant to be limiting. Part or all of the disclosed systems, devices, and methods may be rearranged, combined, added to, and/or removed in a variety of manners, each of which is contemplated herein.
As described above, the present disclosure is generally directed to an improved software application that enables users to track and manage the contractual obligations involved in a construction project such that the given project can be managed in a more effective manner. For instance, the disclosed software application may enable a GC to generate prefilled owner invoices that match incoming costs from subcontractor invoices and other sources to the corresponding line items in a prime contract SOV, regardless of the format of the prime contract and inclusive of any approved change orders. This, in turn, may facilitate management and execution of the given project in a more efficient and convenient manner.
At a high level, the disclosed software application may comprise front-end software running on client stations of individuals involved in creating the contractual obligations associated with a construction project, and back-end software running on a back-end platform (sometimes referred to as a “cloud” platform) that interacts with and/or drives the front-end software, which may be operated (either directly or indirectly) by the provider of the software. In this respect, the front-end software may take the form of a native application, a web application, and/or a hybrid application, among other possibilities. However, the software technology disclosed herein may take other forms as well.
While running on a user's client station, the front-end of the disclosed software application may provide a user interface through which the user may interact with the software application via visual elements, control elements, or the like. Further, the front-end of the disclosed software application may be comprised of one or more discrete software modules, where each respective software module defines a respective “view” of the user interface through which the user may interact with the software application.
In practice, a given view of the user interface provided by the front-end of the disclosed software application may include one or more “windows,” which may display information and/or present control elements within a certain area of the view. A window can take various forms, and in particular, a window can be manipulated by a user to take various forms. For instance, a user may manipulate a window by hiding (i.e., minimizing or closing) the window, adjusting the window to a different size, and/or moving the window to a different area within a view (e.g., place it next to another window, place it in front of or behind another window, etc.). A window can be manipulated to take various other forms as well.
Further, in practice, a given view of the user interface provided by the front-end of the disclosed software application may include a “menu” that allows a user to select an option to execute a given command (e.g., a command to navigate to another software module of the disclosed software application's front-end). Such a menu may take various forms. As one possibility, a menu may take the form of a “menu bar” that is displayed horizontally across the top of a view and/or along the top of one of more windows within a view. As another possibility, a menu may take the form of a “pull-down menu” that includes a list of options to execute a given command. As yet another possibility, the menu may take the form of a menu bar that includes a pull-down menu, among other control elements, such as one or more filters and/or individual icons that can be selected by an individual to execute a given command. The menu may take various other forms as well.
The user interface of the disclosed software application's front-end may take various other forms as well.
Turning now to the figures,
In general, back-end platform 102 may comprise one or more computing systems that have been provisioned with software for carrying out one or more of the platform functions disclosed herein, including but not limited to functions related to the disclosed process of generating prefilled owner invoices that match incoming costs from subcontractor invoices and other sources to the corresponding line items in a prime contract SOV. The one or more computing systems of back-end platform 102 may take various forms and be arranged in various manners.
For instance, as one possibility, back-end platform 102 may comprise computing infrastructure of a public, private, and/or hybrid cloud (e.g., computing and/or storage clusters) that has been provisioned with software for carrying out one or more of the platform functions disclosed herein. In this respect, the entity that owns and operates back-end platform 102 may either supply its own cloud infrastructure or may obtain the cloud infrastructure from a third-party provider of “on demand” computing resources, such include Amazon Web Services (AWS) or the like. As another possibility, back-end platform 102 may comprise one or more dedicated servers that have been provisioned with software for carrying out one or more of the platform functions disclosed herein. Other implementations of back-end platform 102 are possible as well.
In turn, client stations 112, 114, 116 may take any of various forms, examples of which may include a desktop computer, a laptop, a netbook, a tablet, a smartphone, and/or a personal digital assistant (PDA), among other possibilities.
As further depicted in
Although not shown in
As one example, a given external data source may comprise a database that stores user account information for potential users of the disclosed software application, which may include a potential user's credentials to access different modules of the software application, and back-end platform 102 may be configured to obtain user account information for a potential user from the given data source. As another example, a given external data source may comprise a database that stores data related projects associated with an organization, and back-end platform 102 may be configured to receive such data and cause a client station to present such data. A given external data source may take various other forms as well.
It should be understood that network configuration 100 is one example of a network configuration in which embodiments described herein may be implemented. Numerous other arrangements are possible and contemplated herein. For instance, other network configurations may include additional components not pictured and/or more or less of the pictured components.
Processor 202 may comprise one or more processor components, such as general-purpose processors (e.g., a single- or multi-core microprocessor), special-purpose processors (e.g., an application-specific integrated circuit or digital-signal processor), programmable logic devices (e.g., a field programmable gate array), controllers (e.g., microcontrollers), and/or any other processor components now known or later developed. In line with the discussion above, it should also be understood that processor 202 could comprise processing components that are distributed across a plurality of physical computing devices connected via a network, such as a computing cluster of a public, private, or hybrid cloud.
In turn, data storage 204 may comprise one or more non-transitory computer-readable storage mediums, examples of which may include volatile storage mediums such as random-access memory, registers, cache, etc. and non-volatile storage mediums such as read-only memory, a hard-disk drive, a solid-state drive, flash memory, an optical-storage device, etc. In line with the discussion above, it should also be understood that data storage 204 may comprise computer-readable storage mediums that are distributed across a plurality of physical computing devices connected via a network, such as a storage cluster of a public, private, or hybrid cloud.
As shown in
Communication interface 206 may be configured to facilitate wireless and/or wired communication with external data sources and/or client stations, such as client stations 112, 114, 116 in
Although not shown, platform 200 may additionally include one or more interfaces that provide connectivity with external user-interface equipment (sometimes referred to as “peripherals”), such as a keyboard, a mouse or trackpad, a display screen, a touch-sensitive interface, a stylus, a virtual-reality headset, speakers, etc., which may allow for direct user interaction with platform 200.
It should be understood that platform 200 is one example of a computing platform that may be used with the embodiments described herein. Numerous other arrangements are possible and contemplated herein. For instance, other computing platforms may include additional components not pictured and/or more or less of the pictured components.
As described above, the present disclosure is generally directed to an improved software application that enables users to coordinate and manage contractual obligations within a construction project. In particular, the software application may enable a user, such as a GC, to generate prefilled owner invoices that automatically match incoming costs from subcontractor invoices and other sources to the corresponding line items in a prime contract SOV, regardless of the format of the prime contract.
As one example to illustrate,
The example view 300 also includes a tool indication 320 showing which tool of the front-end module is currently in use. The tool may be a sub-module with the front-end module that allows the user to perform certain functions within a given aspect of the project. In
For example, the Prime Contract tool shown in
Under a “Schedule of Values” tab 330, the GC may enter data related to the SOV of the prime contract, or prime contract SOV. For example, the view 300 shows a region 340 including controls for the GC to manually add line items to the prime contract SOV. As another example, the front-end module may include options for importing data from other sources to populate the prime contract SOV. For instance, the front-end module may include a separate “Budget” tool that allows the GC to build a cost estimate for the construction project at a cost code level, which may be useful as part of a bidding process, for instance. In some implementations, the front-end module may allow the GC to import a previously created cost estimate from the Budget tool to populate the line items of the prime contract SOV. Any modifications might then be made manually. As yet another example, the Prime Contract tool of the front-end module may allow the GC to import data to populate the prime contract SOV from an external source, such as a spreadsheet or CSV file. Other possibilities also exist.
After the data is entered, whatever its source, the prime contract SOV can be viewed in the front-end module, as shown in
The front-end module of the software application shown in
Although the examples thus far have generally referred to a GC utilizing the software application at a first client station 112 to manage contractual obligations associated with a construction project, other users at other client stations are also possible. As discussed above, the data entered at the first client station 112 may be communicated to and synced with a back-end platform, such as the back-end platform 102 shown in
Turning now to
General information related to a subcontract may be entered in a General tab 425 in the view 400. Similar to a prime contract, a given subcontract may also include a schedule of values, or sub SOV, that the GC may input under tab 430. The sub SOV will typically include line items with associated project codes at the cost code level, as seen in the sub SOV 460 shown in
Comparing
The view 500 also includes a progress entry region 565 within which the subcontractor may assign values to each line item of the sub SOV, representing the amount of work that the subcontractor completed within the billing period. For instance, the subcontractor might enter percentage completion values for one or more line items in the sub SOV. In
The view 500 also includes a change order region 571 where line items from any approved change orders to the subcontract may appear. The change order region 571, when populated, may resemble the progress entry region 565, where the subcontractor may enter a completion percentage for the line items of each approved change order. Further, the view 500 includes an attachments region 572 where the subcontractor may upload supporting documentation for the sub invoice that is being created. The supporting documentation might include signed change orders, purchase receipts, photos of completed work, and the like. At the bottom of the view 500, the subcontractor may press a submit button 573, which submits the sub invoice for review to the GC. Any supporting documentation uploaded by the subcontractor in the attachments region 572 will be attached to the sub invoice, allowing the GC to conveniently review the sub invoice and supporting documentation together.
On some construction projects, the GC may perform some of the work outlined in the prime contract SOV. Further, the GC may incur other direct expenses, such as material costs, that might fall under the prime contract SOV. Unlike the commitments discussed above (e.g., subcontracts), these expenses may be categorized as direct costs of the GC and recorded via a “Direct Costs” tool within the front-end module. The creation of a direct cost record may be substantially the same as the creation of a subcontract as discussed above and generally shown in
After a user creates a new sub invoice or direct cost invoice for review, another user may review and approve it. Each individual user may access the software application via a user account that includes permission levels for taking certain actions. Further, individual users within the same organization, such as different employees of the GC, may have different permission levels. For instance, a subcontractor may have a user account for accessing the software application. The subcontractor user account may have permission levels allowing the subcontractor to create and submit sub invoices for review, and to view (but not edit) the subcontract and sub SOV. However, the subcontractor's user account may not permit the subcontractor to edit or even view the prime contract or prime contract SOV. Numerous other examples and permission levels are also possible for any of the users discussed herein.
As noted above, the GC user reviewing the sub invoice may update the values entered by the subcontractor. For example, as shown in
During a given billing period (e.g., monthly), the GC may receive and approve a substantial number of sub invoices from multiple different subcontractors, depending on the size and scope of the construction project. Further, the GC may incur costs from other commitments, such as POs, as well as direct costs for portions of the project the GC is handling directly. It may then be desirable for the GC invoice the owner in such a way that applies each of the costs that the GC incurred to the corresponding line items from the prime contract SOV. However, as noted above, tracking each of these costs and correctly applying them can be challenging, particularly when the format of the prime contract SOV may be different from one project to the next.
To address these challenges, the software application discussed herein may implement a flexible solution that can match line items from a sub invoice to the corresponding line item in a given prime contract SOV, regardless of the format of the prime contract SOV. The software application may accomplish this by indexing, via the back-end platform 102, each line item from each sub invoice a plurality of times, each time based on one or more distinct classifications. Thus, the back-end platform 102 may generate an index table that includes a representation of each sub invoice line item a plurality of times.
For instance, within the indicated billing period, the GC might receive the concrete and masonry sub invoice shown in
As discussed above, the sub invoice cost codes may not be the same as a prime contract SOV that has project codes that are is categorized at the division code level. For this reason, the back-end platform 102 may determine the parent division code for each sub invoice line item based on its associated cost code, and then index each sub invoice line item a second time based on its determined division code. Accordingly, line item 703b in the index table 702 depicts the second indexing of the first line item shown in
Within the indicated billing period, the GC may also incur the direct cost for facility operation discussed above in relation to
Finally, to complete the example shown in
Comparing the sub invoice amount of each line in the index table 702, the multiple indexing discussed above is apparent, as each sub invoice amount is repeated from the first indexing to the second. Further, the index table 702 may include a column (e.g., the last column shown in
In some implementations, the project codes for a construction project may be expressed in a syntax similar to those discussed above, including a numerical code followed by a short text-based description. For instance, a division code may be expressed in a first syntax including a two-digit numerical code following by a short text description of the category of work to be performed. A cost code may be expressed in a second syntax that includes the numerical portion of its parent division code followed by a three-digit numerical sub-code, and then a short text description of the work to be performed. In some other examples, the project codes discussed herein may be expressed by their numerical syntax only, without the text-based description. Numerous other examples of project code syntaxes and formats are also possible.
Once the index table 702 is generated, the back-end platform 102 may match the cost codes from each sub invoice line item to the project codes in the prime contract SOV, and based on this matching, generate the owner invoice. This matching may proceed whether the project codes in the prime contract SOV are expressed as division codes or cost codes. Further, the back-end platform 102 will match each sub invoice line item to the prime contract SOV once, even though each sub invoice line item appears in the index table 702 more than once.
For example, the back-end platform 102 may query each line item in the prime contract SOV and determine, for each line item, whether the associated project code is a division code. This may be determined, for instance, based on the syntax of the project code. If the project code is not a division code (i.e., it is a cost code), the back-end platform 102 may return all matching lines form the index table 702 that have the same project code (i.e., cost code) and cost type. Using the prime contract SOV 350 shown in
To illustrate,
The back-end platform 102 may follow the same process for each line item in the prime contract SOV 350 such that line items 804, 805, 806, 807, and 808 in the prefilled owner invoice 850 are all populated with the matching line items from the index table 702, as shown in
In some implementations, the back-end platform 102 may, as part of generating the prefilled owner invoice, attach the commitment and direct cost invoices on which the prefilled owner invoice is based, as well as the supporting documentation discussed above. For example, each sub invoice and direct cost invoice received in the billing period, and which contributed to the index table 702, may be attached to the prefilled owner invoice. Further, any signed change orders, purchase receipts, photos of completed work, etc., that were attached to a sub invoice by a subcontractor or attached to a direct cost invoice by the GC may also be attached to the prefilled owner invoice. This may allow the owner to conveniently receive and review the prefilled owner invoice with all supporting documentation compiled in a single location. Moreover, this may save the GC a substantial amount of time that might otherwise be spent collating this information.
In the examples discussed herein, the index table 702 only includes one line item for a given cost code and cost type pair. However, in some implementations, the GC might receive multiple commitment invoices and/or direct costs during a billing period that are associated with the same cost code and cost type pair. This would result in the back-end platform 102 returning more than one line item from the index table that matches the cost code and cost type from a given line item of the prime contract SOV. In these situations, all returned line items would be summed and then added to the prefilled owner invoice for the given prime contract SOV line item.
Returning now to the matching process discussed above, after querying a line item from the prime contract SOV, the back-end platform 102 may determine that the associated project code is a division code. In this situation, the back-end platform 102 may return all matching lines from the index table 702 that have the same project code (i.e., division code). Using the prime contract SOV 351 shown in
To illustrate,
The back-end platform 102 may follow the same process for each line item in the prime contract SOV 351 such that line items 815 and 817 in the prefilled owner invoice 851 are populated with the matching line items from the index table 702, as shown in
As can be seen from the example above, even though one or more sub invoices contain line items with associated project codes broken out at the cost code level, as shown in
In some implementations, the prefilled owner invoice 851 shown in the view 801 may include selectable links that may provide a user with additional information, if selected. For example, the displayed invoice amount 856 shown in
For instance,
Turning now to
At block 1002 of the flow chart 1000, the back-end platform 102 may receive a command to generate a prefilled owner invoice for a given time period. The prefilled owner invoice may correspond to a prime contract SOV that details the contractual obligations between an owner of a construction project and a GC who is managing the project, as discussed above. For example, a GC may input the command to generate the prefilled owner invoice via a front-end module of the software application running on a first client station, such as the client station 112 shown in
At block 1004, in response to the received command, the back-end platform 102 may identify all approved sub invoices that were received in the given time period. As discussed above, the back-end platform 102 may also identify other commitment invoices (e.g., POs) and direct cost invoices that were received during the given time period. However, for ease of explanation, the flowchart 1000 and the discussion that follows will refer only to sub invoices.
At block 1006, the back-end platform 102 may index each line item from the identified sub invoices a first time based on the cost code and cost type associated with the line item, as generally discussed above with respect to
Although the first and second indexing functions discussed above and shown at blocks 1006-1010 are depicted as occurring in parallel, numerous other possibilities exist. For instance, the first and second indexing functions might be applied to all sub invoice line items in series, with the second indexing being completed at the conclusion of the first. Other examples are also possible.
At block 1012, the back-end platform 102 may query a first line item of the prime contract SOV, and then determine at block 1014 whether the project code associated with the queried line item is a division code or not. If the project code is not a division code (i.e., it is a code code), then at block 1016 the back-end platform 102 will return all indexed sub invoice line items that are associated with the same project code (i.e., cost code) and cost type as the queried line item from the prime contract SOV, as discussed in the examples above.
Alternatively, if the back-end platform 102 determines at block 1014 that the project code associated with the queried line item is a division code, then at block 1018 the back-end platform 102 will return all indexed sub invoice line items that are associated with the same project code (i.e., division code) as the queried line item from the prime contract SOV, as above.
The back-end platform 102 may perform the functions depicted at block 1014-1018 for every line item in the prime contract SOV in order to generate the prefilled owner invoice. For example, after returning the indexed sub invoice line items for a given line item of the prime contract SOV, the back-end platform 102 may, at block 1020, determine whether a next line item exists in the prime contract SOV. If a next line item does exist, the back-end platform 102 returns to block 1014 and determines whether the project code associated with the line item is a division code. On the other hand, if the back-end platform 102 determines that there is not a next line item in the prime contract SOV, then all line items have been queried and the back-end platform 102 proceeds to block 1022.
At block 1022, the back-end platform 102 may generate the prefilled owner invoice based on the line items returned from the index table in blocks 1016 and/or 1018. For example, the prefilled owner invoice may resemble the prefilled owner invoice 850 shown in
Although the examples herein have discussed a prime contract SOV having project codes of a single type, it will be apparent to one of skill in the art that the implementations presented herein would also be effective for a prime contract SOV that includes different types of project codes. For instance, an example prime contract SOV may include some line items associated with division codes, and some line items associated with cost codes. Because the back-end platform 102 may query each line item from the prime contract SOV individually, as generally shown at block 1014 of the flowchart 1000, the back-end platform 102 will return the indexed sub invoice line items corresponding to the appropriate type of project code.
Further, the examples discussed above and illustrated in the accompanying Figures mention two types of project codes—division codes and cost codes. However, these might not be the only possibilities. For instance, a prime contract SOV and/or a sub SOV may break down a given cost code into even more specific “sub cost codes” that further detail the work that will performed. To accommodate this third layer of project codes, the back-end platform 102 may index each line item in the sub SOV a third time, based on its associated sub cost code. Further, when querying each line item from the prime contract SOV to generate the prefilled owner invoice, the back-end platform 102 may determine whether the associated project code is a division code, and if not, whether it is a cost code. If it is not a cost code (i.e., it is a sub cost code), the back-platform 102 may return all indexed sub invoice line items with the same sub cost code. Applying the same logic, the indexing and matching functions discussed herein could be extended to n different project code layers.
Example embodiments of the disclosed innovations have been described above. Those skilled in the art will understand, however, that changes and modifications may be made to the embodiments described without departing from the true scope and spirit of the present invention, which will be defined by the claims.
Further, to the extent that examples described herein involve operations performed or initiated by actors, such as “users” or other entities, this is for purposes of example and explanation only. Claims should not be construed as requiring action by such actors unless explicitly recited in claim language.