US20150205482A1 - Dynamic visual statistical data display navigation system and method for limited display device - Google Patents

Dynamic visual statistical data display navigation system and method for limited display device Download PDF

Info

Publication number
US20150205482A1
US20150205482A1 US14/550,650 US201414550650A US2015205482A1 US 20150205482 A1 US20150205482 A1 US 20150205482A1 US 201414550650 A US201414550650 A US 201414550650A US 2015205482 A1 US2015205482 A1 US 2015205482A1
Authority
US
United States
Prior art keywords
display
data
stock
icons
items
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/550,650
Inventor
Jennifer Ellen Johnson
John Keoni Morris
Stephen Carl de Brun
Nicholas Langdon Gunther
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Visible Market Inc
Original Assignee
Visible Market Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Visible Market Inc filed Critical Visible Market Inc
Priority to US14/550,650 priority Critical patent/US20150205482A1/en
Publication of US20150205482A1 publication Critical patent/US20150205482A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/041012.5D-digitiser, i.e. digitiser detecting the X/Y position of the input means, finger or stylus, also when it does not touch, but is proximate to the digitiser's interaction surface and also measures the distance of the input means within a short range in the Z direction, possibly with a separate measurement setup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/04104Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Definitions

  • Embodiments described herein relate to the transmission and visual display of large data sets and their associated statistics, such as the trading activity of securities on a securities exchange or other business measurement statistics, on a limited display screen, such as a smartphone or mobile tablet. More specifically, embodiments include systems and methods for the transmission, display and visual navigation of a large dynamic data set via multi-faceted display of relative and absolute contextual statistics, such systems and methods which combine dynamic simultaneously-updating comparative visual displays with a multi-tiered navigation structure, together which support more effective information gathering and processing across a variety of users with different objectives.
  • a key goal of investors, traders, journalists, and others who are in some way connected with securities markets or other markets is to determine market performance overall, and how it effects themselves and others. This inquiry is complicated by the fact that, on a given day, the market as a whole may be up, a particular market sector (e.g., technology stocks) may be down, but a particular stock within that sector (e.g., Google) may be up.
  • a particular market sector e.g., technology stocks
  • a particular stock within that sector e.g., Google
  • One conventional approach of objectively summarizing and benchmarking market performance with one or two indices e.g., Dow Jones Industrial Average (DJIA)
  • DJIA Dow Jones Industrial Average
  • Another conventional presentation of market information is a list of stock prices such as what is found in a daily newspaper.
  • the drawback is the difficulty in collectively presenting a large amount of individual current statistics for items while summarizing the overall dynamic state of the information in a way that allows the user to interact with the data quickly at the individual, grouped and summary levels.
  • Another approach employs a conventional heat map, which is a type of graphical representation of data where the individual values in a matrix are represented as colors.
  • it is difficult to dynamically represent the multi-faceted relationships, sub-relationships, and pertinent data of individual items, related items and the information or market in aggregate using a conventional heat map.
  • a further drawback is each individual's information requirements and assessments are different, so an objective statistical data or market performance summary system limits a user's ability to make assessments and spot trends which are subjective and pertain to that individual's perspective vis-à-vis the information.
  • One conventional approach to satisfying an individual's subjective information queries is through individual queries, such as quote searches and user-defined security watch lists.
  • a drawback of individual queries and persistent query lists is that they limit a user's ability to compare and understand information in context with the overall data set or market.
  • Map of the Market display is static and does not update automatically and dynamically. The user must update the display manually, which may take a substantial amount of time, thereby reducing the interactivity and utility of the application.
  • Map of the Market is a web-based solution that is intended for display in a fixed window size of an Internet browser (e.g., Internet Explorer by Microsoft)
  • the chosen way of sizing the rectangles representing individual stocks means that certain stock tiles are less visible than others. In fact, the majority of the tiles are so small they are unable to include text or other discernible labeling or other information.
  • This methodology occludes much of the activity data for a number of stocks contained in the set, and thereby makes it impossible for users to see or understand performance of those stocks which do not have sufficient market capitalization to be fully visible to users. Therefore the methodology's utility in displaying performance context is reduced to a data set of solely the largest cap stocks in sectors rather than a wider array.
  • the use of the fixed-size browser window for displaying Map of the Market restricts its usefulness and also makes it incompatible with newer user-interface technologies, e.g., touch screens, that allow the user to navigate more easily among large amounts of data or information. What is needed, then, is a method for visualizing a large collection of financial or other statistical information that overcomes these and other drawbacks of the prior art methods.
  • FIG. 1 is a view of a display in an embodiment of the present disclosure, showing price changes.
  • FIG. 2 is a view of a display in an embodiment of the present disclosure, showing trading volume.
  • FIG. 3 is a view of a display in an embodiment of the present disclosure, showing a zoomed-in view of price changes in a single sector.
  • FIG. 4 is a view of a display in an embodiment of the present disclosure, showing a one-day price chart for a single stock.
  • FIG. 5 is a view of a display in an embodiment of the present disclosure, showing an information page for a single stock.
  • FIG. 6 illustrates the process of zooming from market to sector to individual stock in an embodiment of the present disclosure.
  • FIG. 7 is another screen shot illustrating the ordering of stocks within a sector.
  • FIG. 8 is a view of a display in an embodiment of the present disclosure, showing an information page for a single stock.
  • FIG. 9 is a view of a display in an embodiment, showing selection of a reference index.
  • FIG. 10 is a view of a display in an embodiment, showing selection of a type of data to be displayed.
  • FIG. 11 is a view of a display in an embodiment, showing customized sectors.
  • FIG. 12 is a view of a display in an embodiment, showing a zoomed-in view of stocks in a customized sector.
  • FIG. 13 is a view of a display in an embodiment, showing a search interface.
  • FIG. 14 is a view of a display in an embodiment, showing the results of a search.
  • FIG. 15 is a high-level block diagram of a statistical data delivery system according to one or more embodiments of the present disclosure.
  • FIGS. 16A and 16B are block diagrams of the software and hardware components of a server according to one or more embodiments of the present disclosure.
  • FIG. 17 is a block diagram of a display device for use in an embodiment of a statistical data delivery system.
  • FIG. 18 is a flow chart showing the steps of an embodiment of a method encoding a stock ticker symbol.
  • FIG. 19 is a flow chart showing steps of an embodiment of a method of displaying statistical data.
  • FIG. 20 is a flow chart showing steps of an embodiment of a method for navigating a display of statistical data.
  • FIG. 21 is a flow chart showing the steps of an embodiment of a method of distributing statistical data.
  • FIG. 22 is an exemplary collection of texture mapping elements used by a display device to render a display of statistical data, according embodiments of the present disclosure.
  • the system may include visual display software application that executes on portable or stationary computer (e.g., Mac, PC, etc.), a mobile phone or smartphone (e.g., iPhone or Android-based device), a personal digital assistant, or a tablet device (e.g., iPad).
  • portable or stationary computer e.g., Mac, PC, etc.
  • mobile phone or smartphone e.g., iPhone or Android-based device
  • a personal digital assistant e.g., iPad
  • tablet device e.g., iPad
  • the application provides a variety of different displays for a wide range of statistical data including a variety of statistical performance data in a manner that allows the user to quickly identify relationships and trends. Examples of these displays are shown in FIGS. 1 through 14 and are described in more detail below. Although these examples are provided in the context of an iPad, embodiments of the system and method may utilize other computing platforms as noted above.
  • any statistics for any data set may be visualized using the embodiments shown or modifications.
  • a non-exhaustive list of exemplary market units include stocks, bonds, futures contracts, mutual funds, exchange traded funds, diamonds and other precious minerals, commodities, and commodity futures contracts. More generally, embodiments can be used to advantage to monitor variations in dynamic data for components of any large data set.
  • embodiments provide users a multiple-tiered interface which intertwines the dynamic visualization together with its navigation, allowing users to expand the view from an overview screen into sub-hierarchies and further navigate to individual items or data elements, and then smoothly return to the full visualization.
  • Embodiments make use of 30-frames-per-second animation sequences to create a fluid and smooth navigation experience.
  • the visualization interface has flexible modes and preferences, providing users the ability to visually detect and observe patterns, correlation, contextuality, and outliers, and to explore sub-sections of the data quickly via their own unique navigation path, providing each user with a more subjective and relevant experience.
  • Embodiments also create an integrated user experience, which makes its use more natural and intuitive.
  • the user experience synthesizes color, animation, ontology, and sound effects to create a metaphor of vertically navigating the interface from the top level through sub-hierarchies into individual data pages. For example if the visualization screen is set to compare current price movements, the rendering becomes a matrix where background color intensity matches the degree of an items price movement. The background colors remain consistent as the user navigates the heat map section of the display, so navigation appears to expand the element, exposing light details for contextuality within the element at the highest level and deeper details and charts at the lower levels.
  • a small display device such as an iPad or iPhone to display an interface that appears beautiful and easy to understand, yet provides access to larger, more complex, less intuitive sets of underlying data without breaking the user's thought.
  • a user can select a region by touch-gesture, a sound is played and an animated sequence automatically expands the region such that the portion of the visualization that represents sub-hierarchy fills the screen.
  • colors, borders and fonts of the starting and ending points of the navigation are maintained and blended, creating a game-like experience where the user's navigation feels fluid and natural, as it is metaphorically similar to diving in and out of the hierarchy of the data set.
  • FIG. 1 is a screenshot showing one example of how the application according to one or more embodiments displays market-wide information about trends in stock price, in the form of an activity map, based on the user selection of “Price” in the vertical menu bar on the right side of the screen.
  • the “market” is displayed as a nine-sector grid, in which each sector contains 100 stocks. Persons of ordinary skill will recognize that these numbers are merely exemplary, and embodiments are not limited by the number of sectors displayed or the number of stocks (or other items) displayed in each sector or group.
  • Each of the 900 stocks shown in the grid of FIG. 1 is assigned a color based on the percentage difference and/or correlated percentage difference between its current price and the stock price at an earlier reference point.
  • the reference point may be user-selectable, such as by the slider shown on the right side of the display in FIG. 1 .
  • the user may select one of several different reference points, ranging from yesterday (“1D”) to five years ago (“5Y”).
  • 1D yesterday
  • 1W one week
  • 1M one month
  • 3M three months
  • 6M six months
  • 1Y one year
  • 5Y five years.
  • persons of ordinary skill will recognize that these temporal reference points are merely exemplary, and embodiments are not limited by the number or value of the reference points.
  • FIG. 1 shows an exemplary activity map 100 .
  • the map is displayed on the display screen 160 of tablet computer 105 .
  • An exemplary tablet computer is an iPad®. (iPad is a registered trademark of Apple, Inc.)
  • Displayed on display screen 160 are a market display screen 110 , option menu 180 , and optional market index display 120 .
  • Market display screen 110 includes nine display regions 115 in a square pattern. Each display region corresponds to a specific sector and displays the name of the sector. For example, display region 115 shows icons for stocks in the Services sector.
  • the display region for each sector shows 100 icons arranged in a 10 ⁇ 10 matrix.
  • each icon displayed in market display screen 110 also displays the stock symbol and a number (for example, a price or percentage).
  • the option menu 180 includes back navigation icon 150 , search icon 155 , slider 135 for selecting one of seven time periods of interest, arrangement icon 140 , which allows the user to customize the arrangement of icons in a specific sector, and a manual refresh icon 145 . Also available, although not illustrated in FIG. 1 , are icons for information and for favorites. At 125 the user can select price, market capitalization, and volume as the comparison data type of interest, and at 130 the user can select the display of United States or Global stocks.
  • the application also may display the statistics for market trading volume for each of the 900 stocks shown in the grid.
  • the user may select this display from among other possible displays by choosing “Volume” in the vertical menu bar on the right side of the screen.
  • the user may select the period of interest (i.e., “1D” to “5Y”) for the market statistic volume display.
  • “Volume” mode the application sorts the stocks into volume buckets and assigns a color to each bucket prior to rendering the display. As shown in FIG.
  • each sector may use a different base color (e.g., green for “Technology,” red for “Materials”) with darker shades of the base color indicating lower volumes and lighter shades indicating higher volumes.
  • the base colors and degree of shading may be user selectable.
  • the application may display a zoomed view of a particular sector.
  • the sector may be selected by the user, such as by touching a stock in the nine-sector, 900-stock display of FIG. 1 or 2 .
  • the user may choose to display price, market capitalization, or volume, such as by selecting from a menu on the side of the screen as shown in FIG. 1 .
  • the application may apply the same colorization methods as discussed above with reference to FIGS. 1 and 2 .
  • the user may select a different sector for display such as by touching a menu item on the bottom of the screen as shown in FIG. 3 .
  • the display region for each sector displays icons for 100 stocks in a square pattern, and the displayed stocks are 100 stocks in the sector with the highest capitalization. If the display is limited to US markets, only icons relating to US stocks are displayed, but if the display includes international stocks, the 100 largest firms worldwide in each sector are displayed. As shown in FIG. 7 , the stocks of each sector may be ordered in an outward spiral pattern, with the company having the largest market capitalization within that sector at the center.
  • FIG. 4 shows an exemplary level 3 detailed view of a single stock.
  • the stock may be selected by the user, such as by touching a particular stock in the single-sector display of FIG. 3 .
  • the user may choose to display price, market capitalization, or volume, such as by selecting from a menu on the right side of the screen as shown in FIG. 4 .
  • the user also may select the period of interest as discussed above with reference to FIGS. 1 and 2 .
  • the application may apply the same colorization methods as discussed above with reference to FIGS. 1 , 2 , and 3 .
  • the display is colored red based on the one-day (“1D”) price change.
  • FIG. 5 shows an alternate single-stock display.
  • the choice between single-stock displays of FIGS. 5 and 6 , and any other available single-stock displays, may be configurable or selectable by the user by a menu, screen touches, etc.
  • the stock if it is identified as a favorite, or put on a watch list stock, it may be highlighted in the display by, for example, changing the color and brightness of the symbols on the icon.
  • the single-stock display may include an interface to a stock trading site.
  • the stock trading site can be a public site for stock trading, a site provided by a bank, mutual fund or other investment company at which the user has an account, a site provided by the company whose stock is currently displayed, or a proprietary stock trading application.
  • the interface may include a link, icon, or button that can be touched to initiate the connection to the stock trading site.
  • the application can be preconfigured to automatically provide account, identification and, optionally, authentication data to the stock trading site, and to provide identifying data for the stock currently displayed, so that with one touch the user can access a stock trading site and begin trading the stock that is currently displayed.
  • a user can navigate through different hierarchies (levels) of an activity map. For example, in an exemplary embodiment related to stocks described above with reference to FIGS. 1 through 5 , a user can navigate from level 1 (i.e. market display) to level 2 (i.e., sector display) to level 3 (i.e., individual stock display) by touching the map itself. This navigation can include single-finger touching, single finger swiping, and multiple-finger touching or swiping.
  • level 1 i.e. market display
  • level 2 i.e., sector display
  • level 3 i.e., individual stock display
  • the user can navigate in the same manner between displays comprising different aggregation levels of items.
  • Embodiments may provide the capability of navigating in the same manner through data relating to performance of individuals or groups of individuals performing the same or a similar task or job, e.g., a securities broker.
  • a user could navigate from a level-1 display comprising performance data for a plurality of brokerages each having a plurality of brokers, to a level-2 display comprising performance data for the brokers of a single brokerage, to a level-3 display comprising performance data for an individual broker.
  • performance data may comprise, for example, number of shares traded, gross or net trade revenue, gross or net commission income, etc., each over one or more time periods.
  • a user may have the capability to navigate through data related to elements or parts of one or more systems used for a particular purpose, e.g., a utility transmission system.
  • a user could navigate from a level-1 display comprising performance data for a plurality of transmission networks (or sub-networks) each having a plurality of transmission elements (e.g., transmission lines), to a level-2 display comprising performance data for the elements of a single transmission network (or sub-network), to a level-3 display comprising performance data for an individual element.
  • performance data may comprise, for example, reliability data, capacity data, peak or average resource utilization data, etc., each over one or more time periods.
  • An embodiment of multiple-finger touching is “pinch-to-zoom.”
  • the application identifies two fingers that are touching the display and it compares the relative positions of the two fingers at two time instants, t ⁇ 1 and t ⁇ 2.
  • the distance between the two fingers, and the center point between the two fingers are determined at time instants t ⁇ 1 and t ⁇ 2.
  • the gesture is interpreted as a “pinch out,” and if the distance metric has decreased between t ⁇ 1 and t ⁇ 2 by less than a set amount, preferably 30%, the gesture is interpreted as a “pinch in.”
  • “pinch out” means “zoom in” and “pinch in” means “zoom out.”
  • a “zoom in” gesture will enhance the display of the display region located at the center point of the two fingers.
  • a “pinch out” gesture on a level 1 (entire market) display will cause a level 2 (sector) display of the sector at the center point of the two fingers.
  • the display region containing the selected sector may be highlighted by increased size, color or brightness shading.
  • a “pinch out” gesture on a level 2 (sector) display may cause a level 3 view of the individual stock whose icon is located at the center point of the two fingers.
  • a “pinch in” (“zoom out”) gesture on a level 3 (stock) display will cause a level 2 (entire sector) display
  • a “pinch in” gesture on a level 2 (sector) display will cause a level 1 (entire market) display.
  • visual and audible effects may be associated with user gestures, such as those described above, to create a unique user experience for navigating statistical data.
  • navigation between hierarchy levels e.g., between levels 2 and 3
  • audio effects such as tones or chimes
  • tactile effects such as vibration patterns.
  • FIG. 6 illustrates an example sequence of screens that a user would see as the user navigated from a market display (level 1), to a sector display (level 2), to a single-stock display (level 3) in the exemplary stock market visualization embodiment.
  • a user may identify a particular sector on the market display whose performance is interesting for some reason. After a user zooms into that sector, the user may identify a particular stock of interest within the sector. The user may zoom into that stock, seeing the display at the front of FIG. 6 . After the user is finished viewing the single-stock display, the user may zoom out to the sector display and, optionally, to the market display.
  • the application also may allow the user to zoom directly between the market display and the single-stock display.
  • FIG. 6 illustrates a method 600 of navigating through the map for the exemplary embodiment related to stocks.
  • a market display (level 1) 610 is shown.
  • a user touches a point in display region 617 corresponding to a sector of stocks, thereby causing a sector display (level 2) 620 of the selected sector.
  • the user touches an icon 627 corresponding to a specific stock, which results in display 620 of information relating to the selected stock.
  • a user can navigate the activity map by searching.
  • the application provides a search interface which allows the user to type in the name of a stock symbol or other search query.
  • search query returns multiple search results, these results are displayed visually.
  • the results may be displayed as their own heat map or activity map. In other words, if a search query returns a subset of the items or a subset from the data set, that subset can be mapped. For example, a search query for stocks with dividends greater than 3% would return multiple hits and the results themselves could be mapped. FIG.
  • FIG. 13 illustrates an exemplary search interface with several search results, some of the results also displaying icons representing a navigation of the user to visual top hierarchy (level 1) for identification of the query within the activity map.
  • level 1 visual top hierarchy
  • touch the text for the same search result navigates the user to the bottom hierarchy (level 3) of the activity map, individual section of the map for that result.
  • the user can choose where and what form in the hierarchy they wish to view their search results.
  • the icon corresponding to the matched stock can be highlighted.
  • FIG. 14 for example, the user has selected the level 1 map-based search result, which is displayed as a highlighted tile using a back-lighting effect.
  • the system includes a server and a client.
  • the server may be software executing on any type of general- or special-purpose computer capable of performing the data processing and compression, or may be a “virtual” or “cloud-based” server executing on one or more large, general-purpose computers along with other virtual servers and applications, both related and/or unrelated.
  • the client may be a software routine that is part of a data visualization embodiment or an application, executing on the device that displays the information in the manner described above.
  • statistical data delivery system 1500 comprises a system for delivering financial data, e.g., current and historical data related to the performance and/or risk of securities such as stocks.
  • statistical data delivery system 1500 may comprise a system for delivering statistical data related to the performance of a plurality of individuals or groups engaged in performing a particular task or job (e.g., securities traders).
  • statistical data delivery system 1500 may comprise a system for delivering statistical data related to the performance of one or more parts of one or more systems (e.g., utility transmission or distribution systems, manufacturing systems, computing systems, etc.).
  • Exemplary statistical data delivery system 1500 comprises financial data sources 1520 , 1524 , and 1528 , a financial data server 1530 , a data store 1538 , a distribution server 1580 , one or more display devices 1550 , 1552 , 1554 , 1556 , 1557 , 1558 , and 1559 , and communication network links 1510 , 1515 .
  • Exemplary statistical data delivery system 1500 includes a financial data server 1530 .
  • Financial data server 1530 comprises an importer component 1532 and a publisher component 1536 .
  • FIG. 15 shows importer component 1532 and publisher component 1536 provided by the same server entity, although in another embodiment, the functions of importer component 1532 and publisher component 1536 may be provided by different server entities.
  • the importer component 1532 of financial data server 1530 is coupled to one or more financial data sources via a communications link 1510 .
  • sources of financial data include Xignite, 1520 (accessible at www.xignite.com), barchart.com, 1524 (accessible at www.barchart.com), and Reuters, 1528 (accessible at www.reuters.com).
  • importer 1532 obtains financial data pertaining to all stocks of interest in any commonly used format.
  • One format for exchange of financial data is Extensible Markup Language (XML).
  • Importer 1532 uses a conventional HTTP-based protocol, for example SOAP (Simple Object Access Protocol) to obtain financial data in XML format from financial data sources 1520 , 1524 .
  • importer 1532 obtains updated financial data from each financial data source periodically at five minute intervals.
  • the data obtained from the financial data sources is stored on data store 1538 coupled to importer 1532 , preferably in an optimized format. This includes, in an embodiment, historical data and the most recently updated data.
  • data store 1538 may be stored on a database server, which may be hosted on the same server entity as importer 1532 or a different server entity.
  • data store 1538 is an Apache Cassandra database.
  • data store 1538 may comprise a data structure in persistent memory 1534 on the same server as importer 1532 .
  • XML is a text-based format that optimized for simplicity, human readability, and interoperability over the Internet, albeit at the expense of size or efficiency.
  • the text-based representation of the content and the additional markup describing the content structure result in large file sizes.
  • some communications networks such as, for example, a wireless network
  • wireless devices such as an iPad, iPhone, or portable device, resulting in a less interactive user experience with the application using the XML data.
  • the financial data server 1530 processes the standard-form financial data and encodes it into a more compressed format.
  • publisher component 1536 of financial data server 1530 comprises an analyzer component 1536 that analyzes and processes the financial data, an encoder component 1537 that encodes more complex data into numerical formats and provides additional analytical information, and a compressor component that encodes the data in, preferably, a binary data format.
  • the server pre-processes and packages the data for efficient storage and distribution.
  • Financial data server 1530 saves the pre-processed and packaged financial data on distribution server 1580 for distribution to client display devices.
  • distribution server 1580 distributes pre-processed and packaged financial data to client display devices using the Hypertext Transfer Protocol (HTTP).
  • HTTP Hypertext Transfer Protocol
  • financial data server 1530 and distribution server 1580 are hosted on the same server entity, and in another embodiment, financial data server 1530 is hosted on a different server entity from distribution server 1580 .
  • the functions of a single server entity as described herein may be performed by one or more server computers using techniques well-known to those of skill in the art.
  • distribution server 1580 is hosted on a cloud service 1570 .
  • Exemplary cloud service 1570 is the Simple Storage Service (S3) provided by Amazon.com.
  • distribution server 1580 distributes pre-processed and packaged financial data to one or more display devices using HTTP.
  • Exemplary display devices include smart phones 1550 (for example, an Apple iPhone or a Google Android cell phone), a tablet computer 1552 (for example, an Apple iPad), laptop computer 1554 , desktop computer 1556 , mobile phone 1558 , and personal digital assistant 1559 .
  • display devices may include a specialized device 1557 with hardware and software specifically configured for use by personnel within a specific industry, such as stock traders in the financial industry, service personnel in the utilities industry, or process engineers in the manufacturing industry.
  • the display device pulls data from distribution server 1580 via an HTTP request.
  • one or more of these devices have limited display capabilities.
  • a smart phone 1550 may have a relatively small display screen size and limited screen resolution (e.g., pixel count).
  • limited screen resolution e.g., pixel count
  • commonly available smart phones have 3.5- to 4.5-inch (diagonal) displays with typical resolutions of 960 pixels by 640 pixels.
  • the limited display capabilities mean that it is difficult to simultaneously display dynamic data regarding a large number of similar data items.
  • some of these devices including smart phone 1550 , tablet computer 1552 , mobile phone 1558 , specialized device 1557 , and personal digital assistant 1559 , may have a touch screen interface for input.
  • exemplary link type 1510 includes any form of communications network connection known to those of skill in the art, including, by way of example, ethernet and other local area network (LAN) communications networks, the internet, World Wide Web, and other wide area network (WAN) communications networks, and all forms of wireless or telecommunications links
  • LAN local area network
  • WAN wide area network
  • Communications link types 1515 are likely to include a link over a wireless network, a telecommunications network, or some other form of network that is bandwidth or speed-constrained in some way.
  • one or more display devices 1550 , 1552 , 1554 , 1556 , 1557 , 1558 , 1559 may be coupled to distribution server via a communications network that include a link type 1515 , as shown in FIG. 15 .
  • publisher component 1535 of financial data server 1530 generates multiple compressed data files, with data and information distributed among the files based on its time sensitivity and particularity.
  • the file types include static files comprising data which doesn't change often, such as company descriptions and other configuration data.
  • File types also include files containing more dynamic data such as, in some embodiments, “today” files comprising data needed for today's calculations (e.g., yesterday's closing information); “now” files comprising very time-sensitive information (e.g., current stock prices); and individual stock files.
  • the financial data server 1530 periodically updates the files according to their time sensitivity. For instance, the “today” files can be updated less frequently than the “now” files.
  • the individual stock files contain information particular to that stock such as company name, description, recent headlines, current stock price, and multiple time series charts covering a range of periods of interest corresponding to the options available to the user.
  • data type “utf8.8” is a utf8 encoded string prefixed with a uint8 (unsigned 8 bit integer) length
  • data type “utf8.16” is a utf8-encoded string prefixed with a uint16 length
  • data type “dollar” is a uint32 value that is multiplied by 1000 in order to provide 0.1-cent accuracy
  • data type “symbol” is a stock symbol that has been encoded into an unsigned 32 bit integer (uint32) as described in more detail below. All data types in the embodiments described below are in big endian format, as commonly understood by persons of ordinary skill in the art.
  • ID is the file name, where the last digit is used to determine the file format
  • Size is the number of bytes in the payload
  • CRC32 is a checksum for the payload.
  • the Configuration file provides configuration and version information for the client display device. This will be downloaded by the client display device every time it is started and is used to determine any other files that may need to be downloaded.
  • the payload of the Configuration file contains the following data elements:
  • Data Storage is the URL of the directory on the distribution server that contains the current set of files.
  • Fundamentals Version is the version number of the newest available Fundamentals file.
  • Today Version is the version number of the newest available Today file.
  • Recipe Count is the number of available recipes, and this determines the number of recipe records that follow. Following Recipe Count is an array of Recipes, where each array element includes Recipe ID, the ID number of the recipe, and Recipe Version, the version number of newest available Recipe file.
  • the version number in an embodiment is a sequential number based on time stamp units.
  • the Fundamentals file provides fundamental information for every stock that is being tracked by the system and will be downloaded by the client display device whenever the Configuration shows that a newer version of this file is available.
  • the payload is compressed using “zip” compression.
  • the payload of the Fundamentals file contains the following data elements:
  • Fundamentals Version is the Version number of the Fundamentals file
  • Stock Count determines the number of fundamental records that follow. Following Stock Count is an array of Stocks, where each array element includes Symbol, the encoded stock symbol, and Name, the name of the stock.
  • the Recipe file determines which stocks are contained within each sector.
  • a recipe contains 9 sectors with a variable number of stocks in each, and the order of stocks in the recipe file is irrelevant. The order of the sectors is from bottom-left to upper-right moving horizontally.
  • the Recipe file will be downloaded by the client display device whenever the Configuration shows that a newer version of this file is available.
  • the filename should be recipe_ ⁇ ID> where ⁇ ID> is the ID number of the recipe as denoted in the Configuration file.
  • the payload of the Recipe file contains the following data elements:
  • Recipe ID is the ID number of this recipe
  • Recipe Version is the version number of this Recipe file
  • Recipe Name is the name of this recipe (for example, US, Global, etc)
  • Recipe Icon URL is the location, preferably on the distribution server, of a PNG file, a bitmapped image file, that contains the icons to use for this recipe
  • Index Count is the number of indices to show when this Recipe is active. Following Index Count is an array of indices, in which Index ID is the Index to show when this Recipe is active.
  • each array element contains Sector Name, the name of the sector, Sector Small Name, the small name of the sector, stock Count, the number of stocks contained in this sector, and Symbols, an array of the symbols of the stocks in this sector.
  • the Today file includes all of the historical reference points needed for comparisons within the application for today, i.e., the instant day.
  • the Today file will be downloaded by the client display device whenever the Configuration file shows that a newer version of this file is available, usually once per day.
  • the payload of the Today file contains the following data elements:
  • Index Count is the number of indices stored in the file. Following Index Count are an array of indices, an array of time series labels, an array of labels, and an array of stocks.
  • Index ID is the ID of this index
  • Index Name is the long display name of this index
  • Short Name is the short display name of this index
  • Last Values is the Previous close of the index.
  • an array of arrays of time series label data containing label data relating to each of the pre-determined time series for which historical data is displayed.
  • the data for each predetermined time series element is always stored in the same order, namely, in an embodiment, 1D (where 1 day data is stored), 1W, 1M, 3M, 6M, 1Y, and 5Y.
  • Each time series has a different set of labels to be displayed, and the number and content of labels may change depending on the current date. For example, if the selected time series is 1M and the current date is May 21, 2012, an embodiment will display 20 date labels for each of the 20 trading days from April 23 to May 21.
  • the array element for the array of time series labels is Time Series X Label Count, which is the number of labels to follow. Following this is an array of Time Series Labels for the time series, where Tick Number is the tick where the label should be placed when the time series data is displayed, and Label is the textual or numerical label for that tick. Because the time series data elements are stored in the same order, in an embodiment, the first array of arrays describes the labels for the 1W time series, the second array of arrays describes the labels for the 1M time series, and so on, so that the last array of arrays contains the labels for the 5Y series.
  • Stock Count which is the number of stocks contained in the payload
  • Stock Element Size which is the number of bytes contained within each element in the stocks array.
  • the Stock Element Size data element can be used to expand the number of fields in the stocks element without having to replace earlier code.
  • Price is a data element used for price comparisons and comprises the closing price for each of the time series, in the predetermined time series order.
  • Prices contains the closing prices for the 1D period (i.e., last trading day), the 1W period, (last five trading days); 1M (last 20 trading days); 3M (last 65 trading days); 6M (last 130 trading days); 1Y (last 260 trading days); and 5Y (last 1300 trading days).
  • Average Volumes contains calculated average volumes over each time series.
  • Average Volumes contains average volume for 1D (0); 1W, average volume over days 1-5; 1M, average volume over days 1-20; 3M, average volume over days 65-130; 6M, average volume over days 130-195; 1Y, average volume over days 260-325 days; and 5Y, average volume over days 1235-1300.
  • 3M Average Volume is a calculated average volume for days 1-65.
  • Shares Outstanding is the number of shares outstanding for the stock and is used to determine market capitalization by multiplying by current stock price.
  • Open Price is the opening price at the beginning of the time series.
  • 52 Week Low is the low price over the preceding 52 weeks; and 52 Week High is the high price over the preceding 52 weeks.
  • P/E is the current price to earnings ratio multiplied by 1000. A zero value means that P/E data is not available, and “ ⁇ 1” (0xffffffffff) means negative earnings.
  • Dividend Yield is the dividend yield multiplied by 1000.
  • the Now file contains the current information for all stocks.
  • the payload of the Now file contains the following data elements:
  • Index Count uint8 ⁇ ArrayOfIndices> Index ID symbol Index Value dollar ⁇ /ArrayOfIndices> Stock Count uint16 Stock Element Size uint16 ⁇ ArrayOfStocks> Symbol symbol Price dollar Expected Volume uint32 Actual Volume uint32 Timestamp uint32 Today's Low dollar Today's High dollar ⁇ /ArrayOfStocks>
  • Index Count is the number of indices stored in file, and is followed by an array of indices.
  • Each array element includes Index ID, the ID of the index, and Index Value, the current value of the index.
  • Index Value the current value of the index.
  • Stock Count which is the number of stocks contained in the payload
  • Stock Element Size which is the number of bytes contained within each element in the stocks array. The Stock Element Size data element can be used to expand the number of fields in the stocks element without having to replace earlier code.
  • Symbol is the encoded symbol for the stock
  • Price is the current price
  • Expected Volume is the predicted average volume for the current trading day up to the current tick
  • Actual Volume is the current volume for the day
  • Timestamp is the date and time of the quote in Unix time
  • Today's Low is the low price for the day
  • Today's High is the high price for the day.
  • Financial data applications may provide a graphic display of fluctuations of price and volume over a time period in a time series graph. Exemplary time series graphs are shown in FIGS. 4 and 8 .
  • the time series graph is prepared by the server and transmitted to the client as a graphical image.
  • embodiments of the present disclosure transmit the underlying data in a binary format to the display device client.
  • the display device client then can use this data to render one or more time-series graphs.
  • the size of the binary data file transmitted is significantly smaller than the size of the corresponding graphics file, and thus can be transmitted much more efficiently.
  • Other statistical data applications may display similar time series related to other statistics, such as utilization or capacity of a particular element of a system (e.g., a utility transmission system) over various time periods.
  • a time series graph is specified to be 780 pixels wide, a width that easily fits within the display specifications of many limited display devices. There are two different sampling rates used, which makes for graphs composed of either 390 or 260 ticks. Table 1 below shows the relationship between Time Frame, Actual Time, Ticks, and Time/Tick:
  • volume data is displayed on the bottom of the time series graph. There is one vertical line per tick with either one pixel (for 390 ticks) or two pixels (for 260 ticks) between it and the next tick.
  • price is provided in ticks, in an embodiment, price data is not necessarily plotted as such.
  • the volume and price for each tick are represented by an unsigned 8 bit integer, which can represent any number between 0-255. As such, price and volume data values may be scaled. Volume is scaled between 0 (represented as 0) and the highest tick volume (represented as 255); and price is scaled between the lowest tick price (represented as 0) and the highest tick price (represented as 255.
  • the low and high data values also are stored.
  • vertical resolution price and volume data
  • horizontal resolution the tick count
  • the data in the time series file allows the display device client to render a time series graph on most limited display devices.
  • a statistical data server e.g., financial data server 1530
  • the “History” and “Now” columns in Table 1 show the number of points from each file used to construct a time series for each particular Timeframe.
  • the Time Series History file contains the historical data necessary to display a time series for a single stock for every time series except for the current day. This will be downloaded by the client display device whenever the user navigates to display data regarding a single stock and the currently cached history is out of date.
  • the filename in an embodiment, is timehist_ ⁇ SYMBOL>, where ⁇ SYMBOL> is the ASCII stock symbol.
  • the payload of the Times Series History file contains the following data elements:
  • Symbol is the symbol for the stock. Following Symbol is array of graph data elements for each of the historical time series (1W, 1M, 3M, 6M, 1Y, 5Y).
  • data elements are Open Price, the opening price for this period, Low Price, the low price (used for scaling), Low Tick, the tick when the low price occurred, High Price, the high price (used for scaling), High Tick, the tick when the high price occurred, and Volume, the high volume (used for scaling).
  • Prices and Volumes are arrays of scaled price and volume value, each with the number of elements given by the “History” column in Table 1.
  • the Time Series Now file contains the current (today) data necessary to display a time series for a single stock. This will be downloaded by the client whenever the user navigates to display data regarding a single stock.
  • the filename in an embodiment is be time_ ⁇ SYMBOL>, where ⁇ SYMBOL> is the ASCII stock symbol.
  • the payload of the Times Series Current file contains the following data elements:
  • Minutes Elapsed is the number of minutes elapsed today (where minutes run from 1-390)
  • Prices is an array of price data by minute ticks for each elapsed minute
  • Volumes is an array of volume data by minute ticks for each elapsed minute
  • Open Price is the opening price for today
  • Low Price is the low price
  • Low Tick is the tick showing when the low price occurred
  • High Price is the high price
  • High Tick is the tick showing when the high price occurred.
  • the News file contains the description and news headlines for a single stock.
  • the payload is organized into chunks to allow for the addition of new chunks in the future. If there are no values to put into a chunk, then the chunk can be skipped entirely. This will be downloaded by the client whenever the user navigates to display data regarding a single stock.
  • the filename in an embodiment is be news_ ⁇ SYMBOL> where ⁇ SYMBOL> is the ASCII stock symbol.
  • the HTTP header If-Modified-Since can be used to keep the client display device from unnecessarily re-downloading the file.
  • the payload of the News file contains the following data elements:
  • Symbol is the encoded symbol for the stock.
  • Stock Description data values including Chunk ID, which indicates the chunk type, Size, the number of bytes in this chunk (not including Chunk ID and Size), and Description, which is the description of this stock.
  • data values for headlines including Chunk ID, the chunk type, Size, the number of bytes in this chunk (not including Chunk ID and Size), and Count, the number of headlines contained in chunk.
  • array element includes Timestamp, the date and time for this headline in Unix time, Headline, the actual headline, Attribution, the source of the headline, and URL, the URL of the story on the web.
  • Chunk ID the chunk type, Size, the number of bytes in this chunk (not including Chunk ID and Size), and Count, the Number of tweets contained in the chunk.
  • Count the Number of tweets contained in the chunk.
  • each array element includes Timestamp, the date and time for this tweet in unix time, Headline, the actual tweet, Username, the Username of the Tweeter, and URL, the URL of the tweet.
  • the data files created by a statistical data server contain data in binary format and therefore convey the same information as XML files and graphics files, but in a significantly reduced size.
  • FIG. 18 is a flow chart showing the steps of an embodiment of a method 1800 of encoding a symbol comprising a plurality of ASCII text characters (e.g., a stock ticker symbol) into a binary number. The method assumes that the stock ticker symbol includes only alphabetic characters “A”-“Z,” “.” and “-”.
  • the iterations of the method build an encoded symbol value fnid, which is a four-byte, big-endian, binary number. There are 32 total bits in fnid, and these 32 bits provide 6 different blocks of 5 bits each.
  • the ticker symbol is encoded by deriving a 5-bit value for each character in the ticker symbol and storing the derived value in a different block in fnid.
  • fnid is initialized to 00 00 00 00 (hex), and the current insertion point is initialized to the five least significant bits in fnid.
  • every alphabetic character in the ticker symbol is capitalized.
  • the next character in the ticker symbol is selected. If this is the first time through the method, the first character is selected. For example, if the ticker symbol is “IBM”, the first character is “I”.
  • the selected character is encoded as a binary number with five bits.
  • a “[” character is substituted for a “-” and a “]” character is substituted for a “.”.
  • the number 64 (decimal) is then subtracted from the UTF8 numeric value of the character. Because the UTF8 numeric values for the characters “A”-“Z”, “[,” and “1” range from 65 (decimal) for “A” to 93 (decimal) for “],” subtracting 64 from the UTF8 decimal value yields a decimal number between 1 and 29 for each character in a proper stock ticker symbol. Since five binary bits can represent any decimal number from 0 to 31, this yields a unique five-bit encoding for the selected character.
  • the decimal UTF8 value for “I” is 73, subtracting 64 yields 9, which is encoded as 01001; the decimal UTF8 value for “B” is 66, subtracting 64 yields 2, which is encoded as 00010; and the decimal UTF8 value for “M” is 77 subtracting 64 yields 13 which is encoded as 01101.
  • step 1850 the encoded value for the character is stored in the current insertion point in fnid.
  • the current insertion block is the five least significant bits of fnid.
  • the value of fnid after the first pass 1850 is:
  • step 1860 the method quits if there are no more characters. If there is another character, in step 1870 the current insertion point is moved to the next most significant 5 bits in fnid and steps 1830 - 1870 are repeated until there are no more characters in the ticker symbol.
  • the next character is “B.”
  • the character “B” is encoded as 00010 (binary), and these five bits are stored in the current insertion point.
  • fnid looks like this:
  • the next character is M.
  • the character “M” is encoded as 01101 (binary), and these five bits are stored in the current insertion point, and the current insertion point is moved to the next five most significant bits.
  • fnid looks like this:
  • ticker symbol IBM After the addition of the value corresponding to the “M” in IBM, the ticker symbol IBM has been encoded into the unique binary number 0000 0000 0000 0011 0100 0100 1001, or 00 00 34 49 (hex). This encoding is reversible, meaning that the original ticker symbol can be recovered from the encoded value by reversing the steps of method 1800 .
  • the reversible encoding method described above can be modified to encode stock ticker symbols (or other market unit symbols) that use numeric characters or a combination of alphabetic and numeric characters, such as are used in some Asian markets.
  • the most significant 2 bits are not used and remained unchanged through the encoding process. These two bits can be set to identify whether the stock ticker symbols in the application user only alphabetic characters (00 binary), only numeric characters (01 binary), or an alphanumeric characters (10 binary).
  • Method 1800 can be modified as follows to encode stock ticker symbols that use only numeric characters 0-9 to identify stocks. In such a system, only 4 bits are needed to encode each number character. Step 1810 is modified to initialize fnid to 40 00 00 00 (hex), which reflects that the two most significant bits are 01 binary. Also, the first insertion block in fnid is initialized to the least significant 4 bits. Step 1820 is unnecessary. Step 1840 is modified so that each numeric character is encoded in 4 bits.
  • the UTF8 values for “0”-“9” are 48-57 (decimal), and each numeric character can be normalized to a number between 0-10 (decimal) by subtracting 48; and any number between 0-10 (decimal) can be encoded in four binary bits.
  • Step 1850 is modified so that the 4 bits of the encoded character are stored at the first insertion point, and step 1870 is modified to move the current insertion point to the next most significant four bits of fnid. In this manner any stock symbol composed of six numeric characters can be encoded.
  • Method 1800 can be modified as follows to encode stock ticker symbols that use a combination of alphabetic and numeric characters in stock ticker symbols. In such a system, 6 bits suffice to encode each character. Step 1810 is modified to initialize fnid to 80 00 00 00 (hex), which reflects that the two most significant bits are 10 binary. Also, the first insertion block in fnid is initialized to the least significant 6 bits. Step 1840 is modified so that each alphanumeric character is encoded in 6 bits.
  • the UTF8 values for “0”-“9,” “A”-“Z” and “1” range from 48-93 (decimal), and each character can be normalized to a number between 0-45 (decimal) by subtracting 48; and any number between 0-45 (decimal) can be encoded in 6 binary bits.
  • Other alphanumeric characters (such as “-” and “.”) are handled by substitution as in method 1800 .
  • Step 1850 is modified so that the 6 bits of the encoded character are stored at the first insertion point, and step 1870 is modified to move the current insertion point to the next most significant 6 bits of fnid. In this manner any stock symbol composed of up to 5 alphanumeric characters can be encoded.
  • the binary number can be used an index into a database, such as database 1538 described above with reference to FIG. 15 .
  • the binary number uses fewer bytes than most stock ticker symbols, making it more efficient to transmit files containing data relating to hundreds of stocks.
  • search and comparison operations are faster because processors require less time to compare to integers than to compare strings of alphanumeric characters.
  • the client display device determines which files are required to visually display the information and requests those files from the server. For example, the first time the user initiates the application, the client display device determines that it needs all three types of files and requests those from the server. By further example, if the user initiates the application for the first time since the previous day, the client display device determines that it only requires “today” and “now” files and requests those from the server. During further operation, the client display device may request “now” files according to the required updating frequency of the application, which may be user-configurable. If the user selects a single stock display, such as shown in FIGS. 4 and 8 , the client display device requests the corresponding individual stock files from the server. The server responds with the requested information, including the multiple time series charts described above.
  • the client display device uses HTTP requests to pull files from the distribution server.
  • the HTTP header If-Modified-Since can be used to keep the client display device from unnecessarily re-downloading files that have not been modified.
  • the user can force the client display device to attempt to pull files from the distribution server by manually “refreshing” the display.
  • some client display devices allow a user to switch an application between active and dormant status, and the client display device will check for updates automatically whenever it has been dormant and is restored to active display status.
  • a user who is using the application on an iPhone may interrupt viewing statistical data to take a phone call and to check email. During the phone call and the email checking, the activity map application is not active on the display screen. When the user again selects the activity map application and returns it to active display, the client display device will automatically attempt to pill updated statistical data.
  • a client display device can be configured to automatically check for updates at selected times or selected intervals.
  • the application receives the necessary encoded data files from the server via the client, it translates files into the various user-interface displays as described above with references to FIGS. 1 through 14 .
  • the application generates from the files a set of dynamic comparison matrices, with each element corresponding to an icon in the display corresponding to an individual stock.
  • each icon is a rectangular tile of substantially the same shape and size.
  • the scope of the invention does not depend on the specific size or shape of the icon.
  • some display parameters, such as size and shape are the same for each icon, and other display parameters, such as the base color and shade of each tile, and the color and shade of the symbols on each tile, differ for each token based on a the current value of dynamic data.
  • the user can configure which type of dynamic data affects the variable display parameters.
  • the application sets each tile's color and/or visual mode (or display parameters) based on user configurable parameters. For example, when the user selects “Price” mode, the application may select the tile color arrays based on the deviation between the most recent price information and the reference value, and the color of each tile may differ depending on the size of the deviation. If the user selected “1D” on the user interface sidebar, the application will set the color of each individual tile based on a comparison between the current price and the yesterday's closing price.
  • the tile colors also may be user-configurable such as by a “Preferences” menu. For example, instead of the red/green colorization scheme for price changes, a user could choose a yellow/purple scheme.
  • a user could select a colorization range and scale for the tiles rather than having these parameters fixed by the application itself. For example, if a user wanted to look more closely at big movers, the user could define that tiles for all stocks with price changes less than 50% are black while tiles for stocks changing +50% and ⁇ 50% would be colored bright green and bright red, respectively.
  • display parameters can be used to illustrate different values of dynamic data elements, including, by way of example, color, tint, hue, brightness, shading, 2-D shape, 3-D shape, hatching, stippling, highlighting, backlighting, contrast, and each of these design parameters can be applied to the icon and/or to the symbols displayed on the icon. For example, the stocks with the most-extreme changes in price for a period may have the symbols displayed on each tile in bright white, whereas other icons may have symbols on each tile displayed in gray. Display parameters may also be varied when a stock has been identified as a favorite.
  • the application determines the colors for each tile, it charts the tiles using mathematical optimization techniques. These techniques improve the rendering speed of the visualization, making the application appear more responsive to the user.
  • the application may take advantage of any high performance graphics rendering capabilities available in the device.
  • Some devices including devices using operating systems such as Apple's iOS and Google's Android, may include the OpenGL ES application programming interface (API) that enables 2D and 3D graphics on embedded systems.
  • the OpenGL ES API allows the application developer to access low-level graphics acceleration hardware available in the device hardware, which results in a more attractive and responsive user interface.
  • VBOs Vertex Buffer Objects
  • texture mapping may be used to achieve fast rendering of the level-1 screen that displays a large number of tiles representing the entire population of items for which statistical data can be visualized.
  • Such embodiments also may use VBOs and/or texture mapping to achieve 30 frames-per-second animation in transitions between the displays for different levels.
  • VBOs and texture mapping may be used to render the population of 900 tiles shown in each of FIGS. 1-3 .
  • a VBO is an Open GL feature that provides methods for uploading data to the renderer for non-immediate-mode rendering.
  • VBOs offer substantial performance gains over immediate mode rendering primarily because the data resides in the renderer memory rather than display device's system memory, and as such can be rendered directly by the renderer.
  • texture mapping is an Open GL technique used to surface detail or texture to a shape, such as the rectangular tiles shown in FIGS. 1-3 . Texture mapping is akin to applying patterned paper to a plain white box.
  • FIG. 22 shows an exemplary set of texture mapping elements used to render level-1, level-2, and level-3 displays.
  • FIG. 19 is a flow chart that shows steps of an exemplary embodiment of a method 1900 of displaying statistical data, e.g., financial data.
  • arrangement parameters are selected. For example, how icons are to be arranged with a sector (spiral, alphabetical, winners and losers, etc.) can be selected.
  • the user can customize the items viewed in each sector and/or can create custom sectors and watch lists.
  • FIG. 11 illustrates an exemplary display of customized sectors
  • FIG. 12 illustrates a level 2 display of a watchlist.
  • a comparison data type such as price or volume
  • reference values are selected.
  • the reference values can include the value of the comparison date type at a historical reference point, for example, yesterday, or one year ago, and comparisons to other reference values, such as, for example, a comparison of the price of a stock to an index such as the S&P 500, or a comparison of the stock price to average price change in the sector.
  • FIG. 10 illustrates a right menu option that allows the user to select comparison data types and reference values.
  • an activity map comprising statistical data is displayed.
  • each icon is displayed in a particular color, or color shade, to indicate the relationship between the corresponding item's reference data comparison data type (e.g., price, volume) and that of the reference value (e.g., time period, index, sector).
  • updated statistical data for the items e.g., performance and/or risk data for stocks
  • the user may manually request a refresh, or the data may be automatically refreshed, for example, when the application is returned to active status.
  • the appearance of the icons in the activity map is changed.
  • Embodiments of method 1900 are not limited to the order in which the steps are shown; the steps can occur in any order.
  • FIG. 20 is a flow chart showing steps of an exemplary embodiment of a method 2000 for navigating a display of statistical data, e.g., financial data.
  • an activity map comprising a plurality of icons arranged in a plurality of display regions is displayed.
  • the activity map in the exemplary embodiment, includes 9 display regions displayed in a square pattern, and each display region includes 100 tile icons representing 100 different items, such as stocks.
  • Each icon has display parameters (for example, size and shape), that are the same for each icon, and a variable display parameter, for example, color.
  • a display region or an icon is selected. Exemplary methods of selection, in an embodiment, include touching, swiping, and pinching on a touch-screen display, and searching.
  • step 2030 the display of the icons in the selected display region is enhanced. For example, selection of a sector in a level 1 display (by, for example, touching the display region corresponding the selection) cause a level 2 display of the sector in which the display region for the sector is enlarged to fill the entire screen formerly filled by the level 1 display.
  • step 2040 additional data concerning the stock corresponding to the icon is displayed in a level 3 display.
  • a level 3 display may include a time series graph for the specified period for the selected item and news or identifying information related to the item.
  • a level 3 display may be contained on a single display screen or multiple display screens, which can be navigated, in an embodiment, by touching. Embodiments of method 2000 are not limited to the order in which the steps are shown; the steps can occur in any order.
  • FIG. 21 is a flow chart showing the steps of an exemplary embodiment of a method 2100 of distributing statistical data, e.g., financial data.
  • the method 2100 is used in connection with a statistical data delivery system, such as the exemplary financial embodiment described above with reference to FIG. 15 , comprising a financial data source, a financial data server, a data store, a distribution server, and a display device coupled to the distribution server via a communications network.
  • a financial data source e.g., a financial data server
  • a data store e.g., a data store
  • a distribution server e.g., current financial data related to a plurality of items
  • the financial data server imports financial data from one or more financial data sources and stores it in the data store.
  • step 2120 configuration files, historical data files, and current data files are stored on a distribution server for distribution to a display device.
  • financial data server 1530 processes and packages financial data from the data store to create the configuration files, historical data files and current data files using a binary data format. Each of these files is stored on the distribution server from which the files can be distributed to a display device.
  • new dynamic data is imported from one of the financial data sources, and in step 2140 , the data store is updated with the new data.
  • step 2150 the configuration files, historical data files and current data files are updated with the new data.
  • the financial data server analyzes the new data and determines whether any of the configuration files, historical data files or current files need to be updated, and if so, new data files are created. And in step 2160 , the updated files are stored on the distribution server for distribution to a display device.
  • Embodiments of method 2100 are not limited to the order in which the steps are shown; the steps can occur in any order.
  • FIG. 16B depicts an exemplary computer 1640 for hosting a server, for example, a distribution server or financial data server in an embodiment.
  • Exemplary computer 1640 employs an architecture comprising one or more processing units 1652 , 1656 .
  • Embodiments with more than one processing unit may include parallel processors.
  • Processing units 1652 , 1656 may contain one or more processors and/or multiple cores and may be implemented using one or more heterogeneous processor systems.
  • Processors 1652 , 1656 are coupled to memory 1644 , 1648 .
  • Memory 1644 , 1648 preferably comprises random access memory, including, preferably, a multiple-level memory cache hierarchy.
  • Processors 1652 , 1656 preferably are coupled to Input/Output Hub 1660 .
  • Input/Output Hub 1660 preferably is coupled to one or more peripheral busses, including PCI-E bus 1672 and PCI Express bus 1676 .
  • Input/Output Hub 1660 preferably is coupled to network interface controller 1668 for coupling to a communications network.
  • Input/Output Hub 1660 preferably is also coupled to one or more storage units 1664 , including one or more hard disks, RAID arrays or Serial Attached SCSI (SAS) units.
  • Input/Output Hub 1660 preferably is coupled to I/O Controller Hub 1680 .
  • I/O Controller Hub 1680 preferably is coupled to video/graphics chipset 1684 , Super I/O (SIO) device 1688 , Universal Serial Bus (USB) Controller 1692 , optical drive 1696 , and a slot for SD memory 1698 .
  • One or more components may be coupled to I/O Controller Hub 1680 via a PCI bus, an integrated drive electronics (IDE), or a serial advanced technology attachment (SATA) interface.
  • IDE integrated drive electronics
  • SATA serial advanced technology attachment
  • the coupling between the components of computer 1640 may be implemented using any type of communications fabric or architecture that provides for a transfer of data between different components or devices attached to the fabric or architecture.
  • computer 1640 can be any computer embodied in hardware that provides sufficient computing power, memory, and persistent storage to perform the methods and processes and techniques of the embodiments described herein.
  • An exemplary computer for use with embodiments described herein is a Hewlett Packard Proliant® G6 server with dual cores and hyperthreading.
  • embodiments described herein may be implemented to advantage in a variety of sequential orders and that embodiments may be generally implemented in a physical medium, preferably magnetic or optical media such as RAM, RAM drives, USB drives, SD memory, disks, tapes, DVDs and CD-ROMs or other storage media, for introduction into a directory service configured to synchronize changes described herein.
  • the media will contain program instructions embedded in the media that, when executed by one or more processing units, will execute the steps and perform the methods, processes, and techniques described herein including processing, importing, publishing and distributing statistical data.
  • FIG. 16A depicts exemplary software components 1600 of a computer 1640 ( FIG. 16B ) in an exemplary embodiment.
  • Memory 1630 in FIG. 16A preferably comprises memory 1644 , 1648 .
  • An operating system 1605 is executed by processing units 1652 , 1656 .
  • the operating system 1605 coordinates and provides control of various components within computer 1640 in FIG. 16B .
  • Exemplary operating systems 1605 include commercially available operating systems such as Solaris® (Solaris is a trademark of Oracle America, Inc. in the United States and other countries) or Linux® (Linux is a trademark of Linus Torvalds in the United States and other countries).
  • An object oriented programming system such as the Java programming system, may be implemented in a Java Virtual Machine (not illustrated) executing in conjunction with the operating system 1605 (Java is a trademark of Oracle America, Inc., in the United States and other countries).
  • Software components 1600 in a computer used in an exemplary embodiment of a statistical data delivery system may include server software 1610 including code and instructions for performing the methods, processes and techniques of financial data server 1530 (from FIG. 15 ), including software components 1620 for performing the methods, processes and techniques of Importer 1532 (from FIG. 15 ), and software components 1625 , for performing the methods, processes and techniques of Publisher 1535 (from FIG. 15 ).
  • software components 1600 in a computer used in an exemplary embodiment of a statistical data delivery system may include server software 1615 including code and instructions for performing the methods, processes and techniques of distribution server 1580 (from FIG. 15 ).
  • software components 1600 in a computer used in an exemplary embodiment of a statistical data delivery system may include data store software 1630 for implementing data store 1538 (from FIG. 15 ).
  • server software components 1615 , 1620 and 1625 may be hosted on the same server computer, or plurality of server computers.
  • each server software component is preferably implemented as a Java application and executed as an independent process in a Java Virtual Machine (not illustrated).
  • server software components 1615 , 1620 , and 1625 may each be hosted on a server computer, or different plurality of server computers.
  • Data and instructions for the operating system 1605 , the object oriented programming system, and applications or programs are located on storage devices, such as HD/SAS units 1664 , and may be loaded into main memory 1644 , 1648 for execution by processing units 1652 , 1656 .
  • Java Applications may contain instructions that are loaded into the portion of memory 1644 , 1648 containing a Java Virtual Machine (not illustrated) and executed by the Java Virtual Machine.
  • the methods and processes of the illustrative embodiments described herein may be performed by processing units 1652 , 1656 using computer implemented instructions, which may be located in a memory, such as, for example, memory 1644 , 1648 , SD memory 1698 , or in one or more peripheral devices.
  • FIGS. 16A and 16B and described above are not meant to imply architectural limitations.
  • the exemplary hardware shown in FIG. 16B may vary depending on the implementation.
  • Other internal hardware or peripheral devices such as flash memory, equivalent non-volatile memory, and the like, may be used in addition to or in place of the hardware depicted in FIG. 16B .
  • the processes of the illustrative embodiments may be applied to a multiprocessor data processing system.
  • the processes of the illustrative embodiments may be encoded in a programming platform other than Java, and may be executed under an operating system other than Linux or Solaris.
  • FIG. 19 is a block diagram of exemplary display device or apparatus utilizing certain embodiments of the present disclosure, including one or more of the methods described above with reference to the figures.
  • Device 1900 comprises processor 1910 that is operably connected to program memory 1920 and data memory 1930 via bus 1970 , which may comprise parallel address and data buses, serial ports, or other methods and/or structures known to those of ordinary skill in the art.
  • Program memory 1920 comprises software code executed by processor 1910 that enables device 1900 to communicate using one or more wired or wireless communication protocols, including one or more wireless communication protocols standardized by 3GPP, 3GPP2, or IEEE, such as those commonly known as LTE, UMTS, HSPA, GSM, GPRS, EDGE, 1xRTT, CDMA2000, 802.11, WiFi, HDMI, USB, etc., or any other protocols utilized in conjunction with radio transceiver 1940 , user interface 1950 , and/or host interface 1960 .
  • Program memory 1920 further comprises software code executed by processor 1910 to control the functions of device 1900 , including configuring and controlling various components such as radio transceiver 1940 , user interface 1950 , and/or host interface 1960 .
  • Such software code may be specified or written using any known or future developed programming language, such as e.g. Java, C++, C, and Assembler, as long as the desired functionality, e.g., as defined by the implemented method steps, is preserved.
  • Data memory 1930 may comprise memory area for processor 1910 to store variables used in protocols, configuration, control, and other functions of device 1900 .
  • program memory 1920 and data memory 1930 may comprise non-volatile memory (e.g., flash memory), volatile memory (e.g., static or dynamic RAM), or a combination thereof.
  • data memory 1930 may comprise a memory slot by which removable memory cards in one or more formats (e.g., SD Card, Memory Stick, Compact Flash) may be inserted and removed.
  • processor 1910 may comprise multiple individual processors (not shown), each of which implements a portion of the functionality described above. In such case, multiple individual processors may be commonly connected to program memory 1920 and data memory 1930 or individually connected to multiple individual program memories and or data memories.
  • device 1900 may be implemented in many different combinations of hardware and software including, but not limited to, application processors, signal processors, general-purpose processors, multi-core processors, ASICs, fixed digital circuitry, programmable digital circuitry, analog baseband circuitry, radio-frequency circuitry, software, firmware, and middleware.
  • Radio transceiver 1940 may comprise radio-frequency transmitter and/or receiver functionality that enables device 1900 to communicate with other equipment supporting like wireless communication standards.
  • radio transceiver 1940 includes an LTE transmitter and receiver that enable device 1900 to communicate with various Long Term Evolution (LTE) networks (also known as “4G”) according to standards promulgated by 3GPP.
  • LTE Long Term Evolution
  • radio transceiver 1940 includes circuitry, firmware, etc. necessary for device 1900 to communicate with various UMTS and/or GSM/EDGE networks, also according to 3GPP standards.
  • radio transceiver 1940 includes circuitry, firmware, etc. necessary for device 1900 to communicate with various CDMA2000 networks, according to 3GPP2 standards.
  • radio transceiver 1940 is capable of communicating using radio technologies that operate in unlicensed frequency bands, such as IEEE 802.11 WiFi that operates in the ISM bands in the regions of 2.4 and 5.6 GHz.
  • radio transceiver 1940 may comprise a transceiver that is capable of wired communication, such as by using IEEE 802.3 Ethernet technology. The functionality particular to each of these embodiments may be coupled with or controlled by other circuitry in device 1900 , such as processor 1910 executing protocol program code stored in program memory 1920 .
  • User interface 1950 may take various forms depending on the particular embodiment of device 1900 .
  • device 1900 is a mobile phone, in which case user interface 1950 may comprise a microphone, a loudspeaker, slidable buttons, depressable buttons, a display, a touchscreen display, a mechanical or virtual keypad, a mechanical or virtual keyboard, and/or any other user-interface features commonly found on mobile phones.
  • the particular features comprising the device may depend on whether the device is a smartphone, feature phone, or other type of mobile phone.
  • device 1900 is a tablet computing device (such as an iPad® sold by Apple Inc.) comprising a touchscreen display that is much larger than touchscreen displays found on mobile phones.
  • one or more of the mechanical features of user interface 1950 may be replace by comparable virtual user interface features (e.g., virtual keypad, virtual buttons, etc.) implemented using the touchscreen display of device 1900 , as familiar to persons of ordinary skill in the art.
  • device 1900 may be a digital computing device, such as a laptop computer, desktop computer, workstation, etc. that comprises a mechanical keyboard that may be integrated, detached, or detachable depending on the particular embodiment.
  • Host interface 1960 of device 1900 also may take various forms depending on the particular embodiment of device 1900 .
  • host interface 1960 may comprise a USB interface, an HDMI interface, or the like.
  • device 1900 may comprise more functionality than is shown in FIG. 19 .
  • device 1900 may also comprise functionality such as a video and/or still-image camera, media player, etc.
  • radio transceiver 1940 may include circuitry necessary to communicate using additional radio-frequency communication standards including Bluetooth, GPS, and/or others.
  • processor 1910 may execute software code stored in program memory 1920 to control such additional functionality.

Abstract

Embodiments include methods for distributing visual display information related to a plurality of items to one or more display devices, and methods for rendering visual display information related to a plurality of items by a display device. Embodiments also comprise display devices, servers, and computer-readable media embodying one or more of these methods. Embodiments display of large data sets and associated statistics, such as trading activity of securities or other business statistics, on devices with limited-size display screen, e.g. smartphone or tablet. Embodiments enable visual navigation of large dynamic data sets via relative and absolute contextual statistics. Embodiments combine dynamic visual displays with a multi-tiered navigation structure, supporting more effective information gathering and processing across a variety of users with different objectives. Embodiments provide more relevant, individualized user experience through flexibility to observe patterns, correlation, and contextuality, and to explore subsections of the data quickly via unique navigation paths.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application claims the priority of U.S. Provisional Application Ser. No. 61/489,166, entitled “Dynamic Visual Market Data Display And Navigation System And Method For Limited Display Device,” which was filed May 23, 2011 and is incorporated herein by reference.
  • FIELD OF TECHNOLOGY
  • Embodiments described herein relate to the transmission and visual display of large data sets and their associated statistics, such as the trading activity of securities on a securities exchange or other business measurement statistics, on a limited display screen, such as a smartphone or mobile tablet. More specifically, embodiments include systems and methods for the transmission, display and visual navigation of a large dynamic data set via multi-faceted display of relative and absolute contextual statistics, such systems and methods which combine dynamic simultaneously-updating comparative visual displays with a multi-tiered navigation structure, together which support more effective information gathering and processing across a variety of users with different objectives.
  • BACKGROUND
  • A key goal of investors, traders, journalists, and others who are in some way connected with securities markets or other markets is to determine market performance overall, and how it effects themselves and others. This inquiry is complicated by the fact that, on a given day, the market as a whole may be up, a particular market sector (e.g., technology stocks) may be down, but a particular stock within that sector (e.g., Google) may be up. One conventional approach of objectively summarizing and benchmarking market performance with one or two indices (e.g., Dow Jones Industrial Average (DJIA)) obfuscates much of the detail needed by the market participants and observers. On the other extreme, another conventional presentation of market information is a list of stock prices such as what is found in a daily newspaper. The drawback, however, is the difficulty in collectively presenting a large amount of individual current statistics for items while summarizing the overall dynamic state of the information in a way that allows the user to interact with the data quickly at the individual, grouped and summary levels. Another approach employs a conventional heat map, which is a type of graphical representation of data where the individual values in a matrix are represented as colors. However, it is difficult to dynamically represent the multi-faceted relationships, sub-relationships, and pertinent data of individual items, related items and the information or market in aggregate using a conventional heat map.
  • A further drawback is each individual's information requirements and assessments are different, so an objective statistical data or market performance summary system limits a user's ability to make assessments and spot trends which are subjective and pertain to that individual's perspective vis-à-vis the information. One conventional approach to satisfying an individual's subjective information queries is through individual queries, such as quote searches and user-defined security watch lists. A drawback of individual queries and persistent query lists is that they limit a user's ability to compare and understand information in context with the overall data set or market.
  • One attempt to bridge the objective market performance gap was made by Martin Wattenberg of SmartMoney magazine. In his paper, Visualizing the Stock Market, Wattenberg described a two-dimensional data visualization algorithm capable of presenting detailed information on hundreds of items while emphasizing overall patterns in the data. This display method, which builds on Shneiderman's treemap technique, makes use of both hierarchy and similarity information. The display groups companies into rectangular-shaped sectors, with individual companies displayed as rectangles having an area proportional to market capitalization and dimensions optimized to be as close as possible to square. Each rectangle is filled with a color indicating the percent change of the stock's price since the most recent market close, with green indicating positive change, red indicating negative change, and black indicating lack of change. Within a sector, companies (rectangles) are ordered such that neighboring stocks are as similar as possible. In Wattenberg's model, similarity is derived from the percent price changes for each month of the past three years, which is represented by a point in 36-dimensional space. Within each sector, the layout chosen is the one that minimizes the sum of the distances between all pairs of adjacent rectangles. More details are provided in U.S. Pat. No. 6,583,794. Wattenberg implemented this approach in the Map of the Market, a web-based, tool that reports current data on 1000 publicly traded companies. Map of the Market is available at http://www.smartmoney.com/map-of-the-market.
  • While Wattenberg's Map of the Market addressed some of the inadequacy of earlier solutions, several drawbacks remain. First, the Map of the Market display is static and does not update automatically and dynamically. The user must update the display manually, which may take a substantial amount of time, thereby reducing the interactivity and utility of the application. Second, since Map of the Market is a web-based solution that is intended for display in a fixed window size of an Internet browser (e.g., Internet Explorer by Microsoft), the chosen way of sizing the rectangles representing individual stocks (i.e., by capitalization) means that certain stock tiles are less visible than others. In fact, the majority of the tiles are so small they are unable to include text or other discernible labeling or other information. This methodology occludes much of the activity data for a number of stocks contained in the set, and thereby makes it impossible for users to see or understand performance of those stocks which do not have sufficient market capitalization to be fully visible to users. Therefore the methodology's utility in displaying performance context is reduced to a data set of solely the largest cap stocks in sectors rather than a wider array. Third, the use of the fixed-size browser window for displaying Map of the Market restricts its usefulness and also makes it incompatible with newer user-interface technologies, e.g., touch screens, that allow the user to navigate more easily among large amounts of data or information. What is needed, then, is a method for visualizing a large collection of financial or other statistical information that overcomes these and other drawbacks of the prior art methods.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a view of a display in an embodiment of the present disclosure, showing price changes.
  • FIG. 2 is a view of a display in an embodiment of the present disclosure, showing trading volume.
  • FIG. 3 is a view of a display in an embodiment of the present disclosure, showing a zoomed-in view of price changes in a single sector.
  • FIG. 4 is a view of a display in an embodiment of the present disclosure, showing a one-day price chart for a single stock.
  • FIG. 5 is a view of a display in an embodiment of the present disclosure, showing an information page for a single stock.
  • FIG. 6 illustrates the process of zooming from market to sector to individual stock in an embodiment of the present disclosure.
  • FIG. 7 is another screen shot illustrating the ordering of stocks within a sector.
  • FIG. 8 is a view of a display in an embodiment of the present disclosure, showing an information page for a single stock.
  • FIG. 9 is a view of a display in an embodiment, showing selection of a reference index.
  • FIG. 10 is a view of a display in an embodiment, showing selection of a type of data to be displayed.
  • FIG. 11 is a view of a display in an embodiment, showing customized sectors.
  • FIG. 12 is a view of a display in an embodiment, showing a zoomed-in view of stocks in a customized sector.
  • FIG. 13 is a view of a display in an embodiment, showing a search interface.
  • FIG. 14 is a view of a display in an embodiment, showing the results of a search.
  • FIG. 15 is a high-level block diagram of a statistical data delivery system according to one or more embodiments of the present disclosure.
  • FIGS. 16A and 16B are block diagrams of the software and hardware components of a server according to one or more embodiments of the present disclosure.
  • FIG. 17 is a block diagram of a display device for use in an embodiment of a statistical data delivery system.
  • FIG. 18 is a flow chart showing the steps of an embodiment of a method encoding a stock ticker symbol.
  • FIG. 19 is a flow chart showing steps of an embodiment of a method of displaying statistical data.
  • FIG. 20 is a flow chart showing steps of an embodiment of a method for navigating a display of statistical data.
  • FIG. 21 is a flow chart showing the steps of an embodiment of a method of distributing statistical data.
  • FIG. 22 is an exemplary collection of texture mapping elements used by a display device to render a display of statistical data, according embodiments of the present disclosure.
  • DETAILED DESCRIPTION
  • One aspect of the systems and methods described herein is providing a dynamic updating visual display of financial market data to a user. The system may include visual display software application that executes on portable or stationary computer (e.g., Mac, PC, etc.), a mobile phone or smartphone (e.g., iPhone or Android-based device), a personal digital assistant, or a tablet device (e.g., iPad). Based on various types of data, the application provides a variety of different displays for a wide range of statistical data including a variety of statistical performance data in a manner that allows the user to quickly identify relationships and trends. Examples of these displays are shown in FIGS. 1 through 14 and are described in more detail below. Although these examples are provided in the context of an iPad, embodiments of the system and method may utilize other computing platforms as noted above. Also, while the examples shown relate to displaying market data relating to stocks, or financial data such as financial risk, data relating to any statistics for any data set (an array) may be visualized using the embodiments shown or modifications. A non-exhaustive list of exemplary market units include stocks, bonds, futures contracts, mutual funds, exchange traded funds, diamonds and other precious minerals, commodities, and commodity futures contracts. More generally, embodiments can be used to advantage to monitor variations in dynamic data for components of any large data set.
  • Moreover, embodiments provide users a multiple-tiered interface which intertwines the dynamic visualization together with its navigation, allowing users to expand the view from an overview screen into sub-hierarchies and further navigate to individual items or data elements, and then smoothly return to the full visualization. Embodiments make use of 30-frames-per-second animation sequences to create a fluid and smooth navigation experience. The visualization interface has flexible modes and preferences, providing users the ability to visually detect and observe patterns, correlation, contextuality, and outliers, and to explore sub-sections of the data quickly via their own unique navigation path, providing each user with a more subjective and relevant experience.
  • Embodiments also create an integrated user experience, which makes its use more natural and intuitive. The user experience synthesizes color, animation, ontology, and sound effects to create a metaphor of vertically navigating the interface from the top level through sub-hierarchies into individual data pages. For example if the visualization screen is set to compare current price movements, the rendering becomes a matrix where background color intensity matches the degree of an items price movement. The background colors remain consistent as the user navigates the heat map section of the display, so navigation appears to expand the element, exposing light details for contextuality within the element at the highest level and deeper details and charts at the lower levels. This allows a small display device such as an iPad or iPhone to display an interface that appears beautiful and easy to understand, yet provides access to larger, more complex, less intuitive sets of underlying data without breaking the user's thought. In some embodiments, a user can select a region by touch-gesture, a sound is played and an animated sequence automatically expands the region such that the portion of the visualization that represents sub-hierarchy fills the screen. In such embodiments, colors, borders and fonts of the starting and ending points of the navigation are maintained and blended, creating a game-like experience where the user's navigation feels fluid and natural, as it is metaphorically similar to diving in and out of the hierarchy of the data set.
  • FIG. 1 is a screenshot showing one example of how the application according to one or more embodiments displays market-wide information about trends in stock price, in the form of an activity map, based on the user selection of “Price” in the vertical menu bar on the right side of the screen. The “market” is displayed as a nine-sector grid, in which each sector contains 100 stocks. Persons of ordinary skill will recognize that these numbers are merely exemplary, and embodiments are not limited by the number of sectors displayed or the number of stocks (or other items) displayed in each sector or group.
  • Each of the 900 stocks shown in the grid of FIG. 1 is assigned a color based on the percentage difference and/or correlated percentage difference between its current price and the stock price at an earlier reference point. The reference point may be user-selectable, such as by the slider shown on the right side of the display in FIG. 1. In this example, the user may select one of several different reference points, ranging from yesterday (“1D”) to five years ago (“5Y”). In an embodiment, there are seven predetermined reference points, including 1D (yesterday), 1W (one week), 1M (one month), 3M (three months), 6M (six months), 1Y (one year), 5Y (five years). However, persons of ordinary skill will recognize that these temporal reference points are merely exemplary, and embodiments are not limited by the number or value of the reference points.
  • FIG. 1 shows an exemplary activity map 100. The map is displayed on the display screen 160 of tablet computer 105. An exemplary tablet computer is an iPad®. (iPad is a registered trademark of Apple, Inc.) Displayed on display screen 160 are a market display screen 110, option menu 180, and optional market index display 120. Market display screen 110 includes nine display regions 115 in a square pattern. Each display region corresponds to a specific sector and displays the name of the sector. For example, display region 115 shows icons for stocks in the Services sector. The display region for each sector shows 100 icons arranged in a 10×10 matrix. Although not illustrated in FIG. 1, in embodiments, each icon displayed in market display screen 110 also displays the stock symbol and a number (for example, a price or percentage). The option menu 180 includes back navigation icon 150, search icon 155, slider 135 for selecting one of seven time periods of interest, arrangement icon 140, which allows the user to customize the arrangement of icons in a specific sector, and a manual refresh icon 145. Also available, although not illustrated in FIG. 1, are icons for information and for favorites. At 125 the user can select price, market capitalization, and volume as the comparison data type of interest, and at 130 the user can select the display of United States or Global stocks.
  • As shown in FIG. 2, the application also may display the statistics for market trading volume for each of the 900 stocks shown in the grid. The user may select this display from among other possible displays by choosing “Volume” in the vertical menu bar on the right side of the screen. In the same manner as discussed above with reference to FIG. 1, the user may select the period of interest (i.e., “1D” to “5Y”) for the market statistic volume display. In “Volume” mode, the application sorts the stocks into volume buckets and assigns a color to each bucket prior to rendering the display. As shown in FIG. 2, each sector may use a different base color (e.g., green for “Technology,” red for “Materials”) with darker shades of the base color indicating lower volumes and lighter shades indicating higher volumes. The base colors and degree of shading may be user selectable.
  • As shown in FIG. 3, the application may display a zoomed view of a particular sector. The sector may be selected by the user, such as by touching a stock in the nine-sector, 900-stock display of FIG. 1 or 2. In the sector view, the user may choose to display price, market capitalization, or volume, such as by selecting from a menu on the side of the screen as shown in FIG. 1. The application may apply the same colorization methods as discussed above with reference to FIGS. 1 and 2. Once in “Sector” display mode, the user may select a different sector for display such as by touching a menu item on the bottom of the screen as shown in FIG. 3.
  • In an embodiment, the display region for each sector displays icons for 100 stocks in a square pattern, and the displayed stocks are 100 stocks in the sector with the highest capitalization. If the display is limited to US markets, only icons relating to US stocks are displayed, but if the display includes international stocks, the 100 largest firms worldwide in each sector are displayed. As shown in FIG. 7, the stocks of each sector may be ordered in an outward spiral pattern, with the company having the largest market capitalization within that sector at the center. Other arrangements also are possible, such as alphabetical, an inward spiral (i.e., largest stock in corner), top left to bottom right ordering based on market capitalization, amount or percent of price change (winners and losers), or sales volume, zig-zag patterns (e.g., horizontal, vertical, diagonal), or based on some relationship. The ordering may be user-configurable through a menu selection, particular sequence of screen touches, etc. The combination of variable colorization of items based on a performance-related metric such as price, volume, etc., with sequential ordering of the items based upon the performance-related metric and/or one or more other parameter of or relationship between the items, is referred to herein as activity map.
  • FIG. 4 shows an exemplary level 3 detailed view of a single stock. The stock may be selected by the user, such as by touching a particular stock in the single-sector display of FIG. 3. In the single stock view, the user may choose to display price, market capitalization, or volume, such as by selecting from a menu on the right side of the screen as shown in FIG. 4. The user also may select the period of interest as discussed above with reference to FIGS. 1 and 2. The application may apply the same colorization methods as discussed above with reference to FIGS. 1, 2, and 3. In the example of FIG. 4, the display the is colored red based on the one-day (“1D”) price change. FIG. 5 shows an alternate single-stock display. The choice between single-stock displays of FIGS. 5 and 6, and any other available single-stock displays, may be configurable or selectable by the user by a menu, screen touches, etc. In an embodiment, if the stock is identified as a favorite, or put on a watch list stock, it may be highlighted in the display by, for example, changing the color and brightness of the symbols on the icon.
  • In some embodiments, the single-stock display may include an interface to a stock trading site. The stock trading site can be a public site for stock trading, a site provided by a bank, mutual fund or other investment company at which the user has an account, a site provided by the company whose stock is currently displayed, or a proprietary stock trading application. The interface may include a link, icon, or button that can be touched to initiate the connection to the stock trading site. In an embodiment, the application can be preconfigured to automatically provide account, identification and, optionally, authentication data to the stock trading site, and to provide identifying data for the stock currently displayed, so that with one touch the user can access a stock trading site and begin trading the stock that is currently displayed.
  • Navigating the Map
  • In an embodiment in which the display device includes a touch screen display, a user can navigate through different hierarchies (levels) of an activity map. For example, in an exemplary embodiment related to stocks described above with reference to FIGS. 1 through 5, a user can navigate from level 1 (i.e. market display) to level 2 (i.e., sector display) to level 3 (i.e., individual stock display) by touching the map itself. This navigation can include single-finger touching, single finger swiping, and multiple-finger touching or swiping.
  • In other embodiments, the user can navigate in the same manner between displays comprising different aggregation levels of items. Embodiments may provide the capability of navigating in the same manner through data relating to performance of individuals or groups of individuals performing the same or a similar task or job, e.g., a securities broker. In such an embodiment, a user could navigate from a level-1 display comprising performance data for a plurality of brokerages each having a plurality of brokers, to a level-2 display comprising performance data for the brokers of a single brokerage, to a level-3 display comprising performance data for an individual broker. In this embodiment, performance data may comprise, for example, number of shares traded, gross or net trade revenue, gross or net commission income, etc., each over one or more time periods.
  • In another exemplary embodiment, a user may have the capability to navigate through data related to elements or parts of one or more systems used for a particular purpose, e.g., a utility transmission system. For example, in such an embodiment a user could navigate from a level-1 display comprising performance data for a plurality of transmission networks (or sub-networks) each having a plurality of transmission elements (e.g., transmission lines), to a level-2 display comprising performance data for the elements of a single transmission network (or sub-network), to a level-3 display comprising performance data for an individual element. In this embodiment, performance data may comprise, for example, reliability data, capacity data, peak or average resource utilization data, etc., each over one or more time periods.
  • An embodiment of multiple-finger touching is “pinch-to-zoom.” In a “pinch-to-zoom” movement, the application identifies two fingers that are touching the display and it compares the relative positions of the two fingers at two time instants, t−1 and t−2. Using conventional techniques known to those of skill in the art, the distance between the two fingers, and the center point between the two fingers, are determined at time instants t−1 and t−2. If the distance metric has increased between t−1 and t−2 by more than a set amount, preferably 30%, the gesture is interpreted as a “pinch out,” and if the distance metric has decreased between t−1 and t−2 by less than a set amount, preferably 30%, the gesture is interpreted as a “pinch in.” In an embodiment, “pinch out” means “zoom in” and “pinch in” means “zoom out.”
  • The effect of the “pinch-to-zoom” gesture depends, in an embodiment, on the current display. A “zoom in” gesture will enhance the display of the display region located at the center point of the two fingers. A “pinch out” gesture on a level 1 (entire market) display will cause a level 2 (sector) display of the sector at the center point of the two fingers. In alternative embodiments, the display region containing the selected sector may be highlighted by increased size, color or brightness shading. A “pinch out” gesture on a level 2 (sector) display may cause a level 3 view of the individual stock whose icon is located at the center point of the two fingers. A “pinch in” (“zoom out”) gesture on a level 3 (stock) display will cause a level 2 (entire sector) display, and a “pinch in” gesture on a level 2 (sector) display will cause a level 1 (entire market) display.
  • Moreover, other visual and audible effects may be associated with user gestures, such as those described above, to create a unique user experience for navigating statistical data. For example, navigation between hierarchy levels (e.g., between levels 2 and 3) can be associated with blurs, zooms, animated transitions at 30 frames-per-second, and other visual effects, in addition to audio effects such as tones or chimes, and tactile effects such as vibration patterns. Such effects create a. game like feel to the process of navigating statistical data.
  • FIG. 6 illustrates an example sequence of screens that a user would see as the user navigated from a market display (level 1), to a sector display (level 2), to a single-stock display (level 3) in the exemplary stock market visualization embodiment. For example, a user may identify a particular sector on the market display whose performance is interesting for some reason. After a user zooms into that sector, the user may identify a particular stock of interest within the sector. The user may zoom into that stock, seeing the display at the front of FIG. 6. After the user is finished viewing the single-stock display, the user may zoom out to the sector display and, optionally, to the market display. The application also may allow the user to zoom directly between the market display and the single-stock display.
  • FIG. 6 illustrates a method 600 of navigating through the map for the exemplary embodiment related to stocks. A market display (level 1) 610 is shown. Using finger 615, a user touches a point in display region 617 corresponding to a sector of stocks, thereby causing a sector display (level 2) 620 of the selected sector. Using finger 625, the user touches an icon 627 corresponding to a specific stock, which results in display 620 of information relating to the selected stock.
  • In addition to navigation using fingers to point, pinch or swipe, a user can navigate the activity map by searching. In an embodiment, the application provides a search interface which allows the user to type in the name of a stock symbol or other search query. In another embodiment, when the search query returns multiple search results, these results are displayed visually. The results may be displayed as their own heat map or activity map. In other words, if a search query returns a subset of the items or a subset from the data set, that subset can be mapped. For example, a search query for stocks with dividends greater than 3% would return multiple hits and the results themselves could be mapped. FIG. 13 illustrates an exemplary search interface with several search results, some of the results also displaying icons representing a navigation of the user to visual top hierarchy (level 1) for identification of the query within the activity map. Alternatively, touching the text for the same search result navigates the user to the bottom hierarchy (level 3) of the activity map, individual section of the map for that result. The user can choose where and what form in the hierarchy they wish to view their search results. When there is a match, the icon corresponding to the matched stock can be highlighted. In FIG. 14, for example, the user has selected the level 1 map-based search result, which is displayed as a highlighted tile using a back-lighting effect.
  • Statistical Data Delivery System
  • One particular advantage of the embodiments of the present disclosure is to make the application's user interface perform as quickly, smoothly, and seamlessly as possible. Two key factors determining user interface performance are latency between data request and receipt and rendering delay. Thus, it is advantageous to provide data in the format that allows the fastest possible transmission and rendering. Accordingly, another aspect of the present disclosure involves systems and methods of processing and compression of data used in the visual display of statistical information. The system includes a server and a client. The server may be software executing on any type of general- or special-purpose computer capable of performing the data processing and compression, or may be a “virtual” or “cloud-based” server executing on one or more large, general-purpose computers along with other virtual servers and applications, both related and/or unrelated. The client may be a software routine that is part of a data visualization embodiment or an application, executing on the device that displays the information in the manner described above.
  • An embodiment of an exemplary statistical data delivery system 1500 is shown in FIG. 15. In the exemplary embodiments described below, statistical data delivery system 1500 comprises a system for delivering financial data, e.g., current and historical data related to the performance and/or risk of securities such as stocks. In other embodiments, statistical data delivery system 1500 may comprise a system for delivering statistical data related to the performance of a plurality of individuals or groups engaged in performing a particular task or job (e.g., securities traders). In other embodiments, statistical data delivery system 1500 may comprise a system for delivering statistical data related to the performance of one or more parts of one or more systems (e.g., utility transmission or distribution systems, manufacturing systems, computing systems, etc.). However, these examples are non-limiting and statistical data delivery system may be used to deliver statistical data related to a wide range of applications. Persons of ordinary skill will recognize that in such embodiments, elements of statistical data delivery system may be adapted to the particular application within the spirit and scope of the present disclosure.
  • Exemplary statistical data delivery system 1500 comprises financial data sources 1520, 1524, and 1528, a financial data server 1530, a data store 1538, a distribution server 1580, one or more display devices 1550, 1552, 1554, 1556, 1557, 1558, and 1559, and communication network links 1510, 1515. Exemplary statistical data delivery system 1500 includes a financial data server 1530. Financial data server 1530 comprises an importer component 1532 and a publisher component 1536. FIG. 15 shows importer component 1532 and publisher component 1536 provided by the same server entity, although in another embodiment, the functions of importer component 1532 and publisher component 1536 may be provided by different server entities.
  • The importer component 1532 of financial data server 1530 is coupled to one or more financial data sources via a communications link 1510. Exemplary sources of financial data include Xignite, 1520 (accessible at www.xignite.com), barchart.com, 1524 (accessible at www.barchart.com), and Reuters, 1528 (accessible at www.reuters.com). In an embodiment, importer 1532 obtains financial data pertaining to all stocks of interest in any commonly used format. One format for exchange of financial data is Extensible Markup Language (XML). Importer 1532 uses a conventional HTTP-based protocol, for example SOAP (Simple Object Access Protocol) to obtain financial data in XML format from financial data sources 1520, 1524. In an embodiment importer 1532 obtains updated financial data from each financial data source periodically at five minute intervals.
  • The data obtained from the financial data sources is stored on data store 1538 coupled to importer 1532, preferably in an optimized format. This includes, in an embodiment, historical data and the most recently updated data. In an embodiment, data store 1538 may be stored on a database server, which may be hosted on the same server entity as importer 1532 or a different server entity. In an embodiment, data store 1538 is an Apache Cassandra database. In an alternative embodiment, data store 1538 may comprise a data structure in persistent memory 1534 on the same server as importer 1532.
  • XML is a text-based format that optimized for simplicity, human readability, and interoperability over the Internet, albeit at the expense of size or efficiency. In particular, the text-based representation of the content and the additional markup describing the content structure result in large file sizes. Given the limited bandwidth available in some communications networks, such as, for example, a wireless network, such large files take a long a time to download to wireless devices, such as an iPad, iPhone, or portable device, resulting in a less interactive user experience with the application using the XML data.
  • To address this drawback, the financial data server 1530 processes the standard-form financial data and encodes it into a more compressed format. In an embodiment, publisher component 1536 of financial data server 1530 comprises an analyzer component 1536 that analyzes and processes the financial data, an encoder component 1537 that encodes more complex data into numerical formats and provides additional analytical information, and a compressor component that encodes the data in, preferably, a binary data format. In this way, the server pre-processes and packages the data for efficient storage and distribution.
  • Financial data server 1530 saves the pre-processed and packaged financial data on distribution server 1580 for distribution to client display devices. In an embodiment, distribution server 1580 distributes pre-processed and packaged financial data to client display devices using the Hypertext Transfer Protocol (HTTP). In an embodiment, financial data server 1530 and distribution server 1580 are hosted on the same server entity, and in another embodiment, financial data server 1530 is hosted on a different server entity from distribution server 1580. The functions of a single server entity as described herein may be performed by one or more server computers using techniques well-known to those of skill in the art. In an embodiment, distribution server 1580 is hosted on a cloud service 1570. Exemplary cloud service 1570 is the Simple Storage Service (S3) provided by Amazon.com.
  • In an embodiment, distribution server 1580 distributes pre-processed and packaged financial data to one or more display devices using HTTP. Exemplary display devices include smart phones 1550 (for example, an Apple iPhone or a Google Android cell phone), a tablet computer 1552 (for example, an Apple iPad), laptop computer 1554, desktop computer 1556, mobile phone 1558, and personal digital assistant 1559. In some embodiments, display devices may include a specialized device 1557 with hardware and software specifically configured for use by personnel within a specific industry, such as stock traders in the financial industry, service personnel in the utilities industry, or process engineers in the manufacturing industry. In an embodiment, the display device pulls data from distribution server 1580 via an HTTP request.
  • In an embodiment, one or more of these devices, such as smart phone 1550, table computer 1552, mobile phone 1558, personal digital assistant 1559, and/or specialized device 1557, have limited display capabilities. For example, a smart phone 1550 may have a relatively small display screen size and limited screen resolution (e.g., pixel count). For example, commonly available smart phones have 3.5- to 4.5-inch (diagonal) displays with typical resolutions of 960 pixels by 640 pixels. The limited display capabilities mean that it is difficult to simultaneously display dynamic data regarding a large number of similar data items. In an embodiment, some of these devices, including smart phone 1550, tablet computer 1552, mobile phone 1558, specialized device 1557, and personal digital assistant 1559, may have a touch screen interface for input.
  • The components of statistical data delivery system 1500 are interconnected via exemplary communication link types 1510 and 1515. Exemplary link type 1510 includes any form of communications network connection known to those of skill in the art, including, by way of example, ethernet and other local area network (LAN) communications networks, the internet, World Wide Web, and other wide area network (WAN) communications networks, and all forms of wireless or telecommunications links Communications link types 1515 are likely to include a link over a wireless network, a telecommunications network, or some other form of network that is bandwidth or speed-constrained in some way. In an embodiment, it is likely that one or more display devices 1550, 1552, 1554, 1556, 1557, 1558, 1559 may be coupled to distribution server via a communications network that include a link type 1515, as shown in FIG. 15.
  • Compressed Data Files
  • In one embodiment, publisher component 1535 of financial data server 1530 generates multiple compressed data files, with data and information distributed among the files based on its time sensitivity and particularity. The file types include static files comprising data which doesn't change often, such as company descriptions and other configuration data. File types also include files containing more dynamic data such as, in some embodiments, “today” files comprising data needed for today's calculations (e.g., yesterday's closing information); “now” files comprising very time-sensitive information (e.g., current stock prices); and individual stock files. The financial data server 1530 periodically updates the files according to their time sensitivity. For instance, the “today” files can be updated less frequently than the “now” files. On the other hand, the individual stock files contain information particular to that stock such as company name, description, recent headlines, current stock price, and multiple time series charts covering a range of periods of interest corresponding to the options available to the user.
  • Now follows a description of the different data files and data elements used in an embodiment of a statistical data delivery system. As used in the following description, data type “utf8.8” is a utf8 encoded string prefixed with a uint8 (unsigned 8 bit integer) length; data type “utf8.16” is a utf8-encoded string prefixed with a uint16 length; data type “dollar” is a uint32 value that is multiplied by 1000 in order to provide 0.1-cent accuracy; and data type “symbol” is a stock symbol that has been encoded into an unsigned 32 bit integer (uint32) as described in more detail below. All data types in the embodiments described below are in big endian format, as commonly understood by persons of ordinary skill in the art.
  • Header. Each file uses the same format header:
  • ID char4
    Size uint32.
    CRC32 uint32
  • In the header file, ID is the file name, where the last digit is used to determine the file format, Size is the number of bytes in the payload, and CRC32 is a checksum for the payload.
  • Configuration File.
  • The Configuration file provides configuration and version information for the client display device. This will be downloaded by the client display device every time it is started and is used to determine any other files that may need to be downloaded.
  • The payload of the Configuration file contains the following data elements:
  • Data Storage utf8.8
    Fundamentals Version uint32
    Today Version uint32
    Recipe Count uint8
    <ArrayOfRecipes>
    Recipe ID uint8
    Recipe Version uint32
    </ArrayOfRecipes>
  • In the Configuration file, Data Storage is the URL of the directory on the distribution server that contains the current set of files. Fundamentals Version is the version number of the newest available Fundamentals file. Today Version is the version number of the newest available Today file. Recipe Count is the number of available recipes, and this determines the number of recipe records that follow. Following Recipe Count is an array of Recipes, where each array element includes Recipe ID, the ID number of the recipe, and Recipe Version, the version number of newest available Recipe file. The version number in an embodiment is a sequential number based on time stamp units.
  • Fundamentals File.
  • The Fundamentals file provides fundamental information for every stock that is being tracked by the system and will be downloaded by the client display device whenever the Configuration shows that a newer version of this file is available. In an embodiment the payload is compressed using “zip” compression. The payload of the Fundamentals file contains the following data elements:
  • Fundamentals Version uint32
    Stock Count uint16
    <ArrayOfStocks>
    Symbol symbol
    Name utf8.8
    </ArrayOfStocks>
  • In the Fundamentals file, Fundamentals Version is the Version number of the Fundamentals file, Stock Count determines the number of fundamental records that follow. Following Stock Count is an array of Stocks, where each array element includes Symbol, the encoded stock symbol, and Name, the name of the stock.
  • Recipe File.
  • The Recipe file determines which stocks are contained within each sector. In an embodiment, a recipe contains 9 sectors with a variable number of stocks in each, and the order of stocks in the recipe file is irrelevant. The order of the sectors is from bottom-left to upper-right moving horizontally. The Recipe file will be downloaded by the client display device whenever the Configuration shows that a newer version of this file is available. The filename should be recipe_<ID> where <ID> is the ID number of the recipe as denoted in the Configuration file. The payload of the Recipe file contains the following data elements:
  • Recipe ID uint8
    Recipe Version uint32
    Recipe Name utf8.8
    Recipe Icon URL utf8.8
    Index Count uint8
  • <ArrayOfIndices>
    Index ID symbol
    </ArrayOfIndices>
    <ArrayOfSectors>
    Sector Name utf8.8
    Sector Small Name utf8.8
    Stock Count uint16
    Symbols symbol[Stock Count]
    </ArrayOfSectors>
  • In the Recipe file, Recipe ID is the ID number of this recipe, Recipe Version is the version number of this Recipe file, Recipe Name is the name of this recipe (for example, US, Global, etc), Recipe Icon URL is the location, preferably on the distribution server, of a PNG file, a bitmapped image file, that contains the icons to use for this recipe, and Index Count is the number of indices to show when this Recipe is active. Following Index Count is an array of indices, in which Index ID is the Index to show when this Recipe is active. Following the array of indices is an array of sectors, in which each array element contains Sector Name, the name of the sector, Sector Small Name, the small name of the sector, stock Count, the number of stocks contained in this sector, and Symbols, an array of the symbols of the stocks in this sector.
  • Today File.
  • The Today file includes all of the historical reference points needed for comparisons within the application for today, i.e., the instant day. The Today file will be downloaded by the client display device whenever the Configuration file shows that a newer version of this file is available, usually once per day. The payload of the Today file contains the following data elements:
  • Today Version uint32
    Index Count uint8
    <ArrayOfIndices>
    Index ID symbol
    Index Name utf8.8
    Short Name utf8.8
    Last Values dollar
    </ArrayOfIndices>
    <ArrayOfTimeSeriesLabels for each 1W, 1M, 3M, 6M, 1Y, 5Y>
    Time Series X Label Count uint8
    <ArrayOfLabels>
    Tick Number uint16
    Label utf8.8
    </ArrayOfLabels>
    </ArrayOfTimeSeriesLabels>
    Stock Count uint16
    Stock Element Size uint16
    <ArrayOfStocks>
    Symbol symbol
    Prices dollar
    Average Volumes uint32
    3M Average Volume uint32
    Shares Outstanding uint32
    Open Price dollar
    52 Week Low dollar
    52 Week High dollar
    P/E uint32
    Dividend Yield uint32.
    </ArrayOfStocks>
  • In the Today file, Version is the version number of this Today file, Index Count is the number of indices stored in the file. Following Index Count are an array of indices, an array of time series labels, an array of labels, and an array of stocks. In the array of indices, Index ID is the ID of this index, Index Name is the long display name of this index, Short Name is the short display name of this index, and Last Values is the Previous close of the index.
  • Following the array of indices is an array of arrays of time series label data containing label data relating to each of the pre-determined time series for which historical data is displayed. In an embodiment, the data for each predetermined time series element is always stored in the same order, namely, in an embodiment, 1D (where 1 day data is stored), 1W, 1M, 3M, 6M, 1Y, and 5Y. Each time series has a different set of labels to be displayed, and the number and content of labels may change depending on the current date. For example, if the selected time series is 1M and the current date is May 21, 2012, an embodiment will display 20 date labels for each of the 20 trading days from April 23 to May 21. The array element for the array of time series labels is Time Series X Label Count, which is the number of labels to follow. Following this is an array of Time Series Labels for the time series, where Tick Number is the tick where the label should be placed when the time series data is displayed, and Label is the textual or numerical label for that tick. Because the time series data elements are stored in the same order, in an embodiment, the first array of arrays describes the labels for the 1W time series, the second array of arrays describes the labels for the 1M time series, and so on, so that the last array of arrays contains the labels for the 5Y series.
  • Following the array of arrays of time series labels are Stock Count, which is the number of stocks contained in the payload, and Stock Element Size, which is the number of bytes contained within each element in the stocks array. The Stock Element Size data element can be used to expand the number of fields in the stocks element without having to replace earlier code.
  • Next is an array of Stocks, comprising several elements for each Stock. Symbol is the ticker symbol for this stock, encoded as described below. Prices is a data element used for price comparisons and comprises the closing price for each of the time series, in the predetermined time series order. Thus, Prices contains the closing prices for the 1D period (i.e., last trading day), the 1W period, (last five trading days); 1M (last 20 trading days); 3M (last 65 trading days); 6M (last 130 trading days); 1Y (last 260 trading days); and 5Y (last 1300 trading days).
  • Next in the Stocks array is Average Volumes, which contains calculated average volumes over each time series. Thus Average Volumes contains average volume for 1D (0); 1W, average volume over days 1-5; 1M, average volume over days 1-20; 3M, average volume over days 65-130; 6M, average volume over days 130-195; 1Y, average volume over days 260-325 days; and 5Y, average volume over days 1235-1300.
  • Next in the Stocks array is 3M Average Volume, which is a calculated average volume for days 1-65. Shares Outstanding is the number of shares outstanding for the stock and is used to determine market capitalization by multiplying by current stock price. Open Price is the opening price at the beginning of the time series. 52 Week Low is the low price over the preceding 52 weeks; and 52 Week High is the high price over the preceding 52 weeks. P/E is the current price to earnings ratio multiplied by 1000. A zero value means that P/E data is not available, and “−1” (0xffffffff) means negative earnings. Dividend Yield is the dividend yield multiplied by 1000.
  • Now File.
  • The Now file contains the current information for all stocks. The payload of the Now file contains the following data elements:
  • Index Count uint8
    <ArrayOfIndices>
    Index ID symbol
    Index Value dollar
    </ArrayOfIndices>
    Stock Count uint16
    Stock Element Size uint16
    <ArrayOfStocks>
    Symbol symbol
    Price dollar
    Expected Volume uint32
    Actual Volume uint32
    Timestamp uint32
    Today's Low dollar
    Today's High dollar
    </ArrayOfStocks>
  • In the Now file, Index Count is the number of indices stored in file, and is followed by an array of indices. Each array element includes Index ID, the ID of the index, and Index Value, the current value of the index. Following the array of indices are Stock Count, which is the number of stocks contained in the payload, and Stock Element Size, which is the number of bytes contained within each element in the stocks array. The Stock Element Size data element can be used to expand the number of fields in the stocks element without having to replace earlier code.
  • Next is an array of stocks data. For each array element, Symbol is the encoded symbol for the stock, Price is the current price, Expected Volume is the predicted average volume for the current trading day up to the current tick, Actual Volume is the current volume for the day, Timestamp is the date and time of the quote in Unix time, Today's Low is the low price for the day, and Today's High is the high price for the day.
  • Time Series Files.
  • Financial data applications may provide a graphic display of fluctuations of price and volume over a time period in a time series graph. Exemplary time series graphs are shown in FIGS. 4 and 8. In a conventional client/server financial data application, the time series graph is prepared by the server and transmitted to the client as a graphical image. Unlike conventional financial data applications, embodiments of the present disclosure transmit the underlying data in a binary format to the display device client. The display device client then can use this data to render one or more time-series graphs. The size of the binary data file transmitted is significantly smaller than the size of the corresponding graphics file, and thus can be transmitted much more efficiently. Other statistical data applications may display similar time series related to other statistics, such as utilization or capacity of a particular element of a system (e.g., a utility transmission system) over various time periods.
  • In an embodiment, a time series graph is specified to be 780 pixels wide, a width that easily fits within the display specifications of many limited display devices. There are two different sampling rates used, which makes for graphs composed of either 390 or 260 ticks. Table 1 below shows the relationship between Time Frame, Actual Time, Ticks, and Time/Tick:
  • TABLE 1
    Time- His-
    frame Actual Time Ticks Now tory Time/Tick
    1 D 6.5 hours 390 ≦390 N/A 1 minute
    1 W 5 days 390 78 312 5 minutes (78/day)
    1 M 20 days 260 13 247 30 minutes (13/day)
    3 M 13 weeks (65 days) 390 6 384 1 hr 5 mins (6/day)
    6 M 26 weeks (130 days) 260 2 258 3 hrs 15 mins
    (2/day)
    1 Y 52 weeks (260 days) 260 1 259 1 day
    5 Y 260 weeks 260 0 260 1 week
  • As shown in FIGS. 4 and 8, volume data is displayed on the bottom of the time series graph. There is one vertical line per tick with either one pixel (for 390 ticks) or two pixels (for 260 ticks) between it and the next tick. At the top of the time series graph is the price. Although price data is provided in ticks, in an embodiment, price data is not necessarily plotted as such. The volume and price for each tick are represented by an unsigned 8 bit integer, which can represent any number between 0-255. As such, price and volume data values may be scaled. Volume is scaled between 0 (represented as 0) and the highest tick volume (represented as 255); and price is scaled between the lowest tick price (represented as 0) and the highest tick price (represented as 255. The low and high data values also are stored. Advantageously, because vertical resolution (price and volume data) are scaled, and horizontal resolution (the tick count) is scaled to fit onto a 780-pixel-wide display screen, the data in the time series file allows the display device client to render a time series graph on most limited display devices. Moreover, a statistical data server (e.g., financial data server 1530) does not need to calculate or provide data files to accommodate different-sized display screens on different client display devices. There are two files that store time series information, the Time Series History file and the Time Series Now file. The “History” and “Now” columns in Table 1 show the number of points from each file used to construct a time series for each particular Timeframe.
  • Time Series History File.
  • The Time Series History file contains the historical data necessary to display a time series for a single stock for every time series except for the current day. This will be downloaded by the client display device whenever the user navigates to display data regarding a single stock and the currently cached history is out of date. The filename, in an embodiment, is timehist_<SYMBOL>, where <SYMBOL> is the ASCII stock symbol. The payload of the Times Series History file contains the following data elements:
  • Symbol symbol
    <ArrayOfGraphs for each 1W, 1M, 3M, 6M, 1Y, 5Y>
    Open Price dollar
    Low Price dollar
    Low Tick uint16
    High Price dollar
    High Tick uint16
    Volume uint32
    Prices uint8[x]
    Volumes uint8[x]
    </ArrayOfGraphs>
  • In the Time Series History file for each stock, Symbol is the symbol for the stock. Following Symbol is array of graph data elements for each of the historical time series (1W, 1M, 3M, 6M, 1Y, 5Y). For historical time series, data elements are Open Price, the opening price for this period, Low Price, the low price (used for scaling), Low Tick, the tick when the low price occurred, High Price, the high price (used for scaling), High Tick, the tick when the high price occurred, and Volume, the high volume (used for scaling). Prices and Volumes are arrays of scaled price and volume value, each with the number of elements given by the “History” column in Table 1.
  • Time Series Now File.
  • The Time Series Now file contains the current (today) data necessary to display a time series for a single stock. This will be downloaded by the client whenever the user navigates to display data regarding a single stock. The filename in an embodiment is be time_<SYMBOL>, where <SYMBOL> is the ASCII stock symbol. The payload of the Times Series Current file contains the following data elements:
  • Symbol symbol
    Minutes Elapsed uint16
    Prices dollar[Minutes Elapsed]
    Volumes uint32[Minutes Elapsed]
    Open Price dollar
    Low Price dollar
    Low Tick uint16
    High Price dollar
    High Tick uint16
  • In the Time Series Now file for each stock, Symbol is the encoded symbol for this stock, Minutes Elapsed is the number of minutes elapsed today (where minutes run from 1-390), Prices is an array of price data by minute ticks for each elapsed minute, Volumes is an array of volume data by minute ticks for each elapsed minute, Open Price is the opening price for today, Low Price is the low price, Low Tick is the tick showing when the low price occurred, High Price is the high price, and High Tick is the tick showing when the high price occurred.
  • News File.
  • The News file contains the description and news headlines for a single stock. The payload is organized into chunks to allow for the addition of new chunks in the future. If there are no values to put into a chunk, then the chunk can be skipped entirely. This will be downloaded by the client whenever the user navigates to display data regarding a single stock. The filename in an embodiment is be news_<SYMBOL> where <SYMBOL> is the ASCII stock symbol. The HTTP header If-Modified-Since can be used to keep the client display device from unnecessarily re-downloading the file. The payload of the News file contains the following data elements:
  • Symbol symbol
    Stock Description
    Chunk ID char
    Size uint32
    Description utf8.16
    Headlines
    Chunk ID char4
    Size uint32
    Count uint16
    <ArrayOfHeadlines>
    Timestamp uint32
    Headline utf8.8
    Attribution utf8.8
    URL utf8.8
    </ArrayOfHeadlines>
    StockTwits
    Chunk ID char4
    Size uint32
    Count uint16
    <ArrayOfTweets>
    Timestamp uint32
    Headline utf8.8
    Username utf8.8
    URL utf8.8
    </ArrayOfTweets>
  • In the News file for each stock, Symbol is the encoded symbol for the stock. Next is are Stock Description data values, including Chunk ID, which indicates the chunk type, Size, the number of bytes in this chunk (not including Chunk ID and Size), and Description, which is the description of this stock. Next are data values for headlines, including Chunk ID, the chunk type, Size, the number of bytes in this chunk (not including Chunk ID and Size), and Count, the number of headlines contained in chunk. Next is an array of headlines, where each array element includes Timestamp, the date and time for this headline in Unix time, Headline, the actual headline, Attribution, the source of the headline, and URL, the URL of the story on the web. Next is data regarding stock twits, including Chunk ID, the chunk type, Size, the number of bytes in this chunk (not including Chunk ID and Size), and Count, the Number of tweets contained in the chunk. Following this is an array of tweets, where each array element includes Timestamp, the date and time for this tweet in unix time, Headline, the actual tweet, Username, the Username of the Tweeter, and URL, the URL of the tweet.
  • As will be seen by a review of the data types of each data element in the data files, the data files created by a statistical data server (e.g., financial data server 1530) contain data in binary format and therefore convey the same information as XML files and graphics files, but in a significantly reduced size.
  • Reversibly-Encoded Stock Symbols
  • In an embodiment, the ticker symbol for each stock is encoded to enhance efficiency and performance. FIG. 18 is a flow chart showing the steps of an embodiment of a method 1800 of encoding a symbol comprising a plurality of ASCII text characters (e.g., a stock ticker symbol) into a binary number. The method assumes that the stock ticker symbol includes only alphabetic characters “A”-“Z,” “.” and “-”.
  • The iterations of the method build an encoded symbol value fnid, which is a four-byte, big-endian, binary number. There are 32 total bits in fnid, and these 32 bits provide 6 different blocks of 5 bits each. In an embodiment, the ticker symbol is encoded by deriving a 5-bit value for each character in the ticker symbol and storing the derived value in a different block in fnid. In step 1810, fnid is initialized to 00 00 00 00 (hex), and the current insertion point is initialized to the five least significant bits in fnid. In step 1820, every alphabetic character in the ticker symbol is capitalized. In step 1830, the next character in the ticker symbol is selected. If this is the first time through the method, the first character is selected. For example, if the ticker symbol is “IBM”, the first character is “I”.
  • In step 1840, the selected character is encoded as a binary number with five bits. A “[” character is substituted for a “-” and a “]” character is substituted for a “.”. The number 64 (decimal) is then subtracted from the UTF8 numeric value of the character. Because the UTF8 numeric values for the characters “A”-“Z”, “[,” and “1” range from 65 (decimal) for “A” to 93 (decimal) for “],” subtracting 64 from the UTF8 decimal value yields a decimal number between 1 and 29 for each character in a proper stock ticker symbol. Since five binary bits can represent any decimal number from 0 to 31, this yields a unique five-bit encoding for the selected character. Returning to the ticker symbol “IBM”: the decimal UTF8 value for “I” is 73, subtracting 64 yields 9, which is encoded as 01001; the decimal UTF8 value for “B” is 66, subtracting 64 yields 2, which is encoded as 00010; and the decimal UTF8 value for “M” is 77 subtracting 64 yields 13 which is encoded as 01101.
  • In step 1850, the encoded value for the character is stored in the current insertion point in fnid. In the first pass, the current insertion block is the five least significant bits of fnid. Thus, for the character “I” in IBM, the value of fnid after the first pass 1850 is:
      • encoded “I”: 0000 0000 0000 0000 0000 0000 0000 1001
  • In step 1860, the method quits if there are no more characters. If there is another character, in step 1870 the current insertion point is moved to the next most significant 5 bits in fnid and steps 1830-1870 are repeated until there are no more characters in the ticker symbol.
  • Continuing with the ticker symbol IBM, the next character is “B.” After step 1840, the character “B” is encoded as 00010 (binary), and these five bits are stored in the current insertion point. After the insertion of the five bit value corresponding to “B” in step 1850, fnid looks like this:
      • encoded “IB”: 0000 0000 0000 0000 0000 0000 0100 1001
  • Continuing with the ticker symbol IBM, the next character is M. After step 1840, the character “M” is encoded as 01101 (binary), and these five bits are stored in the current insertion point, and the current insertion point is moved to the next five most significant bits. After the insertion of the encoded value of “M” in step 1850, fnid looks like this:
      • Encoded “IBM”: 0000 0000 0000 0000 0011 0100 0100 1001
  • After the addition of the value corresponding to the “M” in IBM, the ticker symbol IBM has been encoded into the unique binary number 0000 0000 0000 0000 0011 0100 0100 1001, or 00 00 34 49 (hex). This encoding is reversible, meaning that the original ticker symbol can be recovered from the encoded value by reversing the steps of method 1800.
  • In an alternative embodiment, the reversible encoding method described above can be modified to encode stock ticker symbols (or other market unit symbols) that use numeric characters or a combination of alphabetic and numeric characters, such as are used in some Asian markets. In method 1800 as described above, the most significant 2 bits are not used and remained unchanged through the encoding process. These two bits can be set to identify whether the stock ticker symbols in the application user only alphabetic characters (00 binary), only numeric characters (01 binary), or an alphanumeric characters (10 binary).
  • Method 1800 can be modified as follows to encode stock ticker symbols that use only numeric characters 0-9 to identify stocks. In such a system, only 4 bits are needed to encode each number character. Step 1810 is modified to initialize fnid to 40 00 00 00 (hex), which reflects that the two most significant bits are 01 binary. Also, the first insertion block in fnid is initialized to the least significant 4 bits. Step 1820 is unnecessary. Step 1840 is modified so that each numeric character is encoded in 4 bits. The UTF8 values for “0”-“9” are 48-57 (decimal), and each numeric character can be normalized to a number between 0-10 (decimal) by subtracting 48; and any number between 0-10 (decimal) can be encoded in four binary bits. Step 1850 is modified so that the 4 bits of the encoded character are stored at the first insertion point, and step 1870 is modified to move the current insertion point to the next most significant four bits of fnid. In this manner any stock symbol composed of six numeric characters can be encoded.
  • Method 1800 can be modified as follows to encode stock ticker symbols that use a combination of alphabetic and numeric characters in stock ticker symbols. In such a system, 6 bits suffice to encode each character. Step 1810 is modified to initialize fnid to 80 00 00 00 (hex), which reflects that the two most significant bits are 10 binary. Also, the first insertion block in fnid is initialized to the least significant 6 bits. Step 1840 is modified so that each alphanumeric character is encoded in 6 bits. The UTF8 values for “0”-“9,” “A”-“Z” and “1” range from 48-93 (decimal), and each character can be normalized to a number between 0-45 (decimal) by subtracting 48; and any number between 0-45 (decimal) can be encoded in 6 binary bits. Other alphanumeric characters (such as “-” and “.”) are handled by substitution as in method 1800. Step 1850 is modified so that the 6 bits of the encoded character are stored at the first insertion point, and step 1870 is modified to move the current insertion point to the next most significant 6 bits of fnid. In this manner any stock symbol composed of up to 5 alphanumeric characters can be encoded.
  • Use of the reversible encoded number has several advantages over use of the alphabetic ticker symbol. The binary number can be used an index into a database, such as database 1538 described above with reference to FIG. 15. The binary number uses fewer bytes than most stock ticker symbols, making it more efficient to transmit files containing data relating to hundreds of stocks. Moreover, search and comparison operations are faster because processors require less time to compare to integers than to compare strings of alphanumeric characters.
  • Pulling Updated Statistical Data
  • When the user initiates an embodiment of the data visualization tool or application on their device, the client display device determines which files are required to visually display the information and requests those files from the server. For example, the first time the user initiates the application, the client display device determines that it needs all three types of files and requests those from the server. By further example, if the user initiates the application for the first time since the previous day, the client display device determines that it only requires “today” and “now” files and requests those from the server. During further operation, the client display device may request “now” files according to the required updating frequency of the application, which may be user-configurable. If the user selects a single stock display, such as shown in FIGS. 4 and 8, the client display device requests the corresponding individual stock files from the server. The server responds with the requested information, including the multiple time series charts described above.
  • In an embodiment, the client display device uses HTTP requests to pull files from the distribution server. The HTTP header If-Modified-Since can be used to keep the client display device from unnecessarily re-downloading files that have not been modified. The user can force the client display device to attempt to pull files from the distribution server by manually “refreshing” the display. In another embodiment, some client display devices allow a user to switch an application between active and dormant status, and the client display device will check for updates automatically whenever it has been dormant and is restored to active display status. For example, a user who is using the application on an iPhone may interrupt viewing statistical data to take a phone call and to check email. During the phone call and the email checking, the activity map application is not active on the display screen. When the user again selects the activity map application and returns it to active display, the client display device will automatically attempt to pill updated statistical data. In an alternative embodiment, a client display device can be configured to automatically check for updates at selected times or selected intervals.
  • Rendering
  • Once the application receives the necessary encoded data files from the server via the client, it translates files into the various user-interface displays as described above with references to FIGS. 1 through 14. In particular, the application generates from the files a set of dynamic comparison matrices, with each element corresponding to an icon in the display corresponding to an individual stock. In an embodiment, each icon is a rectangular tile of substantially the same shape and size. However, the scope of the invention does not depend on the specific size or shape of the icon. In an embodiment, some display parameters, such as size and shape, are the same for each icon, and other display parameters, such as the base color and shade of each tile, and the color and shade of the symbols on each tile, differ for each token based on a the current value of dynamic data.
  • The user can configure which type of dynamic data affects the variable display parameters. The application sets each tile's color and/or visual mode (or display parameters) based on user configurable parameters. For example, when the user selects “Price” mode, the application may select the tile color arrays based on the deviation between the most recent price information and the reference value, and the color of each tile may differ depending on the size of the deviation. If the user selected “1D” on the user interface sidebar, the application will set the color of each individual tile based on a comparison between the current price and the yesterday's closing price. The tile colors also may be user-configurable such as by a “Preferences” menu. For example, instead of the red/green colorization scheme for price changes, a user could choose a yellow/purple scheme. Furthermore, a user could select a colorization range and scale for the tiles rather than having these parameters fixed by the application itself. For example, if a user wanted to look more closely at big movers, the user could define that tiles for all stocks with price changes less than 50% are black while tiles for stocks changing +50% and −50% would be colored bright green and bright red, respectively. Many other user-selectable color variations are possible. For example, other display parameters can be used to illustrate different values of dynamic data elements, including, by way of example, color, tint, hue, brightness, shading, 2-D shape, 3-D shape, hatching, stippling, highlighting, backlighting, contrast, and each of these design parameters can be applied to the icon and/or to the symbols displayed on the icon. For example, the stocks with the most-extreme changes in price for a period may have the symbols displayed on each tile in bright white, whereas other icons may have symbols on each tile displayed in gray. Display parameters may also be varied when a stock has been identified as a favorite.
  • Once the application determines the colors for each tile, it charts the tiles using mathematical optimization techniques. These techniques improve the rendering speed of the visualization, making the application appear more responsive to the user. In addition, the application may take advantage of any high performance graphics rendering capabilities available in the device. Some devices, including devices using operating systems such as Apple's iOS and Google's Android, may include the OpenGL ES application programming interface (API) that enables 2D and 3D graphics on embedded systems. The OpenGL ES API allows the application developer to access low-level graphics acceleration hardware available in the device hardware, which results in a more attractive and responsive user interface.
  • For example, some embodiments may use Vertex Buffer Objects (VBOs) and texture mapping to achieve fast rendering of the level-1 screen that displays a large number of tiles representing the entire population of items for which statistical data can be visualized. Such embodiments also may use VBOs and/or texture mapping to achieve 30 frames-per-second animation in transitions between the displays for different levels. In one embodiment, VBOs and texture mapping may be used to render the population of 900 tiles shown in each of FIGS. 1-3. A VBO is an Open GL feature that provides methods for uploading data to the renderer for non-immediate-mode rendering. VBOs offer substantial performance gains over immediate mode rendering primarily because the data resides in the renderer memory rather than display device's system memory, and as such can be rendered directly by the renderer. Similarly, texture mapping is an Open GL technique used to surface detail or texture to a shape, such as the rectangular tiles shown in FIGS. 1-3. Texture mapping is akin to applying patterned paper to a plain white box. FIG. 22 shows an exemplary set of texture mapping elements used to render level-1, level-2, and level-3 displays.
  • Exemplary Methods of Operation
  • FIG. 19 is a flow chart that shows steps of an exemplary embodiment of a method 1900 of displaying statistical data, e.g., financial data. In step 1910, arrangement parameters are selected. For example, how icons are to be arranged with a sector (spiral, alphabetical, winners and losers, etc.) can be selected. In an embodiment, the user can customize the items viewed in each sector and/or can create custom sectors and watch lists. FIG. 11 illustrates an exemplary display of customized sectors, and FIG. 12 illustrates a level 2 display of a watchlist.
  • In step 1920, a comparison data type, such as price or volume, is selected. In step 1930, reference values are selected. The reference values, in an embodiment, can include the value of the comparison date type at a historical reference point, for example, yesterday, or one year ago, and comparisons to other reference values, such as, for example, a comparison of the price of a stock to an index such as the S&P 500, or a comparison of the stock price to average price change in the sector. FIG. 10 illustrates a right menu option that allows the user to select comparison data types and reference values.
  • In step 1940, an activity map comprising statistical data is displayed. In the manner described herein, each icon is displayed in a particular color, or color shade, to indicate the relationship between the corresponding item's reference data comparison data type (e.g., price, volume) and that of the reference value (e.g., time period, index, sector). In step 1950, updated statistical data for the items (e.g., performance and/or risk data for stocks) is obtained. As described above, the user may manually request a refresh, or the data may be automatically refreshed, for example, when the application is returned to active status. And in step 1960, the appearance of the icons in the activity map is changed. If, the comparison data value of an item has changed in relation to the reference value, the appearance of the icon corresponding to the item is changed, and the icon display is refreshed. Embodiments of method 1900 are not limited to the order in which the steps are shown; the steps can occur in any order.
  • FIG. 20 is a flow chart showing steps of an exemplary embodiment of a method 2000 for navigating a display of statistical data, e.g., financial data. In step 2010, an activity map comprising a plurality of icons arranged in a plurality of display regions is displayed. The activity map, in the exemplary embodiment, includes 9 display regions displayed in a square pattern, and each display region includes 100 tile icons representing 100 different items, such as stocks. Each icon has display parameters (for example, size and shape), that are the same for each icon, and a variable display parameter, for example, color. In step 2020, a display region or an icon is selected. Exemplary methods of selection, in an embodiment, include touching, swiping, and pinching on a touch-screen display, and searching. If a display region is selected, in step 2030 the display of the icons in the selected display region is enhanced. For example, selection of a sector in a level 1 display (by, for example, touching the display region corresponding the selection) cause a level 2 display of the sector in which the display region for the sector is enlarged to fill the entire screen formerly filled by the level 1 display. If an icon is selected, in step 2040 additional data concerning the stock corresponding to the icon is displayed in a level 3 display. A level 3 display may include a time series graph for the specified period for the selected item and news or identifying information related to the item. A level 3 display may be contained on a single display screen or multiple display screens, which can be navigated, in an embodiment, by touching. Embodiments of method 2000 are not limited to the order in which the steps are shown; the steps can occur in any order.
  • FIG. 21 is a flow chart showing the steps of an exemplary embodiment of a method 2100 of distributing statistical data, e.g., financial data. The method 2100 is used in connection with a statistical data delivery system, such as the exemplary financial embodiment described above with reference to FIG. 15, comprising a financial data source, a financial data server, a data store, a distribution server, and a display device coupled to the distribution server via a communications network. In step 2110, configuration data, historical financial data and current financial data related to a plurality of items (e.g., stocks) are stored on a data store. In an embodiment, the financial data server imports financial data from one or more financial data sources and stores it in the data store. In step 2120, configuration files, historical data files, and current data files are stored on a distribution server for distribution to a display device. In an embodiment, financial data server 1530 processes and packages financial data from the data store to create the configuration files, historical data files and current data files using a binary data format. Each of these files is stored on the distribution server from which the files can be distributed to a display device. In step 2130, new dynamic data is imported from one of the financial data sources, and in step 2140, the data store is updated with the new data. In step 2150, the configuration files, historical data files and current data files are updated with the new data. In an embodiment the financial data server analyzes the new data and determines whether any of the configuration files, historical data files or current files need to be updated, and if so, new data files are created. And in step 2160, the updated files are stored on the distribution server for distribution to a display device. Embodiments of method 2100 are not limited to the order in which the steps are shown; the steps can occur in any order.
  • Exemplary Hardware and Software Components
  • FIG. 16B depicts an exemplary computer 1640 for hosting a server, for example, a distribution server or financial data server in an embodiment. Exemplary computer 1640 employs an architecture comprising one or more processing units 1652, 1656. Embodiments with more than one processing unit may include parallel processors. Processing units 1652, 1656 may contain one or more processors and/or multiple cores and may be implemented using one or more heterogeneous processor systems. Processors 1652, 1656 are coupled to memory 1644, 1648. Memory 1644, 1648 preferably comprises random access memory, including, preferably, a multiple-level memory cache hierarchy. Processors 1652, 1656 preferably are coupled to Input/Output Hub 1660. Input/Output Hub 1660 preferably is coupled to one or more peripheral busses, including PCI-E bus 1672 and PCI Express bus 1676. Input/Output Hub 1660 preferably is coupled to network interface controller 1668 for coupling to a communications network. Input/Output Hub 1660 preferably is also coupled to one or more storage units 1664, including one or more hard disks, RAID arrays or Serial Attached SCSI (SAS) units. Input/Output Hub 1660 preferably is coupled to I/O Controller Hub 1680. I/O Controller Hub 1680 preferably is coupled to video/graphics chipset 1684, Super I/O (SIO) device 1688, Universal Serial Bus (USB) Controller 1692, optical drive 1696, and a slot for SD memory 1698. One or more components may be coupled to I/O Controller Hub 1680 via a PCI bus, an integrated drive electronics (IDE), or a serial advanced technology attachment (SATA) interface. Of course, the coupling between the components of computer 1640 may be implemented using any type of communications fabric or architecture that provides for a transfer of data between different components or devices attached to the fabric or architecture.
  • Generally, computer 1640 can be any computer embodied in hardware that provides sufficient computing power, memory, and persistent storage to perform the methods and processes and techniques of the embodiments described herein. An exemplary computer for use with embodiments described herein is a Hewlett Packard Proliant® G6 server with dual cores and hyperthreading.
  • Those of skill will recognize that the methods, processes, and techniques of the embodiments described herein may be implemented to advantage in a variety of sequential orders and that embodiments may be generally implemented in a physical medium, preferably magnetic or optical media such as RAM, RAM drives, USB drives, SD memory, disks, tapes, DVDs and CD-ROMs or other storage media, for introduction into a directory service configured to synchronize changes described herein. In such cases, the media will contain program instructions embedded in the media that, when executed by one or more processing units, will execute the steps and perform the methods, processes, and techniques described herein including processing, importing, publishing and distributing statistical data.
  • FIG. 16A depicts exemplary software components 1600 of a computer 1640 (FIG. 16B) in an exemplary embodiment. Memory 1630 in FIG. 16A preferably comprises memory 1644, 1648. An operating system 1605 is executed by processing units 1652, 1656. The operating system 1605 coordinates and provides control of various components within computer 1640 in FIG. 16B. Exemplary operating systems 1605 include commercially available operating systems such as Solaris® (Solaris is a trademark of Oracle America, Inc. in the United States and other countries) or Linux® (Linux is a trademark of Linus Torvalds in the United States and other countries). An object oriented programming system, such as the Java programming system, may be implemented in a Java Virtual Machine (not illustrated) executing in conjunction with the operating system 1605 (Java is a trademark of Oracle America, Inc., in the United States and other countries). Software components 1600 in a computer used in an exemplary embodiment of a statistical data delivery system may include server software 1610 including code and instructions for performing the methods, processes and techniques of financial data server 1530 (from FIG. 15), including software components 1620 for performing the methods, processes and techniques of Importer 1532 (from FIG. 15), and software components 1625, for performing the methods, processes and techniques of Publisher 1535 (from FIG. 15). In addition, software components 1600 in a computer used in an exemplary embodiment of a statistical data delivery system may include server software 1615 including code and instructions for performing the methods, processes and techniques of distribution server 1580 (from FIG. 15). In addition, software components 1600 in a computer used in an exemplary embodiment of a statistical data delivery system may include data store software 1630 for implementing data store 1538 (from FIG. 15). In an embodiment, server software components 1615, 1620 and 1625 may be hosted on the same server computer, or plurality of server computers. In an embodiment, each server software component is preferably implemented as a Java application and executed as an independent process in a Java Virtual Machine (not illustrated). In an alternative embodiment, server software components 1615, 1620, and 1625 may each be hosted on a server computer, or different plurality of server computers.
  • Data and instructions for the operating system 1605, the object oriented programming system, and applications or programs are located on storage devices, such as HD/SAS units 1664, and may be loaded into main memory 1644, 1648 for execution by processing units 1652, 1656. Java Applications may contain instructions that are loaded into the portion of memory 1644, 1648 containing a Java Virtual Machine (not illustrated) and executed by the Java Virtual Machine. The methods and processes of the illustrative embodiments described herein may be performed by processing units 1652, 1656 using computer implemented instructions, which may be located in a memory, such as, for example, memory 1644, 1648, SD memory 1698, or in one or more peripheral devices.
  • The exemplary embodiments shown in FIGS. 16A and 16B and described above are not meant to imply architectural limitations. The exemplary hardware shown in FIG. 16B may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash memory, equivalent non-volatile memory, and the like, may be used in addition to or in place of the hardware depicted in FIG. 16B. In addition, the processes of the illustrative embodiments may be applied to a multiprocessor data processing system. In addition, the processes of the illustrative embodiments may be encoded in a programming platform other than Java, and may be executed under an operating system other than Linux or Solaris.
  • FIG. 19 is a block diagram of exemplary display device or apparatus utilizing certain embodiments of the present disclosure, including one or more of the methods described above with reference to the figures. Device 1900 comprises processor 1910 that is operably connected to program memory 1920 and data memory 1930 via bus 1970, which may comprise parallel address and data buses, serial ports, or other methods and/or structures known to those of ordinary skill in the art. Program memory 1920 comprises software code executed by processor 1910 that enables device 1900 to communicate using one or more wired or wireless communication protocols, including one or more wireless communication protocols standardized by 3GPP, 3GPP2, or IEEE, such as those commonly known as LTE, UMTS, HSPA, GSM, GPRS, EDGE, 1xRTT, CDMA2000, 802.11, WiFi, HDMI, USB, etc., or any other protocols utilized in conjunction with radio transceiver 1940, user interface 1950, and/or host interface 1960. Program memory 1920 further comprises software code executed by processor 1910 to control the functions of device 1900, including configuring and controlling various components such as radio transceiver 1940, user interface 1950, and/or host interface 1960. Such software code may be specified or written using any known or future developed programming language, such as e.g. Java, C++, C, and Assembler, as long as the desired functionality, e.g., as defined by the implemented method steps, is preserved.
  • Data memory 1930 may comprise memory area for processor 1910 to store variables used in protocols, configuration, control, and other functions of device 1900. As such, program memory 1920 and data memory 1930 may comprise non-volatile memory (e.g., flash memory), volatile memory (e.g., static or dynamic RAM), or a combination thereof. Furthermore, data memory 1930 may comprise a memory slot by which removable memory cards in one or more formats (e.g., SD Card, Memory Stick, Compact Flash) may be inserted and removed. Persons of ordinary skill in the art will recognize that processor 1910 may comprise multiple individual processors (not shown), each of which implements a portion of the functionality described above. In such case, multiple individual processors may be commonly connected to program memory 1920 and data memory 1930 or individually connected to multiple individual program memories and or data memories. More generally, persons of ordinary skill in the art will recognize that various protocols and other functions of device 1900 may be implemented in many different combinations of hardware and software including, but not limited to, application processors, signal processors, general-purpose processors, multi-core processors, ASICs, fixed digital circuitry, programmable digital circuitry, analog baseband circuitry, radio-frequency circuitry, software, firmware, and middleware.
  • Radio transceiver 1940 may comprise radio-frequency transmitter and/or receiver functionality that enables device 1900 to communicate with other equipment supporting like wireless communication standards. In an exemplary embodiment, radio transceiver 1940 includes an LTE transmitter and receiver that enable device 1900 to communicate with various Long Term Evolution (LTE) networks (also known as “4G”) according to standards promulgated by 3GPP. In some embodiments, radio transceiver 1940 includes circuitry, firmware, etc. necessary for device 1900 to communicate with various UMTS and/or GSM/EDGE networks, also according to 3GPP standards. In some embodiments, radio transceiver 1940 includes circuitry, firmware, etc. necessary for device 1900 to communicate with various CDMA2000 networks, according to 3GPP2 standards. In some embodiments, radio transceiver 1940 is capable of communicating using radio technologies that operate in unlicensed frequency bands, such as IEEE 802.11 WiFi that operates in the ISM bands in the regions of 2.4 and 5.6 GHz. In some embodiments, radio transceiver 1940 may comprise a transceiver that is capable of wired communication, such as by using IEEE 802.3 Ethernet technology. The functionality particular to each of these embodiments may be coupled with or controlled by other circuitry in device 1900, such as processor 1910 executing protocol program code stored in program memory 1920.
  • User interface 1950 may take various forms depending on the particular embodiment of device 1900. In some embodiments, device 1900 is a mobile phone, in which case user interface 1950 may comprise a microphone, a loudspeaker, slidable buttons, depressable buttons, a display, a touchscreen display, a mechanical or virtual keypad, a mechanical or virtual keyboard, and/or any other user-interface features commonly found on mobile phones. In such mobile phone embodiments, the particular features comprising the device may depend on whether the device is a smartphone, feature phone, or other type of mobile phone. In other embodiments, device 1900 is a tablet computing device (such as an iPad® sold by Apple Inc.) comprising a touchscreen display that is much larger than touchscreen displays found on mobile phones. In such tablet embodiments, one or more of the mechanical features of user interface 1950 may be replace by comparable virtual user interface features (e.g., virtual keypad, virtual buttons, etc.) implemented using the touchscreen display of device 1900, as familiar to persons of ordinary skill in the art. In other embodiments, device 1900 may be a digital computing device, such as a laptop computer, desktop computer, workstation, etc. that comprises a mechanical keyboard that may be integrated, detached, or detachable depending on the particular embodiment.
  • Host interface 1960 of device 1900 also may take various forms depending on the particular embodiment of device 1900. In embodiments where device 1900 is a mobile phone, host interface 1960 may comprise a USB interface, an HDMI interface, or the like. In some embodiments, device 1900 may comprise more functionality than is shown in FIG. 19. In some embodiments, device 1900 may also comprise functionality such as a video and/or still-image camera, media player, etc., and radio transceiver 1940 may include circuitry necessary to communicate using additional radio-frequency communication standards including Bluetooth, GPS, and/or others. Persons of ordinary skill in the art will recognize the above list of features and radio-frequency communication standards is merely exemplary and not limiting to the scope of the present disclosure. Accordingly, processor 1910 may execute software code stored in program memory 1920 to control such additional functionality.
  • Although embodiments of the present disclosure have been described in detail, it will be apparent to those skilled in the art that many embodiments taking a variety of specific forms and reflecting changes, substitutions and alterations can be made without departing from the spirit and scope of the embodiments. The described embodiments illustrate the scope of the claims but do not restrict the scope of the claims.

Claims (22)

What is claimed is:
1-18. (canceled)
19. A method of navigating a display of statistical data, comprising:
displaying on a display device a plurality of icons, wherein
each one of the plurality of icons corresponds to one of a plurality of items of a similar type,
the plurality of icons are grouped into a plurality of display regions, each one of the plurality of display regions comprising a plurality of icons,
each icon has a first display parameter, wherein the first display parameter is substantially the same for each one of the plurality icons,
each icon has a second display parameter, wherein the second display parameter is substantially the same for each one of the plurality icons, and
each icon has a variable display parameter, wherein the variable display parameter for each icon changes to reflect a change in the value of a datum concerning the icon's corresponding item;
enhancing the display of the icons comprising a particular display region, in response to receiving a signal indicating the selection of the particular display region; and
displaying a first set of additional data relating to one of the plurality of items, in response to receiving a signal indicating the selection of one of the plurality of icons corresponding to the one of the plurality of items.
20. The method of claim 19, wherein each icon is a colored tile of substantially the same size.
21. The method of claim 19, wherein the first display parameter is shape, the second display parameter is size, and the variable display parameter is color.
22. The method of claim 19, wherein the display device comprises a touch screen interface.
23. The method of claim 22, wherein the signal indicating the selection of the particular display region comprises a zoom in signal from the touch screen interface indicating at least one of selection of an icon grouped within the particular display region and selection of a display area within the particular display region.
24. The method of claim 19, wherein enhancing the display of the icons in the particular display region comprises at least one of displaying only the icons in the particular display region, increasing the size of icons in the particular display region, and darkening the icons outside of the particular display region.
25. The method of claim 19, wherein enhancing the display of the icons in the particular display region comprises enlarging each icon and displaying only the selected display region.
26. The method of claim 22, wherein the signal indicating the selection of the particular icon comprises a zoom in signal from the touch screen interface indicating at least one of selection of the particular icon and selection of a display area comprising the particular icon.
27. The method of claim 22, further comprising displaying the plurality of display regions in response to receiving a zoom out signal from the touch screen interface.
28. The method of claim 19, wherein the first set of additional data concerning the corresponding item includes one or more of price data, volume data, news, and identifying information.
29. The method of claim 19, wherein the variable display parameter changes when the datum is dynamically updated.
30. The method of claim 19, wherein the display device has a limited display size.
31-48. (canceled)
49. A method for distributing a visual display of statistical data related to a plurality of items of a similar type to one or more devices, comprising:
receiving current performance data for the plurality of items;
combining the current performance data with historical performance data to create updated performance data for the plurality of items;
storing the updated performance data as historical performance data for the plurality of items;
generating based on the updated performance data a plurality of display information files comprising a configuration file and a plurality of time series files for each of the plurality of items; and
writing the plurality of display information files to a data store where each display information file is individually accessible to the one or more devices, wherein:
the configuration file comprises information related to when each of the plurality of display information files was last updated, and
the plurality of time series files for each item comprises information that enables visual display of a plurality of times series for that item, with each time series corresponding to a different temporal duration.
50. The method of claim 49, wherein the plurality of time series files for each item do not comprise graphical images.
51. The method of claim 49, wherein the plurality of display information files further comprise a historical comparison file and a static information file.
52. The method of claim 49, wherein the plurality of time series files for each item comprises a historical information file for each item and a current information file for each item.
53. The method of claim 49, wherein the plurality of items comprises securities.
54. The method of claim 49, wherein the plurality of items comprises individuals or groups of individuals performing the same or a similar task or job.
55. The method of claim 49, wherein the plurality of items comprises elements or parts of one or more systems used for a particular purpose.
56-93. (canceled)
US14/550,650 2011-05-23 2014-11-21 Dynamic visual statistical data display navigation system and method for limited display device Abandoned US20150205482A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/550,650 US20150205482A1 (en) 2011-05-23 2014-11-21 Dynamic visual statistical data display navigation system and method for limited display device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161489166P 2011-05-23 2011-05-23
US13/478,949 US8972295B2 (en) 2011-05-23 2012-05-23 Dynamic visual statistical data display and method for limited display device
US14/550,650 US20150205482A1 (en) 2011-05-23 2014-11-21 Dynamic visual statistical data display navigation system and method for limited display device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/478,949 Division US8972295B2 (en) 2011-05-23 2012-05-23 Dynamic visual statistical data display and method for limited display device

Publications (1)

Publication Number Publication Date
US20150205482A1 true US20150205482A1 (en) 2015-07-23

Family

ID=47218049

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/478,949 Expired - Fee Related US8972295B2 (en) 2011-05-23 2012-05-23 Dynamic visual statistical data display and method for limited display device
US14/550,650 Abandoned US20150205482A1 (en) 2011-05-23 2014-11-21 Dynamic visual statistical data display navigation system and method for limited display device

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/478,949 Expired - Fee Related US8972295B2 (en) 2011-05-23 2012-05-23 Dynamic visual statistical data display and method for limited display device

Country Status (2)

Country Link
US (2) US8972295B2 (en)
WO (1) WO2012162399A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018021862A1 (en) * 2016-07-28 2018-02-01 Samsung Electronics Co., Ltd. Method of displaying content and electronic device adapted to the same
US10523804B2 (en) 2011-09-16 2019-12-31 Samsung Electronics Co., Ltd. Method and system for searching for object in network
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US11786694B2 (en) 2019-05-24 2023-10-17 NeuroLight, Inc. Device, method, and app for facilitating sleep

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972295B2 (en) * 2011-05-23 2015-03-03 Visible Market, Inc. Dynamic visual statistical data display and method for limited display device
US9323402B1 (en) * 2011-05-26 2016-04-26 D.R. Systems, Inc. Image navigation
US9792017B1 (en) * 2011-07-12 2017-10-17 Domo, Inc. Automatic creation of drill paths
US8600947B1 (en) 2011-12-08 2013-12-03 Symantec Corporation Systems and methods for providing backup interfaces
US10684921B1 (en) * 2011-12-08 2020-06-16 Veritas Technologies Llc Systems and methods for navigating backup configurations
US9471576B1 (en) 2011-12-08 2016-10-18 Veritas Technologies Systems and methods for providing backup storage interfaces
US8839292B1 (en) * 2011-12-13 2014-09-16 Google Inc. Systems and methods for rendering multiple applications on television screens
EP2847662B1 (en) 2012-05-09 2020-02-19 Apple Inc. Device, method, and graphical user interface for providing feedback for changing activation states of a user interface object
WO2013169843A1 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for manipulating framed graphical objects
EP3185116B1 (en) 2012-05-09 2019-09-11 Apple Inc. Device, method and graphical user interface for providing tactile feedback for operations performed in a user interface
CN104487929B (en) 2012-05-09 2018-08-17 苹果公司 For contacting the equipment for carrying out display additional information, method and graphic user interface in response to user
WO2013169865A2 (en) 2012-05-09 2013-11-14 Yknots Industries Llc Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input
WO2013169849A2 (en) 2012-05-09 2013-11-14 Industries Llc Yknots Device, method, and graphical user interface for displaying user interface objects corresponding to an application
US9836483B1 (en) * 2012-08-29 2017-12-05 Google Llc Using a mobile device for coarse shape matching against cloud-based 3D model database
KR102099646B1 (en) * 2012-09-25 2020-04-13 삼성전자 주식회사 Apparatus and method for switching an application displayed split view in portable terminal
US9239658B2 (en) * 2012-10-15 2016-01-19 Microsoft Technology Licensing, Llc User interface technology for displaying table data
USD756383S1 (en) * 2012-10-31 2016-05-17 Google Inc. Display screen with graphical user interface
CN103809928B (en) * 2012-11-14 2018-03-23 腾讯科技(深圳)有限公司 A kind of display methods, the device and system of trend graph of merchandising
US9881337B2 (en) 2013-02-22 2018-01-30 Cantor Futures Exchange, L.P. Systems and methods for providing seamless transitions between graphical images on a binary options interface
US8739072B1 (en) * 2013-03-07 2014-05-27 Visual BI Solutions Inc. Multi-selection widget for selecting multiple time periods at multiple levels within a time dimension hierarchy
US9858731B2 (en) 2013-03-15 2018-01-02 Bosch Automotive Service Solutions Inc. Graphical user interface with vehicle scanned function
US20140278802A1 (en) * 2013-03-15 2014-09-18 Google Inc. Producing and providing data for rendering a travel cost heatmap
EP3011403A4 (en) * 2013-06-21 2017-04-26 Yokogawa Electric Corporation A device for displaying a trend related to a process variable
US20150026616A1 (en) * 2013-07-22 2015-01-22 Nubo Software Ltd. Method and Apparatus for Simple Presentation and Manipulation of Stored Content
USD768142S1 (en) * 2013-08-29 2016-10-04 Samsung Electronics Co., Ltd. Electronic device with graphical user interface
US20150154707A1 (en) * 2013-12-04 2015-06-04 Vincent Nahum System And Method For Recommending Equity Investments
KR102205906B1 (en) * 2013-12-09 2021-01-22 삼성전자주식회사 Method and system for modifying contour of object in image
US10139989B2 (en) 2013-12-13 2018-11-27 Sap Se Mapping visualization contexts
US9588979B2 (en) * 2013-12-31 2017-03-07 Barnes & Noble College Booksellers, Llc UI techniques for navigating a file manager of an electronic computing device
USD763284S1 (en) * 2014-03-28 2016-08-09 Jan Magnus Edman Display screen with graphical user interface
USD768188S1 (en) * 2014-04-08 2016-10-04 Huawei Device Co., Ltd. Display screen or portion thereof with graphical user interface
US20150294405A1 (en) * 2014-04-11 2015-10-15 Bank Of America Corporation Virtual banking center
US20150348496A1 (en) * 2014-05-30 2015-12-03 Pixtronix, Inc. Systems and methods for selecting display operation modes
JP6357391B2 (en) * 2014-09-22 2018-07-11 日本電子株式会社 Information processing apparatus and information processing method
US10528589B2 (en) * 2014-09-26 2020-01-07 Oracle International Corporation Cross visualization interaction between data visualizations
US9971742B2 (en) 2014-09-26 2018-05-15 Oracle International Corporation Semantic distance-based assignment of data elements to visualization edges
US20160100465A1 (en) * 2014-10-07 2016-04-07 Logitech Europe S.A. System and method for software and peripheral integration
CN104408137B (en) * 2014-11-28 2018-11-13 武汉大学 A kind of network statistics map visualization data preparation method
KR20160098700A (en) * 2015-02-11 2016-08-19 삼성전자주식회사 Apparatus for processing multi-touch input and method thereof
US9632664B2 (en) 2015-03-08 2017-04-25 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
US10095396B2 (en) 2015-03-08 2018-10-09 Apple Inc. Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object
US9639184B2 (en) 2015-03-19 2017-05-02 Apple Inc. Touch input cursor manipulation
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
US9830048B2 (en) 2015-06-07 2017-11-28 Apple Inc. Devices and methods for processing touch inputs with instructions in a web page
US9860451B2 (en) 2015-06-07 2018-01-02 Apple Inc. Devices and methods for capturing and interacting with enhanced digital images
US9880735B2 (en) 2015-08-10 2018-01-30 Apple Inc. Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback
USD792443S1 (en) * 2015-08-24 2017-07-18 Microsoft Corporation Display screen with graphical user interface
TWI596490B (en) * 2015-11-06 2017-08-21 Graphical analysis of data methods and systems
KR102461652B1 (en) * 2015-11-30 2022-11-02 삼성전자주식회사 Display device and controlling mehtod of the same
USD789981S1 (en) * 2015-12-12 2017-06-20 Adp, Llc Display screen with graphical user interface
USD789982S1 (en) * 2015-12-12 2017-06-20 Adp, Llc Display screen with graphical user interface
USD789397S1 (en) * 2016-01-08 2017-06-13 Adp, Llc Display screen with animated graphical user interface
US10586623B2 (en) * 2016-03-30 2020-03-10 Livecare Corp. Patient care device and system for service to individuals with diminishing dexterity and neurological physiological functionality
US20190147721A1 (en) * 2016-03-30 2019-05-16 Live Care Corp. Personal emergency response system and method for improved signal initiation, transmission, notification/annunciation, and level of performance
US11355250B2 (en) 2016-03-30 2022-06-07 Livecare Corp. Gateway device and system for service to individuals with diminishing dexterity and neurological physiological functionality
US10528566B2 (en) * 2016-06-30 2020-01-07 Referentia Systems, Inc. Time series data query engine
US10474339B2 (en) * 2016-11-04 2019-11-12 Sismo Sas System and method for market visualization
US10574662B2 (en) 2017-06-20 2020-02-25 Bank Of America Corporation System for authentication of a user based on multi-factor passively acquired data
US10360733B2 (en) 2017-06-20 2019-07-23 Bank Of America Corporation System controlled augmented resource facility
US20190228353A1 (en) * 2018-01-19 2019-07-25 EMC IP Holding Company LLC Competition-based tool for anomaly detection of business process time series in it environments
US10969622B2 (en) * 2018-01-25 2021-04-06 Ncr Corporation Multi-element backlight to highlight or obscure informational element
WO2020124398A1 (en) * 2018-12-19 2020-06-25 江苏观复科技信息咨询有限公司 Multi-image display method and computer-readable storage medium
USD901536S1 (en) * 2019-01-31 2020-11-10 Salesforce.Com, Inc. Display screen or portion thereof with animated graphical user interface
USD916891S1 (en) * 2019-01-31 2021-04-20 Salesforce.Com, Inc. Display screen or portion thereof with animated graphical user interface
CN110928615B (en) * 2019-10-22 2023-12-01 深圳市富途网络科技有限公司 Order data display method, device, equipment and computer readable medium
USD971930S1 (en) * 2020-05-18 2022-12-06 Aristocrat Technologies Australia Pty Limited Display screen or portion thereof with a transitional graphical user interface set
US20210374851A1 (en) * 2020-05-28 2021-12-02 Td Ameritrade Ip Company, Inc. Hierarchical Node-Based Display Architecture
EP4179415A1 (en) * 2020-07-20 2023-05-17 Troutwood, LLC A method and system for presenting an interactive map display
KR102479027B1 (en) * 2020-07-31 2022-12-16 건양대학교산학협력단 Method for Displaying Information on Stock Fluctuation
KR102479028B1 (en) * 2020-07-31 2022-12-19 건양대학교산학협력단 Method for Displaying Information on Stock Fluctuation Reflecting Opinions of Stock Investors
US20230124530A1 (en) * 2021-10-15 2023-04-20 Max NUKI Online platform for connecting users to goods and services
US11875324B1 (en) * 2022-12-16 2024-01-16 Emoji ID, LLC Interconnected visual animations for interrelated objects

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119167A (en) * 1997-07-11 2000-09-12 Phone.Com, Inc. Pushing and pulling data in networks

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220500A (en) * 1989-09-19 1993-06-15 Batterymarch Investment System Financial management system
US6769128B1 (en) * 1995-06-07 2004-07-27 United Video Properties, Inc. Electronic television program guide schedule system and method with data feed access
US5875305A (en) * 1996-10-31 1999-02-23 Sensormatic Electronics Corporation Video information management system which provides intelligent responses to video data content features
US5884042A (en) * 1996-10-31 1999-03-16 Sensormatic Electronics Corporation Data identification in an intelligent video information management system
US6101506A (en) * 1997-05-01 2000-08-08 Hitachi, Ltd. Method and system for managing files by version and programs therefor
US5974413A (en) * 1997-07-03 1999-10-26 Activeword Systems, Inc. Semantic user interface
US7016870B1 (en) * 1997-12-02 2006-03-21 Financial Engines Identifying a recommended portfolio of financial products for an investor based upon financial products that are available to the investor
US20050027613A1 (en) * 1997-12-08 2005-02-03 Nippon Steel Corporation Goods dealing apparatus, goods, dealing system, goods dealing method, and storage medium
US7831930B2 (en) * 2001-11-20 2010-11-09 Universal Electronics Inc. System and method for displaying a user interface for a remote control application
US6583794B1 (en) 1999-07-01 2003-06-24 Smart Money Interface system for information mapping
US20020069244A1 (en) * 1999-11-24 2002-06-06 John Blair Message delivery system billing method and apparatus
EP1234241A4 (en) * 1999-11-24 2010-01-13 Puvaal Applic Ag Llc Method and system for continuous interactive communication in an electronic network
US20080215477A1 (en) * 2000-01-21 2008-09-04 Annunziata Vincent P System for trading commodities and the like
US7461023B1 (en) * 2000-03-24 2008-12-02 Mark Web Helweg Price charting system and technique
US20040235542A1 (en) * 2000-05-01 2004-11-25 Andrew Stronach Pari-mutuel terminal wagering system and process
US6429868B1 (en) * 2000-07-13 2002-08-06 Charles V. Dehner, Jr. Method and computer program for displaying quantitative data
US7305360B1 (en) * 2000-10-25 2007-12-04 Thomson Financial Inc. Electronic sales system
US7454373B2 (en) * 2000-11-06 2008-11-18 Jpmorgan Chase Bank, N.A. System and method for providing automated database assistance to financial service operators
US7174512B2 (en) * 2000-12-01 2007-02-06 Thomson Licensing S.A. Portal for a communications system
SG114481A1 (en) * 2000-12-06 2005-09-28 Netrobust Pte Ltd Real-time financial charting system
US7756722B2 (en) * 2001-02-01 2010-07-13 Georgetown University Clinical management system from chronic illnesses using telecommunication
US20060020538A1 (en) * 2001-06-28 2006-01-26 Pranil Ram Tabs based drag and drop graphical trading interface
CA2403300A1 (en) * 2002-09-12 2004-03-12 Pranil Ram A method of buying or selling items and a user interface to facilitate the same
US20030009411A1 (en) * 2001-07-03 2003-01-09 Pranil Ram Interactive grid-based graphical trading system for real time security trading
US7664695B2 (en) * 2001-07-24 2010-02-16 Stephen Cutler Securities market and market maker activity tracking system and method
US8078545B1 (en) * 2001-09-24 2011-12-13 Aloft Media, Llc System, method and computer program product for collecting strategic patent data associated with an identifier
US6636803B1 (en) * 2001-11-30 2003-10-21 Corus Home Realty Real-estate information search and retrieval system
US20030137536A1 (en) * 2001-11-30 2003-07-24 Hugh Harlan M. Method and apparatus for communicating changes from and to a shared associative database using one-way communications techniques
US7519589B2 (en) * 2003-02-04 2009-04-14 Cataphora, Inc. Method and apparatus for sociological data analysis
US7343302B2 (en) * 2002-02-11 2008-03-11 Puresense Environmental Inc. System and method for emergency response
GB0205130D0 (en) * 2002-03-06 2002-04-17 Symbian Ltd A method of enabling a wireless information device to access data services
US20040002892A1 (en) * 2002-03-20 2004-01-01 Martin Gluck Portal for global portfolio management system method & apparatus
US20030187874A1 (en) * 2002-03-20 2003-10-02 Andreas Peschel Computer & Internet software application for global portfolio management system method & apparatus
US20030227487A1 (en) * 2002-06-01 2003-12-11 Hugh Harlan M. Method and apparatus for creating and accessing associative data structures under a shared model of categories, rules, triggers and data relationship permissions
AU2003276626A1 (en) * 2002-06-18 2003-12-31 Douglas Ray Duquette System and method for analyzing and displaying security trade transactions
US6946715B2 (en) * 2003-02-19 2005-09-20 Micron Technology, Inc. CMOS image sensor and method of fabrication
EP1546972A1 (en) * 2002-09-09 2005-06-29 Apple Computer, Inc. A computer program comprising a plurality of calendars
US7835972B2 (en) * 2003-01-29 2010-11-16 Td Ameritrade Ip Company, Inc. Quote and order entry interface
US7216046B2 (en) * 2003-03-19 2007-05-08 Tektronix, Inc. Method of generating a variable persistence waveform database
US7734529B1 (en) * 2003-05-29 2010-06-08 Chicago Mercantile Exchange, Inc. Trader station user interface
US7467356B2 (en) * 2003-07-25 2008-12-16 Three-B International Limited Graphical user interface for 3d virtual display browser using virtual display windows
US10832321B2 (en) * 2003-12-12 2020-11-10 Gfi Group, Inc. Apparatus, method and system for providing an electronic marketplace for trading credit default swaps and other financial instruments, including a trade management service system
US8434027B2 (en) * 2003-12-15 2013-04-30 Quantum Matrix Holdings, Llc System and method for multi-dimensional organization, management, and manipulation of remote data
US7433885B2 (en) * 2003-12-15 2008-10-07 Quantum Matrix Holdings, Llc System and method for multi-dimensional organization, management, and manipulation of data
DE602004028661D1 (en) * 2004-01-27 2010-09-23 Actix Ltd TRAFFIC MONITORING SYSTEM FOR A MOBILE RADIO NETWORK FOR TRAFFIC ANALYSIS WITH A HIERARCHICAL APPROACH
US7827120B1 (en) * 2004-02-19 2010-11-02 Celeritasworks Llc Community awareness management systems and methods
US20050223264A1 (en) * 2004-03-30 2005-10-06 Jennifer Arden System and method providing high level network object performance information
US7599867B1 (en) * 2004-06-30 2009-10-06 Trading Technologies International, Inc. System and method for chart pattern recognition and analysis in an electronic trading environment
US7565270B2 (en) * 2004-09-07 2009-07-21 Promontory Management Group, Inc. Quality analysis method and program
GB2430769A (en) * 2004-09-28 2007-04-04 Pranil Ram Keyboard and display apparatus for passengers in a vehicle
US20100262901A1 (en) * 2005-04-14 2010-10-14 Disalvo Dean F Engineering process for a real-time user-defined data collection, analysis, and optimization tool (dot)
US20120271748A1 (en) * 2005-04-14 2012-10-25 Disalvo Dean F Engineering process for a real-time user-defined data collection, analysis, and optimization tool (dot)
JP4459105B2 (en) * 2005-04-26 2010-04-28 株式会社東芝 Mobile communication device
US20060271867A1 (en) * 2005-05-27 2006-11-30 Wang Kong Q Mobile communications terminal and method therefore
US20070028174A1 (en) * 2005-07-29 2007-02-01 Moore Dennis B Grid processing dynamic screensaver
US20070028175A1 (en) * 2005-07-29 2007-02-01 Moore Dennis B Grid processing user tools
US7489976B2 (en) * 2005-09-12 2009-02-10 Hosni I Adra System and method for dynamically simulating process and value stream maps
US8311888B2 (en) * 2005-09-14 2012-11-13 Jumptap, Inc. Revenue models associated with syndication of a behavioral profile using a monetization platform
US7783096B2 (en) * 2005-10-17 2010-08-24 Siemens Corporation Device systems and methods for imaging
US20070277100A1 (en) * 2005-12-07 2007-11-29 Networks In Motion, Inc. Method and system for a user input solution for a limited telecommunication device
US7711631B2 (en) * 2005-12-29 2010-05-04 Trading Technologies International, Inc. System and method for a trading interface incorporating a chart
US10290055B2 (en) * 2006-04-21 2019-05-14 Refinitiv Us Organization Llc Encoded short message service text messaging systems and methods
US8571580B2 (en) * 2006-06-01 2013-10-29 Loopt Llc. Displaying the location of individuals on an interactive map display on a mobile communication device
CA2658519A1 (en) * 2006-07-31 2008-02-07 United Video Properties, Inc. Systems and methods for providing media guidance planners
US8106856B2 (en) * 2006-09-06 2012-01-31 Apple Inc. Portable electronic device for photo management
US20080077956A1 (en) * 2006-09-12 2008-03-27 James Morrison Interactive digital media services
US8006300B2 (en) * 2006-10-24 2011-08-23 Authernative, Inc. Two-channel challenge-response authentication method in random partial shared secret recognition system
WO2008057288A2 (en) * 2006-10-26 2008-05-15 Technology Mavericks, Llc Social networking system and method
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US8462109B2 (en) * 2007-01-05 2013-06-11 Invensense, Inc. Controlling and accessing content using motion processing on mobile devices
US20080177858A1 (en) * 2007-01-19 2008-07-24 Ari Aarnio Arranging dynamic bookmarks based on service provider inputs
TWI439877B (en) * 2007-04-23 2014-06-01 Zi Corp Canada Inc Generalized language independent index storage system and searching method
US8799004B2 (en) * 2007-07-05 2014-08-05 Map Ip One, Llc System and method for real estate spatial data analysis
US8972177B2 (en) * 2008-02-26 2015-03-03 Microsoft Technology Licensing, Llc System for logging life experiences using geographic cues
US20120323704A1 (en) * 2008-02-27 2012-12-20 Chad Steelberg Enhanced world wide web-based communications
TWI360775B (en) * 2008-04-22 2012-03-21 Htc Corp Method and apparatus for operating user interface
TWI361377B (en) * 2008-04-24 2012-04-01 Htc Corp Method for switching user interface, electronic device and recording medium using the same
US8219558B1 (en) * 2008-04-25 2012-07-10 David Scott Trandal Methods and systems for inventory management
US8490124B2 (en) * 2008-05-29 2013-07-16 Qualcomm Incorporated Method and apparatus for improving performance and user experience of a mobile broadcast receiver
US8520979B2 (en) * 2008-08-19 2013-08-27 Digimarc Corporation Methods and systems for content processing
US9037513B2 (en) * 2008-09-30 2015-05-19 Apple Inc. System and method for providing electronic event tickets
US9043919B2 (en) * 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US9141768B2 (en) * 2009-06-10 2015-09-22 Lg Electronics Inc. Terminal and control method thereof
US10325316B2 (en) * 2009-10-02 2019-06-18 Trade Capture, Otc Corp. Method and apparatus of displaying market depth and other information on a mobile phone, handheld device or computer system
AU2010314794A1 (en) * 2009-11-06 2012-05-17 David Webster A portable electronic device
US9183560B2 (en) * 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US8458084B2 (en) * 2010-06-03 2013-06-04 Zelman Yakubov Investor social networking website
US8458085B1 (en) * 2010-06-03 2013-06-04 Zelman Yakubov Investor social networking website
KR101695685B1 (en) * 2010-06-30 2017-01-12 엘지전자 주식회사 Method for managing usage history of e-book and terminal using this method
US8593418B2 (en) * 2010-08-08 2013-11-26 Qualcomm Incorporated Method and system for adjusting display content
US20120260158A1 (en) * 2010-08-13 2012-10-11 Ryan Steelberg Enhanced World Wide Web-Based Communications
US9405848B2 (en) * 2010-09-15 2016-08-02 Vcvc Iii Llc Recommending mobile device activities
US20120150446A1 (en) * 2010-12-10 2012-06-14 Google Inc. Interactive User Interface for Weather Data
US20120242668A1 (en) * 2011-03-23 2012-09-27 Smart Technologies Ulc Data presentation method and participant response system employing same
WO2012134927A1 (en) * 2011-03-25 2012-10-04 LoanHD, Inc. Loan management, real-time monitoring, analytics, and data refresh system and method
US9154826B2 (en) * 2011-04-06 2015-10-06 Headwater Partners Ii Llc Distributing content and service launch objects to mobile devices
US20120290336A1 (en) * 2011-05-09 2012-11-15 Apple Inc. System and method for providing event-related incentives
US8972295B2 (en) * 2011-05-23 2015-03-03 Visible Market, Inc. Dynamic visual statistical data display and method for limited display device
US9342579B2 (en) * 2011-05-31 2016-05-17 International Business Machines Corporation Visual analysis of multidimensional clusters
US9176957B2 (en) * 2011-06-10 2015-11-03 Linkedin Corporation Selective fact checking method and system
US20130159892A1 (en) * 2011-08-17 2013-06-20 Weejot Ltd. Non-technical creation of mobile web applications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119167A (en) * 1997-07-11 2000-09-12 Phone.Com, Inc. Pushing and pulling data in networks

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523804B2 (en) 2011-09-16 2019-12-31 Samsung Electronics Co., Ltd. Method and system for searching for object in network
WO2018021862A1 (en) * 2016-07-28 2018-02-01 Samsung Electronics Co., Ltd. Method of displaying content and electronic device adapted to the same
US10599336B2 (en) 2016-07-28 2020-03-24 Samsung Electronics Co., Ltd. Method of displaying content and electronic device adapted to the same
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US11232655B2 (en) 2016-09-13 2022-01-25 Iocurrents, Inc. System and method for interfacing with a vehicular controller area network
US11786694B2 (en) 2019-05-24 2023-10-17 NeuroLight, Inc. Device, method, and app for facilitating sleep

Also Published As

Publication number Publication date
WO2012162399A2 (en) 2012-11-29
US20120303548A1 (en) 2012-11-29
US8972295B2 (en) 2015-03-03
WO2012162399A3 (en) 2013-04-04

Similar Documents

Publication Publication Date Title
US8972295B2 (en) Dynamic visual statistical data display and method for limited display device
US20200326823A1 (en) Presentation and analysis of user interaction data
US10254955B2 (en) Progressively indicating new content in an application-selectable user interface
AU2014233570B2 (en) Presentation and analysis of user interaction data
US8933952B2 (en) Pre-rendering new content for an application-selectable user interface
US10067635B2 (en) Three dimensional conditional formatting
US9720571B2 (en) Immersive mode for a web browser
US20120206471A1 (en) Systems, methods, and computer-readable media for managing layers of graphical object data
KR20060052717A (en) Virtual desktop-meta-organization &amp; control system
US9064233B2 (en) Methods and apparatus for device-specific analytics data visualization
CN103577524A (en) Business object representations and detail boxes display
US10388074B2 (en) Generating immersive media visualizations for large data sets
US10699451B1 (en) Generating digital graphical representations reflecting multiple data series utilizing dynamic y-axes
TWI483208B (en) Device and method of multi mode selection of a portfolio view in a stock quoting software.
CN101510141A (en) Touch screen information display method
US10930045B2 (en) Digital ink based visual components
CN111177609A (en) Processing method and device for displaying three-dimensional data table in page and electronic equipment
JPH07210699A (en) Operating method of system
WO2023107526A1 (en) Sweep algorithm for output of graphical objects
CA2741151A1 (en) Method, processing device, and article of manufacture for providing instructions for displaying time-dependent information and for allowing user selection of time ranges

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION