Tracking data usage under a schematized data plan

Embodiments provide a schema for representing data usage plans and data usage statistics. The data usage plan describes threshold values associated with network connections of computing devices of the user. A web service dynamically generates data usage statistics for the computing devices to represent data consumed by the computing devices under the data usage plan. The schema is updated with the data usage statistics and distributed to the computing devices for presentation to the user.

BACKGROUND

With the increased popularity of smart telephones, tablets, and other mobile devices, there has been a similar increase in the amount of data handled by the networks of mobile operators. To reduce the strain on network infrastructure and to reduce network transfer costs, mobile operators are shifting from offering unlimited mobile data plans to offering capped and metered plans. With some of the capped and metered plans, the fees for exceeding the allotted data caps may be significant. While some existing web browsers attempt to optimize data traffic, the existing systems generally lack mechanisms for balancing specific needs of each user with data transfer costs. Further, some of the existing systems are unable to accurately track and attribute the amount of data consumed under the plans.

As a result, with the existing systems, users can unknowingly exceed the allotted data caps and experience bandwidth throttling (e.g., a reduction or limit placed upon the rate of consumption) and/or be presented with a much larger than normal monthly bill, resulting in “bill shock.” Throttling and bill shock can impact the user experience, leading to dissatisfied customers, increased customer service calls, and negative impressions of the mobile operators.

SUMMARY

Embodiments of the disclosure generate and represent data usage statistics with a schema. The schema represents a data usage plan associated with at least one user. The data usage plan describes threshold values associated with network connections of a plurality of computing devices of the user. The web service collects data from a mobile operator and/or the plurality of computing devices of the user. The data usage statistics are generated from the collected data, and represent data consumed under the data usage plan. The schema is updated with the generated data usage statistics and distributed to the plurality of the computing devices.

DETAILED DESCRIPTION

Referring to the figures, embodiments of the disclosure enable the collection into a schema116of data relating to network transfers by a plurality of computing devices. In some embodiments, a centralized service such as a web service108monitors data consumption by one or more of the computing devices under a data usage plan. For example, the web service108may receive data usage statistics120from the computing devices and/or from one or more mobile operators111associated with the data usage plan. The web service108presents the data usage statistics120to a user104relative to threshold values118associated with the data usage plan to provide the user104with an indication of the data usage and trending. In other embodiments, the computing devices, such as a mobile computing device102, generate the data usage statistics120for presentation to the user104.

Aspects of the disclosure employ the schema116such as an extensible markup language (XML) schema to represent the data usage plan and, in some embodiments, to represent the data usage statistics120. The schema116enables descriptions of the parts, components, services, features, or other aspects of the data usage plan including, but not limited to, multi-rate data plans, peak times, roaming rates, allotted data consumption per network connection130, etc. In some embodiments, the schema116allows the mobile operators111to send out updated portions of the schema116corresponding to updated parts of the data usage plan.

Referring toFIG. 1, an exemplary block diagram illustrates user computing devices communicating over one or more networks109. In some embodiments, one or more of the user computing devices are associated with a data usage plan. For example, a plurality of the user computing devices may share data allotted under the same or common data usage plan.

The user computing devices include any device executing instructions (e.g., as application programs, operating system functionality, or both) to implement operations and functionality. The user computing devices may include, for example, the mobile computing device102or any other portable device. In some embodiments, the mobile computing device102includes a mobile telephone, laptop, tablet, computing pad, netbook, gaming device, e-reader, and/or portable media player. Other computing devices106may include less portable devices such as desktop personal computers, kiosks, and tabletop devices that have network connectivity capabilities. Additionally, each user computing device may represent a group of processing units. While aspects of the disclosure may be described herein with reference to the mobile computing device102, the descriptions are applicable to any of the user computing devices.

Communication between the mobile computing device102and other devices may occur using any protocol or mechanism over one or more of the networks109. The networks109represent any infrastructure or other means for sending and/or receiving data. The networks109may include wired and/or wireless networks.

The user computing devices communicate with the web service108, or other entity that tracks network data consumption by the user computing devices. Further, one or more of the mobile operators111communicate with the web service108and/or the user computing devices.

In some embodiments, the mobile computing device102has at least one processor110and a memory area112. The processor110includes any quantity of processing units, and is programmed to execute computer-executable instructions for implementing aspects of the disclosure. The instructions may be performed by the processor110or by multiple processors executing within the mobile computing device102, or performed by a processor external to the mobile computing device102. In some embodiments, the processor110is programmed to execute instructions such as those illustrated in the figures (e.g.,FIG. 3).

In some embodiments, the processor110represents an implementation of analog techniques to perform the operations described herein. For example, the operations may be performed by an analog computing device and/or a digital computing device.

The mobile computing device102further has one or more computer readable media such as the memory area112. The memory area112includes any quantity of media associated with or accessible by the mobile computing device102. The memory area112may be internal to the mobile computing device102(as shown inFIG. 1), external to the mobile computing device102(not shown), or both (not shown). In some embodiments, the memory area112includes read-only memory and/or memory wired into an analog computing device.

The memory area112stores, among other data, one or more applications114. The applications114, when executed by the processor110, operate to perform functionality on the mobile computing device102. Exemplary applications114include mail application programs, web browsers, calendar application programs, address book application programs, messaging programs, media applications, location-based services, search programs, and the like. The applications114may communicate with counterpart applications or services such as the web services108accessible via the network109. For example, the applications114may represent downloaded client-side applications that correspond to server-side services executing in a cloud.

The memory area112further stores at least one schema116. The schema116represents a data usage plan associated with the user104, and may be populated with the data usage statistics120. For example, the user104has contracted with the mobile operator111to receive network transfer services from the mobile operator111. The data usage plan describes the services provided by the mobile operator111, such as the amount of network data the user104can consume during a particular duration (e.g., a billing time period). For example, the data usage plan describes threshold values118associated with network connections130of one or more devices of the user104. The network connections130represent communication channels or other means for sending and/or receiving data over the network109. Exemplary network connections130include, but are not limited to, Wi-Fi, cellular, tethered, BLUETOOTH brand communication, near-field communication (NFC), and more. The network connections130may also be categorized into voice, text, data, or other categories or types of network traffic. The threshold values118represent the maximum amount of data consumption allotted for the network connections130. For example, one threshold value118may indicate the maximum amount of data consumption for a Wi-Fi connection, while another threshold value118indicates a maximum amount of data consumption for a cellular data connection.

Aspects of the disclosure are operable with any quantity of populated schemas116. Each of the populated schemas116is associated with a different data usage plan, For example, the mobile computing device102may have more than one cellular connection, and each of the cellular connections work independently (e.g., multiple radios operating independently of each other). In such embodiments, there may be multiple data usage plans active per cellular connection. Exemplary environments include dual subscriber identity module (SIM) dual active devices (both connections independently active) or dual SIM dual standby devices (one connection is in a standby mode). Additional examples include virtual SIMs, universal integrated circuit cards (UICCs), and other variants of user identity modules.

In some embodiments, the schema116includes a plurality of fields. Each of the threshold values118may be associated with one or more of the fields. For example, the fields may correspond to one or more of the following: peak times, off-peak times, peak time data consumption quota, off-peak time data consumption quota, peak time data consumption remaining, off-peak time data consumption remaining, a roaming rate and rules, a mobile operator name, a billing cycle type, a network connection type, identification of free or reduced-cost hosts available for connection, a list of mobile hotspots, and any other elements or information pertaining to the data usage plan. The set of free or reduced-cost hosts represents zero-rated or other reduced cost hosts (e.g., visiting particular web sites does not count against the data usage plan) or data types (e.g., multimedia messaging service data). In some embodiments, the zero-rated or reduced-cost hosts or data may be identified in a form of a blacklist.

The schema116may also include fields supporting different billing rates per host accessed, and allow each mobile operator111the flexibility to define complex plans including broadly offered plans, and dynamic, short-term offers to specific users104likely to use a specific part or parts of the overall services. Other offers based on any combination of the metrics obtained are available to the mobile operator111.

The schema116may also include fields corresponding to the data usage statistics120collected or generated by the mobile computing device102, the web service108, and/or the mobile operator111.

While the schema116may take any form or structure, the schema116may be implemented as XML schema. Appendix A includes an exemplary XML schema for use in aspects of the disclosure.

The data usage statistics120identify, to a granularity of time (e.g., per minute) or data (e.g., per kilobyte), how much data has been sent and/or received by the mobile computing device102or the other computing devices106, and over which network connections130. Other data usage statistics120are contemplated, however. The data usage statistics120may be generated by the mobile computing device102, by the web service108, and/or by the mobile operator111. For example, the mobile computing device102may collect the data usage statistics120representing network data consumed by the mobile computing device102, and then update the data usage statistics120with information received from the web service108representing network data consumed by the other computing devices106of the user104(e.g., associated with the same data usage plan).

In some embodiments, if the web service108detects that the mobile computing device102has old or outdated data usage statistics120, the web service108may send a notification to the mobile computing device102to synchronize the data usage statistics120directly with the mobile operator111or with the web service108.

The memory area112further stores one or more computer-executable components. Exemplary components include a collection component122, a data structure component124, a communications interface component126, and a user interface component128. Operation of the components, when executed, is described below with reference toFIG. 3.

In some embodiments, the communications interface component126includes a network interface card and/or computer-executable instructions (e.g., a driver) for operating the network interface card. In some embodiments, the communications interface is operable with near-field communication (NFC) tags.

The user interface component128may include a graphics card for displaying data to the user104and receiving data from the user104. The user interface component128may also include computer-executable instructions (e.g., a driver) for operating the graphics card. Further, the user interface component128may include a display (e.g., a touch screen display or natural user interface) and/or computer-executable instructions (e.g., a driver) for operating the display. The user interface component128may also include one or more of the following to provide data to the user104or receive data from the user104: speakers, a sound card, a camera, a microphone, a vibration motor, one or more accelerometers, a BLUETOOTH brand communication module, global positioning system (GPS) hardware, and a photoreceptive light sensor. For example, the user104may input commands or manipulate data by moving the computing device in a particular way.

Referring next toFIG. 2, an exemplary flow chart illustrates operation of the web service108to track network data consumed by the user computing devices under the data usage plan. At202, the web service108defines the schema116representing the data usage plan. Defining the schema116includes, for example, defining the schema116for use by the mobile operator111. Alternatively or in addition, defining the schema116includes receiving the schema116from the mobile operator111. The schema116represents the data usage plan associated with one or more of the users104.

At204, the web service108dynamically generates the data usage statistics120for the user104. The data usage statistics120represent data consumed under the data usage plan by one or more of the computing devices associated with the user104. The data usage statistics120may be viewed as a current or instant snapshot of the amount of data transmitted and/or received by the computing devices of the user104that share the data usage plan. The web service108may collect information relating to text messages, voice calls, minutes used, voice over Internet Protocol (VoIP) usage, and any other element of usage consumed by, or that impacts, the user computing devices to produce the data usage statistics120.

Dynamically generating the data usage statistics120may include receiving data from the user computing devices and/or from the mobile operator111. The data corresponds to at least a portion of the data usage statistics120and may be received in a format that conforms to the schema116. For example, the mobile operator111may have more current and/or more accurate data usage statistics120for one or more of the user computing devices than the user computing devices. As another example, the mobile operator111may have more current and/or more accurate data usage statistics120for some of the network connections130than the user computing devices. The mobile operator111may push, or transmit upon demand, such data usage statistics120to the web service108. The web service108integrates the data from the mobile operator111and/or the user computing devices to produce the data usage statistics120.

The web service108may further generate the data usage statistics120by comparing data collected from the mobile operators111to data collected from the user computing devices. For example, the web service108may receive first data corresponding to at least a portion of the data usage statistics120from the mobile operator111, and receive second data corresponding to at least a portion of the data usage statistics120from one or more of the user computing devices. If differences exist (e.g., the data from the mobile operator111may be 24-48 hours old), the web service108reconciles the differences to provide the user104with the most current information. Continuing the example from above, the web service108may reconcile the received first data and the received second data to produce the dynamically generated data usage statistics.

Reconciling the differences in data received from the mobile operators111and/or the user computing devices includes, for example, examining time stamps or other collection dates and favoring, weighting, or choosing the more recently collected data. Continuing the above example, reconciling the received first data and the received second data includes, for example, comparing a timestamp associated with the received first data and a timestamp associated with the received second data. The web service108may integrate the data having the later, or more recent, timestamp into the data usage statistics120.

At206, the web service108updates the defined schema116with the dynamically generated data usage statistics120. For example, the web service108populates a data structure conforming to the defined schema116with the data usage statistics120. At208, the web service108distributes the updated schema116to the plurality of computing devices of the user104that share the same data usage plan. The plurality of computing devices may then update any locally stored copies of the data usage statistics120to reflect the current or up-to-date network data consumed under the data usage plan.

At210, the web service108may display the data usage statistics120to the user104. For example, the data usage statistics120may be displayed to the user104in various user interfaces (e.g., seeFIG. 4,FIG. 5A,FIG. 5B,FIG. 5C, andFIG. 6).

WhileFIG. 2illustrates the example scenario of the web service108collecting the data usage statistics120, updating the schema116, and distributing the schema116to the user computing devices, similar operations may be performed by the user computing devices, as next described with reference toFIG. 3.

Referring next toFIG. 3, an exemplary flow chart illustrates operation of a computing device to populate the schema116with statistics about the network data consumed by the computing device under the data usage plan. While next described with reference to the mobile computing device102executing the operations illustrated inFIG. 3, the operations may also be executed by the other computing devices106of the user104.

At302, the mobile computing device102dynamically generates the data usage statistics120for the user104. For example, the mobile computing device102collects ongoing usage data relating to network data transfers, such as from device radios, drivers, and accelerometers. The collected usage data includes, for example, the amount of data consumed, the time and date of usage, the location of usage, network interface used, the SIM card or other user identity module used for dual SIM scenarios, the international mobile station equipment identity (IMEI) or other device identifier for multi-device scenarios, the IP or other address of the access point used for Wi-Fi scenarios, the IP or other address of the target computer (e.g., for whitelist/blacklists in data usage), and the application responsible for the data transfer.

At304, the mobile computing device102populates the schema116(e.g., stored in the memory area112) with the dynamically generated data usage statistics120. At306, the mobile computing device102provides at least a portion of the populated schema116to the web service108for distribution to the other computing devices106of the user104. Alternatively or in addition, the mobile computing device102may distribute the populated schema116, or a portion thereof, to the other computing devices106of the user104. The mobile computing device102may also present the dynamically generated data usage statistics120to the user104in a user interface of the mobile computing device102.

The mobile computing device102may also send and receive portions of the schema116representing the data usage plan. For example, the mobile computing device102may upload only a portion of the populated schema116to the web service108at a particular time or during a particular time interval. As another example, the mobile computing device102may download only a portion of the schema116from the web service108at a particular time or during a particular time interval.

In some embodiments, the mobile computing device102executes the computer-executable components illustrated inFIG. 1to implement one or more of the operations illustrated inFIG. 3. For example, the collection component122, when executed by the processor110, causes the processor110to dynamically generate the data usage statistics120. The data structure component124, when executed by the processor110, causes the processor110to populate the schema116with the data usage statistics120dynamically generated by the collection component122. The communications interface component126, when executed by the processor110, causes the processor110to transmit the schema116populated by the data structure component124to the web service108for distribution to the other computing devices106of the user104. The communications interface component126may also receive the schema116populated with details of the data usage plan from the web service108and/or from the mobile operator111. The communications interface component126may also receive updated versions of the schema116, or portions thereof.

The user interface component128, when executed by the processor110, causes the processor110to display the data usage statistics120dynamically generated by the collection component122to the user104. For example, the user interface component128may display data usage and a trending analysis.

Referring next toFIG. 4, an exemplary user interface402illustrates a summary of network data usage with different types of network connections130. While the proportions of the user interfaces402,502,504,506illustrated inFIG. 4,FIG. 5A,FIG. 5B,FIG. 5C, andFIG. 6are shown to conform to a screen of the mobile computing device102(e.g., a mobile telephone), the content displayed within the user interfaces402,502,504,506may be shown in any format on any of the user computing devices.

InFIG. 4, data usage for a plurality of the network connections130is shown to the user104in the user interface402. In particular, data usage statistics120attributed to each of the network connections130is shown. For example, the amounts of data transmitted and/or received over a cellular network connection, a tethered network connection, a Hotspot network connection, and a Wi-Fi network connection are shown. The amounts of data are represented by proportionally-sized horizontal bars.

The user interface402also displays the threshold values118associated with each of the network connections130. The threshold values118are taken from the data usage plan. For example, the data usage plan indicates that the user104has a maximum of 5 gigabytes (GB) of data usage available for the cellular network connection, 2 GB of data usage for the tethered network connection, 1 GB of data usage for the Hotspot network connection, and an unlimited amount of data usage for the Wi-Fi network connection.

The user interface402inFIG. 4may also display a button or bar that, when selected by the user104(e.g., clicked or touched), the user interface402allows the user104to select options or other configuration settings for receiving notifications. The notifications are sent when the amounts of data transmitted and/or received over the various network connections130reaches particular values (e.g., set by the user104, mobile computing device102, mobile operator111, or other entity).

Referring next toFIG. 5A, an exemplary user interface502illustrates data usage by the mobile computing device102consuming network data under the data usage plan having a monthly limit. While the overviews of data usage illustrated inFIG. 5A,FIG. 5B, andFIG. 5Cindicate that the data usage statistics120shown are per application, the user interfaces502,504,506may alternatively or in addition display an overview of aggregated data usage across the applications114on the mobile computing device102. Further, the user interfaces502,504,506may alternatively or in addition display an overview of data usage per computing device of the user104or aggregated across a plurality of the computing devices of the user104. For example, the different statistics may be shown in different tabs or tiles in the user interface. In an example involving a family or shared data plan, the statistics for each plan member may be shown in separate tiles.

InFIG. 5A, the data usage statistics120include the amount of network data consumption remaining for use (e.g., the remainder of the monthly limit specified by the data usage plan), the amount of network data consumption used during the current billing period, and the quantity of time (e.g., days) remaining within the current billing period. The data usage statistics120also indicate a breakout of the data usage, such as the amount of data consumed under a cellular network connection versus the amount of data consumed under a Wi-Fi network connection.

Referring next toFIG. 5B, an exemplary user interface504illustrates data usage by the mobile computing device102consuming network data under a pay-as-you-go data usage plan. InFIG. 5B, the data usage statistics120include the amount of network data consumption remaining for use (e.g., the remainder of the pay-as-you-go amount specified by the data usage plan), the amount of network data consumed recently (e.g., within the last 30 days), and the quantity of time (e.g., days) remaining For example, the remaining bandwidth (e.g., data consumption) expires in 16 days. The data usage statistics120also indicate a breakout of the data usage, such as the amount of data consumed under a cellular network connection versus the amount of data consumed under a Wi-Fi network connection.

Referring next toFIG. 5C, an exemplary user interface506illustrates data usage by the mobile computing device102consuming network data under the data usage plan with unlimited data usage. InFIG. 5C, the data usage statistics120include the amount of network data consumed recently (e.g., within the last 30 days). The data usage statistics120also indicate a breakout of the data usage, such as the amount of data consumed under a cellular network connection versus the amount of data consumed under a Wi-Fi network connection. The data usage statistics120also indicate a total amount of usage by the mobile computing device102.

Referring next toFIG. 6, an exemplary block diagram illustrates the mobile computing device102as a mobile telephone602having a tile for displaying the data usage statistics120to the user104. The mobile telephone602displays a plurality of tiles (e.g., active tiles) that may be updated with the data usage statistics120. In some embodiments, tiles represent tile user interface elements. In the example ofFIG. 6, the mobile telephone602indicates that 78% of the allotment for text messages has been consumed, while 55% of the allotment for data usage has been consumed.

Further, any of the tiles displaying the data usage statistics120may be pinned to a home screen of the mobile telephone602to enable the user104to instantly view whether data is being consumed, how much data has been consumed, how the data is being consumed, and how much data remains available under the data usage plan.

Additional Examples

In an example scenario, the user104has a 750 megabyte (MB) monthly data usage plan for the mobile computing device102. The user104views the data usage plan in the user interface of the mobile computing device102, and is able to immediately view the threshold values118, the amount of data currently consumed under the data usage plan, and how much data consumption is remaining and over which of the network connections130(e.g., voice, text, data, etc.).

At least a portion of the functionality of the various elements inFIG. 1may be performed by other elements inFIG. 1, or an entity (e.g., processor, web service, server, application program, computing device, etc.) not shown inFIG. 1.

The term “roaming” as used herein refers, in some embodiments, to connectivity provided outside a subscriber's home zone that may be subject to additional tariffs, fees, or constraints. Roaming service may or may not be provided by the same mobile operator111. The term “tethered” as used herein refers, in some embodiments, to situations where one device acts as an access point for another device for network access. A tethered connection may occur over a wired connection or a wireless connection. The term “Wi-Fi” as used herein refers, in some embodiments, to a wireless local area network using high frequency radio signals for the transmission of data. The term “BLUETOOTH” as used herein refers, in some embodiments, to a wireless technology standard for exchanging data over short distances using short wavelength radio transmission. The term “cellular” as used herein refers, in some embodiments, to a wireless communication system using short-range radio stations that, when joined together, enable the transmission of data over a wide geographic area. The term “NFC” as used herein refers, in some embodiments, to a short-range high frequency wireless communication technology for the exchange of data over short distances.

Embodiments have been described with reference to data monitored and/or collected from users104. In some embodiments, notice may be provided to the users104of the collection of the data (e.g., via a dialog box or preference setting) and users104are given the opportunity to give or deny consent for the monitoring and/or collection. The consent may take the form of opt-in consent or opt-out consent.

Exemplary Operating Environment

Exemplary computer readable media include flash memory drives, digital versatile discs (DVDs), compact discs (CDs), floppy disks, and tape cassettes. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media are tangible and are mutually exclusive to communication media. In some embodiments, computer storage media are implemented in hardware. Exemplary computer storage media include hard disks, flash drives, and other solid-state memory. In contrast, communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media.

Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with aspects of the invention include, but are not limited to, mobile computing devices, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, gaming consoles, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. Such systems or devices may accept input from the user104in any way, including from input devices such as a keyboard or pointing device, via gesture input, and/or via voice input.

Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. The computer-executable instructions may be organized into one or more computer-executable components or modules. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the invention may be implemented with any number and organization of such components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.

Aspects of the invention transform a general-purpose computer into a special-purpose computing device when configured to execute the instructions described herein.

The embodiments illustrated and described herein as well as embodiments not specifically described herein but within the scope of aspects of the invention constitute exemplary means for defining the schema116to describe individual portions of the data usage plan.

APPENDIX A

Listed below are exemplary schema portions that are operable in aspects of the disclosure. While written in extensible markup language (XML) format, the schema may be implemented in other formats.