Every file this tool produces has the same thirteen columns, in the same order. Most are obvious. Three or four are not, and two of them — WAP and the two Spread columns — are BSE conventions that people coming from other data sources tend to guess at. Here is what each one actually contains.
| Column | What it is |
|---|---|
Date | The trading date, written as a real spreadsheet date value (not text) so sorting and charting work immediately. |
Open | Price of the first trade of the continuous session, established by the pre-open call auction where one runs. |
High / Low | Highest and lowest traded prices of the day. |
Close | The official closing price — not simply the last trade. See below. |
WAP | Weighted average price for the day: total turnover divided by shares traded. |
No. of Shares | Volume — the number of shares that changed hands. |
No. of Trades | Count of individual executed trades. A different thing from volume. |
Total Turnover | Rupee value traded for the day. |
Deliverable Quantity | Shares that actually settled into demat accounts rather than being squared off intraday. |
% Deli. Qty to Traded Qty | Deliverable quantity as a percentage of volume. |
Spread H-L | High minus Low, in rupees. The day’s trading range. |
Spread C-O | Close minus Open, in rupees. The day’s net move from the opening print. |
Close is a computed price, not the last trade
This is the single most common misreading. The official closing price of a BSE equity is derived from the volume-weighted average of trades in the closing window — the final stretch of the continuous session — rather than being whatever price happened to print last. Where a scrip records no trades in that window, the last traded price is used instead.
Two consequences worth internalising. First, Close can differ from the last tick you saw on a live chart, and neither is wrong — they are different measures. Second, Close for an illiquid scrip may be a stale last-traded price carried in from earlier in the day, which is why thin scrips sometimes show a flat close across several sessions.
WAP: the column most worth using
WAPis turnover divided by volume — the average price paid across the whole day, weighted by size. It is a more honest summary of “where the stock traded today” than Close is, because a single small trade at the bell cannot move it.
A useful sanity check: WAP should always sit between Low and High. If it does not, something is off with that row — most likely a turnover figure that BSE revised, or a scrip that traded in more than one settlement type that day.
The gap between WAP and Closeis itself informative. A close well above the day’s WAP means buying pressure concentrated late in the session; well below means the opposite. On thin scrips, though, treat that signal with suspicion — a handful of trades can produce it by accident.
No. of Shares versus No. of Trades
Volume tells you how much stock moved. Trade count tells you how many separate transactions moved it. Dividing one by the other gives average trade size, which is a rough read on who is participating:
- High volume, low trade count — large average tickets. Often institutional or block activity.
- High trade count, modest volume — many small tickets. Retail participation, or algorithmic activity in a liquid name.
- Both very low — the scrip barely traded, and every other number in the row is fragile. This describes a large share of the BSE listed universe on any given day.
The two Spread columns
These are BSE’s own conventions and they are simple arithmetic rather than anything exotic:
Spread H-L=High−Low. A rupee-denominated measure of intraday range.Spread C-O=Close−Open. Net move measured from the open, so it excludes any overnight gap.
Note the word spread here has nothing to do with a bid-ask spread. That is a genuinely different quantity and it is not in this dataset.
Because both are absolute rupee figures, they are not comparable across stocks at different price levels — a ₹20 range means something very different on a ₹150 scrip than on a ₹3,000 one. Divide by Close to get a percentage before comparing anything. Where BSE leaves these fields blank, this tool computes them from the price columns, so they should always be populated when the prices are.
Columns you might expect and will not find
- Previous close. Not included — but it is the row above, so a spreadsheet reference gets you there. Beware: using the previous row as previous close is wrong across a corporate action, which is a whole topic of its own.
- Adjusted close. Nothing here is adjusted for splits, bonuses or dividends.
- Group or series.The export does not carry the scrip’s trading group, though the group materially affects how the stock behaves — see the group reference.
- Anything intraday. One row per trading day, full stop.
Blank cells and what they mean
A blank is not a zero, and the distinction matters if you are averaging anything. Blanks arise for two different reasons:
- Delivery columns blank, prices present. Normal. Delivery data is published in a separate BSE file on its own schedule, so recent rows frequently lack it — details here.
- A price or volume field blank. The source returned nothing for that field. Rare, and worth treating the whole row as suspect when it happens.
Spreadsheet functions such as AVERAGE skip blanks but count zeros, so a column where no-trade days were filled with zeros would drag every average down. Leaving them blank is deliberate. The Excel guide has formulas that handle this correctly.
Keep reading
- BSE scrip codes: why the number matters more than the ticker — BSE identifies every security by a six-digit scrip code, not by symbol. What the code is, why two companies can share a ticker, and how to find the right one.
- BSE groups: A, B, T, Z, X, M and what they change — BSE sorts listed scrips into groups that govern how they trade — including group T, where intraday trading is banned outright. What each letter means for the price history you just downloaded.
- Delivery percentage on BSE: how to read it, and its limits — How deliverable quantity and delivery percentage are calculated, why the columns are sometimes blank, what high and low readings suggest, and the cases where the number misleads.
Or go straight to the download console and pull a file.