How to read this page
This tool looks at every share on the Oslo Stock Exchange that it follows, scores each one out of 1, and puts the best-scoring ones at the top of a list. That is all it does. It does not buy or sell anything, it cannot place an order, and it has no connection to a broker account. It is a shortlist of things worth a closer look — the looking is still your job.
1 · The three parts of the main page
The run box (top). Every time the scanner works through the market it records one "run". This box says which run you are looking at: its number, whether it happened before the market opened or after it closed, when it started, how many shares it considered, and how many of those it managed to score. The coloured word — OK, DEGRADED, FAILED — is the important part. Anything other than OK means the numbers below it were built on incomplete or out-of-date information, and you should trust them less.
The data-quality box (middle). A short list of self-checks the scanner ran on its own inputs: are the price bars recent enough, did every share it wanted actually return data, and so on. It is deliberately blunt about failures rather than quietly patching over them, because the worst thing this tool could do is look confident while running on yesterday's prices. If a check says WARN or FAIL, read what it says before reading anything else.
The candidate table (bottom). One row per share, best first. The left-hand columns say which company it is, the middle column is the overall score, and everything to the right of the price is the working — the separate ingredients that produced that score. The whole point of showing the ingredients is that you can see why something ranked highly, and disagree with it.
How the shown list is chosen. A share appears on the front page only if it clears the score floor (0.65), is inside the top 10, and its industry group has not already used up its 3 places. That last rule exists because Oslo Børs is dominated by a few commodity blocs: without it the list is regularly four shipping companies and three oil companies, which looks like ten ideas but is really two. When a share is held back by that rule the page says so and names it — it keeps its position in the full ranking on Full universe, and its score is not touched.
2 · Every column, in order
Three conventions apply to all the scoring columns. Every ingredient score runs from 0 to 1 — 0 is as bad as that ingredient gets, 1 is as good as it gets, and they are not percentages of anything. The small grey ×0.22 next to a score is its weight: how much of the final score that ingredient is responsible for, after sharing out. A dash (—) means the scanner had no real data for that ingredient, so it was left out entirely and its share of the weight was handed to the ingredients that did have data. It is never filled in with a guess or a middle value — a made-up input would quietly become a made-up answer.
| Column | What it measures | A high value means | A low value means |
|---|---|---|---|
| # | Position in this run's ranking. 1 is the highest overall score. | n/a — it is just an ordering. | Further down today's list. It says nothing about how good the share is in absolute terms; on a quiet day the whole list can be mediocre. |
| Ticker | The company's short code on the exchange. The .OL ending just means Oslo. |
n/a | n/a |
| Name | The company's name, so you don't have to decode the ticker. | n/a | n/a |
| Cluster | The industry group the company belongs to — energy, seafood, shipping, banking and so on. | n/a | n/a — but watch it: if most of the list shares one cluster, the list is really one bet on one industry wearing several names. |
| Composite | The overall score, 0 to 1: every ingredient to its right multiplied by its weight and added up. The bar is the same number drawn. | The ingredients broadly agreed that this is an established uptrend that has recently paused. Above 0.65 is what it takes to appear on the Screened page at all. | Either the setup is genuinely poor, or the ingredients disagree with each other. Both are reasons to open the row rather than dismiss it. |
| Last close | The most recent daily closing price, in Norwegian kroner, from the scanner's stored price history. | Nothing — an expensive share is not a better share. | Nothing. Note this is a closing price, not a live one: it can be hours or a day old, and it is not what you would pay right now. |
| trend weight 0.20 | Whether the share is in an established rise: is today's price above its 50-day average, and is that average above its 200-day average. | A clear, well-established uptrend — the price is comfortably above both averages. | No real uptrend to join: the price is at or below its averages, or drifting sideways. |
| rel strength weight 0.20 | How the share's last 63 trading days (about three months) compare with the Oslo index over the same period — then placed in order against every other share scored today. | It beat the market by more than almost every other share on the list. 1.00 means it was the best of the group. | It lagged the market, or lagged the other candidates. Because it is a placing rather than a measurement, it is always relative to today's group. |
| pullback weight 0.20 | Whether the share has recently cooled off, measured by a standard 14-day momentum gauge. It scores highest in the middle band (35–55). | It has paused or dipped without breaking down — the kind of entry point this screener is built to find. | Two opposite causes, so check which: either it has already run up hard and is stretched, or it is falling badly. The trend column tells you which one you are looking at. |
| volume confirm weight 0.10 | How much the share has been traded lately (last 20 days) against its own normal level (last 60 days). | Unusually busy trading — more people are involved, so the price move has real weight behind it. | Quiet trading. The move may be real but few people are backing it, which makes it easier to reverse. |
| proximity 52w weight 0.10 | Where the price sits compared with its highest point of the past year. | Near, but not at, the year's high — strength without being stretched. Sitting exactly on the high deliberately scores lower, because there is nothing left to run into. | Far below the year's high: whatever was working has stopped working. |
| analyst weight 0.10 | Recent professional broker activity on the share — upgrades, downgrades and changes to their price targets. | Brokers have been moving their view positively in recent weeks. | Brokers have been turning negative. A dash instead of a number means no broker material was captured at all, which is not the same as bad news. |
| sentiment weight 0.10 | The tone of recent news about the company, turned into a single number. Recent items count for much more than older ones, and more reliable sources count for more. | Recent coverage has been mostly positive in tone. Above 0.5 is net positive. | Recent coverage has been mostly negative. It measures the wording of headlines, not whether the news is important — treat it as the weakest ingredient here. |
| Context | Extra material attached to the row, if any exists: a written assessment with a confidence figure, and the brokers' own price targets. Click to expand. | n/a | A dash means nothing was attached — no written note and no broker coverage on file. |
3 · A worked example, from the most recent run
These are real numbers from run #86, started 2026-09-11 17:30. The top-ranked share was AUTO.OL (AutoStore Holdings Ltd.), with a composite of 0.892. Here is exactly where that number came from: each ingredient score, multiplied by its share of the weight, added together.
| Ingredient | Score | Weight used | Contribution |
|---|---|---|---|
| trend | 1.000 | × 0.222 | = 0.2222 |
| rel strength | 0.924 | × 0.222 | = 0.2053 |
| pullback | 1.000 | × 0.222 | = 0.2222 |
| volume confirm | 0.765 | × 0.111 | = 0.0849 |
| proximity 52w | 0.789 | × 0.111 | = 0.0877 |
| analyst | — no data | × 0 (its 0.10 was shared out) | — |
| sentiment | 0.623 | × 0.111 | = 0.0693 |
| Composite | 0.8916 |
Notice the weights in the middle column. 1 of the seven ingredients had no data for this share, so it was dropped and its weight was spread across the 6 that remained. That is why an ingredient with a stated weight of, say, 0.20 is actually being multiplied by something larger here. The weights always add up to 1 across whatever ingredients genuinely had data, so the composite stays comparable between rows — but a row built on fewer ingredients is a thinner piece of evidence, and the dashes are how you spot that.
The same run, two very different rows
Compare HUNT.OL (Hunter Group ASA) with AUTO.OL (AutoStore Holdings Ltd.) in that same run.
| Share | Rank | Composite | trend | pullback |
|---|---|---|---|---|
| HUNT.OL already run up | 26 | 0.654 | 1.000 | 0.000 |
| AUTO.OL rising, then paused | 1 | 0.892 | 1.000 | 1.000 |
HUNT.OL has the stronger trend of the two (1.000 against 1.000) — on the face of it the better company situation. But its pullback score is only 0.000, meaning it has already climbed hard and is stretched. AUTO.OL is rising too, and it has paused: its pullback score of 1.000 says it has cooled off without breaking.
For the kind of trade this screener is looking for — buying into a rise that has taken a breather, and holding for weeks rather than months — the second is the better entry, even though the first is arguably the stronger share. Buying something that has just run up means paying for the move that already happened and taking on the larger fall if it cools off. That is why pullback carries as much weight as trend here, and why you should never read the trend column on its own.
4 · How to actually use this
The score tells you what to look at, not what to buy. The list is a way of narrowing several dozen shares down to a handful worth spending your attention on — the judgement after that is entirely yours.
Read across a row rather than trusting the number at the front of it. Two shares can reach the same composite by completely different routes: one strong everywhere, another excellent on two ingredients and poor on three. Those are not the same proposition, and the composite alone cannot tell them apart. Ask which ingredients are carrying the score, whether any are dashed out, and whether the story they tell together makes sense.
Small differences in composite are noise. The gap between rank 1 and rank 3 is usually meaningless; the gap between the top of the list and the bottom is not. And a short list is a real answer — when few shares clear the bar, the screener leaves the list short rather than padding it with the least-bad options.
5 · What this cannot tell you
It has not been tested against history. Nobody has run this scoring method over years of past market data to see whether it would have worked. The only evidence that exists is what it has recorded live since it started running, and that is what the Performance tab shows.
That live record is short. Scanning began 2026-07-15 and the most recent run was 2026-09-11 — 86 run(s) in total. Completed outcomes so far: 4457 at 5 trading days (average +0.98%); 2081 at 20 trading days (average +4.38%). That covers a few weeks of a generally rising market. In a rising market almost any list of shares shows a positive average, so these figures are not yet evidence that the ranking works. They will only start to mean something once the record spans a falling market too, and once the highest-scoring group can be shown to beat the lowest-scoring group over a meaningful stretch.
Some ingredients may not be running. The analyst and sentiment columns depend on outside feeds and paid interfaces. When those are not configured, the ingredient produces no number at all, shows a dash, and its weight is shared among the rest — so the score you see is built on the price and volume ingredients only. In the most recent run, 1 of them produced nothing for any share: analyst.
The list of shares it looks at is chosen by a filter, not by a person. Every few weeks the scanner asks its data provider which companies are listed in Oslo — most recently 574 of them — and then keeps only those trading often enough and with enough price history to be measurable: 93 names today, with 590 set aside. Two consequences. The provider's list is not an official exchange membership record, so a very recent listing may be missing. And a company can be excluded purely for being small or thinly traded, which is a statement about measurability, not about the business.
The prices are closing prices, not live ones. Everything here is calculated from stored daily bars. Between the run finishing and you reading this, the market may have moved.
Sentiment measures wording, not meaning. It counts positive and negative words in headlines. It cannot tell a serious announcement from a passing mention, and it can be wrong about both.
This is a screener, and it is not advice. There is no connection to any broker, no order can be placed from here, and none will ever be added. Nothing on this page is a recommendation to buy or sell anything. It is one imperfect tool for deciding what deserves a closer look, and every decision that follows is a human one.