oc Outlier Crosstab Narrow tools for Jira
Outlieran product Install

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.

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.

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

Payments May 17, 09:00 AM
10 Patch Available4 In Progress
12 past the usual wait this morning, more than the 3 items a usual morning here has.
  • 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 4
  • 8 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
A morning with two findings on it: a queue where every ticket is past the usual wait, and a wider one where most are. Each says how it was counted. The ticket keys and column names are shown as the gadget shows them and do not open here — this is a sample, not your board.
  1. 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.
  2. 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.
  3. 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.

Payments May 31, 09:00 AM
10 Patch Available5 In Progress
Everything past the usual wait here was raised on an earlier morning — 9 items in all.
findings on 2 of the last 10 mornings on this card
9 past the usual wait this morning, more than the 1 item a usual morning here has.
carried over: the Patch Available queue, 7 of 10 waiting, oldest 81 working days (about 4 months)
carried over: the In Progress queue, 2 of 5 waiting, oldest 62 working days (about 3 months)
A morning with nothing new on it. The two queues were raised before, so they are carried rather than repeated — and the footer still says what was examined, which is what makes this an answer rather than a blank card. The ticket keys and column names are shown as the gadget shows them and do not open here.

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 saysWhat it means
Pick a board to watchAdded to the dashboard and not yet pointed at a board — the first thing every install shows
FindingsAn ordinary morning with something on it
Nothing unusualEverything in flight is moving the way this board usually moves
Reading this board's historyThe first walk, or a restart after a scope change
Not this morning's boardThe 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 finishJira refused or failed; the previous card is kept and marked
You cannot open that boardYour Jira permissions, not the gadget's — ask whoever set it up
No subscriptionThe 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:

The card in each of its states
Pick a board to watch.
Open the ••• menu at the top right of this gadget and choose Edit.
It then watches that board and asks a few questions each morning about work sitting longer than it usually does there.
Payments May 17, 09:00 AM
10 Patch Available4 In Progress
12 past the usual wait this morning, more than the 3 items a usual morning here has.
  • 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 4
  • 8 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
Payments May 31, 09:00 AM
10 Patch Available5 In Progress
Everything past the usual wait here was raised on an earlier morning — 9 items in all.
findings on 2 of the last 10 mornings on this card
9 past the usual wait this morning, more than the 1 item a usual morning here has.
carried over: the Patch Available queue, 7 of 10 waiting, oldest 81 working days (about 4 months)
carried over: the In Progress queue, 2 of 5 waiting, oldest 62 working days (about 3 months)
May 17
Reading Payments’s history.
reading the history now — the first card appears as soon as it finishes. It is the wait before the first card, not a daily one.
Last read 3 days ago. These are not this morning’s numbers.
Payments last good read May 17, 09:00 AM
10 Patch Available4 In Progress
  • 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 4
  • 8 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
The last read of this board did not finish.
It started failing 26 hours ago. Everything below is from the last read that finished.
Payments last good read May 17, 09:00 AM
10 Patch Available4 In Progress
  • 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 4
  • 8 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
This gadget watches Payments, which you cannot open.
Ask whoever set it up for access to that board, or point this gadget at one you can see.
There is no subscription for Outlier on this site.
A Jira administrator can start one from Manage apps. This gadget stays quiet until then.
The card in each of the eight states the table above lists, one at a time. The ticket keys and column names are shown as the gadget shows them and do not open here.

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

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.

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.

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 step's configuration: one field, a list of the Outlier cards already on a dashboard. The ticket keys and column names are shown as the gadget shows them and do not open here.

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:

ValueWhat 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:

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.

ConditionWhat reaches the channel
NoneEvery answer, including the sentence saying a read did not finish
said equals yesOnly mornings with findings. The quiet ones are skipped, and so are learning, stale and failed
state equals findings or quietEvery real morning. The three that are not are held back
state equals failed or staleOnly 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.

  1. Build a second rule, scheduled weekly.
  2. Give it one condition:

If {{fetchedOutlierMorning.state}} equals failed or stale, 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:

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.

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
WhenWhat it asks Jira
The first walk, onceReads 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 dueNothing at all
A pass that readsOne 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 forgottenAs 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 askingAs 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

  1. Delete the gadget.
  2. 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

  1. 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.
  2. 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.