Exploring Communication Debt — ICM Final Project


Communication Debt is an idea that I’ve been formulating for some time now. It’s this idea that as people communicate, relationships form. As these relationships start to take form, some things, which I call communication debt, sometimes get left unsaid for a whole variety of reasons. If enough debt racks up, a wall of mistrust may form and the relationship may falter.

For my final project, I wanted to explore communication debt by using the Facebook API to identify individuals that I lost contact with. By analyzing the messages of these friendships, I hope to identify the people who I’ve accumulated too much communication debt with. By identifying these people, I hope to raise questions about these relationships. Who was this person in my life? What purpose did this relationship serve? Do I want to continue this relationship in my life? Was there anything that I wish I had told this person?

This concept is interesting to me because life is already a lonely journey. We put in a lot of time and effort to build these relationships, and they sometimes just end. So we have these people that we used to be close with that are just out there. I wonder if this needs to be this way.


In order to find these people, I used data from Facebook. Facebook lets you download an archive of all of the data it owns on you, and this includes your friends and all the messages you’ve sent to one another. I downloaded this data and used jQuery to parse the messages.htm file to find people that I have shared more than 50 messages with. I couldn’t figure out how to parse the Facebook date data, but if I did, I would also filter out people that I haven’t had a conversation with in over 1 year.

I understand that parsing Facebook HTML isn’t the best way to analyze this data, but the API had limitations to get the right data I wanted. Ideally, I would have access to a JSON file with all of the information I needed, but Facebook’s latest version of its API prevents queries for messages or friends. If I could get access to friends, I would also be able to access profile photos and URLs.

Thus, I built a workaround where I parsed the HTML of the Facebook archive download to analyze the data. You can take a look at the source here.

If you’d like to use it:


After inputting the messages.htm into the index.html file, you can run the program to output an artifact that prints the messages you once shared back and forth long time ago. As the messages print, a profile picture begins to get drawn, and the person you had this conversation with begins to reveal itself.



After running my program for a while, I found that the people it outputted fell into two categories. Either I got closer with these people and began to communicate with them outside of Facebook, or they were people I didn’t like and I stopped talking to them. This division may be analogous to debtors and creditors, as those who form relationships with their creditors can often find forgiveness for their debts or find other ways to transact with one another.

Of the people that I stopped talking to, there were a lot of acquaintances in which one person or another flaked out on making plans, preventing any substantial relationship from forming. The other people I stopped talking to ended up being ex-girlfriends.

From a technical perspective, this final project was a great opportunity to practice more javascript, APIs, other libraries like jQuery, and HTML. I probably will not use the Facebook API in future projects, as the latest versions don’t really have any interesting data. Parsing data is tedious, and I’m interested in learning new and better methods in which I can parse data. This winter break, I hope to go through the syllabus for Allison’s “Reading and Writing Electronic Text” class to teach myself python and learn other strategies of parsing text data.

Overall, the output of this project has forced me to meditate on how I interact with people and the quality of relationships that I form. Too often, I am so focused on what I am doing that I do not give the proper time to form the kinds of relationships that I desire. When elders are asked what they wish they put more importance on, they often remark about the quality of relationships that they formed in their life. This project has made me rethink my relationships and has rejuvenated a desire to concentrate on the people around me.

Going further

If I were to take this project further, I’d try to figure out more workarounds for Facebook limitations. I’d also like to add functionality that could let people save the artifact and share it with the person whose profile picture was drawn. This artifact can serve as an icebreaker in their attempts to reconnect. I would also like to use the datetime data of these conversations for these artifacts. Perhaps the speed of which these conversations get printed depends on this datetime data. Lastly, I’d like to add functionality in which hovering over a message would highlight all the conversations you had with this person in one day. This feature will help make these artifacts easier to read for viewers.

Special thanks to Allison Parrish and Abhishek Singh for their conceptual and technical help in developing this project. I feel I’ve learned a lot in my three months in ICM. I have a strong foundation in programming, and I look forward to growing this skill in the months and years ahead.