NEPSE Index History NEPSE Returns History Market Explorer My Portfolio Elections About Logout
{{ toast.message }}

{{ publicUser?.full_name || 'User' }}'s Portfolio

@{{ publicUser?.username }}

{{ publicSelectedPortfolio.info.name }}

Market Value
Rs. {{ (publicSelectedPortfolio.summary.total_value || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Total Investment
Rs. {{ (publicSelectedPortfolio.summary.total_investment || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Unrealized P/L
Rs. {{ (publicSelectedPortfolio.summary.total_pl || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} ({{ (publicSelectedPortfolio.summary.pl_pct || 0).toFixed(2) }}%)

Holdings

Symbol Quantity Avg Price Investment LTP Mkt Value P/L P/L %
{{ holding.symbol }} {{ holding.quantity.toLocaleString() }} {{ holding.avg_price.toFixed(2) }} {{ holding.investment.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} {{ holding.ltp?.toFixed(2) || 'N/A' }} {{ holding.market_value.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} {{ holding.pl.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} {{ holding.pl_pct.toFixed(2) }}%

This portfolio has no holdings yet.

No public portfolios found.

Portfolio Login/Register

Sign in securely with Google to manage your portfolio.

Loading Google Sign-In...

Automatic registration for new users.
By continuing, you agree to our Terms and Privacy Policy.

{{ selectedStock ? 'Stock: ' + selectedStock.symbol : (activePortfolioId ? 'Portfolio: ' + (portfolios.find(p => p.id === activePortfolioId)?.name || 'Portfolio') : 'My Portfolio') }}

{{ marketStatus === 'open' ? 'Live' : 'Closed' }} Live Data from {{ formatTimeAgo(lastPriceUpdate) }} ({{ formatTime(lastPriceUpdate) }}) Loading...
Market Value
Rs. {{ selectedStock ? (selectedStock.market_value || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) : (summary?.total_value || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Current Investment
Rs. {{ selectedStock ? (selectedStock.investment || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) : (summary?.total_investment || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Total Purchases
Rs. {{ selectedStock ? (buyLedger.total_buy_cost || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) : (summary?.total_purchases || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Total Sales
Rs. {{ selectedStock ? (sellLedger.gross_revenue || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) : (summary?.total_sales || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Total Shares
{{ selectedStock ? (selectedStock.qty || 0).toLocaleString() : (currentPortfolioTotals?.qty || 0).toLocaleString() }}
Today's P/L
Unrealized P/L
Rs. {{ (selectedStock ? (selectedStock.profit || 0) : (summary?.total_pl || 0)).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Realized P/L
Rs. {{ selectedStock ? stockRealizedPL.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) : (summary?.realized_pl || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Loading portfolio data...
{{ Math.round(loadingProgress) }}%
{{ selectedStock ? (stockExtremes?.label || 'ALL-TIME') : (historyExtremes?.label || 'ALL-TIME') }} HIGH: Rs. {{ ((selectedStock ? stockExtremes?.maxWorth : historyExtremes?.maxValue) || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} {{ selectedStock ? (stockExtremes?.label || 'ALL-TIME') : (historyExtremes?.label || 'ALL-TIME') }} LOW: Rs. {{ ((selectedStock ? stockExtremes?.minWorth : historyExtremes?.minValue) || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Company {{ sortIcon('symbol') }} Sector {{ sortIcon('sector') }} LTP/Sell Price {{ sortIcon('ltp') }} QTY {{ sortIcon('qty') }} Investment {{ sortIcon('investment') }} WACC {{ sortIcon('wacc') }} Market Value {{ sortIcon('market_value') }} Today's P/L {{ sortIcon('todays_pl') }} Unrealized P/L {{ sortIcon('profit') }}
{{ group.symbol }}
{{ group.company }}
{{ group.sector }} {{ (group.ltp || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} {{ (group.qty || 0).toLocaleString('en-IN', {maximumFractionDigits: 2}) }} Rs. {{ (group.investment || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} {{ (group.wacc || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Rs {{ (group.market_value || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Rs. {{ getStockTodaysPL(group.symbol, group.qty).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} {{ (group.profit || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
TOTAL: {{ currentPortfolioTotals.qty.toLocaleString('en-IN', {maximumFractionDigits: 2}) }} Rs. {{ currentPortfolioTotals.investment.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} Rs. {{ currentPortfolioTotals.market_value.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} Rs. {{ todaysTotalPL.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} {{ currentPortfolioTotals.profit.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}

Add your first transaction to start tracking your investments.

{{ group.symbol }}
{{ group.company }}
{{ group.sector }}
LTP/Sell Price: {{ (group.ltp || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Quantity: {{ (group.qty || 0).toLocaleString('en-IN', {maximumFractionDigits: 2}) }}
Investment: Rs. {{ (group.investment || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
WACC: {{ (group.wacc || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Market Value: Rs. {{ (group.market_value || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Today's P/L: Rs. {{ getStockTodaysPL(group.symbol, group.qty).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Unrealized P/L: {{ (group.profit || 0).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
TOTAL
Portfolio Summary
Quantity: {{ currentPortfolioTotals.qty.toLocaleString('en-IN', {maximumFractionDigits: 2}) }}
Investment: Rs. {{ currentPortfolioTotals.investment.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Market Value: Rs. {{ currentPortfolioTotals.market_value.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Today's P/L: Rs. {{ todaysTotalPL.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Unrealized P/L: Rs. {{ currentPortfolioTotals.profit.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}

{{ stockTransactions.length }} transactions
DATE TYPE QUANTITY PRICE AMOUNT ACTIONS
{{ new Date(tx.purchase_date || tx.date).toLocaleDateString('en-GB') }} {{ tx.transaction_type.toUpperCase() }} {{ tx.quantity }} Rs. {{ parseFloat(tx.buy_price).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }} Rs. {{ (tx.quantity * tx.buy_price).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
TOTALS: {{ stockTransactionTotals.qty }} Rs. {{ stockTransactionTotals.wacc.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
{{ stockTransactionTotals.isSalesView ? 'Avg Sell Price' : 'WACC' }}
Rs. {{ stockTransactionTotals.investment.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}

No {{ stockDetailTab === 'all' ? '' : stockDetailTab }} transactions found.

Add a transaction to start tracking this stock.

{{ tx.transaction_type.toUpperCase() }}
{{ new Date(tx.purchase_date || tx.date).toLocaleDateString('en-GB') }}
Quantity {{ tx.quantity }}
Price Rs. {{ parseFloat(tx.buy_price).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
Amount Rs. {{ (tx.quantity * tx.buy_price).toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}

No {{ stockDetailTab === 'all' ? '' : stockDetailTab }} transactions found.

Add a transaction to start tracking this stock.

TOTALS
{{ stockTransactionTotals.isSalesView ? 'Qty Sold' : 'Quantity' }} {{ stockTransactionTotals.qty }}
{{ stockTransactionTotals.isSalesView ? 'Avg Sell Price' : 'WACC' }} Rs. {{ stockTransactionTotals.wacc.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}
{{ stockTransactionTotals.isSalesView ? 'Total Sales' : 'Investment' }} Rs. {{ stockTransactionTotals.investment.toLocaleString('en-IN', {minimumFractionDigits: 2, maximumFractionDigits: 2}) }}