diff --git a/apps/note/models/transactions.py b/apps/note/models/transactions.py
index 11be33f13b5225ce90d50fbdcbdff145caeeccc1..42eff212e7235f942420fadeb627d6e13ee5a660 100644
--- a/apps/note/models/transactions.py
+++ b/apps/note/models/transactions.py
@@ -106,6 +106,10 @@ class Transaction(models.Model):
         self.destination.save()
         super().save(*args, **kwargs)
 
+    @property
+    def total(self):
+        return self.amount*self.quantity
+
 
 class MembershipTransaction(Transaction):
     membership = models.OneToOneField(
diff --git a/apps/note/tables.py b/apps/note/tables.py
new file mode 100644
index 0000000000000000000000000000000000000000..4d4e9608c1236126b5cce3c3490bf882fd418f11
--- /dev/null
+++ b/apps/note/tables.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+import django_tables2 as tables
+from .models.transactions import Transaction
+
+
+class HistoryTable(tables.Table):
+    class Meta:
+        attrs = {'class':'table table-bordered table-condensed table-striped table-hover'}
+        model = Transaction
+        template_name = 'django_tables2/bootstrap.html'
+        sequence = ('...','total','valid')
+
+    total = tables.Column() #will use Transaction.total() !!
+
+    def order_total(self, QuerySet, is_descending):
+        # needed for rendering
+        QuerySet = QuerySet.annotate(
+            total=F('amount') * F('quantity')
+        ).order_by(('-' if is_descending else '') + 'total')
+        return (QuerySet, True)