Visual Encoding

Visual Encoding in Targetprocess supports color-coded highlighting of cards on boards and timeline views and lanes in lists according to custom rules and conditions.

Requires Targetprocess 3.6.1+ (Multicolor and custom color support are added in 3.7.0)

Color-coded highlighting

You can highlight cards on the Views using your own rules. It works for all View zoom levels except the smallest level.

To set up Visual Encoding on your view, access Actions > Encoding menu option. Visual Encoding tab looks like this:

Advanced Filters for custom rules and conditions

To specify rules use the same syntax as for Filters.

Supported Colors

You can choose color from palette or set your own manually.

Usage of multiple rules and conditions together

If you have several rules applicable to the card, it will be highlighted with first three colors.

In this case, "About Us page" card meet all rules but it is highlighted with three colors, and doesn't highlighted with color of the fourth rule.

You can also prioritize rules via drag-n-drop to determine the rules' order of importance.

There is no option to apply only first matching rule. As a workaround it is possible to exclude condition of the first rule from the second rule using AND, OR, NOT logical operators and brackets.


You can specify different color saturation to highlight cards by property in order of importance. For example, you can use the following rules for Business Value. The greater the Importance, the more saturated color will be applied.

You can also use color saturation to highlight some intervals of property. For example, for Effort property you can use the following set of rules. And it shows which Feature has User Stories with greater Effort.

Another use case is highlighting by Tags:

You can highlight cards that have too long of a Cycle Time:

People who work a lot, have more than 10 items and have Allocation greater than 100%:

User Stories with a few Bugs and with a lot of Bugs:

You can highlight a specific card by Name or by Id:

Highlight Requests by Email and Phone source types:

For Progress use values from 0 to 1:

And, of course, you can mix all the rules:

It is not possible to apply color to whole lanes on board views, only cards can be highlighted.

It also works at Timelines:

And it works for Lists (only on the cards level, not hierarchy levels yet):

One more existing feature that could be helpful when Visual Encoding cannot be configured is Colored Custom Fields.

Reuse of encoding rules

Once you configured Visual Encoding custom rules for one of your views, we recommend you to save the view as a template. New views can be created from this template in future.

Save view as Template

Global visual encoding rules

Since version 3.11.1 it’s possible to create a predefined set of global Visual Encoding rules that can be applied to all views and all users.

To do this, simply select the corresponding checkbox in the Visual Encoding tab...


...and add the global rules that you want applied to every view in the system:


This setting can be managed only by Administrators; other users can see it in read-only mode.

Visual Encoding by size

The idea to make it possible to adjust size of cards according to complexity or total effort has been suggested for our public backlog, however, the development has not been started yet.

  • Steve Coates

    great to see this feature – possible to colour cards based on custom fields though?

  • Anna Ko

    Hi Steve,
    Sure, you are welcome to start typing the custom filed name at Visual Encoding tab filter to get the drop down of possible values.
    Please, note that if you have any mashups that use color coding, they may overwrite visual encoding color. We might consider fixing it in future, but for now it’s expected behavior.

  • Marcel Tschanen

    Cool new feature, but I have a few questions:
    – To what extend does it replace the “Board classes of service” mashup?
    – Are the color encodings local to every view, or global as in the above mentioned mashup?

  • Anna Ko

    Hi Marcel,

    Indeed, it’s not mentioned in the article above that Visual Encoding works per current view only (no matter of whether it is public, private or custom sharing). I will make sure to correct the guide soon.

    As per Board Classes of Services mashup, the main difference is that it applies globally, to all views. It has also a choice of single or gradient type of background. If it’s ‘single’, the first matching color will be applied as background. For ‘gradient’ choice, all colors from all found rules will be applied as gradient background.

  • Marcel Tschanen

    Hi Anna,

    Thanks for the clarification. So Visual Encoding is a perfect add on to Board classes of service.

  • Alex

    Unfortunately this is not possible so far according to existing known limitation:… – I’ve added your vote to change this in future.

  • Giorgio

    I noticed some interference with the “Board Classes of Services” mashup. Pay attention.

  • Anna Ko

    Hi Giorgio,

    Could you please, provide us with some examples of the interference you have observed? That would be helpful for troubleshooting. Thanks, much appreciated!

  • Vance Esplin

    How would I highlight bugs by how log they have been open? I know you have the ?Createdate is None or Createdate >= Today -10(days) which does work but then if I add a couple more rules like ?Createdate is None or Createdate >= Today -30(days) & ?Createdate is None or Createdate >= Today -60(days) the cards are highlighted with three different colors – I just want the 1-10 open cards to a certain color then the 11-30 day cards to be another color and the 31-60 cards to be another color – can you show me the formula for that? I also tried a date range like this : ?CreateDate >= ’01-Jan-2014′ and CreateDate < = '27-Dec-2014' which works but I would have to constantly update the date range

  • Julia Khmylova

    Hi Vance,

    You can combine these two approaches, and use a range with relative dates:

    ?Createdate >= Today -10(days)
    ?Createdate >= Today -30(days) and Createdate < Today -10(days)
    ?Createdate >= Today -60(days) and Createdate < Today -30(days)

    Hope this helps,

  • Vance Esplin

    That worked great! Thank you!

  • Vance Esplin

    One more question – someone in my organization asked this:

    “Can we apply this to Test Plan and Test run types.. I would want to change the color on the last time the Test Plan or Run was executed or failed ….

    Green …. Yellow …. Red

    Green: last 5 runs passed

    Yellow: one of last 3 runs failed

    Red: 3 out of 5 failed runs

    Do rules give you the ability to do something like this ??”

    Is that possible? In the query string it looked like test plans a uses were pretty limited.

  • Alex

    It is possible to filter only by very recent run results. For example, for test plan run card:
    Green color: ?TestPlan.TestCases.Count == PassedCount
    Which means: during last test plan all tests where marked as passed.
    More complex filters are not supported yet. I’ll add your requirement here to the corresponding idea on our Uservoice forum:

  • Julie Peppers

    I’ve used custom filters to color cards by project for iteration planning views, but I’ve rearranged our projects to use features more heavily, and I would like to color cards by feature (since we may be planning several features within the same project) – I can’t find any filters to use…is this possible?

  • Andrey Metelsky

    @juliepeppers:disqus It`s possible for User Stories orand Bugs to color cards by Features. In this case you can use filter, for instance: ?Feature.Name is ‘YourFeatureName’. Please, note that there are some entities (as Tasks, Requests, Test Plans ets.), that don`t have relations with Features directly. So these entities you won`t be able to filter by Features therefore you don`t find this filter in drop down menu.

  • Julie Peppers

    Thanks! Filters has bee the thing I’ve had the hardest time figuring out – is there a syntax guide with a comprehensive list of filtering methods? I’ve been using ?’IBT’ in Project.Abbreviation to filter by project, but when I tried to apply the same using Feature.Name, it didn’t work (I got an error saying there is no feature member in assignable)

  • Julie Peppers

    I just tried the syntax you gave me, and I got the same error

  • Kate

    @juliepeppers:disqus Much depends on what entities you have selected as cards on View. Unfortunately it is not clear from the screen shot attached. If the cards are US and Bug – the filter should work. Let us know more on your View setup and we’ll assist. Should you want to know more on Filters, please check Basic and Advance filters sections in

  • Julie Peppers

    Thanks – this was very helpful. When I had user stories, tasks, and bugs selected, the filter didn’t work, but when I only had user stories and bugs in the view, it worked fine.

  • Kate

    @juliepeppers:disqus Task does not have direct relation to Feature, that is why it is not possible to filter Tasks by Feature. This explains why filter was not available in case US, Bug and Task are selected as cards

  • Thomas


    I created a view where I can see all my open tasks, requests and bugs.
    Now I want to highlight the bugs depending on its severity.

    I have tried few but it doesn’t work
    ?Severity.Name is ‘blocking’ (works on a board which only displays bugs)
    ? is ‘blocking’
    ?project.bugs.where( is ‘blocking’)

    It does work well with BusinessValue but not with Severity.

    Do you have a solution? thank you

  • guest

    Is there a way to use Custom Fields in the filter?

  • Andrey Metelsky

    Sure, you are welcome to start typing the custom filed name at Visual Encoding tab filter to get the drop down of possible values.
    Please, note that if you have any mashups that use color coding, they may overwrite visual encoding color. We might consider fixing it in future, but for now it’s expected behavior.
    There are also some custom fields that you can`t use for filtering: Calculated, URL, Temaplate URL, Targetprocess Entity and Multiple Targetprocess Entity. Please find out more here:

  • guest

    I must be missing something. I created a custom field with drop down values. When I try to use it in the visual encoding it does not show up.

  • Alex

    We’ll reply in private communication, within a ticket in our help desk portal.

  • Stefano Liboni

    Hi, how do I specify in the expression if PlannedDate is null?

  • Natalia

    Hi Stefano,
    You are welcome to use one of the following filters:
    ?PlannedEndDate is None and PlannedStartDate is None
    ?PlannedEndDate is None or PlannedStartDate is None

    The first one will color cards that have no planned dates set, the second one will color cards that have at least one Planned Date empty.

  • Stefano Liboni

    Hi, tnks for the hint. What I’m trying to do is to figure out how query TP via API.
    I found the docs to be a little short in the expression syntax 🙁 and in general the same expression I can put in the filter textbox in the site are not working via API and viceversa… that’s a strange behavior.

    I have this call that is not working (response is 400 ‘Bad Request’):… eq ‘To Do’) and (PlannedStartDate < Today)

    Notice that if I change the ‘< ' into a 'is' it's not working eather.

    While removing the (PlannedStartDate < Today) clause works fine (but not what I wanted anyway):… eq ‘To Do’)

    It’s not the “and” clause since this too is working fine:… eq ‘Closed’) and (Name contains ‘[Recurrent]’)

    Maybe I’m making some bad mistake?

  • Kate

    Hello @disqus_jJT43Sq6Ry:disqus ,

    REST API is using slightly different syntax. It is available at… Check “filtering’ section.
    In your case the query will look like this:
    api/v1/requests?where=(EntityState.Name eq ‘Closed’) and (PlannedStartDate lt ‘2016-05-19’)
    “Today” operator is not available in REST. Instead, date should be used.

    Let us know if you have more questions,

  • Bethan Evans

    Hi, I’m on Version but I can’t see the visual encoding options anywhere – do I need to activate them in some way?

  • Bogdan Skaskiv

    Hello Bethan,
    You don’t need to activate anything special for visual encoding to work. Please, check Actions->Set Up View on one of your boards. Among the appeared tabs you should be able to see the last one “Visual Encoding”:

  • Darren Lynch

    What am I doing wrong?

    ?Bugs.Count > 0

    there is no ‘Bugs member in assignables?

  • Alex

    @disqus_tffmhUbeJE:disqus Darren most likely you have several different types of cards selected. Say User Stories and Features together. And there is known bug in filters that prevents this filter from correct work. Until the bug is fixed, please create two separate views: one for Features and another one for User Stories. ?Bugs.Count > 0 filter should work on both of them. Link to track status of the bug:

  • Darren Lynch

    Cheers alex, that was it. is there any way to colour by amount of bugs that arn’t done? and furthermore incorporate inbound relation bugs?

    ?bugs.Where(EntityState.Name is not ‘Done’).count + inboundrelations.where(entitystate.Name is not ‘done’).count > 4

    this is how I want it to work, just to try illustrate what I want.

  • Natalia

    Hi Darren,
    Unfortunately, there is no way to color cards by the amount of bugs that are not done or the number of related cards that are not done. Conditions are not supported in .count filters

  • Morten Liberoth

    Any (good) reason why I can’t use epics in the rules for visual encoding? It doesn’t seem to pop-up in the dialog – any hints? 🙂

  • Morten Liberoth

    Feature.Epic.Name is ‘MyEpicName’ did the trick

  • Alex

    Yes, it indeed works this way only. Described in our guide and hopefully will be fixed in future:

  • guest

    Is there any way to visually encode user stories based on whether or not source control (code) has been checked in for that story?

  • Tristan Bailey

    So good to see lots of ideas for options, and examples of the filters

    I am trying to figure is there a way to colour, “All Tasks” as my user story view i want to see them more than the edge colour.

  • Tristan Bailey

    just found an api ref doc and tried to work : ?EntityType.Name is ‘Task’

  • Natalia

    Hi Tristan,
    Great that you found the solution!

  • Markus Renz

    I’m searching for a way to color code cards which are added to a iteration at a later time (x days after the iteration started)

  • Kate

    It is possible to use History records in filter. However, history is entity type specific. It means, that it will only work on Views with User Stories ONLY or Bugs ONLY. Unfortunately, right now there is no way to filter both stories and bugs simultaneously.
    The filter will look like this: ?not History.Where(Iteration.Id is 123 and Date <= '01-Jan-2018')

  • Markus Renz

    Thanks for the quick response. Unfortunately it looks like I can’t use this method since we are using Team iterations which seem to be no part of the History filter element.

  • Kate

    @markus_renz:disqus So far history for team Iterations is not supported in DSL filters on Views. But it is still possible to get the list of entities, that were added into team Iteration after its start date. For this you are welcome to use Vizydrop report on history changes and transitions:

    Please feel free to e-mail if you need help configuring this report

Still have a question?

We're here to help! Just contact our friendly support team

Find out more about our APIs, Plugins, Mashups and custom extensions. Join our community of passionate users and even discuss directly with our developers.