<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Dynamic multilevel inventory coverage in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Dynamic-multilevel-inventory-coverage/m-p/1611044#M45419</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Hi experts, I am trying to come up with calculation of inventory coverage for each month (how many months will the forecasted inventory cover the forecasted requirements) which would be possible to drill down ItemClass &amp;gt; ItemGroup &amp;gt; Item. The measure has to be dynamic as the forecasts for a new month are added every month.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I’ve got data like this:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ItemClass,ItemGroup,Item,Date,Inventory,Requirements&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20190831,179,100&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20190930,163,80 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20191031,147,98&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20191130,131,120&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20191231,115,70&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20200131,99,40&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20190831,176,36&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20190930,159,42&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20191031,142,25&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20191130,125,36&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20191231,108,30&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20200131,91,87&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20190831,732,249&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20190930,483,189&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20191031,694,203&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20191130,491,216&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20191231,575,173&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20200131,702,218&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20190831,4730,1607&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20190930,3123,1639&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20191031,3356,1559&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20191130,2421,1419&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20191231,1626,768&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20200131,1482,534&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20190831,8704,1513&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20190930,7191,2159&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20191031,13144,6014&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20191130,10874,6603&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20191231,4895,4046&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20200131,2097,690&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Example: For ItemClass=x ItemGroup=a Item=1 Date=20190831&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Inventory (179) &amp;gt; Requirements in 20190831(100) and Inventory (179) &amp;lt;= Requirements in 20190831(100) + Requirements in 20190930(80), therefore Inventory Cover = 1month+(179-100)/80=1.9875months.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;For ItemGroup aggregation: ItemClass = x ItemGroup=a Date=20190831&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Inventory = 179+176+732=1087&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Requirements in 20190831 = 385&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Requirements in 20190930 = 311, etc.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Inventory Cover = 3+(1087-(385+311+326))/372=3.174731&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I used rolling sums in script to generate fields which I used to define a master measure "".&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Unfortunately, the expression involves 6 if statements which has impact on performance, and it would have to be changed whenever new monthly forecasts are added. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Please see attached app.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Any ideas?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Martin&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 09 Aug 2019 08:30:56 GMT</pubDate>
    <dc:creator>emark_lamper</dc:creator>
    <dc:date>2019-08-09T08:30:56Z</dc:date>
    <item>
      <title>Dynamic multilevel inventory coverage</title>
      <link>https://community.qlik.com/t5/App-Development/Dynamic-multilevel-inventory-coverage/m-p/1611044#M45419</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi experts, I am trying to come up with calculation of inventory coverage for each month (how many months will the forecasted inventory cover the forecasted requirements) which would be possible to drill down ItemClass &amp;gt; ItemGroup &amp;gt; Item. The measure has to be dynamic as the forecasts for a new month are added every month.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I’ve got data like this:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ItemClass,ItemGroup,Item,Date,Inventory,Requirements&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20190831,179,100&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20190930,163,80 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20191031,147,98&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20191130,131,120&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20191231,115,70&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,1,20200131,99,40&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20190831,176,36&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20190930,159,42&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20191031,142,25&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20191130,125,36&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20191231,108,30&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,2,20200131,91,87&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20190831,732,249&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20190930,483,189&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20191031,694,203&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20191130,491,216&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20191231,575,173&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,a,3,20200131,702,218&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20190831,4730,1607&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20190930,3123,1639&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20191031,3356,1559&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20191130,2421,1419&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20191231,1626,768&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,5,20200131,1482,534&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20190831,8704,1513&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20190930,7191,2159&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20191031,13144,6014&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20191130,10874,6603&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20191231,4895,4046&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;x,b,6,20200131,2097,690&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Example: For ItemClass=x ItemGroup=a Item=1 Date=20190831&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Inventory (179) &amp;gt; Requirements in 20190831(100) and Inventory (179) &amp;lt;= Requirements in 20190831(100) + Requirements in 20190930(80), therefore Inventory Cover = 1month+(179-100)/80=1.9875months.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;For ItemGroup aggregation: ItemClass = x ItemGroup=a Date=20190831&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Inventory = 179+176+732=1087&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Requirements in 20190831 = 385&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Requirements in 20190930 = 311, etc.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Inventory Cover = 3+(1087-(385+311+326))/372=3.174731&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I used rolling sums in script to generate fields which I used to define a master measure "".&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Unfortunately, the expression involves 6 if statements which has impact on performance, and it would have to be changed whenever new monthly forecasts are added. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Please see attached app.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Any ideas?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Martin&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 09 Aug 2019 08:30:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Dynamic-multilevel-inventory-coverage/m-p/1611044#M45419</guid>
      <dc:creator>emark_lamper</dc:creator>
      <dc:date>2019-08-09T08:30:56Z</dc:date>
    </item>
  </channel>
</rss>

