Threatkit: Your Personal Risk Management Tool
Home Screen of ThreatKit
Home risk page
Financial security page
Job security page
The alerts page
Risk is everywhere and part of everything that we do. We have a certain level of financial risk depending on how much we save. We have a certain risk of dying depending on how old we are. We have a certain risk of surviving the next recession or losing our job. We have a certain risk of purchasing a car which gets recalled.
Companies have extensive departments to help them mitigate their risk. While to a certain extent consumers can share in those risk mitigation plans, such as when a credit card detects fraud on your card and shuts down your account for you, they are largely on their own unless they have purchased protection against an insurable risk.
What it does
The app does personalized risk management and mitigation. Using various information such as your location, your credit card statements, the make and model of your vehicle, and the APIs of any internet of things devices you own, it gathers a variety of data about the relevant topics and turns it into a prioritized and easy to digest set of tasks.
Now, many will say that this is already done through text and notifications. While it can in part be done that way, that is a dysfunctional system which causes important tasks to be missed and critical insights lost. Email in the words of venture capitalist Paul Graham is essentially a bad to-do list and that is what notifications currently are as well. A battery needing replacement in an IoT unit is far lower priority than ensuring you rid your fridge of romaine lettuce after an E-coli outbreak. I couldn't imagine starting a meeting with my boss without prioritizing topics. That is desperately needed in personal risk management as well.
How I built it
The app is currently built as two html/php pages, with one page for the graphical user interface on the welcome page and one page for the rest of the functionality.
Financial Risk While many different things could be calculated in this category, the app specifically looks at 4. It looks at career outlook, home price appreciation, savings stress test, and a savings depletion assessment.
Home Risk Home risk is the broad category of threats which relate to one's home or one's location in general. It contains three categories.
The first is an input for IoT devices. In this case, we have an AquaSwift, which is a water depth monitor for rural well owners that ensures they know when they are running low on water. The AquaSwift can both inform on risk and be a source of risk itself. If water is low or the well is frozen, it will tell you well in advance so you can take action. However, the AquaSwift is also a minor source of risk as its battery can die, something handled in this case too.
The second is the various here.com APIs which support the hidden backend, While it does just show a map, here.com APIs are also used for weather, geodeocoding, and providing the location information which will inform other things such as flood risk or fire risk.
The third is where insurance companies would put routine tasks such as scheduling a furnace inspector or arranging to have the roof checked after a hail storm.
Product Risk Product risk takes a look at two specific categories for the purpose of this demo, however the government provides data for many more categories and these could be very easily implemented.
Firstly, it looks at car recalls. One can search by year,make, and model to find if any recalls have been issues for the car and if so, for what. If a recall is found, the issue is added to the list of ongoing problems.
Secondly, it looks at food recalls. The search bar allows the user to enter an allergen and all recalls within the past 60 days due to that allergen are printed out below. The app then adds checking for those allergens as a priority task. The recent romaine lettuce outbreak is one very recent use case for this app.
Challenges I ran into
Data is highly inconsistent, even within the same API. Here.com's API will sometimes return the neighbourhood instead of the city or the county instead of province. In addition, getting megabytes of data up to even a local MariaDB server can be time consuming, especially when the data has faults.