csv=Import["~/.transactions.csv"];
columnNames=csv[[1]]
transactions=Sort@csv[[2;;]];
transactions={DateObject[#[[1]]]}~Join~#[[2;;]]&/@transactions;
transactions[[1]]

incomes=Select[transactions,#[[3]]=="income"&];
expenditures=Select[transactions,#[[3]]≠"income"&];

categorizedTransactions=GroupBy[transactions,#[[3]]&];

Manipulate[
Module[{dateLimit,recentTransactions},
dateLimit=Today-Quantity[nWeeks,"Weeks"];
recentTransactions=Select[#,dateLimit≤#[[1]]≤Today&]&/@categorizedTransactions;
Column@{
dateLimit,
PieChart[
Values[Total[#[[;;,2]]]&/@recentTransactions],
ChartLabels->Keys[recentTransactions],
ImageSize->Medium]}],
{{nWeeks,20},1,50}]

cumulativeSpending[transactions_]:=MapThread[
List,
{transactions[[;;,1]],
Accumulate@transactions[[;;,2]]}]
cumulativeSpending[categorizedTransactions["rent"]]

DateListPlot[#[[;;,;;2]]&/@cumulativeSpending/@categorizedTransactions]

DateListLogPlot[#[[;;,;;2]]&/@cumulativeSpending/@categorizedTransactions]