The close, explained
Source: Dar es Salaam Stock Exchange official daily report, as at the verified close shown. Methodology.
After the Bell explains the official DSE close after each trading session: what moved, how broad the session was, where turnover concentrated, and what the close sets up for tomorrow’s Brief.
Official DSE daily report, captured after close. Not live, not streamed, not a trading feed.
The closing scoreboard
Index levels and closes: Dar es Salaam Stock Exchange official daily report, 24 Jul. Every figure on this page reconciles to that report.
Visual investigation
Read the same verified close three ways: path, concentration and breadth. Every chart opens into its exact table and source contract.
Did the latest close extend or interrupt the recent path of each major index?
The close inside its recent index paths
Latest 30 verified sessions · independently scaled panels
Only declared transformations and compatible comparisons are enabled. The exact state is retained in the URL.
Reuse package · edition 2026-07-24-d38960f7122a
| Session | Index | Close |
|---|---|---|
| 2026-06-12 | DSE All-Share | 3,888.04 |
| 2026-06-12 | Tanzania Share Index | 8,594.12 |
| 2026-06-12 | Banks & Finance | 18,983.53 |
| 2026-06-15 | DSE All-Share | 3,861.46 |
| 2026-06-15 | Tanzania Share Index | 8,501.36 |
| 2026-06-15 | Banks & Finance | 18,714.35 |
| 2026-06-16 | DSE All-Share | 3,897.44 |
| 2026-06-16 | Tanzania Share Index | 8,593.51 |
| 2026-06-16 | Banks & Finance | 18,951.43 |
| 2026-06-17 | DSE All-Share | 3,912.33 |
| 2026-06-17 | Tanzania Share Index | 8,618.66 |
| 2026-06-17 | Banks & Finance | 19,153.91 |
| 2026-06-18 | DSE All-Share | 3,950.12 |
| 2026-06-18 | Tanzania Share Index | 8,658.99 |
| 2026-06-18 | Banks & Finance | 19,322.59 |
| 2026-06-19 | DSE All-Share | 3,940.49 |
| 2026-06-19 | Tanzania Share Index | 8,648.52 |
| 2026-06-19 | Banks & Finance | 19,251.52 |
| 2026-06-22 | DSE All-Share | 3,913.83 |
| 2026-06-22 | Tanzania Share Index | 8,623.11 |
| 2026-06-22 | Banks & Finance | 19256 |
| 2026-06-23 | DSE All-Share | 3,916.88 |
| 2026-06-23 | Tanzania Share Index | 8,612.12 |
| 2026-06-23 | Banks & Finance | 19,264.93 |
| 2026-06-24 | DSE All-Share | 3,931.59 |
| 2026-06-24 | Tanzania Share Index | 8,635.74 |
| 2026-06-24 | Banks & Finance | 19,306.98 |
| 2026-06-25 | DSE All-Share | 3,979.24 |
| 2026-06-25 | Tanzania Share Index | 8,656.37 |
| 2026-06-25 | Banks & Finance | 19,319.95 |
| 2026-06-26 | DSE All-Share | 4,025.11 |
| 2026-06-26 | Tanzania Share Index | 8,707.42 |
| 2026-06-26 | Banks & Finance | 19,454.48 |
| 2026-06-29 | DSE All-Share | 4,040.04 |
| 2026-06-29 | Tanzania Share Index | 8,734.37 |
| 2026-06-29 | Banks & Finance | 19,528.67 |
| 2026-06-30 | DSE All-Share | 4,048.8 |
| 2026-06-30 | Tanzania Share Index | 8,777.1 |
| 2026-06-30 | Banks & Finance | 19,676.07 |
| 2026-07-01 | DSE All-Share | 4,057.22 |
| 2026-07-01 | Tanzania Share Index | 8,858.61 |
| 2026-07-01 | Banks & Finance | 20,026.9 |
| 2026-07-02 | DSE All-Share | 4,090.11 |
| 2026-07-02 | Tanzania Share Index | 8,911.97 |
| 2026-07-02 | Banks & Finance | 20,186.65 |
| 2026-07-03 | DSE All-Share | 4,116.73 |
| 2026-07-03 | Tanzania Share Index | 8,997.09 |
| 2026-07-03 | Banks & Finance | 20,389.16 |
| 2026-07-06 | DSE All-Share | 4,102.94 |
| 2026-07-06 | Tanzania Share Index | 8,981.69 |
| 2026-07-06 | Banks & Finance | 20,310.59 |
| 2026-07-08 | DSE All-Share | 4,102.06 |
| 2026-07-08 | Tanzania Share Index | 8,959.11 |
| 2026-07-08 | Banks & Finance | 20,261.31 |
| 2026-07-09 | DSE All-Share | 4,089.24 |
| 2026-07-09 | Tanzania Share Index | 8,932.56 |
| 2026-07-09 | Banks & Finance | 20,220.06 |
| 2026-07-10 | DSE All-Share | 4,082.43 |
| 2026-07-10 | Tanzania Share Index | 8,918.27 |
| 2026-07-10 | Banks & Finance | 20,189.58 |
| 2026-07-13 | DSE All-Share | 4,080.66 |
| 2026-07-13 | Tanzania Share Index | 8,912.59 |
| 2026-07-13 | Banks & Finance | 20,112.44 |
| 2026-07-14 | DSE All-Share | 4,079.98 |
| 2026-07-14 | Tanzania Share Index | 8,893.57 |
| 2026-07-14 | Banks & Finance | 20,114.02 |
| 2026-07-15 | DSE All-Share | 4,091.35 |
| 2026-07-15 | Tanzania Share Index | 8933 |
| 2026-07-15 | Banks & Finance | 20,193.82 |
| 2026-07-16 | DSE All-Share | 4,102.94 |
| 2026-07-16 | Tanzania Share Index | 8,940.29 |
| 2026-07-16 | Banks & Finance | 20,204.99 |
| 2026-07-17 | DSE All-Share | 4,111.98 |
| 2026-07-17 | Tanzania Share Index | 8,969.32 |
| 2026-07-17 | Banks & Finance | 20,238.43 |
| 2026-07-20 | DSE All-Share | 4,102.83 |
| 2026-07-20 | Tanzania Share Index | 8,952.33 |
| 2026-07-20 | Banks & Finance | 20,175.61 |
| 2026-07-21 | DSE All-Share | 4,092.17 |
| 2026-07-21 | Tanzania Share Index | 8,943.44 |
| 2026-07-21 | Banks & Finance | 20,184.04 |
| 2026-07-22 | DSE All-Share | 4,101.87 |
| 2026-07-22 | Tanzania Share Index | 8,972.55 |
| 2026-07-22 | Banks & Finance | 20,240.53 |
| 2026-07-23 | DSE All-Share | 4,112.64 |
| 2026-07-23 | Tanzania Share Index | 9,005.34 |
| 2026-07-23 | Banks & Finance | 20,232.2 |
| 2026-07-24 | DSE All-Share | 4,150.14 |
| 2026-07-24 | Tanzania Share Index | 8,988.01 |
| 2026-07-24 | Banks & Finance | 20,182.15 |
- As at
- 2026-07-24
- Edition
2026-07-24-d38960f7122a· revision log →- Coverage
- 2026-06-12 to 2026-07-24 · complete
- Vintage
- Latest published source vintage · final
- Method
- Official index closes are shown in separate panels because their level scales are not comparable.
- Annotations
- No editorial annotations
- Breaks
- No documented discontinuity in this view
- Transformations
- Direct source observations; display rounding only
- Reuse
- Exact values are inspectable and citeable; bulk download remains source-restricted pending licence confirmation.
Read: Separate panels preserve each index’s shape without implying that their point levels can be compared directly.
Who carried the tape?
The concentration view keeps this required close-reading module explicit.
Was turnover broad across counters or concentrated in one place?
Who carried the session’s money
TZS 3.61bn across 20 traded counters
Only declared transformations and compatible comparisons are enabled. The exact state is retained in the URL.
Reuse package · edition 2026-07-24-4e4d124995b3
| Counter | Share, % | Turnover, TZS |
|---|---|---|
| NMB | 39.0877 | 1411767160 |
| CRDB | 30.9634 | 1118331590 |
| TBL | 18.5351 | 669447490 |
| VODA | 2.5871 | 93439290 |
| NICO | 2.2893 | 82683000 |
| MCB | 1.3948 | 50375820 |
| DSE | 1.2466 | 45026340 |
| TPCC | 0.8466 | 30577080 |
| TCC | 0.6683 | 24135800 |
| AFRIPRISE | 0.5607 | 20253010 |
| KCB | 0.4947 | 17867340 |
| MKCB | 0.311 | 11234200 |
| TCCL | 0.3093 | 11170800 |
| DCB | 0.3018 | 10901775 |
| SWIS | 0.1747 | 6311270 |
| MBP | 0.1012 | 3655300 |
| TOL | 0.0571 | 2061050 |
| PAL | 0.0343 | 1238005 |
| MUCOBA | 0.0202 | 729455 |
| TTP | 0.0162 | 585430 |
- As at
- 2026-07-24
- Edition
2026-07-24-4e4d124995b3· revision log →- Coverage
- view-specific to 2026-07-24 · complete
- Vintage
- Latest published source vintage · final
- Method
- Each cell is a counter’s exact share of verified session turnover. Colour intensity represents share, not price direction.
- Annotations
- No editorial annotations
- Breaks
- No documented discontinuity in this view
- Transformations
turnover-share— counter turnover / verified total turnover × 100
- Reuse
- Exact values are inspectable and citeable; bulk download remains source-restricted pending licence confirmation.
Read: NMB carried 39.1% of verified turnover; the session total was large but not broad.
How widely were price changes distributed across the board?
The distribution beneath the headline
8 advanced · 11 declined · 9 unchanged · 8 did not trade
Only declared transformations and compatible comparisons are enabled. The exact state is retained in the URL.
Reuse package · edition 2026-07-24-8ff240a238d0
| Counter | Session change, % |
|---|---|
| NMB | 0 |
| CRDB | 0 |
| KCB | -0.52 |
| EABL | 0.73 |
| TBL | 0 |
| VODA | 0.61 |
| TCC | -0.56 |
| TPCC | -1.12 |
| KA | 56.52 |
| JHL | 0 |
| TCCL | 1.56 |
| NICO | -1.05 |
| MCB | -14.84 |
| DSE | -3.28 |
| MKCB | -1.49 |
| AFRIPRISE | 0.81 |
| DCB | -2.06 |
| SWIS | -9.23 |
| TOL | 0 |
| PAL | 1.41 |
| MBP | -2.07 |
| NMG | 1.92 |
| SWALA | 0 |
| TTP | 0 |
| MUCOBA | -3.13 |
| USL | 20 |
| YETU | 0 |
| JATU | 0 |
- As at
- 2026-07-24
- Edition
2026-07-24-8ff240a238d0· revision log →- Coverage
- view-specific to 2026-07-24 · complete
- Vintage
- Latest published source vintage · final
- Method
- Histogram of published counter price changes. Zero-turnover price marks remain in the table and are not treated as liquidity.
- Annotations
- No editorial annotations
- Breaks
- No documented discontinuity in this view
- Transformations
- Direct source observations; display rounding only
- Reuse
- Exact values are inspectable and citeable; bulk download remains source-restricted pending licence confirmation.
Read: The distribution separates the index headline from participation across the board.
8 counters did not trade; a published price mark is not evidence of liquidity.
The close in five reads
The close, read
The headline firmed +0.91%, and the domestic board told a different story (TSI −0.19%). Breadth was mixed close: 8 counters rose, 11 fell, 9 were unchanged and 8 did not trade at all. Turnover of TZS 3.61bn was 39.1% NMB — turnover was spread across the board. A record tape and a broad market are not the same thing. The index says what moved; breadth and turnover concentration say whether the market moved with it.
The session card — built to be screenshotted and shared. Every figure is the verified close.
Breadth
Mixed close. 8 advanced · 11 declined · 9 unchanged · 8 did not trade.
Advancers
- KA no trade +56.5%
- USL no trade +20.0%
- NMG no trade +1.9%
- TCCL +1.6%
- PAL +1.4%
Breadth counts every counter on the board, including the 8 that did not trade. Names flagged no trade carry a published closing price move on zero turnover — the exchange marked a reference price, but nothing changed hands. They count in breadth; they are not liquidity. A headline index can rise on a narrow tape; breadth is how you tell.
The market under the index
Every counter on the board, grouped by sector. Colour is the session's price move; grey is a counter that did not trade at all. Numbers 1–3 mark the turnover leaders.
Banks & financials 13
Telecom 1
Energy 1
Aviation 3
Other 3
Colour is the published price move; the hatch marks a counter that did not trade. These are two different facts and the map keeps them apart: EABL +0.7% and KA +56.5% and NMG +1.9% closed with a price move on zero turnover — a reference mark, not a transaction. Counted in breadth, but it is not liquidity. Tiles are equal-sized on purpose: scaling them by turnover would render one rectangle and 27 slivers — dramatic, and unreadable. The index moved +0.91% while 8 of 28 counters never traded at all. That gap is what this map is for.
Headline versus domestic
| Index | Close | Session | What it tells you |
|---|---|---|---|
| DSEIDSE All-Share | 4,150.14 | +0.91% | every listed counter, including cross-listed |
| TSITanzania Share Index | 8,988.01 | −0.19% | domestic counters only — the local market |
| BIBanks, Finance & Investment | 20,182.15 | −0.25% | the liquid core of the board |
Headline and domestic disagreed. When they split, the cross-listed counters are usually doing the work — the local market did not confirm the headline. Recent paths are shown in the governed visual investigation above.
Where the money went
Turnover by sector, official close 24 Jul. No turnover at all in Other, Energy.
| Sector | Turnover | % | Top counter |
|---|---|---|---|
| Banks & financials | TZS 2.77bn | 76.8% | NMB |
| Cement & industrials | TZS 738.0m | 20.4% | TBL |
| Telecom | TZS 93.4m | 2.6% | VODA |
| Aviation | TZS 7.5m | 0.2% | SWIS |
The names that mattered
The last five closes
| Session | DSEI | TSI | Turnover | Breadth | Top-name share |
|---|---|---|---|---|---|
| 20 Jul | −0.22% | −0.19% | TZS 4.61bn | 8 up / 11 down | 37% |
| 21 Jul | −0.26% | −0.10% | TZS 1.72bn | 6 up / 10 down | 49% |
| 22 Jul | +0.24% | +0.33% | TZS 9.75bn | 8 up / 10 down | 74% |
| 23 Jul | +0.26% | +0.37% | TZS 5.57bn | 8 up / 9 down | 56% |
| 24 Jul | +0.91% | −0.19% | TZS 3.61bn | 8 up / 11 down | 39% |
Top-name share is the single largest counter's slice of that session's turnover. Read down the column: it is the clearest measure of whether this market is broadening or narrowing.
How The Ghost reads this
The Ghost is KCP's hypothetical, educational model book. It does not trade a close — it reads what a session like this does to the terrain: whether breadth is confirming the index, what turnover concentration says about how much size this market can actually absorb, and where the hurdle rate leaves equity risk. A tape this concentrated — NMB at 39.1% of the session — is exactly the kind of close it treats as information about depth, not as a verdict on the market.
How the equity terrain absorbs a close like this → · The Ghost’s tape → · Where the model book stands →
The Ghost is a hypothetical model portfolio used to teach market structure. Not advice, not a recommendation, never a live track record.
The questions this close carries into tomorrow
Tomorrow morning, The Brief reads this close against rates, FX, commodities and policy. The questions it carries in from today:
- Does turnover normalise, or is the concentration in NMB the new shape of this tape?
- Does the domestic board (TSI) confirm the headline, or keep diverging from it?
- Do 8 untraded counters stay untraded — and what does that say about depth?
- Did this close change the terrain The Ghost is walking — breadth, depth, and the rates hurdle equities must beat?
- Do rates or FX change how this close should be read?
Information and education only. Not advice, not a recommendation, and not an offer to buy or sell.
Recent closes
| Session | DSEI | Change | Turnover | Up/Down | Read |
|---|---|---|---|---|---|
| 24 Jul | 4,150.14 | +0.91% | TZS 3.61bn | 8/11 | broader tape |
| 23 Jul | 4,112.64 | +0.26% | TZS 5.57bn | 8/9 | broader tape |
| 22 Jul | 4,101.87 | +0.24% | TZS 9.75bn | 8/10 | concentrated |
| 21 Jul | 4,092.17 | −0.26% | TZS 1.72bn | 6/10 | broader tape |
| 20 Jul | 4,102.83 | −0.22% | TZS 4.61bn | 8/11 | broader tape |
| 17 Jul | 4,111.98 | +0.22% | TZS 38.44bn | 10/4 | block-driven |
| 16 Jul | 4,102.94 | +0.28% | TZS 55.20bn | 8/12 | block-driven |
| 15 Jul | 4,091.35 | +0.28% | TZS 2.71bn | 13/6 | broader tape |
| 14 Jul | 4,079.98 | −0.02% | TZS 75.68bn | 9/10 | block-driven |
| 13 Jul | 4,080.66 | −0.04% | TZS 5.00bn | 5/10 | broader tape |
| 10 Jul | 4,082.43 | −0.17% | TZS 140.18bn | 8/9 | block-driven |
| 9 Jul | 4,089.24 | −0.31% | TZS 6.72bn | 8/10 | broader tape |
| 8 Jul | 4,102.06 | −0.02% | TZS 3.74bn | 9/10 | broader tape |
| 6 Jul | 4,102.94 | −0.33% | TZS 9.21bn | 10/10 | broader tape |
| 3 Jul | 4,116.73 | +0.65% | TZS 6.85bn | 13/7 | concentrated |
| 2 Jul | 4,090.11 | +0.81% | TZS 5.81bn | 10/7 | concentrated |
| 1 Jul | 4,057.22 | +0.43% | TZS 5.14bn | 8/11 | concentrated |
| 29 Jun | 4,040.04 | +0.37% | TZS 7.09bn | 11/7 | broader tape |
| 26 Jun | 4,025.11 | +2.38% | TZS 82.73bn | 10/7 | block-driven |
Dates link to that session's Brief where one was published. The archive begins with the sessions we hold verified — we do not backfill closes we cannot source.