Reports by Program Increment

The provided use-case is possible in the scenario when using Jira Data Center with Easy Agile Programs app v6.3.0 or higher

If you use both apps (eazyBI and Easy Agile Programs) you can analyze data by Program Increments.

Here are the steps to setup eazyBI account and import data from Easy Agile Programs app into eazyBI.

  1. define the Program increment field from eazyBI advanced settings using Program Increment Jira custom field ID instead of NNNNN
#easy Agile Program Increment
[jira.customfield_NNNNN]
name="Program Increment"
data_type = "string"
dimension = true
multiple_values = true
split_by = ","

in same way, define the “Program” field using Jira custom field ID instead of MMMMM

[jira.customfield_MMMMM]
name="Program"
data_type = "string"
dimension = true
separate_table = true
  1. import Program Increment and Program fields in eazyBI from the import options page > custom fields tab

  2. define one more new calculated field from advanced settings with separate_table = true option, new name, and new field_id - to create a calculated field with Javascript which during data import copies all issue value combinations from Program Increment field in a single-select dimension that in later steps can be enriched in eazyBI with additinal data from Easy Agile Programs API.

Repace NNNNN with Program Increment field ID

#easy Agile program increment copy
[jira.customfield_NNNNN_copy]
name="PI dim"
data_type = "string"
dimension = true
separate_table = true
javascript_code = '''
  if(issue.fields.customfield_NNNNN) {
    issue.fields.customfield_NNNNN_copy = issue.fields.customfield_NNNNN;
}
''' 

** I’m using name “PI dim” in my example but any unique name can be used (that is not already imported as field in eazyBI)

When the new field is defined in advanced settings, ensure that the field is imported in eazyBI from the import options page > custom fields tab

  1. use additional data import > Rest API source application in eazyBI where import data from Easy Agile Programs API using the following endpoint example (update JIRA_HOME and {id} for program
https://JIRA_HOME/rest/eap/latest/program/{id}

In the eazyBI column mapping step, choose the new single-select dimension for additional data import as explained here:

  1. create eazyBI reports with Program Increment dimension or import the dashboard definition from the example below

Finally, you can have a nice dashboard to analyze data by Program Increments between program increment start date and program increment end date.

Dashboard definition if you want to import this example

{
  "name": "Overview",
  "definition": {"pages":[{"cube_name":"Issues","name":"Program","selected_set":["[Program].[All Programs]"],"members":[{"depth":0,"name":"All Programs","full_name":"[Program].[All Programs]","drillable":true,"type":"all","caption":"All Programs","expanded":true},{"depth":1,"name":"Commercial Space Travel","full_name":"[Program].[Commercial Space Travel]","caption":"Commercial Space Travel"}],"current_page_members":["[Program].[Commercial Space Travel]"]},{"cube_name":"Issues","name":"Program Increment","selected_set":["[Program Increment].[All Program Increments]"],"members":[{"depth":0,"name":"All Program Increments","full_name":"[Program Increment].[All Program Increments]","drillable":true,"type":"all","caption":"All Program Increments","expanded":true},{"depth":1,"name":"PI 3.24: Launch","full_name":"[Program Increment].[PI 3.24: Launch]","caption":"PI 3.24: Launch"}],"current_page_members":["[Program Increment].[PI 3.24: Launch]"]},{"cube_name":"Issues","name":"Project","selected_set":["[Project].[All Projects]"],"members":[{"depth":0,"name":"All Projects","full_name":"[Project].[All Projects]","drillable":true,"type":"all","caption":"All Projects"}],"current_page_members":["[Project].[All Projects]"]},{"cube_name":"Issues","name":"Issue Type","selected_set":["[Issue Type].[All Issue Types]"],"members":[{"depth":0,"name":"All Issue Types","full_name":"[Issue Type].[All Issue Types]","drillable":true,"type":"all","caption":"All Issue Types","expanded":true},{"depth":1,"name":"Story","full_name":"[Issue Type].[Story]","caption":"Story"},{"depth":1,"name":"Task","full_name":"[Issue Type].[Task]","caption":"Task"},{"depth":1,"name":"Bug","full_name":"[Issue Type].[Bug]","caption":"Bug"}],"current_page_members":["[Issue Type].[Story]","[Issue Type].[Task]","[Issue Type].[Bug]"]},{"cube_name":"Issues","name":"Sprint","selected_set":["[Sprint].[All Sprints]"],"members":[{"depth":0,"name":"All Sprints","full_name":"[Sprint].[All Sprints]","drillable":true,"type":"all","caption":"All Sprints"}],"current_page_members":["[Sprint].[All Sprints]"]}],"reports":[{"width":100,"cube_report_name":"Program increment overview","cube_name":"Issues"},{"width":50,"height":440,"cube_report_name":"BURNUP - # of issues","cube_name":"Issues"},{"width":50,"height":440,"cube_report_name":"BURNDOWN - # of issues","cube_name":"Issues"},{"width":50,"height":690,"cube_report_name":"EPIC Progress - bar chart","cube_name":"Issues"},{"width":50,"height":690,"cube_report_name":"EPIC Progress - table","cube_name":"Issues"}],"description":"\u003ch1\u003eDashboard for Program Increment\u003c/h1\u003e\n\n\u003ch2\u003e# of issues\u003c/h2\u003e","pages_options":{"hide_common":true,"nonempty_crossjoin":true}},
  "dashboard_reports": [ {
    "cube_name": "Issues",
    "cube_reports": [ {
       "name": "Program increment overview",
       "result_view": "gauge",
       "definition": {"columns":{"dimensions":[{"name":"Measures","selected_set":["[Measures].[Scope]","[Measures].[Delivery]","[Measures].[Total progress]","[Measures].[Program Increment start date]","[Measures].[Today's date]","[Measures].[Program Increment end date]","[Measures].[Days until PI ends]"],"members":[]}]},"rows":{"dimensions":[{"name":"Issue","selected_set":["[Issue.Advanced Roadmaps].[All Issues]"],"members":[],"bookmarked_members":[]}],"filter_by":{"conditions":[{"expression":["[Measures].[Time in PI]"],"operator":"\u003e","value":"0"}]},"nonempty_crossjoin":true},"pages":{"dimensions":[{"name":"Program","selected_set":["[Program].[All Programs]"],"members":[{"depth":0,"name":"All Programs","full_name":"[Program].[All Programs]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Commercial Space Travel","full_name":"[Program].[Commercial Space Travel]","parent_full_name":"[Program].[All Programs]"}],"bookmarked_members":[],"current_page_members":["[Program].[Commercial Space Travel]"]},{"name":"Program Increment","selected_set":["[Program Increment].[PI 1 2023]","[Program Increment].[All Program Increments]"],"members":[{"depth":0,"name":"All Program Increments","full_name":"[Program Increment].[All Program Increments]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"PI 3.24: Launch","full_name":"[Program Increment].[PI 3.24: Launch]","parent_full_name":"[Program Increment].[All Program Increments]"}],"bookmarked_members":[],"current_page_members":["[Program Increment].[PI 3.24: Launch]"]},{"name":"Project","selected_set":["[Project].[All Projects]"],"members":[{"depth":0,"name":"All Projects","full_name":"[Project].[All Projects]","drillable":true,"type":"all"}],"bookmarked_members":[],"current_page_members":["[Project].[All Projects]"]},{"name":"Issue Type","selected_set":["[Issue Type].[All Issue Types]"],"members":[{"depth":0,"name":"All Issue Types","full_name":"[Issue Type].[All Issue Types]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Story","full_name":"[Issue Type].[Story]","parent_full_name":"[Issue Type].[All Issue Types]"}],"bookmarked_members":[],"current_page_members":["[Issue Type].[Story]"]}],"nonempty_crossjoin":true},"options":{"nonempty":true},"view":{"current":"gauge","maximized":false,"gauge":{"swap_axes":false,"series_options":{},"gauge_limit":{"[Measures].[Today's date]":[{"color":"#FFBC29"}],"[Measures].[Scope]":[{"color":"#B31238"}],"[Issue.Advanced Roadmaps].[All Issues],[Measures].[Delivery]":[{"color":"#00875A"}],"[Issue.Advanced Roadmaps].[All Issues],[Measures].[Days until PI ends]":[{"color":"#930F34"}]},"only_values":true},"table":{}},"calculated_members":[]}
    },{
       "name": "BURNUP - # of issues",
       "result_view": "line_chart",
       "definition": {"columns":{"dimensions":[{"name":"Measures","selected_set":["[Measures].[Delivery]","[Measures].[Scope]","[Measures].[today]","[Measures].[PI prediction (guideline)]"],"members":[]}]},"rows":{"dimensions":[{"name":"Time","selected_set":["[Time].[Day].Members"],"members":[],"bookmarked_members":[]}],"filter_by":{"conditions":[{"expression":["[Measures].[Time in PI]"],"operator":"\u003e","value":"0"}]},"nonempty_crossjoin":false},"pages":{"dimensions":[{"name":"Program","selected_set":["[Program].[All Programs]"],"members":[{"depth":0,"name":"All Programs","full_name":"[Program].[All Programs]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Commercial Space Travel","full_name":"[Program].[Commercial Space Travel]","parent_full_name":"[Program].[All Programs]"}],"bookmarked_members":[],"current_page_members":["[Program].[Commercial Space Travel]"]},{"name":"Program Increment","selected_set":["[Program Increment].[PI 1 2023]","[Program Increment].[All Program Increments]"],"members":[{"depth":0,"name":"All Program Increments","full_name":"[Program Increment].[All Program Increments]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"PI 3.24: Launch","full_name":"[Program Increment].[PI 3.24: Launch]","parent_full_name":"[Program Increment].[All Program Increments]"}],"bookmarked_members":[],"current_page_members":["[Program Increment].[PI 3.24: Launch]"]},{"name":"Project","selected_set":["[Project].[All Projects]"],"members":[{"depth":0,"name":"All Projects","full_name":"[Project].[All Projects]","drillable":true,"type":"all"}],"bookmarked_members":[],"current_page_members":["[Project].[All Projects]"]},{"name":"Issue Type","selected_set":["[Issue Type].[All Issue Types]"],"members":[{"depth":0,"name":"All Issue Types","full_name":"[Issue Type].[All Issue Types]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Story","full_name":"[Issue Type].[Story]","parent_full_name":"[Issue Type].[All Issue Types]"}],"bookmarked_members":[],"current_page_members":["[Issue Type].[Story]"]}],"nonempty_crossjoin":true},"options":{"nonempty":true},"view":{"current":"line_chart","maximized":false,"line_chart":{"area":false,"swap_axes":false,"data_labels":false,"series_options":{"Delivery":{"color":"#00875A","symbol":false,"type":"spline"},"SCOPE":{"color":"#930F34","symbol":false},"today":{"color":"#FFBC29","dataLabelType":"top horizontal","type":"plotline"},"PI prediction":{"symbol":false,"type":"line-Dash","color":"#B3D4FF"},"PI prediction (guideline)":{"color":"#B3BAC5","type":"line-Dash","symbol":false},"Scope":{"symbol":false,"color":"#930F34","type":"spline"}},"y_axis":{"0":{"max":300}}},"table":{}},"calculated_members":[]}
    },{
       "name": "BURNDOWN - # of issues",
       "result_view": "line_chart",
       "definition": {"columns":{"dimensions":[{"name":"Measures","selected_set":["[Measures].[today]","[Measures].[Cumulative issues resolved]","[Measures].[# of issues guideline]"],"members":[]}]},"rows":{"dimensions":[{"name":"Time","selected_set":["[Time].[Day].Members"],"members":[],"bookmarked_members":[]}],"filter_by":{"conditions":[{"expression":["[Measures].[Time in PI]"],"operator":"\u003e","value":"0"}]},"nonempty_crossjoin":false},"pages":{"dimensions":[{"name":"Program","selected_set":["[Program].[All Programs]"],"members":[{"depth":0,"name":"All Programs","full_name":"[Program].[All Programs]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Commercial Space Travel","full_name":"[Program].[Commercial Space Travel]","parent_full_name":"[Program].[All Programs]"}],"bookmarked_members":[],"current_page_members":["[Program].[Commercial Space Travel]"]},{"name":"Program Increment","selected_set":["[Program Increment].[PI 1 2023]","[Program Increment].[All Program Increments]"],"members":[{"depth":0,"name":"All Program Increments","full_name":"[Program Increment].[All Program Increments]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"PI 3.24: Launch","full_name":"[Program Increment].[PI 3.24: Launch]","parent_full_name":"[Program Increment].[All Program Increments]"}],"bookmarked_members":[],"current_page_members":["[Program Increment].[PI 3.24: Launch]"]},{"name":"Project","selected_set":["[Project].[All Projects]"],"members":[{"depth":0,"name":"All Projects","full_name":"[Project].[All Projects]","drillable":true,"type":"all"}],"bookmarked_members":[],"current_page_members":["[Project].[All Projects]"]},{"name":"Issue Type","selected_set":["[Issue Type].[All Issue Types]"],"members":[{"depth":0,"name":"All Issue Types","full_name":"[Issue Type].[All Issue Types]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Story","full_name":"[Issue Type].[Story]","parent_full_name":"[Issue Type].[All Issue Types]"}],"bookmarked_members":[],"current_page_members":["[Issue Type].[Story]"]}],"nonempty_crossjoin":true},"options":{},"view":{"current":"line_chart","maximized":false,"line_chart":{"area":false,"swap_axes":false,"data_labels":false,"series_options":{"Delivery":{"color":"#00875A"},"Unresolved issues":{"color":"#B31238","symbol":false},"today":{"color":"#FF983D","type":"plotline","dataLabelType":"top horizontal"},"Issues burndown guideline":{"symbol":false,"color":"#B3BAC5","type":"line-Dash"},"# of issues guideline":{"color":"#B3BAC5","type":"line-Dash","symbol":false},"Cumulative issues resolved":{"color":"#00875A","symbol":false,"type":"spline"}},"y_axis":{"0":{"max":300}}},"table":{}},"calculated_members":[]}
    },{
       "name": "EPIC Progress - bar chart",
       "result_view": "bar_chart",
       "definition": {"columns":{"dimensions":[{"name":"Measures","selected_set":["[Measures].[Issues created, %]"],"members":[{"depth":0,"name":"Issues created, %","full_name":"[Measures].[Issues created, %]","format_string":"#0%","calculated":true,"drilled_into_dimension":"Status"}]},{"name":"Status","selected_set":["[Status].[To Do]","[Status].[In Progress]","[Status].[Done]"],"members":[],"bookmarked_members":[{"depth":1,"name":"To Do","full_name":"[Status].[To Do]"},{"depth":1,"name":"In Progress","full_name":"[Status].[In Progress]"},{"depth":1,"name":"Done","full_name":"[Status].[Done]"}]}]},"rows":{"dimensions":[{"name":"Issue","selected_set":["[Issue.Advanced Roadmaps].[Epic].Members"],"members":[{"depth":1,"name":"(none)","full_name":"[Issue.Advanced Roadmaps].[(none)]","drillable":true,"key":"(none)","removed":true}],"bookmarked_members":[]}],"nonempty_crossjoin":true},"pages":{"dimensions":[{"name":"Program","selected_set":["[Program].[All Programs]"],"members":[{"depth":0,"name":"All Programs","full_name":"[Program].[All Programs]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Commercial Space Travel","full_name":"[Program].[Commercial Space Travel]","parent_full_name":"[Program].[All Programs]"}],"bookmarked_members":[],"current_page_members":["[Program].[Commercial Space Travel]"]},{"name":"Program Increment","selected_set":["[Program Increment].[PI 1 2023]","[Program Increment].[All Program Increments]"],"members":[{"depth":0,"name":"All Program Increments","full_name":"[Program Increment].[All Program Increments]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"PI 3.24: Launch","full_name":"[Program Increment].[PI 3.24: Launch]","parent_full_name":"[Program Increment].[All Program Increments]"}],"bookmarked_members":[],"current_page_members":["[Program Increment].[PI 3.24: Launch]"]},{"name":"Project","selected_set":["[Project].[All Projects]"],"members":[{"depth":0,"name":"All Projects","full_name":"[Project].[All Projects]","drillable":true,"type":"all"}],"bookmarked_members":[],"current_page_members":["[Project].[All Projects]"]},{"name":"Sprint","selected_set":["[Sprint].[All Sprints]"],"members":[{"depth":0,"name":"All Sprints","full_name":"[Sprint].[All Sprints]","drillable":true,"type":"all"}],"bookmarked_members":[],"current_page_members":["[Sprint].[All Sprints]"]},{"name":"Issue Type","selected_set":["[Issue Type].[All Issue Types]"],"members":[{"depth":0,"name":"All Issue Types","full_name":"[Issue Type].[All Issue Types]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Story","full_name":"[Issue Type].[Story]","parent_full_name":"[Issue Type].[All Issue Types]"},{"depth":1,"name":"Task","full_name":"[Issue Type].[Task]","parent_full_name":"[Issue Type].[All Issue Types]"}],"bookmarked_members":[],"current_page_members":["[Issue Type].[Story]","[Issue Type].[Task]"]}],"nonempty_crossjoin":true},"options":{"nonempty":true},"view":{"current":"bar_chart","maximized":false,"bar_chart":{"stacked":"percentage","vertical":false,"swap_axes":false,"data_labels":"values","series_options":{"To Do":{"color":"#8993A4"},"In Progress":{"color":"#5A89CE"},"Done":{"color":"#5DC48B"}},"show_key":["Issue.Advanced Roadmaps"]},"table":{}},"calculated_members":[]}
    },{
       "name": "EPIC Progress - table",
       "result_view": "table",
       "definition": {"columns":{"dimensions":[{"name":"Measures","selected_set":["[Measures].[Issue status]","[Measures].[Issues created bars]","[Measures].[# of issues]"],"members":[{"depth":0,"name":"Issues created bars","full_name":"[Measures].[Issues created bars]","drillable":false,"calculation_of":"[Measures].[Issues created]","calculation":"sparkline_bar","format_string":"SparkBarFormatter"},{"depth":0,"name":"# of issues","full_name":"[Measures].[# of issues]","format_string":"#,##0","calculated":true,"drilled_into_dimension":"Status"}]},{"name":"Status","selected_set":["[Status].[To Do]","[Status].[In Progress]","[Status].[Done]"],"members":[],"bookmarked_members":[{"depth":1,"name":"To Do","full_name":"[Status].[To Do]"},{"depth":1,"name":"In Progress","full_name":"[Status].[In Progress]"},{"depth":1,"name":"Done","full_name":"[Status].[Done]"}]}]},"rows":{"dimensions":[{"name":"Issue","selected_set":["[Issue.Advanced Roadmaps].[Epic].Members"],"members":[{"depth":1,"name":"(none)","full_name":"[Issue.Advanced Roadmaps].[(none)]","drillable":true,"key":"(none)","removed":true}],"bookmarked_members":[]}],"nonempty_crossjoin":true},"pages":{"dimensions":[{"name":"Program","selected_set":["[Program].[All Programs]"],"members":[{"depth":0,"name":"All Programs","full_name":"[Program].[All Programs]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Commercial Space Travel","full_name":"[Program].[Commercial Space Travel]","parent_full_name":"[Program].[All Programs]"}],"bookmarked_members":[],"current_page_members":["[Program].[Commercial Space Travel]"]},{"name":"Program Increment","selected_set":["[Program Increment].[PI 1 2023]","[Program Increment].[All Program Increments]"],"members":[{"depth":0,"name":"All Program Increments","full_name":"[Program Increment].[All Program Increments]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"PI 2 2023: Get ready to launch!","full_name":"[Program Increment].[PI 2 2023: Get ready to launch!]","parent_full_name":"[Program Increment].[All Program Increments]"}],"bookmarked_members":[],"current_page_members":["[Program Increment].[PI 2 2023: Get ready to launch!]"]},{"name":"Project","selected_set":["[Project].[All Projects]"],"members":[{"depth":0,"name":"All Projects","full_name":"[Project].[All Projects]","drillable":true,"type":"all"}],"bookmarked_members":[],"current_page_members":["[Project].[All Projects]"]},{"name":"Sprint","selected_set":["[Sprint].[All Sprints]"],"members":[{"depth":0,"name":"All Sprints","full_name":"[Sprint].[All Sprints]","drillable":true,"type":"all"}],"bookmarked_members":[],"current_page_members":["[Sprint].[All Sprints]"]},{"name":"Issue Type","selected_set":["[Issue Type].[All Issue Types]"],"members":[{"depth":0,"name":"All Issue Types","full_name":"[Issue Type].[All Issue Types]","drillable":true,"type":"all","expanded":true},{"depth":1,"name":"Story","full_name":"[Issue Type].[Story]","parent_full_name":"[Issue Type].[All Issue Types]"},{"depth":1,"name":"Task","full_name":"[Issue Type].[Task]","parent_full_name":"[Issue Type].[All Issue Types]"}],"bookmarked_members":[],"current_page_members":["[Issue Type].[Story]","[Issue Type].[Task]"]}],"nonempty_crossjoin":true},"options":{"nonempty":true},"view":{"current":"table","maximized":false,"table":{"row_dimension_headers":{"Issue":true},"cell_formatting":{"[Measures].[# of issues]":{"type":"range","rules":[{"min":"0","max":"0","text_color":"#EBECF0"}]},"[Measures].[Issue status]":{"type":"exact_value","rules":[{"exact_value":"To Do","text_color":"#344563"},{"exact_value":"In Progress","text_color":"#2F579C"},{"exact_value":"Done","text_color":"#00875A"}]},"[Status].[To Do]":{"type":"range","rules":[{"min":"1","text_color":"#344563"}]},"[Status].[In Progress]":{"type":"range","rules":[{"min":"1","text_color":"#2F579C"}]},"[Status].[Done]":{"type":"range","rules":[{"bold":true,"text_color":"#00875A","min":"1"}]},"[Measures].[Issues created bars]":{"type":"exact_value","mdx":"CASE \nWHEN [Measures].[Issue status] = \"To Do\" THEN \"Grey\"\nWHEN [Measures].[Issue status] = \"In Progress\" THEN \"Blue\"\nWHEN [Measures].[Issue status] = \"Done\" THEN \"Green\"\nEND","rules":[{"exact_value":"Grey","text_color":"#8993A4"},{"exact_value":"Blue","text_color":"#5A89CE"},{"exact_value":"Green","text_color":"#5DC48B"}]}}}},"calculated_members":[]}
    } ],
    "calculated_members": [{"dimension":"Measures","name":"Issues history","format_string":"#,##0","formula":"Cache(\n  NonZero(Sum(PreviousPeriods([Time].CurrentHierarchyMember),\n    [Measures].[Transitions to]\n    - [Measures].[Transitions from]\n  ))\n  + [Measures].[Transitions to]\n  - [Measures].[Transitions from]\n)"},{"name":"Program Increment start date","dimension":"Measures","formula":"CASE WHEN\nNOT [Program Increment].CurrentMember IS [Program Increment].DefaultMember\nAND\nNOT [Program Increment].CurrentMember IS [Program Increment].[(none)]\nTHEN\nTimestamptodate(\n[PI dim].[PI dim].GetMemberByKey(\n  [Program Increment].CurrentMember.key\n).get('startd')\n)\n\nEND\n","format_string":"mmm dd yyyy"},{"name":"Program Increment end date","dimension":"Measures","formula":"-- Timestamptodate(\n-- Cast([Measures].[Program Increment endd] as numeric)\n-- )\n\nCASE WHEN\nNOT [Program Increment].CurrentMember IS [Program Increment].DefaultMember\nAND\nNOT [Program Increment].CurrentMember IS [Program Increment].[(none)]\nTHEN\nTimestamptodate(\n[PI dim].[PI dim].GetMemberByKey(\n  [Program Increment].CurrentMember.key\n).get('endd')\n)\n\nEND\n","format_string":"mmm dd yyyy"},{"name":"Time in PI","dimension":"Measures","formula":"Case when\n  DateBetween(\n    [Time].CurrentHierarchyMember.StartDate,\n    [Measures].[Program Increment start date],\n    -- latest date - prediction date or release date\n    TimestampToDate(Max(\n      {[Measures].[Program Increment end date],\n       [Measures].[Program Increment end date]\n      },\n      DateToTimestamp([Measures].CurrentMember)\n    ))\n    )\n  or\n  DateInPeriod(\n    [Measures].[Program Increment start date],\n    [Time].CurrentHierarchyMember\n    )\n Then\n 1\n End","format_string":"#,##0"},{"name":"Delivery","dimension":"Measures","formula":"CASE WHEN\nDateAfterPeriodEnd('today',\n[Time].CurrentHierarchyMember.PrevMember\n)\nOR \n[Time].CurrentHierarchyMember is [Time].CurrentHierarchy.DefaultMember\nTHEN\nCoalesceEmpty((\n  [Measures].[Issues history],\n  [Transition Status.Category].[Done]\n),\n0)\nEND","format_string":""},{"name":"Scope","dimension":"Measures","formula":"CASE WHEN\nDateAfterPeriodEnd('today',\n[Time].CurrentHierarchyMember.PrevMember\n)\nOR \n[Time].CurrentHierarchyMember is [Time].CurrentHierarchy.DefaultMember\nTHEN\n([Measures].[Issues history],\n[Transition Status].Currenthierarchy.DefaultMember)*1\nEND","format_string":""},{"name":"Today's date","dimension":"Measures","formula":"DateParse('today')\n","format_string":"mmm dd yyyy"},{"name":"Total progress","dimension":"Measures","formula":"CASE WHEN\n[Time].CurrentHierarchyMember\nIS \n[Time].CurrentHierarchy.DefaultMember\nTHEN\n(\n [Measures].[Delivery]/\n [Measures].[Scope]\n)\nEND","format_string":"#0%"},{"name":"Days until PI ends","dimension":"Measures","formula":"CASE WHEN\nNot IsEmpty([Measures].[Program Increment end date])\nTHEN\nDatediffdays(\n  'today',\n  DateWithoutTime([Measures].[Program Increment end date])\n)* (-1)\nEND","format_string":"#,##0"},{"name":"today","dimension":"Measures","formula":"Case WHEN\nDateInPeriod(\n'today',\n[Time].CurrentHierarchyMember\n)\nTHEN\n\"Today\"\nEND","format_string":"#,##0"},{"name":"PI prediction (guideline)","dimension":"Measures","formula":"CASE WHEN\n-- apply for predicted period only\n (DateinPeriod(\n [Measures].[Program Increment start date], \n [Time].CurrentHierarchyMember)\n OR\n DateBetween([Time].CurrentHierarchyMember.StartDate, \n [Measures].[Program Increment start date],\n [Measures].[Program Increment end date]))\nTHEN\n -- pace of currently resolved points per day : total resolved days in version divided by days in version till today\n  Cache(\n  ([Measures].[Issues resolved], \n   [Time].CurrentHierarchy.DefaultMember)\n   /\n   DateDiffDays(\n     [Measures].[Program Increment start date], \n     DateParse('Today'))\n  )\n  *\n  -- calculate progress for each period from start date till period end or till predicted date\n  Case \n   when\n     DateInPeriod([Measures].[Program Increment end date],[Time].CurrentHierarchyMember) \n   then\n     DateDiffDays(DateAddDays([Measures].[Program Increment start date],1),[Measures].[Program Increment end date]) + 1 \n   else \n     DateDiffDays(DateAddDays([Measures].[Program Increment start date],1),[Time].CurrentHierarchyMember.NextStartDate)\n  End\nEND","format_string":"#,##0.00"},{"name":"Cumulative issues resolved","dimension":"Measures","formula":"Case when\n  -- show any past periods\n  DateAfterPeriodEnd(\n    \"Today\",\n    [Time].CurrentHierarchyMember)\n  OR \n  -- show current period\n  DateInPeriod(\n    \"Today\",\n    [Time].CurrentHierarchyMember\n  )\nThen\nCoalesceEmpty(Cache(\n  Sum({PreviousPeriods([Time].CurrentHierarchyMember),\n      [Time].CurrentHierarchyMember},\n    [Measures].[Issues resolved]\n  )\n),\n0)\n\nEnd","format_string":""},{"name":"# of issues guideline","dimension":"Measures","formula":"CASE WHEN\n  DateBetween([Time].CurrentHierarchyMember.StartDate,\n    [Measures].[Program Increment start date],\n    [Measures].[Program Increment end date]\n  )\nTHEN\n  ([Measures].[Scope all periods],\n    [Time].CurrentHierarchy.DefaultMember) *\n  (\n    DateDiffDays(\n      [Measures].[Program Increment start date],\n      DateAddDays([Measures].[Program Increment end date], 1)\n    ) -\n    DateDiffDays(\n      [Measures].[Program Increment start date],\n      [Time].CurrentHierarchyMember.NextStartDate\n    )\n  ) /\n  DateDiffDays(\n    [Measures].[Program Increment start date],\n    DateAddDays([Measures].[Program Increment end date], 1)\n  )\nEND\n","format_string":"#,##0.00"},{"name":"Scope all periods","dimension":"Measures","formula":"\n([Measures].[Issues history],\n[Transition Status].Currenthierarchy.DefaultMember)\n","format_string":""},{"name":"Issues created, %","dimension":"Measures","formula":"[Measures].[Issues created]\n/\n(\n  [Measures].[Issues created],\n  [Status].DefaultMember\n)","format_string":"#0%"},{"dimension":"Measures","name":"Issue status","format_string":"","formula":"[Status].[Status].getMemberNameByKey(\n  [Issue].CurrentHierarchyMember.get('Status ID')\n)"},{"name":"# of issues","dimension":"Measures","formula":"CASE WHEN\nSum(VisibleRowsSet(\n),\n[Measures].[Issues created])\n\u003e0\nTHEN\n\nCoalesceEmpty(\n  [Measures].[Issues created],\n  0\n)\nEND","format_string":"#,##0"}]
  } ]
}