Index: server/portfolio.go
===================================================================
--- server/portfolio.go	(revision b715712c7d5d3ee27c932a8a9d8e0a2bc6e85127)
+++ server/portfolio.go	(revision 8b447efcef1acebccdc8fd064521da4adc58d220)
@@ -3,4 +3,5 @@
 import (
 	"fmt"
+	"strings"
 
 	"bp_project/server/db"
@@ -13,4 +14,6 @@
 		`SELECT symbol,
 		        quantity,
+		        COALESCE(reserved_quantity, 0),
+		        COALESCE(available_quantity, quantity),
 		        COALESCE(avg_price, 0),
 		        COALESCE(current_price, 0),
@@ -28,8 +31,9 @@
 	defer rows.Close()
 
+	header := fmt.Sprintf("  %-8s  %12s  %12s  %12s  %14s  %14s  %14s  %14s",
+		"Symbol", "Quantity", "Reserved", "Available", "Avg buy", "Current", "Value", "Unrealised P/L")
 	fmt.Println()
-	fmt.Printf("  %-8s  %12s  %14s  %14s  %14s  %14s\n",
-		"Symbol", "Quantity", "Avg buy", "Current", "Value", "Unrealised P/L")
-	fmt.Println("  ------------------------------------------------------------------------------------")
+	fmt.Println(header)
+	fmt.Println("  " + strings.Repeat("-", len(header)-2))
 
 	var totalValue, totalPnL float64
@@ -37,11 +41,11 @@
 	for rows.Next() {
 		var sym string
-		var qty, avg, cur, val, pnl float64
-		if err := rows.Scan(&sym, &qty, &avg, &cur, &val, &pnl); err != nil {
+		var qty, reserved, avail, avg, cur, val, pnl float64
+		if err := rows.Scan(&sym, &qty, &reserved, &avail, &avg, &cur, &val, &pnl); err != nil {
 			fmt.Println("scan error:", err)
 			return
 		}
-		fmt.Printf("  %-8s  %12.4f  %14.6f  %14.6f  %14.4f  %+14.4f\n",
-			sym, qty, avg, cur, val, pnl)
+		fmt.Printf("  %-8s  %12.4f  %12.4f  %12.4f  %14.6f  %14.6f  %14.4f  %+14.4f\n",
+			sym, qty, reserved, avail, avg, cur, val, pnl)
 		totalValue += val
 		totalPnL += pnl
@@ -52,7 +56,7 @@
 		return
 	}
-	fmt.Println("  ------------------------------------------------------------------------------------")
-	fmt.Printf("  %-8s  %12s  %14s  %14s  %14.4f  %+14.4f\n",
-		"TOTAL", "", "", "", totalValue, totalPnL)
+	fmt.Println("  " + strings.Repeat("-", len(header)-2))
+	fmt.Printf("  %-8s  %12s  %12s  %12s  %14s  %14s  %14.4f  %+14.4f\n",
+		"TOTAL", "", "", "", "", "", totalValue, totalPnL)
 
 	// cash summary
