Music is more than simply entertainment and pleasant distraction. The songs we listen to reflect our moods, our lives and the personalities we are.
For regular users last.fm's "scrobbling" date therefore provides hints on their state of mind with a temporal granularity of possibly less than a day.
Similarly, money is usually more than a means to an end. In a society based on unhindered flow cash and goods, our income and the things we spend it on provide a detailed look into our everyday lives. Furthermore, having or not having the financial means to reach a certain goal can have a profound impact on our well-being.
Many people use electronic payment methods which leave a detailed history of financial transactions which are usually stored over relatively long amounts of time.
In this specific case, the online banking service of "Sparkasse" stores financial transactions for about one year.
- Get a graphical approximation of the user's mood in the last year
- Get a graphical approximation of the user's spendings and income in the last year
- Find out how mood and financial situation influence each other and especially in which direction (did that flatscreen tv really make me happy? do I really miss that job? am I really going on depressed shopping sprees?)
- Allow the user to put peculiarities in the data into relation to external events
Idea + User tasks
In a preprocessing step, the user will be able to process the raw input data.
- For the financial data, the user can create groups and enter keywords to automatically add transactions containing this keyword to a given group:
- For the mood data, the user is shown a list of artists from their history. For each artist the user can select a mood rating of depressive, melancholic, happy or ecstatic:
As for the rendering, both datasets are displayed in a single line graph.
- The mood data is rendered as a straight-forward single line graph on top of the financial visualisation.
- The financial data is rendered as a curve showing the absolute balance of the account (normalized so that the bottom of the screen represents the overall low).
The bottom half of this curve is filled. By selecting a range in the time line at the bottom of the visualisation, the user can select a granularity. For each segment of time of this length, the transactions in the user-defined groups will be averaged and compared to the average of the absolute values of all transactions. The space below this graph is divided into positive and negative transactions, depending on their proportion. Each section is the filled with horizontal stripes, whose size represent the influence of the given group to the total changes that occurred in the given timespan. By hovering the mouse over such a stripe, the user can see textual information about the transaction that constitute this group.
Use the left mouse button to drag the time slider at the bottom of the visualisation. Use the right mouse button to move the ends of the slider and select a larger or smaller data range.
- Data Sources: Last.FM, CSV files from arbitrary online banking service
- Language: Backend: PHP, MySQL; Frontend: Processing
can be tested on http://moneymoods.paranoidsoftware.de
using username "sam_vdp" and password "mmoods1234". Please note that this is a locked account that cannot view descriptions of financial transactions and cannot modify any persistent settings. Furthermore, I'd be very grateful if you wouldn't hack my server too hard.
- 03 Dec 2009