A non-transient, machine-readable medium storing instructions which, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
- querying, by a server over a network connection through an application programming interface, at least one data provider for primary data, secondary data, and tertiary data associated with a plurality of individual players;
- for the plurality of individual players:
- adding an attribute to an internal object stored in a database operably coupled to the server, the attribute being a base value associated with the individual player, the base value being computed based on at least the primary data;
- mapping a modifier to the base value, the modifier being computed based on at least a portion of the secondary data and the tertiary data;
- applying the modifier to the base value according to the mapping;
- and
- applying a rule to the modified base value to generate a projected value associated with the individual player;
- generating, by an automated projection engine being executed by the at least one programmable processor and being operably coupled to the server, a plurality of internal objects, at least one of the plurality of internal objects corresponding to one of the plurality of individual players and associated with the generated projected value and computed base value of that individual player;
- generating, by the automated projection engine, a final lineup of players comprising a subset of the plurality of individual players corresponding to a subset of the plurality of internal objects, the generating the final lineup of players performed to constraints comprising:
- a first constraint comprising a sum of the base values of the plurality of internal objects corresponding to a plurality of potential lineups of individual players, wherein the sum of the base values does not exceed a maximum value, and
- a second constraint comprising a sum of the projected values of the plurality of internal objects corresponding to the potential lineups of players, wherein the sum of the projected values is a maximum for the final lineup of players, subject to the first constraint;
- the generating the final lineup of players further comprising:
- executing a number of iterations randomizing column positions of a column-based list comprising a number of rows having entries of decreasing projected values of the plurality of internal objects, wherein at least one column comprises internal objects representing a player type;
- sequentially selecting a single internal object from the randomized column positions to be added to the subset of the plurality of internal objects corresponding to the plurality of potential lineups of players, subject to the first constraint;
- and
- transmitting, by the server over the network connection to a mobile application running on a mobile device, application data comprising a list representing the final lineup of players corresponding to the subset of the plurality of internal objects resulting in the maximum of the projected values after executing the number of iterations.