US-20260126975-A1 - AUTOMATED RESOURCE DISTRIBUTION USING CODED DISTRIBUTION RULES
Abstract
Methods, systems, and apparatus, including computer programs encoded on computer storage media, for generating an exit scenario output that characterizes an exit scenario for a business enterprise. In one aspect, a method comprises receiving, at an execution engine, data that represents ownership of assets by multiple participants and source code that defines distribution rules of distributing the assets over one or more steps among the multiple participants using a programming language; receiving, at the execution engine, an exit scenario input; automatically parsing, by the execution engine, the distribution rules defined in the source code into a parse tree; and interpreting, by the execution engine, the parse tree to produce an exit scenario output.
Inventors
- Adam Nathan Savitzky
- Sahas Singh
- Desmond Robert Duggan
- Arash Shahkar
- Alex John Bakker
Assignees
- eShares, Inc.
Dates
- Publication Date
- 20260507
- Application Date
- 20251219
Claims (20)
- 1 . (canceled)
- 2 . A method performed by data processing apparatus, the method comprising: receiving, through a user interface, domain specific language (DSL) programming code that defines, in accordance with a grammar associated with the DSL, distribution rules of distributing resources among multiple entities; receiving, through the user interface, a request to initiate a distribution event where the resources are distributed among the multiple entities; generating a parse tree data structure by using a parser associated with the DSL to automatically parse the distribution rules defined in the DSL programming code; generating data that characterizes the distribution event based at least on interpreting the parse tree data structure; and providing the data that characterizes the distribution event for display within the user interface in response to receiving the request to initiate the distribution event.
- 3 . The method of claim 2 , further comprising: receiving, through the user interface, ownership data that represents ownership of the resources by the multiple entities.
- 4 . The method of claim 3 , wherein the ownership data comprises a spreadsheet.
- 5 . The method of claim 3 , wherein the ownership data does not include the distribution rules of distributing the resources among the multiple entities.
- 6 . The method of claim 2 , wherein the request to initiate the distribution event specifies one or both of: a type of the distribution event, or a total amount of the resources to be distributed.
- 7 . The method of claim 2 , wherein the grammar associated with the DSL has a declarative syntax.
- 8 . The method of claim 2 , wherein the data that characterizes the distribution event comprises data defining an amount of a portion of the resources to be received by each of one or more of the multiple entities.
- 9 . The method of claim 8 , further comprising: providing, for display within the user interface, distribution instructions for distributing the portion of the resources that has the defined amount to each of the one or more of the multiple entities.
- 10 . A system comprising one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to perform operations comprising: receiving, through a user interface, domain specific language (DSL) programming code that defines, in accordance with a grammar associated with the DSL, distribution rules of distributing resources among multiple entities; receiving, through the user interface, a request to initiate a distribution event where the resources are distributed among the multiple entities; generating a parse tree data structure by using a parser associated with the DSL to automatically parse the distribution rules defined in the DSL programming code; generating data that characterizes the distribution event based at least on interpreting the parse tree data structure; and providing the data that characterizes the distribution event for display within the user interface in response to receiving the request to initiate the distribution event.
- 11 . The system of claim 10 , wherein the operations further comprise: receiving, through the user interface, ownership data that represents ownership of the resources by the multiple entities.
- 12 . The system of claim 11 , wherein the ownership data comprises a spreadsheet.
- 13 . The system of claim 11 , wherein the ownership data does not include the distribution rules of distributing the resources among the multiple entities.
- 14 . The system of claim 10 , wherein the request to initiate the distribution event specifies one or both of: a type of the distribution event, or a total amount of the resources to be distributed.
- 15 . The system of claim 10 , wherein the grammar associated with the DSL has a declarative syntax.
- 16 . The system of claim 10 , wherein the data that characterizes the distribution event comprises data defining an amount of a portion of the resources to be received by each of one or more of the multiple entities.
- 17 . The system of claim 16 , wherein the operations further comprise: providing, for display within the user interface, distribution instructions for distributing the portion of the resources that has the defined amount to each of the one or more of the multiple entities.
- 18 . One or more non-transitory computer-readable storage media storing instructions that when executed by one or more computers cause the one or more computers to perform operations comprising: receiving, through a user interface, domain specific language (DSL) programming code that defines, in accordance with a grammar associated with the DSL, distribution rules of distributing resources among multiple entities; receiving, through the user interface, a request to initiate a distribution event where the resources are distributed among the multiple entities; generating a parse tree data structure by using a parser associated with the DSL to automatically parse the distribution rules defined in the DSL programming code; generating data that characterizes the distribution event based at least on interpreting the parse tree data structure; and providing the data that characterizes the distribution event for display within the user interface in response to receiving the request to initiate the distribution event.
- 19 . The non-transitory computer-readable storage media of claim 18 , wherein the operations further comprise: receiving, through the user interface, ownership data that represents ownership of the resources by the multiple entities.
- 20 . The non-transitory computer-readable storage media of claim 19 , wherein the ownership data comprises a spreadsheet.
Description
CROSS-REFERENCE TO RELATED PATENT APPLICATIONS This is a continuation of and claims the benefit of priority to U.S. application Ser. No. 18/437,935, filed on Feb. 9, 2024, the contents of which are incorporated by reference herein. TECHNICAL FIELD This specification relates to automated distribution of resources. BACKGROUND The concept of distributing resources finds application in a number of fields. For example, in the field of computer technology, resources can include processing resources, communication bandwidth, or data storage mediums, among other examples. In a distributed computing system that includes multiple computing nodes, these resources can be distributed among the computing nodes in accordance with predetermined distribution rules and/or other requirements, such as overall performance metric of the system. Resources can also involve non-computing resources including consumable value, such as physical or digital assets. For example, in the field of capital investment, resources can include equity. The equity value (e.g., enterprise value) of a business enterprise is based on the potential of that business to generate profits, which are in turn allocated to the owners of the equity according to the rights and preferences of the various classes of stock. The equity value attributable to various shareholders is therefore based on the total amount of stock issued among the different classes issued at various times. Equities in a business enterprise can be managed by using a capitalization table. A capitalization table, also known as a “cap table,” is a dynamic record showing the composition of a company's equity ownership. Capitalization tables have been utilized to facilitate the calculation and reporting of ownership interests. When the business distributes capital to its shareholders, the way those proceeds are allocated depends on the composition of the capitalization table and one or more distribution rules that govern the rights and preferences of the various classes of shares. When computing allocations, these distribution rules are traditionally encoded in a spreadsheet and are applied to data values included in a capitalization table. Distribution rules defined in a spreadsheet form have a number of drawbacks that make traditional approaches for calculating and allocating proceeds across ownership interests generally unsatisfactory. For example, many conventional approaches, e.g., using spreadsheets, rely on manual data entry and formula creation. Manually entering data and creating formulas in a spreadsheet is tedious and error prone. When customized annotations or tags are used by one person, they may result in misinterpretation by others. Furthermore, many conventional spreadsheets lack centralized version control or automatic tracking of changes and version history. Not only does this makes it difficult to identify and undo errors, but it also jeopardizes proper management of equities when a first party which manages one version of the spreadsheet makes updates to their version but fails to send the updated version to a second party, which manages another version of the spreadsheet. All of these problems mean that traditional ways of using spreadsheet-based distribution rules for managing equities in a business enterprise result in a time-consuming and labor-intensive process that is difficult to get working at all, does not scale well, and does not generalize to other business enterprises. SUMMARY This specification describes a system, implemented as computer programs on one or more computers in one or more locations, that receives data representing ownership of assets by multiple participants and source code defining distribution rules for distributing assets among the multiple participants. The system also processes the ownership data and the source code to generate an exit scenario (also referred to as a “liquidity event”) output. For example, the exit scenario output can specify a value of a corresponding portion of the assets to be received by each of one or more of the multiple participants. In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of: receiving, at an execution engine, data that represents ownership of assets by multiple participants and source code that defines distribution rules of distributing the assets over one or more steps among the multiple participants using a programming language; receiving, at the execution engine, an exit scenario input; automatically parsing, by the execution engine, the distribution rules defined in the source code into a parse tree; and interpreting, by the execution engine, the parse tree to produce an exit scenario output. These and other implementations can each optionally include one or more of the following features. In some aspects, the data that represents ownership of assets by multiple participants may comprise a capitalization table. In