diff --git a/accounts/page/financial_analytics/financial_analytics.js b/accounts/page/financial_analytics/financial_analytics.js
index 06c8a29..e8dbc0f 100644
--- a/accounts/page/financial_analytics/financial_analytics.js
+++ b/accounts/page/financial_analytics/financial_analytics.js
@@ -141,6 +141,43 @@
 		}
 		this.update_groups();
 		this.accounts_initialized = true;
+		
+		// show Net Profit / Loss
+		var net_profit = {
+			company: me.company,
+			id: "Net Profit / Loss",
+			name: "Net Profit / Loss",
+			indent: 0,
+			opening: 0,
+			checked: false,
+			is_pl_account: me.pl_or_bs=="Balance Sheet" ? "No" : "Yes",
+		};
+		
+		$.each(me.data, function(i, ac) {
+			if(!ac.parent_account && me.apply_filter(ac, "company")) {
+				if(me.pl_or_bs == "Balance Sheet") {
+					var valid_account = ac.is_pl_account!="Yes";
+					var do_addition_for = "Debit";
+				} else {
+					var valid_account = ac.is_pl_account=="Yes";
+					var do_addition_for = "Credit";
+				}
+				if(valid_account) {
+					$.each(me.columns, function(i, col) {
+						if(col.formatter==me.currency_formatter) {
+							if(!net_profit[col.field]) net_profit[col.field] = 0;
+							if(ac.debit_or_credit==do_addition_for) {
+								net_profit[col.field] += ac[col.field];
+							} else {
+								net_profit[col.field] -= ac[col.field];
+							}
+						}
+					});
+				}
+			}
+		});
+		
+		this.data.push(net_profit);
 	},
 	add_balance: function(field, account, gl) {
 		account[field] = flt(account[field]) + 
diff --git a/public/js/account_tree_grid.js b/public/js/account_tree_grid.js
index 10e1dac..4c669a9 100644
--- a/public/js/account_tree_grid.js
+++ b/public/js/account_tree_grid.js
@@ -84,12 +84,7 @@
 	},
 	prepare_data: function() {
 		var me = this;
-		if(this.data) {
-			// refresh -- only initialize
-			$.each(this.data, function(i, d) {
-				me.init_account(d);
-			})
-		} else {
+		if(!this.primary_data) {
 			// make accounts list
 			me.data = [];
 			me.parent_map = {};
@@ -103,10 +98,16 @@
 				if(d.parent_account) {
 					me.parent_map[d.name] = d.parent_account;
 				}
-				
-				me.init_account(d);
 			});
+			
+			me.primary_data = [].concat(me.data);
 		}
+		
+		me.data = [].concat(me.primary_data);
+		$.each(me.data, function(i, d) {
+			me.init_account(d);
+		});
+		
 		this.set_indent();
 		this.prepare_balances();
 		
