Hi Roberts,
Weren’t sure if you meant for me to share it here or in an email, but here it is:
{
"cube_name": "Issues",
"cube_reports": [ {
"name": "Avg. Sprint Completion Rate by PI",
"folder_name": "Story Points",
"result_view": "bar_chart",
"definition": {"columns":{"dimensions":[{"name":"Measures","selected_set":["[Measures].[PI-11 Avg SCR v2]","[Measures].[PI-12 Avg SCR v2]","[Measures].[PI-13 Avg SCR v2]","[Measures].[PI-14 Avg SCR v2]"],"members":[]}]},"rows":{"dimensions":[{"name":"Sprint","selected_set":["[Sprint].[All sprint 1 sprints]","[Sprint].[All sprint 2 sprints]","[Sprint].[All sprint 3 sprints]","[Sprint].[All sprint 4 sprints]","[Sprint].[All sprint 5 sprints]","[Sprint].[All sprint 6 sprints]"],"members":[],"bookmarked_members":[]}],"nonempty_crossjoin":true},"pages":{"dimensions":[]},"options":{"nonempty":"rows"},"view":{"current":"bar_chart","maximized":false,"bar_chart":{"stacked":false,"vertical":true,"swap_axes":false,"data_labels":true,"series_options":{"Story point completion rate":{"type":"column","separateAxis":1,"dataLabelType":"top rotated","color":"#00875A"},"Sprint Story Points committed":{"dataLabelType":"top horizontal"},"Sprint Story Points completed":{"dataLabelType":"top horizontal"}},"y_axis":{"0":{"title":"Story Points"},"1":{"title":"Sprint Completion Rate"}}},"table":{"freeze_header":true}},"calculated_members":[]}
} ],
"calculated_members": [{"name":"Sprint Story Points committed","dimension":"Measures","format_string":"#,##0.00","formula":"( [Measures].[Story Points added],\n [Transition Field].[Sprint status],\n [Sprint Status].[Active],\n -- An issue was in a sprint at a sprint start time\n [Issue Sprint Status Change].[Future =\u003e Active]\n)\n"},{"name":"Sprint Story Points added","dimension":"Measures","format_string":"#,##0.00","formula":"( [Measures].[Story Points added],\n [Transition Field].[Sprint status],\n [Sprint Status].[Active],\n -- An issue was added or created in an active sprint\n [Issue Sprint Status Change].[(none) =\u003e Active]\n)\n"},{"name":"Sprint Story Points removed","dimension":"Measures","format_string":"#,##0.00","formula":"( [Measures].[Story Points removed],\n [Transition Field].[Sprint status],\n [Sprint Status].[Active],\n -- An issue was removed from an active sprint\n [Issue Sprint Status Change].[Active =\u003e (none)]\n)\n"},{"name":"Sprint Story Points at closing","dimension":"Measures","format_string":"#,##0.00","formula":"-- Story points from issues when a sprint was closed\n( [Measures].[Story Points added],\n [Transition Field].[Sprint status],\n [Sprint Status].[Closed],\n [Issue Sprint Status Change].[Active =\u003e Closed]\n)\n"},{"name":"Sprint Story Points completed","dimension":"Measures","format_string":"#,##0.00","formula":"(\n [Measures].[Sprint Story Points at closing],\n [Transition Status.Category].[Done]\n)\n"},{"name":"All board children","dimension":"Sprint","formula":"Aggregate(\n {\n [Sprint].[Android - BBQ].Children,\n [Sprint].[Android - Legoland Team].Children,\n [Sprint].[Android - Pokémon].Children,\n [Sprint].[Android - Zombies].Children,\n [Sprint].[Android - Minions].Children,\n [Sprint].[BENEFITS board].Children,\n [Sprint].[ALEX board].Children,\n [Sprint].[AMPS board].Children,\n [Sprint].[APEX].Children,\n [Sprint].[AWBB board].Children,\n [Sprint].[ENC board].Children,\n [Sprint].[GAGA board].Children,\n [Sprint].[MOMO board].Children,\n [Sprint].[SEDONA board].Children,\n [Sprint].[BLUES board].Children,\n [Sprint].[CBO board].Children,\n [Sprint].[Voyager Sprint Board].Children,\n [Sprint].[ENT board].Children,\n [Sprint].[EXP Sprint Planning board].Children,\n [Sprint].[GEM board].Children,\n [Sprint].[Homestead Aloha (702)].Children,\n [Sprint].[Homestead Keahi].Children,\n [Sprint].[Homestead Mahalo].Children,\n [Sprint].[i18n board].Children,\n [Sprint].[Valor Planning].Children,\n [Sprint].[Rhapsody Planning].Children,\n [Sprint].[Tempest Planning].Children,\n [Sprint].[PRIMO board].Children,\n [Sprint].[NGM Scrum].Children,\n [Sprint].[RHYTHM board].Children,\n [Sprint].[ROADRUNNER board].Children,\n [Sprint].[WILEE board].Children,\n [Sprint].[ADAM Scrum by Assignee].Children,\n [Sprint].[ARMS board].Children,\n [Sprint].[ASF board].Children,\n [Sprint].[BI board].Children,\n [Sprint].[CMS Backlog].Children,\n [Sprint].[CSI board].Children,\n [Sprint].[CRM board].Children,\n [Sprint].[DSS board].Children,\n [Sprint].[DMAR board].Children,\n [Sprint].[DP board].Children,\n [Sprint].[DADC board].Children,\n [Sprint].[DSEA board].Children,\n [Sprint].[INFOSEC board].Children,\n [Sprint].[P13N Core Board].Children,\n [Sprint].[PS Unfiltered Board].Children,\n [Sprint].[SBE board].Children\n }\n)","format_string":""},{"name":"PI-12","dimension":"Time","formula":"Aggregate(\n [Time].[Day].DateMembersBetween('08 JAN 2020', '07 APR 2020')\n)","format_string":""},{"name":"PI-13","dimension":"Time","formula":"Aggregate(\n [Time].[Day].DateMembersBetween('08 APR 2020', '07 JUL 2020')\n)","format_string":""},{"name":"All sprint 1 sprints","dimension":"Sprint","formula":"Aggregate({\n Order(\n Filter(ChildrenSet([Sprint].[All board children]),\n [Sprint].CurrentMember.getBoolean('Closed') AND\n NOT IsEmpty([Sprint].CurrentMember.get('End date')) AND\n (DateBetween([Sprint].CurrentMember.get('End date'),\n '21 OCT 2019', '25 OCT 2019') OR -- PI-11\n DateBetween([Sprint].CurrentMember.get('End date'),\n '20 JAN 2020', '24 JAN 2020') OR -- PI-12\n DateBetween([Sprint].CurrentMember.get('End date'),\n '20 APR 2020', '24 APR 2020') OR -- PI-13\n DateBetween([Sprint].CurrentMember.get('End date'),\n '20 JUL 2020', '24 JUL 2020') -- OR -- PI-14\n-- DateBetween([Sprint].CurrentMember.get('End date'),\n-- '13 JAN 2020', '08 APR 2020') -- PI-15\n )\n ),\n [Sprint].CurrentMember.get('End Date'),\n BASC\n )\n})","format_string":""},{"name":"All sprint 2 sprints","dimension":"Sprint","formula":"Aggregate({\n Order(\n Filter(ChildrenSet([Sprint].[All board children]),\n [Sprint].CurrentMember.getBoolean('Closed') AND\n NOT IsEmpty([Sprint].CurrentMember.get('End date')) AND\n (DateBetween([Sprint].CurrentMember.get('End date'),\n '04 NOV 2019', '08 NOV 2019') OR -- PI-11\n DateBetween([Sprint].CurrentMember.get('End date'),\n '03 FEB 2020', '07 FEB 2020') OR -- PI-12\n DateBetween([Sprint].CurrentMember.get('End date'),\n '04 MAY 2020', '08 MAY 2020') OR -- PI-13\n DateBetween([Sprint].CurrentMember.get('End date'),\n '03 AUG 2020', '07 AUG 2020') -- OR -- PI-14\n-- DateBetween([Sprint].CurrentMember.get('End date'),\n-- '02 NOV 2020', '06 NOV 2020') -- PI-15\n )\n ),\n [Sprint].CurrentMember.get('End Date'),\n BASC\n )\n})","format_string":""},{"name":"All sprint 3 sprints","dimension":"Sprint","formula":"Aggregate({\n Order(\n Filter(ChildrenSet([Sprint].[All board children]),\n [Sprint].CurrentMember.getBoolean('Closed') AND\n NOT IsEmpty([Sprint].CurrentMember.get('End date')) AND\n (DateBetween([Sprint].CurrentMember.get('End date'),\n '18 NOV 2019', '22 NOV 2019') OR -- PI-11\n DateBetween([Sprint].CurrentMember.get('End date'),\n '17 FEB 2020', '21 FEB 2020') OR -- PI-12\n DateBetween([Sprint].CurrentMember.get('End date'),\n '18 MAY 2020', '22 MAY 2020') OR -- PI-13\n DateBetween([Sprint].CurrentMember.get('End date'),\n '17 AUG 2020', '21 AUG 2020') -- OR -- PI-14\n-- DateBetween([Sprint].CurrentMember.get('End date'),\n-- '16 NOV 2020', '20 NOV 2020') -- PI-15\n )\n ),\n [Sprint].CurrentMember.get('End Date'),\n BASC\n )\n})","format_string":""},{"name":"All sprint 4 sprints","dimension":"Sprint","formula":"Aggregate({\n Order(\n Filter(ChildrenSet([Sprint].[All board children]),\n [Sprint].CurrentMember.getBoolean('Closed') AND\n NOT IsEmpty([Sprint].CurrentMember.get('End date')) AND\n (DateBetween([Sprint].CurrentMember.get('End date'),\n '02 DEC 2019', '06 DEC 2019') OR -- PI-11\n DateBetween([Sprint].CurrentMember.get('End date'),\n '02 MAR 2020', '06 MAR 2020') OR -- PI-12\n DateBetween([Sprint].CurrentMember.get('End date'),\n '01 JUN 2020', '05 JUN 2020') OR -- PI-13\n DateBetween([Sprint].CurrentMember.get('End date'),\n '31 AUG 2020', '04 SEP 2020') -- OR -- PI-14\n-- DateBetween([Sprint].CurrentMember.get('End date'),\n-- '30 NOV 2020', '04 DEC 2020') -- PI-15\n )\n ),\n [Sprint].CurrentMember.get('End Date'),\n BASC\n )\n})","format_string":""},{"name":"All sprint 5 sprints","dimension":"Sprint","formula":"Aggregate({\n Order(\n Filter(ChildrenSet([Sprint].[All board children]),\n [Sprint].CurrentMember.getBoolean('Closed') AND\n NOT IsEmpty([Sprint].CurrentMember.get('End date')) AND\n (DateBetween([Sprint].CurrentMember.get('End date'),\n '16 DEC 2019', '20 DEC 2019') OR -- PI-11\n DateBetween([Sprint].CurrentMember.get('End date'),\n '16 MAR 2020', '20 MAR 2020') OR -- PI-12\n DateBetween([Sprint].CurrentMember.get('End date'),\n '15 JUN 2020', '19 JUN 2020') OR -- PI-13\n DateBetween([Sprint].CurrentMember.get('End date'),\n '14 SEP 2020', '18 SEP 2020') -- OR -- PI-14\n-- DateBetween([Sprint].CurrentMember.get('End date'),\n-- '14 DEC 2020', '18 DEC 2020') -- PI-15\n )\n ),\n [Sprint].CurrentMember.get('End Date'),\n BASC\n )\n})","format_string":""},{"name":"All sprint 6 sprints","dimension":"Sprint","formula":"Aggregate({\n Order(\n Filter(ChildrenSet([Sprint].[All board children]),\n [Sprint].CurrentMember.getBoolean('Closed') AND\n NOT IsEmpty([Sprint].CurrentMember.get('End date')) AND\n (DateBetween([Sprint].CurrentMember.get('End date'),\n '30 DEC 2019', '03 JAN 2020') OR -- PI-11\n DateBetween([Sprint].CurrentMember.get('End date'),\n '30 MAR 2020', '03 APR 2020') OR -- PI-12\n DateBetween([Sprint].CurrentMember.get('End date'),\n '29 JUN 2020', '03 JUL 2020') OR -- PI-13\n DateBetween([Sprint].CurrentMember.get('End date'),\n '28 SEP 2020', '02 OCT 2020') -- OR -- PI-14\n-- DateBetween([Sprint].CurrentMember.get('End date'),\n-- '28 DEC 2020', '03 JAN 2021') -- PI-15\n )\n ),\n [Sprint].CurrentMember.get('Name'),\n BASC\n )\n})","format_string":""},{"name":"PI-11","dimension":"Time","formula":"Aggregate(\n [Time].[Day].DateMembersBetween('09 OCT 2019', '07 JAN 2020')\n)","format_string":""},{"name":"PI-13 Avg SCR v2","dimension":"Measures","formula":"CASE WHEN -- Sprint 1\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 1 sprints]\nTHEN\n NonZero(\n AVG(\n CrossJoin([Sprint].[All sprint 1 sprints], [Time].[PI-13]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 2\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 2 sprints]\nTHEN\n NonZero(\n AVG(\n CrossJoin([Sprint].[All sprint 2 sprints], [Time].[PI-13]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 3\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 3 sprints]\nTHEN\n NonZero(\n AVG(\n CrossJoin([Sprint].[All sprint 3 sprints], [Time].[PI-13]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 4\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 4 sprints]\nTHEN\n NonZero(\n AVG(\n CrossJoin([Sprint].[All sprint 4 sprints], [Time].[PI-13]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 5\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 5 sprints]\nTHEN\n NonZero(\n AVG(\n CrossJoin([Sprint].[All sprint 5 sprints], [Time].[PI-13]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 6\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 6 sprints]\nTHEN\n NonZero(\n AVG(\n CrossJoin([Sprint].[All sprint 6 sprints], [Time].[PI-13]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nEND\nEND\nEND\nEND\nEND\nEND","format_string":"#0.00%"},{"name":"PI-14 Avg SCR v2","dimension":"Measures","formula":"CASE WHEN -- Sprint 1\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 1 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 1 sprints], [Time].[PI-14]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 2\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 2 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 2 sprints], [Time].[PI-14]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 3\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 3 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 3 sprints], [Time].[PI-14]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 4\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 4 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 4 sprints], [Time].[PI-14]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 5\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 5 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 5 sprints], [Time].[PI-14]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 6\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 6 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 6 sprints], [Time].[PI-14]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nEND\nEND\nEND\nEND\nEND\nEND","format_string":"#0.00%"},{"name":"PI-14","dimension":"Time","formula":"Aggregate(\n [Time].[Day].DateMembersBetween('08 JUL 2020', '06 OCT 2020')\n)","format_string":""},{"name":"PI-11 Avg SCR v2","dimension":"Measures","formula":"CASE WHEN -- Sprint 1\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 1 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 1 sprints], [Time].[PI-11]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 2\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 2 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 2 sprints], [Time].[PI-11]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 3\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 3 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 3 sprints], [Time].[PI-11]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 4\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 4 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 4 sprints], [Time].[PI-11]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 5\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 5 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 5 sprints], [Time].[PI-11]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 6\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 6 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 6 sprints], [Time].[PI-11]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nEND\nEND\nEND\nEND\nEND\nEND","format_string":"#0.00%"},{"name":"PI-12 Avg SCR v2","dimension":"Measures","formula":"CASE WHEN -- Sprint 1\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 1 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 1 sprints], [Time].[PI-12]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 2\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 2 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 2 sprints], [Time].[PI-12]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 3\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 3 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 3 sprints], [Time].[PI-12]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 4\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 4 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 4 sprints], [Time].[PI-12]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 5\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 5 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 5 sprints], [Time].[PI-12]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nELSE CASE WHEN -- Sprint 6\n [Sprint].CurrentHierarchyMember IS [Sprint].[All sprint 6 sprints]\nTHEN\n Cache(\n AVG(\n CrossJoin([Sprint].[All sprint 6 sprints], [Time].[PI-12]),\n ([Measures].[Sprint Story Points completed] /\n ([Measures].[Sprint Story Points committed] +\n [Measures].[Sprint Story Points added] -\n [Measures].[Sprint Story Points removed]))\n )\n )\nEND\nEND\nEND\nEND\nEND\nEND","format_string":"#0.00%"}]
}