A client-server based system for building and executing flows (i.e., interconnected systems of algorithms). The client allows a user to build a flow specification and send the flow specification to the server. The server assembles the flow from the flow spec and executes the flow. A flow may be configured to analyze the impact (e.g., the financial impact) of a number of uncertainties associated with a plurality of assets. Uncertainty variables are used to characterize the uncertainties associated with the assets. An uncertainty variable associated with one asset may be functionally dependent on an uncertainty variable associated with another asset.