This application generally relates to enterprise management systems. In particular, this application describes a transaction reconciliation system.
Companies typically perform financial period end close activities on a monthly and/or quarterly basis. These activities are sometimes referred to as settlement or reconciliation. During settlement, various reports may be generated by a company's enterprise resource planning (ERP) system related to account balances. In particular, the ERP system may maintain a general ledger for the company that includes various transaction entries related to income and expenses incurred by the company. At the end of a financial cycle, an auditor may request a listing of transactions along with the current balance of the general ledger from ERP system. The ERP system may provide a document such as a spreadsheet with the requested information.
Settlement of a single organization is a relatively time consuming process. In large organizational structures, there may be a large number of subsidiary companies or jointly owned companies each having their own ERP system to manage a general ledger. Thus, settlement procedures in such organizational structures are exacerbated.
In one aspect, a system for reconciling transactions includes an interface, a processor and non-transitory computer readable media. The interface receives information related to a plurality of organizations. Each of the plurality of organizations includes an enterprise resource planning (ERP) system for maintaining account information associated with the organization, and a document management system (DMS) for maintaining documents for the organization. The non-transitory computer readable media is in communication with the processor. The non-transitory computer readable media that stores instruction code that causes the processor to determine, based on the information, a group of organizations of the plurality of organizations that are structurally related to one another. For each group of organizations, the processor a) communicates a request to an associated enterprise planning system for information related to an account to thereby obtain an account balance for the organization, b) communicates a request to an associated DMS for documents, c) performs natural language processing techniques on the documents to thereby determine support documents that support transactions related to the account, and d) accumulates transaction amounts specified in the support documents. When a sum of the transaction amounts is within a predetermined threshold of the account balance, the processor determines the account to be reconciled and generates a report that specifies the account balance and the support documents.
In a second aspect, a method for reconciling transactions includes receiving information related to a plurality of organizations. Each of the plurality of organizations includes an enterprise resource planning (ERP) system for maintaining account information associated with the organization, and a document management system (DMS) for maintaining documents for the organization. The method also includes determining, based on the information, a group of organizations of the plurality of organizations that are structurally related to one another. For each group of organizations, the method includes a) communicating a request to an associated enterprise planning system for information related to an account to thereby obtain an account balance for the organization, b) communicating a request to an associated DMS for documents, c) performing natural language processing techniques on the documents to thereby determine support documents that support transactions related to the account, and d) accumulating transaction amounts specified in the support documents. When a sum of the transaction amounts is within a predetermined threshold of the account balance, the method includes determining the account to be reconciled and generating a report that specifies the account balance and the support documents.
In a third aspect, a non-transitory computer readable media that stores instruction code for reconciling transactions. The instruction code is executable by a machine and causes the machine to perform acts including receiving information related to a plurality of organizations. Each of the plurality of organizations includes an enterprise resource planning (ERP) system for maintaining account information associated with the organization, and a document management system (DMS) for maintaining documents for the organization. The instruction also causes the machine to determine, based on the information, a group of organizations of the plurality of organizations that are structurally related to one another. For each group of organizations, the instruction code causes the machine to a) communicate a request to an associated enterprise planning system for information related to an account to thereby obtain an account balance for the organization, b) communicate a request to an associated DMS for documents, c) perform natural language processing techniques on the documents to thereby determine support documents that support transactions related to the account, and d) accumulate transaction amounts specified in the support documents. When a sum of the transaction amounts is within a predetermined threshold of the account balance, the instruction code causes the machine to determine the account to be reconciled, and generates a report that specifies the account balance and the support documents.
The embodiments described below overcome the problems described in the background by providing a system that speeds up financial period end close activities, reduces errors, and other problems caused by information errors and/or incompatibilities among devices/systems involved in the transaction processing. As a result, the system uses less power and computational resources than disparate systems because redundancies present in those disparate systems are eliminated.
In operation, the system receives account information from ERP systems of various structurally related organizations. The system then searches for documents for evidence that supports transactions related to the accounts. The system continues this process until enough documentary evidence has been found to support the balance of the accounts. Afterwards, the system generates a report which is reviewed by a reviewer. The system automatically begins these operations according to a fiscal period.
Exemplary systems/devices of the environment 100 include a settlement system 102, an exemplary group of systems 104 associated with related organizations, an administrative terminal 106, and a reviewer terminal(s) 108. The settlement system 102, systems 104 associated with related organizations, administrative terminal 106, and reviewer terminal(s) 108 may communicate with one another via a network 107, such as the Internet.
The administrative terminal 106 and reviewer terminal(s) 108 may correspond to computer systems such as an Intel®, AMD®, or PowerPC® based computer system or a different computer system and can include application specific computer systems. The computer systems may include an operating system, such as Microsoft Windows®, Linux, Unix® or other operating system. The terminals may be desktop PCs and/or mobile terminals.
The administrative terminal 106 may be operated by a user/individual tasked with configuring the settlement system 102 to initiate various settlement-related operations. In this regard, the administrative terminal 106 may be configured to facilitate communicating information with the settlement system 102 via one or more APIs of the settlement system 102. For example, the administrative terminal 106 may be configured to communicate with the settlement system 102 via an API such as a webserver API, a SOAP-based web service, a RESTful API, and/or a different type of API.
Likewise, the reviewer terminal(s) 108 may be operated by a user/individual tasked with reviewing settlement reports generated by the settlement system 102. In this regard, the reviewer terminal(s) 108 may be configured to facilitate communicating information with the settlement system 102 via one or more APIs of the settlement system 102. For example, the administrative terminal 106 may be configured to communicate with the settlement system 102 via an API such as a webserver API, a SOAP-based web service, a RESTful API, and/or a different type of API.
The related organizations may correspond to a group of companies that are related to one another. For example, the group may include parent companies P1, P2, and P3. As indicated by the arrows connecting the systems 104, company Sub1 may be a subsidiary of parent company P1. Company JV1 may be jointly owned by parent companies P1 and P2. Company JV2 may be jointly owned by subsidiary company Sub 1 and parent company P3. Company Sub3 may be a subsidiary of Company Sub 2, which is a subsidiary of company P3.
The respective subsystems 202 and 215 may implement APIs that facilitate receiving a query for information stored by the respective subsystem. For example, the query may specify the types of information to retrieve, a document/transaction creation date range associated with creation of the information, the author associated with a document, etc.
In one exemplary environment, ERP subsystem 202 system may correspond to an SAP ERP system. In this regard, the ERP subsystem 202 may include various modules that facilitate tracking business resources. For example, the ERP subsystem 202 may include an FI module 210 and a JVA module 205. The FI module 210 is configured among other things to maintain a general ledger (GL) of financial transactions for the company. The FI module 210 facilitates managing data involved in any financial and business transactions in a unified system. The JVA module 205 is configured to maintain one or more joint venture accounts (JVAs) of expenditures and other joint venture transactions associated with one or more joint ventures. The JVA module 205 interacts with other modules of the ERP subsystem 202 to facilitate performance of these functions.
The DMS subsystem 215 tracks, manages and stores documents associated with the corresponding company. The DMS subsystem 215 may track various versions of documents created and modified by different users.
Referring back to
The I/O processor 110 of the settlement system 102 is configured to facilitate communications with entities outside of the settlement system 102. In this regard, the I/O processor 110 may be configured to dynamically determine the communication methodology utilized by entities of the environment 100 for communicating information to the entities using the determined communication methodology. For example, the I/O processor 110 may determine that a first entity utilizes a RESTful API and may, therefore, communicate with the entity using a RESTful communication methodology.
As described in more detail below, the I/O processor 110 may implement a web browser to facilitate generating one or more web-based interfaces through which users may interact with the settlement system 102. The web browser may implement a web services interface to facilitate automating some of the web-based functionality via a computer. For example, one or more of the entities of the environment may utilize the web services interfaces to control aspects and/or interact with the settlement system 102.
The AI subsystem 115 module is configured to locate documentation in the DMS subsystem 215 that provides support for transactions received from the ERP subsystem 202. In this regard, the AI subsystem 115 may utilize various natural language processing techniques to locate documentation that may relate to a given transaction. For example, the language processing may perform a Knuth-Morris-Pratt string searching algorithm to locate and extract occurrences of a certain words within a document. Linear clustering algorithms may be utilized to mine text data based on group codes (described below) that are associated GL and JVA accounts.
The processor 125 executes instruction code stored in a memory device 127 for coordinating activities performed between the various subsystems. The processor 125 may correspond to a stand-alone computer system such as an Intel®, AMD®, or PowerPC® based computer system or a different computer system and can include application specific computer systems. The computer systems may include an operating system, such as Microsoft Windows®, Linux, Unix® or other operating system.
It is contemplated that the I/O processor 110, AI subsystem 115, and any other subsystem referenced herein may correspond to a stand-alone computer system such as an Intel®, AMD®, or PowerPC® based computer system or a different computer system and can include application specific computer systems. The computer systems may include an operating system, such as Microsoft Windows®, Linux, Unix® or other operating system. It is also contemplated that operations performed on the various subsystems may be combined into a fewer or greater number of subsystems to facilitate speed scaling, cost reductions, etc.
Exemplary operations performed by one or more of the subsystems of the settlement system 102 in configuring the settlement system 102 to perform settlement operations are illustrated in
At block 300, the settlement system 102 may receive settlement information from the administrative terminal 106. In this regard, the I/O subsystem 110 of the settlement system 102 may communicate a webpage to the administrative terminal 106 to allow an administrator to specify the settlement information.
At block 305, the settlement system 102 may receive group code mapping information from the administrative terminal 106. In this regard, the I/O subsystem 110 of the settlement system 102 may communicate a webpage to the administrative terminal 106 to allow an administrator to specify the group code mapping information.
Tables 1 and 2 illustrate exemplary historical trends that may have been captured in a first and second month, respectively, based on information provided by an administrator.
In the third month, the AI subsystem 115 may automatically suggest that company code 2000, with GL Account 1011000 may be mapped to ASSET002 and company code 2000, with GL Account 1030001 may be mapped to ASSET009. In general, the group code will remain same until the settlement process is completed.
The created by value identifies the administrator that specified the checklist information, and the created date value corresponds to the date the checklist information was specified.
At block 310, the settlement system 102 may receive task management information from the administrative terminal 106. In this regard, the I/O subsystem 110 of the settlement system 102 may communicate a webpage to the administrative terminal 106 to allow an administrator to specify the task management information.
Each group settlement is listed as an individual task and is mapped to a specific checklist. The number of tasks indicate the settlements to be performed for a specific period, and each task item contains all essential information of the GL accounts like currency, type, frequency, etc. Tasks can be replicated across different periods using a copy feature of the interface 600. Each task is assigned to a workflow consisting of a preparer, reviewer and approver as indicated by a client defined settlement policy and segregation of responsibilities.
A tolerance field may be provided to allow the administrator to associate the task with a tolerance value. The tolerance value corresponds to the minimum difference between GL and JVA accounts at which the accounts will be considered settled. For example, a tolerance value of $1 may be used to indicate that the GL and JVA accounts are considered by the settlement system 102 to be settled when the values of the GL and JVA accounts are within $1 of each. Other fields for providing other information may be provided.
Fields for designating reviewers may be provided. As described below, the settlement system 102 may communicate reports regarding settlement activities to the reviewers.
After the task information has been entered, the settlement system 102 may proceed to periodically poll the task information to determine whether it is time to execute a given task, and/or update the status of an executing task.
Referring to
Referring to
Referring to
At block 810, support documents may be located. For example, the AI subsystem 115 of the settlement system 102 may analyze documents in the DMS 215 of each company of the group to determine whether the document has information pertaining to a transaction in one or both of the general ledger and joint venture interfaces. In this regard, the AI subsystem 115 may utilize various natural language processing techniques to locate documentation that may relate to a given transaction. For example, the language processing may perform a Knuth-Morris-Pratt string searching algorithm to located occurrences of a words within a document that related to transactions for the various accounts. Linear clustering algorithms may be utilized to mine text data based on group codes (described below) and associated GL and JVA accounts.
At block 815, information in the documents located by the AI subsystem 115 may be extracted, and the settlement interface 1100 may be populated with the extracted information. For example, general ledger and joint venture account numbers may be detected and extracted from the documents. Currency amounts specified in the documents that may be associated with the account numbers may be extracted.
At block 820, a determination is made as to whether the accounts are settled. Settlement is determined when the total amounts on the general ledger interface 900, joint venture account interface 1000, and settlement interface 1100 come to within the tolerance value specified during creation of the task. For example, settlement of the accounts may be determined when the amounts on the respective interfaces are within $1 of each other.
If at block 820, the accounts are not settled, the operations may repeat from operation 810. That is, additional support documents may be required to support the transactions in the general ledger and joint venture account interfaces.
If at block 820, the accounts are determined to be settled, then at block 825, the task may be entered into a pending review state and various report documents may be communicated to one or more reviewer terminal(s) 108 to facilitate review of the reports by designated reviewers. The designated reviewers may have been specified at the time of task creation. An exemplary report that may be communicated to the reviewers is in
If the reviewer(s) determine the report to be in order, the reviewer(s) may, via the reviewer terminal(s) 108, communicate instructions to the settlement system 102 to update the status of the task to complete.
At block 830, the task may remain in a dormant state until a future time that was specified during the task creation. For example, the task may have been configured to run on a quarterly schedule in which case the task will begin execution at of the operations from block 800 at the start of the next quarterly cycle.
In a networked deployment, the computer system 1300 may operate in the capacity of a server or as a client computer in a server-client network environment, or as a peer computer system in a peer-to-peer (or distributed) environment. The computer system 1300 may also be implemented as or incorporated into various devices, such as a personal computer or a mobile device, capable of executing instructions 1345 (sequential or otherwise) causing a device to perform one or more actions. Further, each of the systems described may include a collection of subsystems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer operations.
The computer system 1300 may include one or more memory devices 1310 communicatively coupled to a bus 1320 for communicating information. In addition, code operable to cause the computer system to perform operations described above may be stored in the memory 1310. The memory 1310 may be a random-access memory, read-only memory, programmable memory, hard disk drive or any other type of memory or storage device.
The computer system 1300 may include a display 1330, such as a liquid crystal display (LCD), a cathode ray tube (CRT), or any other display suitable for conveying information. The display 1330 may act as an interface for the user to see processing results produced by processor 1305.
Additionally, the computer system 1300 may include an input device 1325, such as a keyboard or mouse or touchscreen, configured to allow a user to interact with components of system 1300.
The computer system 1300 may also include a disk or optical drive unit 1315. The drive unit 1315 may include a computer-readable medium 1340 in which the instructions 1345 may be stored. The instructions 1345 may reside completely, or at least partially, within the memory 1310 and/or within the processor 1305 during execution by the computer system 1300. The memory 1310 and the processor 1305 also may include computer-readable media as discussed above.
The computer system 1300 may include a communication interface 1335 to support communications via a network 1350. The network 1350 may include wired networks, wireless networks, or combinations thereof. The communication interface 1335 may enable communications via any number of communication standards, such as 802.11, 802.12, 802.20, WiMAX, cellular telephone standards, or other communication standards.
Accordingly, methods and systems described herein may be realized in hardware, software, or a combination of hardware and software. The methods and systems may be realized in a centralized fashion in at least one computer system or in a distributed fashion where different elements are spread across interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein may be employed.
The methods and systems described herein may also be embedded in a computer program product, which includes all the features enabling the implementation of the operations described herein and which, when loaded in a computer system, is able to carry out these operations. Computer program as used herein refers to an expression, in a machine-executable language, code or notation, of a set of machine-executable instructions intended to cause a device to perform a particular function, either directly or after one or more of a) conversion of a first language, code, or notation to another language, code, or notation and b) reproduction of a first language, code, or notation.
While methods and systems have been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the claims. Therefore, it is intended that the present methods and systems not be limited to the particular embodiment disclosed, but that the disclosed methods and systems include all embodiments falling within the scope of the appended claims.