Method
Method
Model version 1.0 · 77 securities computed as of 26/08/2026, 75 of them scored.
Where the data comes from
Three sources, all official. Quotations come from the Tunis Stock Exchange. Financial ratios are computed from the financial statements companies file on the exchange's website: we read the PDF and extract equity, net income, total assets and EBITDA. Quarterly revenue comes likewise from the activity indicators published each quarter. No aggregate is taken from a third-party service: when a figure is missing the cell stays empty rather than being borrowed.
The formulas
| Performance over a period | computed as total return: the dividend is reinvested on its ex-date, otherwise a detachment would read as a fall. Today's total-return index ÷ index N days ago − 1. The ex-date is not published in a usable field, so it is recovered from prices around the payment date. Performance is published only if the history starts before the target date; otherwise it would cover a shorter period than its label says. |
| Year to date | computed from the last close of the previous year, not from 1 January, which is not a trading session. |
| Annualised volatility | standard deviation of daily log returns over one year, multiplied by the square root of 252 sessions. Minimum 30 sessions. Computed on the total-return series: a dividend detachment is not a market move. |
| Beta | covariance of the security's returns with TUNINDEX ÷ variance of TUNINDEX, over common sessions (minimum 60). Security returns are total returns. |
| Maximum drawdown | largest fall from a peak to the trough that follows it, over a rolling year, on total return. |
| Market capitalisation | price × number of shares admitted to listing. |
| Free-float capitalisation | market capitalisation × official free float. The float comes from the exchange's index committee notice, rounded to 10%: the share of capital deemed tradable, the rest being held by control shareholders. For 53 of the 63 covered stocks, ranking by size changes between the two measures. |
| Reservation band | bounds the price cannot cross next session: last price ± the threshold of its quotation group (±6% continuous, ±4% auction), rounded inward to the 10-millime tick. The group is read from the Official Bulletin. Indicative only: the exchange decides reservations and its notice prevails. |
| Earnings per share | net income for the year ÷ listed shares. |
| P/E | price ÷ earnings per share. Not published when there is a loss, where the ratio is meaningless. |
| Price / book | price ÷ (equity ÷ listed shares). |
| Return on equity | net income ÷ equity. |
| Return on assets | net income ÷ total assets. |
| Enterprise value / EBITDA | (market cap + financial debt − cash) ÷ EBITDA. |
| Daily liquidity | average turnover over the last 30 sessions. |
| Dividend per share | amount read from the payment notice filed by the company after its general meeting. The financial year is the one it states; failing that, the year preceding the meeting. |
| Dividend yield | latest dividend per share ÷ today's price. Not published if the last known dividend is more than two financial years old. |
| Payout ratio | (dividend × listed shares) ÷ net income. |
The composite score
Each factor is converted into a percentile rank from 0 to 100 among the securities that provide it, then the percentiles are combined into a weighted average. Percentile ranking avoids capping ratios arbitrarily: an extreme P/E ends up last without distorting the scale. A security missing a factor is not scored on it; below 3 available factors, no score is published.
| Factor | Weight | Direction |
|---|---|---|
| PERcours / bénéfice par action, calculé sur nos extractions d'états financiers | 17 % | valeur basse mieux notée |
| Cours / actif netcapitalisation / capitaux propres | 11 % | valeur basse mieux notée |
| Rentabilité des capitaux propres | 17 % | valeur haute mieux notée |
| Rentabilité de l'actif | 6 % | valeur haute mieux notée |
| Rendement du dividendedernier dividende par action extrait des communiqués BVMT, rapporté au cours | 8 % | valeur haute mieux notée |
| Croissance des revenusvariation annuelle du dernier trimestre publié | 13 % | valeur haute mieux notée |
| Performance 1 an | 11 % | valeur haute mieux notée |
| Volatilité annualisée | 9 % | valeur basse mieux notée |
| Liquidité quotidiennecapitaux échangés moyens sur 30 séances | 8 % | valeur haute mieux notée |
The score ranks securities against one another on a given date. It is neither a forecast nor a buy or sell recommendation.
Plausibility bounds
Outside these bounds the indicator is neither displayed nor scored: a three-digit return ratio signals equity close to zero, and a four-digit P/E a residual profit or a PDF reading error.
| Indicator | Minimum | Maximum |
|---|---|---|
| per | 0.50 | 150.00 |
| pb | 0.05 | 30.00 |
| roe_pct | -100.00 | 150.00 |
| roa_pct | -100.00 | 100.00 |
| ev_ebitda | 0.50 | 100.00 |
| dividend_yield_pct | 0.00 | 30.00 |
| payout_ratio_pct | 0.00 | 300.00 |
Current coverage
Ratios depend on automatic extraction from financial-statement PDFs, whose layout varies from one company to another. Here is what is actually available today.
| Indicator | Securities covered |
|---|---|
| P/E | 44 / 77 |
| Price / book value | 61 / 77 |
| Return on equity | 54 / 77 |
| Return on assets | 55 / 77 |
| Volatility | 76 / 77 |
| beta | 75 / 77 |
| Market capitalisation | 77 / 77 |
| Published quarterly revenue | 63 / 77 |
| Enterprise value / EBITDA | 35 / 77 |
| Dividend yield | 57 / 77 |
| Payout ratio | 43 / 77 |
One item is not yet produced from exchange filings and therefore appears nowhere: the ownership structure, which will have to be extracted from annual reports and threshold-crossing declarations.
Sector medians
Each company page shows, next to the P/E, price/book, return on equity and dividend yield, the median for that company's sector. It is computed on the same day, from the same indicators, using only the sector constituents for which the indicator could be extracted — never an estimate. A median is published only from 5 constituents carrying the indicator; below that the page states that no median exists for the sector rather than showing one that would represent nothing. The sample size is shown on hover and repeated below.
| Sector | Published medians |
|---|---|
| Banks | Dividend yield 3.19 (n=11) · Price / book value 1.16 (n=11) · P/E 12.43 (n=8) · Return on equity 8.80 (n=10) · Volatility 27.48 (n=12) |
| Construction and materials | Price / book value 1.10 (n=6) · Return on equity -42.37 (n=5) · Volatility 35.21 (n=9) |
| Financial services | Dividend yield 4.53 (n=10) · Price / book value 1.76 (n=7) · P/E 13.73 (n=7) · Return on equity 12.46 (n=7) · Volatility 31.08 (n=10) |
| Food and beverages | Volatility 20.47 (n=5) |
| Household and personal care | Price / book value 2.08 (n=5) · Return on equity 15.06 (n=5) · Volatility 26.40 (n=5) |
| Insurance | Dividend yield 3.39 (n=6) · Price / book value 1.45 (n=7) · Volatility 31.60 (n=7) |
| Retail | Dividend yield 3.18 (n=7) · Price / book value 2.73 (n=9) · P/E 15.29 (n=9) · Return on equity 13.05 (n=9) · Volatility 32.25 (n=10) |
The gap to the median is shown by a chevron, never by colour: being above the median is neither good nor bad in itself — a high P/E means the stock is expensive, a high return on equity means it is profitable. The comparison positions, it does not conclude. Sectors missing from the table above do not have enough rated constituents for a median to mean anything.
Numerals and separators
All three editions use Latin numerals (0-9), including the Arabic edition. This is not a translation gap: the ar-TN locale defaults to that numbering system, as do ar-MA and ar-DZ, and the Tunis Stock Exchange, the Central Bank, the official gazette and filed financial statements all publish that way. A site that claims its sources reproduces their form.