Setting up Outlier
Outlier is a dashboard gadget that reads one board. How often it has something to say depends on the board: measured, 27 mornings of 46 on one that runs two-week sprints, and 5 of 209 on five long-running backlogs. The method has the measurement.
This page is how to put it somewhere and what to expect for the first fortnight. What it measures is a separate page: the method.
The three numbered steps are the setup. Everything after them is optional.
1. Add it to a dashboard
A Jira administrator installs the app from the Atlassian Marketplace, once for the site. After that, anybody can add the gadget. The steps need no permission at all.
- Open a dashboardopen a Jira dashboard, or create one with Dashboards → Create dashboard.
- Add the gadgetchoose Add gadget, then find Outlier.
- Pick a boardthe list is the boards you can see. The picker names the project each one belongs to, because two boards on a site are often called the same thing.
- Savepress Save.
That is the whole of the required setup. Everything else on this page is optional, and can be changed later without losing anything.
A board needs a saved filter behind it. Almost all do. A board without one cannot be read at all. The form says so when you pick it, rather than letting you save something that will never work.
2. Wait for the first read
Outlier reads the board's history as soon as it is configured, not from the day you installed it. There is no watching period and no sprint to wait for: the norms come from the history that is already there.
- The walk takes a few minutes on a small board and up to an hour on a large one.
- While it runs, the card says reading this board's history, with a count.
- When it finishes, most columns have a norm and the card starts working.
When a column has no norm
A column that has passed fewer than fifteen tickets in the last year has no norm of its own. The card says so, says why, and counts what is missing. The method has the rule.
Borrowed norms, and a column whose wait has changed
- Where its role is clear - to do, in progress, review, done - it borrows the norm of the columns sharing that role. The card marks it as borrowed.
- Where the role is not clear, there is nothing to borrow from. The card says so rather than pretending.
A column can also have plenty of finished work and still get no norm. That happens when the wait in it has changed: the older stays no longer describe it, and not enough has finished since.
The card says which of the two is happening and counts what is missing. A bar that reads 12 of the 15 recent stays a new norm needs is a bar that moves.
What the first weeks add
The first morning's card is the whole product: the findings, the columns behind them, and the footer saying how much of the board was looked at. What time adds is the card's own record: a row of squares showing which of the last ten mornings it had something to raise. Until that record exists, the card says what it would have said over the board's last quarter, as the method describes.
How that quarter is shown, and when it stops
It shows this on a morning with nothing new to raise, where there is room to read it.
- It is reconstructed from the same history and measured by the norms in use now.
- It is labelled that way wherever it appears. There was no card on those mornings, and the line never pretends otherwise.
- Once ten mornings of squares can make the same point from evidence, the reconstruction stops being shown.
- On a board where no column has a norm yet, there is nothing to reconstruct. The card says that rather than reporting a quiet quarter it cannot see.
3. Read the card
4 in In Progress, and every one of them is past the usual wait
The oldest is more than 82× the usual wait.Is this queue moving?Every one of the 4 in the column has been worked on since it arrived. The oldest has waited 82 working days. Usually under a day here, from more than 100 finished stays.PAY-16160PAY-16335PAY-16346see all 48 of 10 in Patch Available past the usual wait
The oldest is about 36× the usual wait.One of the 10 in the column has had no work on it since it arrived. The oldest has waited 71 working days. Usually 2 working days here, from 76 finished stays.PAY-16102PAY-16303PAY-16345see all 8
- Read the findings. Three findings at most are shown, the furthest past this board's own normal first. A ticket back from done takes the first slot.
- Check any of them against the board. Each one carries the numbers it was derived from: how many tickets, how long, and how many finished stays the norm came from.
- Read the footer. It says how much was looked at, how much is in flight, and how many columns are being watched.
The footer is the point of the product. It is what makes a quiet morning a result rather than an absence.
To see what the morning was measured against, open "How this was counted". It shows how much of the board was looked at, how much of it was standing still, and how far back the stays behind the norms reach.
The sample each norm was built from is printed where it is used: in the sentence under the finding itself.
The states you will see
| The card says | What it means |
|---|---|
| Pick a board to watch | Added to the dashboard and not yet pointed at a board — the first thing every install shows |
| Findings | An ordinary morning with something on it |
| Nothing unusual | Everything in flight is moving the way this board usually moves |
| Reading this board's history | The first walk, or a restart after a scope change |
| Not this morning's board | The last read is more than a quarter of a working day old — about two hours on a board with declared working hours, six without — the numbers are shown with their age rather than hidden |
| The last read did not finish | Jira refused or failed; the previous card is kept and marked |
| You cannot open that board | Your Jira permissions, not the gadget's — ask whoever set it up |
| No subscription | The site's Outlier subscription has ended |
Each of them, drawn rather than described. The two that keep a card keep its buttons, and what those copy carries the banner with it.
Two more things appear over a card rather than instead of one, so they are not in the table:
- a line counting down the days left in the trial;
- if the gadget cannot reach the app at all, a line saying so, and that reloading the dashboard usually fixes it.
Optional, any time
The card works once the three steps above are done. Everything below is for later: what a team may change, and then what the Jira administrator who installed it needs to know.
Copy it into a thread
- To paste the card into Slack, Teams or a Jira comment, press Copy. It puts the card into your clipboard as text.
- To include the numbers behind each finding, press with evidence.
The card is built to travel to where the standup already happens, rather than to gather people around a dashboard. The text is assembled from the same numbers and the same sentences as the card, so the two cannot say different things in front of the team.
Where the text differs from the card, and why
It differs where a thread is not a card, and each difference is deliberate:
- Where two findings would ask the same question word for word, the card prints it once: three in a row stops being a question and becomes a template. The text keeps it on every line, because a line pasted into a thread is read on its own.
- The date is written the way a thread writes dates.
- The footer is spelled out rather than folded away.
- Copy leaves out the line of evidence under each finding. On a morning with findings it also leaves out what was carried over or cleared since yesterday, and the folded half of the footer. with evidence puts all of it back. On a quiet morning the two copy the same text.
Ask Rovo why
Where your site has Rovo, a third control appears: Ask Rovo why. It opens your own Rovo with the card and one question already written: what in the comments or the linked work explains these waits.
Outlier deliberately does not read descriptions, comments or linked work. That is exactly why the question is worth handing to something that does.
- It opens Rovo; it does not run it. Nothing is spent by the card being drawn, and nothing by the button being there. Whatever happens after a press is metered by Rovo, the way any other conversation in it is.
- Whether it appears is not ours to set. The control asks Atlassian whether this reader has Rovo, and draws itself only if the answer is yes. On a site without Rovo, or for a person who does not have it, there is no button and nothing else changes about the card.
- There is no switch here to turn it off. The switch is the one your organisation already has.
What goes into the question, whose permissions and credits it runs on, and where the answer goes are in Privacy → Ask Rovo why.
Post it before standup, on a schedule
Copy needs somebody to press it. If the standup happens at a fixed time in a channel, a rule can fetch the same morning and put it there. Nobody has to visit the board.
Outlier does not deliver it. It answers when your own rule asks: your trigger, your schedule, your channel, your credentials. Nothing it reads leaves your Atlassian site except through the step you write.
That is the whole reason it works this way: an app that posted to your Slack itself would need an address outside Atlassian, and this one has none.
- Add a triggerin Automation, build a rule with the trigger you want:
Scheduledfor a fixed time on working days. - Add the Outlier stepadd the step Read this morning's questions, and pick the card it reads.
- Add the step that carries ita Slack or Teams step, an email or a comment, with one of the step's values in it.
Pick the card the step reads
The step asks for one thing. The form below is that step, drawn from the same component the rule editor uses. It is a sample rather than something to fill in here, and the Next it mentions belongs to the rule editor around it.
One of the cards already on a dashboard. It knows the board it watches, the filter and the labels, so there is nothing else to set here. Press Next when you have picked one.
The card already knows the board, the saved filter and the labels, so there is nothing else to fill in.
Where one board carries two Outlier gadgets, they are told apart by what each is narrowed to, or by a quick filter, or by the day it was added.
Use what the step hands back
The step offers four values to use in the step that follows:
| Value | What it is |
|---|---|
{{fetchedOutlierMorning.text}} | The morning as text. Use it in a message field — a Slack or Teams step, an email, a comment |
{{fetchedOutlierMorning.textJson}} | The same text, escaped, for pasting between the quotes of a JSON field |
{{fetchedOutlierMorning.said}} | yes when the morning raised something, so a rule can skip a quiet one |
{{fetchedOutlierMorning.state}} | One of findings, quiet, learning, stale or failed — what kind of morning it is, in a word |
Take them from the smart-value picker rather than typing them. Automation composes that name from the app's own manifest.
In a hand-written JSON body, use textJson: {"text": "{{fetchedOutlierMorning.textJson}}"} is valid JSON.
Why there are two forms of the text
Automation substitutes a value exactly as it is, and the morning has line breaks in it. Pasted into a message field, that is what you want.
Pasted between the quotes of a hand-written JSON body - which is how an incoming webhook is usually addressed - raw line breaks make the body invalid. The endpoint answers with an error that says nothing about why. textJson is the same morning with those escaped.
Know what happens when the read fails
When the last read of the board did not finish, the step still answers. It hands back one sentence saying so, with said set to no and state set to failed. It answers the same way while the board's history is still being read (learning) and when the last read is too old to be this morning's (stale). A rule that posts unconditionally posts that sentence into the channel; a condition keeps it out.
The rule itself stops, and the reason goes to its audit log rather than the channel, in three cases only:
- The step points at a gadget that has been repointed or removed, or names no gadget at all.
- Whoever the rule runs as cannot open the board.
- The site's subscription has lapsed. The step needs a subscription, and stops rather than degrades without one. The card says the same thing in its own words to whoever opens it.
Which condition to use
A quiet morning still says something. That is the point of the product: the text is never empty. Put the condition before the step that posts.
| Condition | What reaches the channel |
|---|---|
| None | Every answer, including the sentence saying a read did not finish |
said equals yes | Only mornings with findings. The quiet ones are skipped, and so are learning, stale and failed |
state equals findings or quiet | Every real morning. The three that are not are held back |
state equals failed or stale | Only a read that broke or went old - the rule below |
The cost of a condition on said: a channel that goes quiet looks the same whether the board was calm or the collection broke, because both answer no. state names them apart, and it is the one to branch on if you want to be told when something is wrong. The card on the dashboard says the same: which of its states it is in, with the age of the last read on it.
Be told when it stops
We cannot tell you: the app has no address outside Atlassian and cannot write into Jira. Your own rule can, with a condition on state rather than said (why).
Do this at setup, not after the first silence. The failure this guards against looks exactly like nothing happening.
- Build a second rule, scheduled weekly.
- Give it one condition:
If
{{fetchedOutlierMorning.state}}equalsfailedorstale, send a message to whoever administers Jira here, with{{fetchedOutlierMorning.text}}in it.
That message is the app saying what is wrong, in its own words, to the person who can fix it, on a schedule you chose.
Change what it watches
Press Change in the configuration. It reopens the picker. You can also:
- narrow to labels, to a quick filter, or to the kinds of work the board carries - epics and subtasks are left out to begin with;
- choose which columns count as review;
- set the working week and hours;
- frame the card by open sprints.
Narrowing changes what the gadget measures, so it starts the norms again. The form warns you when a change would do that. The warning goes away if you put the setting back.
The working week belongs to the board, not to you. A team that rests on Friday and Saturday says so here. A reader in another timezone does not change it by opening the dashboard.
Keep parked work off the card
A column can be a container by design: a parking bay, or a queue for work blocked on somebody else. A card that raises the same true thing every morning teaches its reader to stop looking.
Name a label under Never raise tickets labelled. Tickets carrying it stay off the card.
Unlike narrowing, this costs the board nothing. The ticket is still read, and still counts towards what a usual wait here looks like. A team cannot move its own baseline by tidying up. That is also why this row raises no warning about starting the norms again.
A label cannot be both. Narrowing to a label un-parks it.
Split a board between teams
Use one gadget per stream, each narrowed to that stream's labels.
Mixed streams share a norm, and a norm built from two teams describes neither. On a board carrying three kinds of work at three speeds, the same column's norm came out at 16.5 working days read whole and 5.0 read as one stream.
There is one condition. Narrowing costs the gadget the rest of the board's history. A stream has to finish enough work of its own to be measured: fifteen completed stays in a column. The card says so until it has them.
A stream of twenty tickets in a quarter spent six mornings of seven still learning, and raised nothing, while the whole board went on speaking. If your stream is that thin, read the board's own card. The method page says what that costs.
Find every card on the site
Installing is site-wide. After that, anybody can put a card on a dashboard without asking. That is deliberate: a card is a view of a board somebody already has access to. It also means the person who installed it has no idea how many exist.
Open Jira settings → Apps → Outlier. It lists each card, the board it watches, what it is narrowed to, and when it was last opened.
Read the Last opened column: a card nothing reads stops being collected for, and later forgotten. Remove it says when, and what counts as reading.
Nothing on that page can change a card. To stop one, remove the gadget from its dashboard. The page is there so you can find the one to remove.
Know what it costs your Jira
The person who installs this is the one who answers for it, so here is what it spends: about thirty requests a day for one board and a few hundred for ten, plus a few each time somebody opens the card - not thousands. The background figures were counted by running the shipped code against a stub of the two Jira search APIs; what a card costs when it is opened, over up to three hundred tickets in flight, was read from the code rather than counted.
- The bill tracks how much the board moves, not how large it is. The collection reads only what changed.
- A second gadget with the same settings is not a second collection. One narrowed differently, or set to another working week, is its own walk and its own pass.
- The cost per board falls as boards are added. What they share is read once.
What this does not tell you is latency, or where your site's own rate limits sit. Those belong to your instance and your plan, and we would be guessing.
What it asks Jira, request by request
| When | What it asks Jira |
|---|---|
| The first walk, once | Reads at one request per fifty tickets read, plus one status lookup per two hundred, spread over several wake-ups rather than made at once |
| A pass that is not due | Nothing at all |
| A pass that reads | One request for the site's status dictionary, plus three per board — the board's configuration, the saved filter behind it, and one search — plus one more search per fifty tickets that actually moved since the last pass |
| After a board is forgotten | As the app, each hourly sweep until every ticket row has been checked: for each board left, its configuration and saved filter, and one search per hundred ticket rows. Never more than sixty requests a pass. A site that has forgotten no board pays nothing |
| A card drawn, or a rule asking | As the person looking, or as whoever the rule runs as: the board's configuration, one search per fifty tickets in flight with their changelogs, up to three hundred tickets, and a count of the work at rest. A card framed by sprints also asks for the open sprints and which tickets are in them. A rule also reads the saved filter |
The unit is a pass, not an hour. The app wakes every hour but only reads a board when that board is due: often in the morning it is read in, more slowly through the working day, rarely at night. That comes to about fifty-three passes a week.
- One watched board is four requests a pass, and about thirty a day.
- Ten boards on the same site are thirty-one a pass, because the dictionary is read once for all of them.
The first walk on a board of a thousand tickets is about twenty-five requests, spread over five wake-ups. Five thousand is about a hundred and twenty-five, over twenty-five wake-ups.
Remove it
- Delete the gadget.
- Stop any rule that reads it.
Reading a card is what keeps its board read: opening the dashboard, or a rule asking the step for that morning. A card delivered into a channel by a rule keeps its board collected without anybody opening the dashboard. If nothing reads a board for 30 days, Outlier stops reading it too. Everything it derived is deleted at 90.
Uninstalling the app deletes what it stored, rather than leaving it to Atlassian's retention window.
Why a card you are looking at can say its last read is a day old
The norms are built on a schedule; the work in flight is read when you look. The app wakes on its own timer and collects for the boards it is watching, and the last read the card names is that collection. That is why a card can be fresh while what it compares against is a day old, and why it says so.
Ask for help
- If the card says the last read did not finish, press Copy diagnostic on it. It copies the state of collection for that board, as text. It carries no ticket data, and is the fastest thing to send with a question.
- Send it, or a line on what looks wrong, through the support page or to support@chmut.com.
You will hear back within 48 hours. Weekends and Ukrainian public holidays do not count towards them, and the mailbox is read 09:00 to 19:00 Kyiv time.
What is known to be broken
A public issue tracker is a promise this project cannot keep honestly yet: one person answers the mail, and a tracker nobody grooms says less than an empty page does. It fills with duplicates, the dates rot, and a reader cannot tell a dead entry from a live one. This section is what replaces it.
Anything known to be wrong is written here: what it is, when it was found, and what to do about it meanwhile. It comes off the list when the fix ships, not when it is written. If the list is empty, that is the claim being made, and it is a claim you can hold us to.
Nothing is open as of 16 September 2026.
If what you are seeing is not here, it is not something we know about. The address above is the fastest way to change that.