PSX Portfolio Tracker ProLocal Mode

Dashboard

Tip: har table ke kisi bhi column header par click kar ke us column se sort karein — dobara click se order ulta ho jayega (▲ / ▼ nishani header par nazar aayegi).

Portfolio Market Value
Rs. 0.00
Remaining Cost Basis
Rs. 0.00
Unrealized P/L
Rs. 0.00
Realized P/L
Rs. 0.00
Net Dividends (Credited)
Rs. 0.00
Total Return
Rs. 0.00
Realized + Unrealized + Credited Net Dividends

Concentration Alerts

Rule: warn when any single stock >15% of priced market value, or any sector >25%. Weights use current market values only. Unpriced holdings are noted separately and are never counted as zero.

Net Worth (Multi-Asset)

PSX Market Value (priced only)
Rs. 0.00
Other Assets
Rs. 0.00
Total Net Worth
Rs. 0.00

BucketValueWeight %

Generic buckets only — no amounts are pre-filled and no account is assumed open. Add accounts in Assets & Net Worth.

Holdings

SymbolSectorQtyAvg CostLowest BuyPriceMarket ValueCost BasisUnrealized P/LWeight %

Sector Allocation

Doughnut chart uses priced holdings only — unpriced holdings are excluded (never counted as zero), same as the table below.

SectorMarket ValueWeight %Share

Holdings

SymbolSectorQtyAvg CostLowest BuyPriceMarket ValueCost BasisUnrealized P/LWeight %

Holdings are calculated chronologically from purchases and sales. A sale can never take a holding below zero. Lowest Buy is the lowest purchase rate ever entered for that stock (pure rate, before brokerage/SST/levies); Avg Cost already includes charges. A stock you fully sold still shows its Lowest Buy in Stocks & Prices.

Purchases

DateSymbolQtyRateBrokerageSSTLeviesTotal CostAction

Sales

DateSymbolQtyRateBrokerageSSTLeviesNet ProceedsAction

Bonus Shares

Bonus shares are FREE: total cost does not change, quantity goes up, so Avg Cost comes down. They are NOT a purchase — do not add them as a purchase at rate 0, or Lowest Buy would wrongly become 0. A Bonus entry in Corporate Actions is only a calendar reminder; the shares actually credited go here, on the date they were credited, with the exact quantity from your CDC/broker statement.

DateSymbolBonus SharesNoteAction

Dividends

Auto-calc: WHT = gross × 15% (filer) or 30% (non-filer). Zakat stays manual. Change the toggle in Settings (this checkbox is the setting, saved in the browser / cloud settings).

Only Credited dividends count toward total return. Pending dividends are shown but excluded.

DateSymbolSharesRateGrossWHTZakatNetStatusAction

Stocks & Prices

Prices are manual in this version. Enter the price in Stocks & Prices — it keeps working in Local Mode and in Firebase Cloud Mode.

SymbolSectorPriceLowest BuyPrice DateActiveShariahAction

Sectors

SectorStocksAction

Import & Backup

Where is my data saved?

Purchases CSV Import

Columns: Date, Symbol, Qty, Rate, Brokerage, SST, Levies, Sector. Missing stocks and sectors are auto-created. Sector goes to the stock record, not the purchase record.

Broker Statement CSV Import (with Preview)

Flexible headers: the importer detects Date, Symbol, Type (BUY/SELL), Qty, Rate, Brokerage, SST, Levies, Sector. Nothing is imported until you press Import Previewed Rows. Invalid rows are listed and skipped; sells that would oversell are listed as errors and not imported.

JSON Portfolio Backup

Export downloads a FULL backup: every table in the app (sectors, stocks — including each stock's price and price date, purchases, sales, bonus shares, dividends, corporate actions, SIP plans/log, assets, snapshots, benchmarks, screener, audit log) plus the filer setting and theme, with the export date/time and the latest price date written in the file. Restoring a new full backup or an old v1 backup both work — old backups keep your current filer/theme, missing v2 sections default to empty.

Restore first asks for confirmation, then deletes existing data in order dividends, bonus shares, sales, purchases, stocks, sectors, then inserts sectors, stocks, purchases, sales, dividends. Record IDs are stripped before insert.

Corporate Actions & Dividend Calendar

SymbolTypeEx-DateDays to Ex-DateRateBook ClosurePayment DateStatusExpected Dividend (estimate)Action

Expected dividend = current remaining qty × rate. This is an estimate only — it depends on your holdings on the ex-date, which may change before then.

SIP Planner

One plan is used at a time (the latest). Targets are percentages that should sum to 100%.

Targets

SymbolTarget %Current Weight %Action

Suggestions

Rules: suggestions only for underweight stocks vs target; a stock already above 15% weight, or in a sector above 25%, is skipped; overweight stocks are skipped. Suggestions sum to the monthly amount within rounding — any rounding remainder goes on the largest suggestion. Suggested shares = amount / current price; if the price is missing, the amount is shown with "Price Not Updated" and no shares. Edit quantities before applying.

Applied SIP History

DateTotal AmountDetails

Assets & Net Worth

Generic only: no amounts are pre-filled and nothing here assumes any account is opened. Enter only accounts you actually hold. Invested Amount is what you actually put in; if you leave it blank, the app treats it as equal to Current Value, so that account's gain shows as zero until you enter the invested amount.

NameTypeInvestedCurrent ValueMonthly ContributionRate %NotesAction

Total Investments

Sab jagah ka total aik nazar mein — PSX stocks plus har asset account (mutual fund, bank savings, Atlas MMF, VPS, SITA/SISA, gold, cash, waghera). Click any column header to sort.

Total Invested (all places)
Rs. 0.000
PSX remaining cost + all asset invested amounts
Total Current Value
Rs. 0.000
PSX priced market value + all asset current values
Unrealized Gain / Loss
Rs. 0.000
PSX Share of Invested
—
Rest is in asset accounts
PlaceTypeInvestedCurrent ValueGain / LossGain %Share of Invested

Definitions, taake total ghalat na samjha jaye: PSX Invested sirf abhi maujood holdings ki cost hai (jo shares bech diye, wo is mein nahi — un ka realized profit/loss Dashboard par alag nazar aata hai). PSX Current Value sirf priced holdings ki hai; unpriced holdings is total se bahar hain, zero nahi. Asset accounts ke liye Invested wohi hai jo aap ne Assets & Net Worth mein Invested Amount mein likha; khaali chhora to Current Value hi Invested mana jayega. Naya mutual fund ya bank account add karna ho to Assets & Net Worth mein add karein — ye tab khud update ho jayega.

Performance History

A snapshot stores market value, cost basis, realized P/L, credited dividends and total return for today, using the same accounting as the Dashboard.

XIRR (annualised)
N/A
CAGR (first to last snapshot)
N/A

XIRR formula: find r with sum(flow_i / (1+r)^((date_i - date_0)/365)) = 0 by bisection. Cash flows: purchases negative (total cost incl. charges), sales positive (net proceeds), credited dividends positive (net), plus the final market value as a terminal flow on the last snapshot date. N/A if there are fewer than 2 dated flows, no sign change, or bisection does not converge. CAGR = (last market value / first market value)^(1/years) - 1, using snapshot dates; N/A if either value is ≤ 0 or years ≤ 0.

Snapshots

DateMarket ValueCost BasisRealized P/LDividends (Credited)Total ReturnAction

Benchmark Comparison

DateKSE-100KMI-30Action

Comparison: portfolio % change vs benchmark % change since the first snapshot date (first vs last values in each series). Benchmark values are entered manually.

Screener

Score = 45% cheapness vs 52-week low + 30% low-P/E score + 25% momentum score. Cheapness = 1 - (price - low52)/(high52 - low52), clamped 0-1 (0 if high52 = low52). Low-P/E score = clamp(1 - PE/30, 0, 1) vs a 30x cap (negative PE scores 0). Momentum score = (clamp(momentum_1y, -1, +1) + 1)/2, where momentum_1y is a fraction (e.g. -0.55 = -55%). Stocks down >50% in 1y (momentum_1y < -0.50) are skipped: score shown as — with the reason, per the value-trap guard.

Screener CSV columns: Symbol, Price, PE, Low52, High52, Momentum1y, Shariah (TRUE/FALSE/1/0/yes/no).

SymbolPricePELow52High52Momentum 1yShariahScore

Reports

Tax Report (Pakistan tax year, July–June)

Realized P/L per symbol counts sales whose date falls in the selected July–June year, using the same chronological WAC engine (sale proceeds net of charges minus cost basis sold at the then-current average cost). Dividend totals count dividends dated in the year.

Shariah Report

The Shariah flag must be verified in the broker app / current KMI list. This app gives no fatwa and no guarantee of compliance; a blank flag means unknown, not compliant.

Audit & Undo

Every delete writes an audit entry FIRST, before the record is removed. Restore re-inserts the deleted record from its saved old_data.

WhenTableRecordActionRestore

Cloud Config — Firebase

Firebase Realtime Database se sync — koi SQL, koi table, koi library download nahi. Sirf 2 fields aur aik Sign In. Dono fields visible (type="text") hain, taake copy karna aasan ho.

Firebase Auth (zaroori)

Not signed in.

Sirf signed-in user apna data dekh/badal sakta hai — ye neeche wale Rules se pakka hota hai. Sign In ke baad app khud cloud data load kar legi, aur har change ke baad khud cloud par save kar degi.

Firebase Rules — sirf aik dafa lagani hain

Steps: 1) Firebase Console > Realtime Database > Rules tab kholen, 2) neeche Copy Rules dabayein, 3) purane rules ki jagah paste karein, 4) Publish dabayein. Ye rules har user ko sirf apna data kholne deti hain.