Javelin Software Corporation (1984–1988) was a company in Cambridge, Massachusetts, USA, which developed an innovative modeling and data analysis product, also called Javelin (versions 1.0 in 1984 to 1.1), and later Javelin Plus (versions 1.0 in May 1987 to 3.5 in 1993). Seen as the successor technology to spreadsheet software in reviews of the time, and rival to the then-dominant Lotus 1-2-3, Javelin won numerous industry awards, including beating Microsoft's new Excel for the InfoWorld Software Product of the Year award. Javelin Software fell on difficult times when its initial public offering had to be cancelled due to it being scheduled for only a few days after the stock market crash of 1987. The company's assets were later purchased by Information Resources, Incorporated (IRI), which sold enhancements to Javelin until 1994 when IRI was itself purchased by Oracle Corporation, which promptly discontinued the product. Unlike models in a spreadsheet, Javelin models are built on objects called variables, not on data in cells of a report. For example, a time series, or any variable, is an object in itself, not a collection of cells which happen to appear in a row or column. Variables have many attributes, including complete awareness of their connections to all other variables, data references, and text and image notes. Calculations are performed on these objects, as opposed to a range of cells, so adding two time series automatically aligns them in calendar time, or in a user-defined time frame. Data are independent of worksheets—variables, and therefore data, cannot be destroyed by deleting a row, column or entire worksheet. For instance, January's costs are subtracted from January's revenues, regardless of where or whether either appears in a worksheet. This permits actions later used in pivot tables, except that flexible manipulation of report tables is but one of many capabilities supported by variables. Moreover, if costs are entered by week and revenues by month, Javelin can allocate or interpolate as appropriate. This object design enabled variables and whole models to reference each other with user-defined variable names, and to perform multidimensional analysis and massive, but easily editable consolidations. Javelin encourages viewing data and algorithms in various self-documenting ways, including simultaneous multiple synchronized views. For example, users can move through the connections between variables on a diagram while seeing the logical roots and branches of each variable. This is an example of what is perhaps its primary contribution—the concept