A graphical software tool for modeling financial products is provided. The graphical software tool presents a user with a palette of tools for constructing a financial model. Preferably, the financial model is graphically represented as a tree structure, which allows the model to be transformed into an XML format. In general, a tree structure includes a root entity having a set of attributes, along with zero or more child entities. In turn, each of the child entities can have their own attributes and children. In response to an input from a user, objects from the palette are selected and used to construct the financial model. The tool provides a graphical user interface that allows users to construct financial products by combining a series of objects—using GUI techniques such as “drag and drop” to simplify the construction process. Although a number of objects are provided as standard, these may be combined to provide new functionality. Once this has been done, the result may be saved as an addition to the built-in set of objects. This allows users to build up increasingly complex tool sets, to match their individual requirements.