Carat: Collaborative Energy Diagnosis

Download iOS App Download Android App Fork us on GitHub

New version of Carat released on Android and iOS!

Our latest version, Carat 2.0, has a completely new and modern user interface. We added new features and improved the accuracy of recommendations. Carat now also detects the use of various system settings. The next major release will include settings suggestions in addition to bugs and hogs, so stay tuned!

The current Carat is unable to access the information it needs on iOS 9.3.3. Previous iOS versions should be working fine. Our next major release will address this issue and provide new features using the system settings data we are now collecting.

Carat is a free app that tells you what is using up the battery of your mobile device, whether that's normal, and what you can do about it. After running Carat for about a week, you will start to receive personalized recommendations for improving your battery life. Carat started at the AMP Lab, UC Berkeley, in collaboration with University of Helsinki. It is under active development by a team of researchers in the NODES group, Department of Computer Science, University of Helsinki.

Carat Screenshots

Here are some screenshots of Carat in action:

Carat Dashboard on Android Carat Actions on Android Carat Actions on iOS Carat Device Info on iOS

Carat FAQ

How does it work?

You install and run the Carat app on your mobile phone, tablet, or music player. (We currently support iOS and Android platforms.) The app intermittently takes measurements about your device and how it is being used. These measurements are sent to our servers, which throw them into a big statistical stew and try to infer how devices are using energy and under what circumstances. The results of these analyses are then sent back to the app, which can give you feedback and actionable advice about how to improve your battery life.

System Diagram

Carat collects instrumentation data from the community of devices where it is installed. The data is processed by the Carat Server, and stored. Our Spark-powered analysis tool extracts key statistical values and metrics from the data. These are shown in the reports in the Carat App, and used to recommend actions for increased battery life and better user experience.

What information do you collect and who do you share it with?

Please see our privacy policy.

What do I need to do?

Install the Carat app and open it every now and then to let it communicate with the server. Otherwise, just use the device as you normally would. You should start to see results in about a week.

What's in it for me?

Carat gives personalized reports about which apps seem to be using energy and lets you see how that usage compares to other groups of users. For example, Carat could tell you whether your instance of Twitter seems to be using far more energy than most other instances (a possible sign that your instance is buggy or is being used abnormally).

How do I interpret the results?

Please see our results guide.

What's in it for you?

This is a research project. We want to know whether it is possible to take sparse, incomplete measurements from a large community of mobile devices and figure out which apps are abusing the battery. We want to find bugs and simultaneously help users mitigate their ill effects and help developers fix them. We believe that, as our dependence on mobile devices increases, energy bugs will rise to prominence, and we want to begin developing tools and techniques for detecting and fixing them.

How can I contact you?

You can reach us through the Carat mailing list: . Please feel free to send us questions, comments, and feedback (both positive and negative).

Carat Data Collection and Privacy Policy

You can read the EULA, but here is the plain English version. Carat periodically collects generic information about your device and how you are using it. This information includes the following:

We DO NOT collect any personally identifying information: no names, no email addresses, no private data from other apps, and so on. Although Carat does try to detect whether you are moving around, it doesn't record your absolute location.

Carat is a research project, so we reserve the right to publish our results online and in academic publications. We also reserve the right to release the data sets into the public domain. (Keep in mind that the data does not identify you in any way.) We will never sell your data or use it to advertise to you. We hate that at least as much as you do.

Carat periodically transmits this information to our servers, where we do math on it and subsequently share the results with you. Carat tries to do all of this unobtrusively and while using as few resources as possible. Although we encourage you to open Carat every now and then so it can communicate with your servers, you can pretty much forget that Carat is running until you'd like to investigate a battery problem.

We respect your privacy and recognize that, by running this app, you are trusting us and doing us a service. We will not abuse that trust. If you have any questions or concerns about this policy, .

Carat Results Guide

Carat provides a great deal of information about how energy is being used on your phone. We have done our best to distill it to a few actionable numbers and lists. This guide elaborates on the data provided within the app. Remember that the information displayed by Carat changes over time as it learns; the longer you use it, the better the results get.

The main screen presents an Action List, consisting of actions like "Kill App X" or "Upgrade the OS," along with an estimate of how much your battery life will improve if you take that action. These actions reflect both the current state of your device and what we've observed in the past on your device and others like it. The improvements are not cumulative.

On the Device screen, the J-Score indicates how your device's battery life compares with all other devices running Carat. This is a percentile, so a J-Score of 75 means your device has better battery life than three out of four devices. There are additional confidence bars associated with the OS, device model, and "similar users". A high confidence on the OS suggests that using a different version might improve your battery life. If the same model bar is high, this means you are seeing poor battery life relative to other people with your device model; there's not much you can do about this aside from buying a new device, but it can help you understand whether, as they say, it's just you. The "similar users" bar will be high when your energy use is high, even when everything else about your device---the model, the OS, the apps you run, etc.---is similar to other users whose energy use is lower. This may be the sign of a faulty battery or other device-specific issue.

An app listed under Hog Report means that the app tends to be associated with increased energy use, across all clients. In other words, it isn't specific to your device or your usage or your running instance. The higher the confidence rating, the more likely that closing this app and keeping it closed will result in improved battery life.

An app listed under Bug Report means that the app tends to be associated with increased energy use, specifically on your device. In other words, it may be that your instance of the app is caught in a bad state or has a bad configuration. Restarting the app may help if it's a transient problem, but, if not, you may need to close and avoid the app.

Being a hog or bug doesn't mean an app is bad. Some apps, like most games, use a lot of energy by necessity and tend to be classified as hogs. Similarly, some apps use far more energy under certain rare configurations or use patterns; Carat may consider these apps bugs even if the behavior is correct. Regardless, these designations can guide a user toward better battery life.

Carat Carat Research Articles (newest first)

  1. Stephan Sigg, Eemil Lagerspetz, Ella Peltonen, Petteri Nurmi, and Sasu Tarkoma. Sovereignty of the Apps: There's more to Relevance than Downloads. CoRR, December 2016. Online in arXiv:1611.10161 [cs.CY].

  2. Ella Peltonen, Eemil Lagerspetz, Petteri Nurmi, and Sasu Tarkoma. Too Big to Mail: On the Way to Publish Large-scale Mobile Analytics Data. Open Science in Big Data Workshop, Washington D.C., USA, December 2016. [pdf] [slides]

  3. Ella Peltonen, Eemil Lagerspetz, Petteri Nurmi, and Sasu Tarkoma. Constella: Recommending System Settings the Crowdsourced Way. Pervasive and Mobile Computing, Volume 26, February 2016, pages 71 - 90. Online in ScienceDirect.

  4. Ella Peltonen, Eemil Lagerspetz, Petteri Nurmi, and Sasu Tarkoma. Energy Modeling of System Settings: A Crowdsourced Approach. In Proceedings of the IEEE International Conference on Pervasive Computing and Communications, PerCom '15, St. Louis, MO, USA, March 23-27, 2015. Marc Weiser Best Paper Award. (c) the IEEE, published in IEEE Xplore. [pdf] [slides]

    Carat context factor data set has published in PerCom'15: Download link. In case of any questions, feel free to take contact to the team members,

  5. Hien Thi Thu Truong, Eemil Lagerspetz, Petteri Nurmi, Adam J. Oliner, Sasu Tarkoma, N. Asokan, and Sourav Bhattacharya. The Company You Keep: Mobile Malware Infection Rates and Inexpensive Risk Indicators. In Proceedings of the 23nd International World Wide Web Conference, WWW '14, Seoul, Korea, April 7-11, 2014. [pdf]

  6. Kumaripaba Athukorala, Eemil Lagerspetz, Maria von Kügelgen, Antti Jylhä, Adam J. Oliner, Sasu Tarkoma, Giulio Jacucci. How Carat Affects User Behavior: Implications for Mobile Battery Awareness Applications. In Proceedings of (CHI ’14), Toronto, Canada, 2014. [pdf]

  7. A. J. Oliner, A. P. Iyer, I. Stoica, E. Lagerspetz, and S. Tarkoma. Carat: Collaborative Energy Diagnosis for Mobile Devices. Conference on Embedded Networked Sensor Systems (SenSys), Rome, Italy, 2013. [pdf]

  8. A. J. Oliner, A. P. Iyer, E. Lagerspetz, S. Tarkoma, and I. Stoica. Collaborative Energy Debugging for Mobile Devices. Workshop on Hot Topics in System Dependability (HotDep), Hollywood, CA, 2012. [pdf]

Theses from the Carat project

  1. Eemil Lagerspetz. Collaborative Mobile Energy Awareness. PhD thesis. University of Helsinki, 2014. [link]

  2. Maria von Kügelgen. How an Energy Awareness Application Affects User Behavior: A Case Study. Master's thesis. University of Helsinki, 2014. [link]

  3. Ella Peltonen. An Approach to Machine Learning with Big Data. Master's thesis. University of Helsinki, 2013. [link]

  4. Cenyu Shen. Energy Profiling of Hardware Subsystems and User Settings on Android. Master's thesis. University of Helsinki, 2013. [link]

CaratThe Carat Team

Carat is brought to you by the Carat team at the University of Helsinki, Department of Computer Science. Carat was started at the Algorithms, Machines, and People Laboratory (AMP Lab) in the EECS Department at UC Berkeley, in collaboration with the Department of Computer Science at the University of Helsinki. The project combines expertise from multiple areas, such as mobile application development, statistical data analysis, and mobile energy awareness. Carat is currently maintained by the University of Helsinki. The Carat team is introduced below.

Current Team Members

Eemil Eemil Lagerspetz is a postdoctoral researcher at the University of Helsinki. He completed his PhD at the University of Helsinki in 2014. His research interests include large-scale data analysis (Big Data), mobile data management, data communications, and energy efficiency. He is currently the main maintainer for Carat. Contact him at

Ella Ella Peltonen is a graduate student at the University of Helsinki. Her research interests include distributed machine learning and data mining methods for large and ambiguous data sets. In the Carat project, she focuses on detecting energy anomalies from Carat's rich context factor data, and turning them into actionable recommendations. She received a MSc and a BSc in Computer Science from the University of Helsinki. Contact her at

Jonatan Jonatan Hamberg is a research assistant at the University of Helsinki. He is maintaining the Carat backend and developing iOS and Android applications. Contact him at

Paula Paula Lehtola is a research assistant at the University of Helsinki and the main author of the Statistics page. She is currently working with her Master thesis on application recommendations. Contact her at

Sasu Sasu Tarkoma received his M.Sc. and Ph.D. degrees in Computer Science from the University of Helsinki, Department of Computer Science. He is full professor at University of Helsinki, Department of Computer Science and Head of the networking and services specialization line. He has managed and participated in national and international research projects at the University of Helsinki, Aalto University, and Helsinki Institute for Information Technology (HIIT). He has worked in the IT industry as a consultant and chief system architect as well as principal researcher and laboratory expert at Nokia Research Center. His interests include mobile computing, Internet technologies, and middleware. He can be reached at

Past Team Members

MikaMika Viinamäki is a research assistant at the University of Helsinki and the main author of the Statistis page. He has also contributed to the Carat analysis engine.

Adam Adam Oliner is a postdoctoral scholar in EECS at UC Berkeley, working with Ion Stoica and the AMP Lab. He recently finished a PhD in computer science at Stanford University, advised by Alex Aiken, where he was a DOE HPCS Fellow and an Honorary Stanford Graduate Fellow. Adam received a MEng in electrical engineering and computer science from MIT, where he also completed undergraduate degrees in computer science and mathematics. Adam's research focuses on understanding complex systems.

Anand Anand Iyer is a graduate student in the Computer Science division at the University of California, Berkeley. He is currently interested in the synergy between mobile systems and cloud computing. He received a Masters degree in Computer Science from The University of Texas at Austin.

Ion Ion Stoica is a Professor in EECS at University of California, Berkeley. He received his M.S. in Computer Science and Control Engineering from Polytechnic University Bucharest, 1989, and a Ph.D. in Electrical and Computer Engineering from Carnegie Mellon University, 2000. He joined the faculty of EECS in 2000. His research areas include Operating Systems & Networking (OSNT), Security (SEC), Networking and distributed computer systems, Quality of Service (Q of S) and resources management, modeling and performance analysis. Stoica is the recipient of the 2007 CoNEXT Rising Star Award, a Sloan Foundation Fellowship (2003), a Presidential Early Career Award for Scientists & Engineers (PECASE) (2002), and the ACM doctoral dissertation award (2001). He also serves as a CTO at Conviva, which he co-founded in 2006.