<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://communitytest.tessitura.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Wiki</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12 Non-Production</generator><item><title>RSUM continuous chart, remove gaps</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/814/rsum-continuous-chart-remove-gaps</link><pubDate>Mon, 01 Apr 2024 14:15:22 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:0be87191-0d64-405f-81b9-f806f6cbbb96</guid><dc:creator>Chris Wallingford</dc:creator><description>Current Revision posted to Wiki by Chris Wallingford on 4/1/2024 2:15:22 PM&lt;br /&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;p&gt;This script will connect the data points surrounding a gap in the data. The drawback of this script is that it will draw a straight line between the two points, a tapered line over the missing series, making it possible to interpret that span of time as a regular increase over the series that have no values. In reality, repeating the previous non-null value over the series gaps that have no values would be more accurate, followed by a jump up to the next non-null value.&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;widget.on(&amp;quot;beforeviewloaded&amp;quot;,function(scope, args){&lt;br /&gt; args.options.plotOptions.series.connectNulls = true;&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;widget.on(&amp;#39;render&amp;#39;, function(sender,se){&lt;br /&gt; for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {&lt;br /&gt;  for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {&lt;br /&gt;   sender.queryResult.series[i].data[j].marker.enabled = false;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;});&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This script is an improvement in that the value over the gap between two data points is a repeat of the last non-null value, followed by a jump up to the next non-null value. However, this &lt;span&gt;formula doesn&amp;#39;t&amp;nbsp;differentiate between a future time period that can&amp;#39;t yet have&amp;nbsp;data, and a past time period that legitimately had no data. This results in the line continuing on to the end of the chart regardless of whether&amp;nbsp;those periods are in the past or future. We can probably figure out how to get the curve to stop at the final/last value, but that final/last value is still susceptible to being a past value that legitimately has no data and will fail to reflect that there has been&amp;nbsp;no data since&amp;nbsp;that past moment in time.&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;widget.on(&amp;#39;processresult&amp;#39;, function(se, ev){&lt;br /&gt; $.each(ev.result.series, function(seriesIndex, seriesValue){&lt;br /&gt;  var prevValue = seriesValue.data[0].y;&lt;br /&gt;   $.each(seriesValue.data, function(index, value){&lt;br /&gt;    if(value.y == null)&lt;br /&gt;     value.y = prevValue;&lt;br /&gt;    else&lt;br /&gt;     prevValue = value.y; &lt;br /&gt;   });&lt;br /&gt; });&lt;br /&gt;});&lt;br /&gt; &lt;br /&gt;widget.on(&amp;#39;render&amp;#39;, function(sender,se){&lt;br /&gt; for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {&lt;br /&gt;  for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {&lt;br /&gt;   sender.queryResult.series[i].data[j].marker.enabled = false;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;});&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;How to apply it to the widget...&lt;/p&gt;
&lt;p&gt;&lt;a href="/topical_groups/analytics-coffee/w/wiki/807/analytics-scripts-not-saving"&gt;(+) Analytics Scripts not Saving - Wiki - analytic Coffee! - Tessitura Community&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Tessitura Analytics, script, Javascript&lt;/div&gt;
</description></item><item><title>RSUM continuous chart, remove gaps</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/814/rsum-continuous-chart-remove-gaps/revision/2</link><pubDate>Mon, 01 Apr 2024 14:14:42 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:0be87191-0d64-405f-81b9-f806f6cbbb96</guid><dc:creator>Chris Wallingford</dc:creator><description>Revision 2 posted to Wiki by Chris Wallingford on 4/1/2024 2:14:42 PM&lt;br /&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;p&gt;This script will connect the data points surrounding a gap in the data. The drawback of this script is that it will draw a straight line between the two points, a tapered line over the missing series, making it possible to interpret that span of time as a regular increase over the series that have no values. In reality, repeating the previous non-null value over the series gaps that have no values would be more accurate, followed by a jump up to the next non-null value.&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;widget.on(&amp;quot;beforeviewloaded&amp;quot;,function(scope, args){&lt;br /&gt;args.options.plotOptions.series.connectNulls = true;&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;widget.on(&amp;#39;render&amp;#39;, function(sender,se){&lt;br /&gt;for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {&lt;br /&gt; for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {&lt;br /&gt; sender.queryResult.series[i].data[j].marker.enabled = false;&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;)&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This script is an improvement in that the value over the gap between two data points is a repeat of the last non-null value, followed by a jump up to the next non-null value. However, this &lt;span&gt;formula doesn&amp;#39;t&amp;nbsp;differentiate between a future time period that can&amp;#39;t yet have&amp;nbsp;data, and a past time period that legitimately had no data. This results in the line continuing on to the end of the chart regardless of whether&amp;nbsp;those periods are in the past or future. We can probably figure out how to get the curve to stop at the final/last value, but that final/last value is still susceptible to being a past value that legitimately has no data and will fail to reflect that there has been&amp;nbsp;no data since&amp;nbsp;that past moment in time.&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;widget.on(&amp;#39;processresult&amp;#39;, function(se, ev){&lt;br /&gt; $.each(ev.result.series, function(seriesIndex, seriesValue){&lt;br /&gt;  var prevValue = seriesValue.data[0].y;&lt;br /&gt;   $.each(seriesValue.data, function(index, value){&lt;br /&gt;    if(value.y == null)&lt;br /&gt;     value.y = prevValue;&lt;br /&gt;    else&lt;br /&gt;     prevValue = value.y; &lt;br /&gt;   });&lt;br /&gt; });&lt;br /&gt;});&lt;br /&gt; &lt;br /&gt;widget.on(&amp;#39;render&amp;#39;, function(sender,se){&lt;br /&gt; for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {&lt;br /&gt;  for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {&lt;br /&gt;   sender.queryResult.series[i].data[j].marker.enabled = false;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;});&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;How to apply it to the widget...&lt;/p&gt;
&lt;p&gt;&lt;a href="/topical_groups/analytics-coffee/w/wiki/807/analytics-scripts-not-saving"&gt;(+) Analytics Scripts not Saving - Wiki - analytic Coffee! - Tessitura Community&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Tessitura Analytics, script, Javascript&lt;/div&gt;
</description></item><item><title>RSUM continuous chart, remove gaps</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/814/rsum-continuous-chart-remove-gaps/revision/1</link><pubDate>Fri, 29 Mar 2024 13:57:40 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:0be87191-0d64-405f-81b9-f806f6cbbb96</guid><dc:creator>Chris Wallingford</dc:creator><description>Revision 1 posted to Wiki by Chris Wallingford on 3/29/2024 1:57:40 PM&lt;br /&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;widget.on(&amp;#39;processresult&amp;#39;, function(se, ev){&lt;br /&gt; $.each(ev.result.series, function(seriesIndex, seriesValue){&lt;br /&gt;  var prevValue = seriesValue.data[0].y;&lt;br /&gt;   $.each(seriesValue.data, function(index, value){&lt;br /&gt;    if(value.y == null)&lt;br /&gt;     value.y = prevValue;&lt;br /&gt;    else&lt;br /&gt;     prevValue = value.y; &lt;br /&gt;   });&lt;br /&gt; });&lt;br /&gt;});&lt;br /&gt; &lt;br /&gt;widget.on(&amp;#39;render&amp;#39;, function(sender,se){&lt;br /&gt; for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {&lt;br /&gt;  for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {&lt;br /&gt;   sender.queryResult.series[i].data[j].marker.enabled = false;&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;});&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;How to apply it to the widget...&lt;/p&gt;
&lt;p&gt;&lt;a href="/topical_groups/analytics-coffee/w/wiki/807/analytics-scripts-not-saving"&gt;(+) Analytics Scripts not Saving - Wiki - analytic Coffee! - Tessitura Community&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Tessitura Analytics, script, Javascript&lt;/div&gt;
</description></item><item><title>Auto-Zoom Scatter Map</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/803/auto-zoom-scatter-map</link><pubDate>Wed, 28 Feb 2024 02:25:34 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:8df77661-5b64-462b-b150-e4d52030c6d9</guid><dc:creator>Heath Wilder</dc:creator><description>Current Revision posted to Wiki by Heath Wilder on 2/28/2024 2:25:34 AM&lt;br /&gt;
&lt;p&gt;&lt;em&gt;From Sisense Support site&lt;/em&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1hnmobaa50"&gt;&lt;strong&gt;Auto-Zoom Scatter Map&lt;/strong&gt;&lt;/h1&gt;
&lt;h3 id="mcetoc_1hnmobfrs1"&gt;Introduction&lt;/h3&gt;
&lt;p&gt;The following article will explain how to dynamically center and zoom a scatter map, based on the data points. So if your map defaults to a view of the US and then changes to Europe, the map will automatically adjust.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://support.sisense.com/kb/en/article/auto-zoom-scatter-map"&gt;https://support.sisense.com/kb/en/article/auto-zoom-scatter-map&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;h3 id="mcetoc_1hnmofgc43"&gt;Purpose/Benefits&lt;/h3&gt;
&lt;p&gt;This script allows you to center and zoom a map according to a given the visible data points.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&lt;a href="https://community.sisense.com/t5/knowledge/auto-zoom-scatter-map/ta-p/9223"&gt;community.sisense.com/.../9223&lt;/a&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: analytics, scatter map&lt;/div&gt;
</description></item><item><title>First Time Buyers and Subsequent Buying</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/811/first-time-buyers-and-subsequent-buying</link><pubDate>Fri, 10 Nov 2023 05:09:50 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:a927e880-0a3a-47d5-be87-286d478cd674</guid><dc:creator>Heath Wilder</dc:creator><description>Current Revision posted to Wiki by Heath Wilder on 11/10/2023 5:09:50 AM&lt;br /&gt;
&lt;p&gt;From&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/f/discussions/33268/first-time-buyers-from-previous-year-returning-in-2023/86502#86502"&gt;(+) First Time Buyers from Previous Year Returning in 2023 - Discussions - analytic Coffee! - Tessitura Network&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;Michael Dorsey&lt;/span&gt;&amp;nbsp;(Spoleto Festival USA)&lt;/strong&gt;&lt;br /&gt; I&amp;#39;m wondering if anyone has&amp;nbsp;anything that gives the accurate&amp;nbsp;number first time buyers from a specified year that returned this year?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div class="author"&gt;
&lt;div class="meta"&gt;&lt;span class="user-name"&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;Christine Wingenfeld&lt;/span&gt; (&lt;/strong&gt;&lt;span&gt;&lt;strong&gt;Pittsburgh Cultural Trust Consortium)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="content full threaded-reply-content user-defined-markup"&gt;
&lt;div class="content"&gt;
&lt;p&gt;Hi Michael,&lt;/p&gt;
&lt;p&gt;I have a couple of formulas that might help you&amp;nbsp;with this concept. I created them to look overall at the return rate of first-time buyers and what they were coming to next. I wonder if you could adjust things in these formulas to look more at specific years.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " height="445" src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1687552694251v5.png" width="941" /&gt;&lt;/p&gt;
&lt;p&gt;The summary widget is filtered to select different production seasons and then I have the following formula to calculate how many have since returned.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;COUNT ( [Constituent ID],&amp;nbsp;&lt;br /&gt;&lt;/code&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&lt;span&gt;&amp;nbsp;MIN&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;( &lt;span&gt;DDIFF&lt;/span&gt;( [Days in Date] , [Days in First Performance Date] ) ) = 0&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND&amp;nbsp;&lt;span style="color:#ff0000;"&gt;( [# of unique Production Season ID], ALL( [Production Season] ) ) &lt;span style="color:#000000;"&gt;&amp;gt; 1&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , [Max Constituent ID]&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ,&amp;nbsp;NULL&amp;nbsp;&lt;/span&gt;)&lt;/code&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;)&lt;/p&gt;
&lt;p&gt;The&lt;span style="color:#0000ff;"&gt;&amp;nbsp;first part&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;of the formula recognizes if they are a first-time buyer&lt;sup&gt; [HW: see below #1]&lt;/sup&gt;, and then the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;second part&amp;nbsp;&lt;/span&gt;adds in whether they have come to anything else.&lt;/p&gt;
&lt;p&gt;Taking this formula, I then add onto it to create a proportion of how many are returning:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;(&lt;span&gt;COUNT&amp;nbsp;&lt;/span&gt;( [Constituent ID],&lt;span&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;span style="color:#0000ff;"&gt;&amp;nbsp;MIN ( DDIFF( [Days in Date] , [Days in First Performance Date] ) ) = 0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff0000;"&gt;( [ # of unique Production Season ID] , ALL( [Production Season] ) )&lt;/span&gt; &amp;gt; 1&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,&amp;nbsp;[Max Constituent ID] &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;, NULL )&lt;br /&gt;&lt;/code&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &lt;br /&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:inherit;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp;/ &lt;br /&gt;(&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;COUNT&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;( [Constituent ID],&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;MIN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;&amp;nbsp;( DDIFF( [Days in D&lt;/code&gt;ate] , [Days in First Performance Date]) ) =0&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ,&amp;nbsp;[Max Constituent ID]&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &lt;/span&gt;&lt;span style="font-family:inherit;"&gt;NULL&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &lt;br /&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;So, the denominator here just gets a total count of first-time buyers, as in the&lt;span style="color:#0000ff;"&gt;&amp;nbsp;first part.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have another widget that then that looks at what they are coming to next designed as a bar chart. This widget is filtered by the first performance name. The formula I use here probably could have also been used in a variation in the above calculations.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;&lt;span&gt;COUNT&amp;nbsp;&lt;/span&gt;( [Constituent ID] ,&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&amp;nbsp;MIN (&amp;nbsp;DDIFF&amp;nbsp;( [Days in Date] , [Days in First Performance Date] ) ) &amp;gt; 0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &lt;span&gt;[Max Constituent ID]&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , NULL )&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For this formula, I started with the formula for first time buyers, but then looked at anything that they have come to since that first performance date [hence &amp;gt; 0]. I have categories for season&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;and&lt;/em&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;production season, but if you just want to look more broadly at who came back in a certain season, you could probably just use season.&lt;/p&gt;
&lt;p&gt;You won&amp;#39;t be able to use a jump-to with these formulas, but you could always add a constituent ID to a pivot table to download and import as a manual list to verify.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://communitytest.tessitura.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/FirstTimeBuyerWidgetIdeas.dash"&gt;communitytest.tessitura.com/.../FirstTimeBuyerWidgetIdeas.dash&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: wiki, first time buyers, analytic Coffee!, new to file&lt;/div&gt;
</description></item><item><title>Changing Labels on a Graph</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/812/changing-labels-on-a-graph</link><pubDate>Fri, 10 Nov 2023 05:08:48 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:057578af-f68f-4217-9b33-de40bc35d3c5</guid><dc:creator>Heath Wilder</dc:creator><description>Current Revision posted to Wiki by Heath Wilder on 11/10/2023 5:08:48 AM&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Zachary Little&lt;/strong&gt; (The Smith Center for the Performing Arts)&lt;/p&gt;
&lt;div class="content"&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Does anyone know if there is a way to customize the labels on a graph. In creating a graph that shows data across multiple fiscal years. The data looks correct, but I want to update the labels to match my organizations labelling standards instead of just a year. In the below image I want to change the numbers highlighted in red. I can&amp;#39;t find anything on my own. Any help is appreciated. Thanks!&lt;/p&gt;
&lt;p&gt;&lt;img class="align-right" alt=" " src="/resized-image/__size/680x183/__key/communityserver-wikis-components-files/00-00-00-01-14/1.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;Chris Wallingford&lt;/strong&gt; (Tessitura Network)&lt;/p&gt;
&lt;p&gt;There isn&amp;#39;t native functionality for relabelling the values within a data field. So, if you say, want 2022 to appear as FY22, Analytics doesn&amp;#39;t currently support doing that in the Category or Break by field and instead would require distinct values for each FY as you describe in your most recent comment.&lt;/p&gt;
&lt;p&gt;That said, it is possible to add custom scripting &amp;quot;behind&amp;quot; a widget to impact how the widget is ultimately rendered.&lt;/p&gt;
&lt;p&gt;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/30041/analytics-scripts-not-saving/79753#79753" rel="noopener noreferrer" target="_blank"&gt;How to edit the script&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1650987686313v1.png" /&gt;&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="javascript"&gt;widget.on(&amp;#39;render&amp;#39;, function(widget,args){
 widget.queryResult.xAxis = {
 categories: widget.queryResult.xAxis.categories,
  //Runs every value in the category through this function 
  labels: {
   formatter: function () {
    return &amp;#39;FY&amp;#39; + this.value.substr(2)
   },
  }
 }
})&lt;/pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Tessitura Analytics, script, Category, jquery, data label&lt;/div&gt;
</description></item><item><title>Changing Labels on a Graph</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/812/changing-labels-on-a-graph/revision/1</link><pubDate>Fri, 10 Nov 2023 05:00:23 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:057578af-f68f-4217-9b33-de40bc35d3c5</guid><dc:creator>Heath Wilder</dc:creator><description>Revision 1 posted to Wiki by Heath Wilder on 11/10/2023 5:00:23 AM&lt;br /&gt;
&lt;div class="author header thread-starter"&gt;&lt;span class="user-name"&gt;&lt;span&gt;&lt;strong&gt;Zachary Little&lt;/strong&gt; (The Smith Center for the Performing Arts)&lt;/span&gt;&lt;/span&gt;&lt;span class="user-name"&gt;&lt;span&gt;&lt;img class="align-right" style="float:right;" alt=" " src="/resized-image/__size/680x183/__key/communityserver-wikis-components-files/00-00-00-01-14/1.JPG" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="content"&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Does anyone know if there is a way to customize the labels on a graph. In creating a graph that shows data across multiple fiscal years. The data looks correct, but I want to update the labels to match my organizations labelling standards instead of just a year. In the below image I want to change the numbers highlighted in red. I can&amp;#39;t find anything on my own. Any help is appreciated. Thanks!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class="author"&gt;
&lt;div class="meta"&gt;&lt;span class="user-name"&gt;&lt;span&gt;&lt;strong&gt;Chris Wallingford&lt;/strong&gt;&amp;nbsp;Tessitura Network&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="meta"&gt;&lt;span class="user-name"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="content full threaded-reply-content user-defined-markup"&gt;
&lt;div class="content"&gt;
&lt;p&gt;There isn&amp;#39;t native functionality for relabelling the values within a data field. So, if you say, want 2022 to appear as FY22, Analytics doesn&amp;#39;t currently support doing that in the Category or Break by field and instead would require distinct values for&amp;nbsp;each FY as&amp;nbsp;you describe in your most recent comment.&lt;/p&gt;
&lt;p&gt;That said, it is possible to add custom&amp;nbsp;scripting &amp;quot;behind&amp;quot; a widget to&amp;nbsp;impact how the widget is ultimately rendered.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/30041/analytics-scripts-not-saving/79753#79753" rel="noopener noreferrer" target="_blank"&gt;How to edit the script&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1650987686313v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;pre&gt;&lt;pre class="ui-code" data-mode="javascript"&gt;widget.on(&amp;#39;render&amp;#39;, function(widget,args){
 widget.queryResult.xAxis = {
 categories: widget.queryResult.xAxis.categories,
  //Runs every value in the category through this function 
  labels: {
   formatter: function () {
    return &amp;#39;FY&amp;#39; + this.value.substr(2)
   },
  }
 }
})&lt;/pre&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Tessitura Analytics, script, Category, jquery, data label&lt;/div&gt;
</description></item><item><title>Conditionally format the color of text</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/766/conditionally-format-the-color-of-text</link><pubDate>Fri, 10 Nov 2023 04:30:06 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:a5ea30e4-5bc7-4d96-ae80-e1cb5816103f</guid><dc:creator>Heath Wilder</dc:creator><description>Current Revision posted to Wiki by Heath Wilder on 11/10/2023 4:30:06 AM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;NB/ To&amp;nbsp;make these modifications below you&amp;#39;ll need to edit your widgets script and add&amp;nbsp;these special scripts in.&amp;nbsp;&lt;/em&gt;&lt;em&gt;That&amp;nbsp;guide is&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/w/wiki/807/analytics-scripts-not-saving"&gt;HERE&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1herjp6al0"&gt;Conditionally format the color of text within a Pivot Table column based on value (JQuery/JavaScript)&lt;/h2&gt;
&lt;p&gt;From Daniel Gomez&amp;nbsp;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/24079/analytics-date-time-functions"&gt;https://community.tessituranetwork.com/tessitura_software_forums/f/tessitura_shared_reports-9/24079/analytics-date-time-functions&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;Here are&amp;nbsp;some examples of using these functions that I threw together quickly.&amp;nbsp; The secret to using these functions is that you must have a&amp;nbsp;date/time column included in the&amp;nbsp;widget, otherwise,&amp;nbsp;SiSense has nothing to evaluate the functions against. Lots of much fancier ways to present the data you&amp;#39;re interested in depending on the visualization that&amp;nbsp;best tells the&amp;nbsp;narrative you are trying to present.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve also included below a pretty simple script you can use to&amp;nbsp;conditionally format the color of&amp;nbsp;text within a Pivot Table column based on value.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;&lt;span style="color:#808080;"&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="javascript"&gt;//Text column formatting
widget.on(&amp;#39;ready&amp;#39;, function(se, ev){

    var evalCol = 4; //fidx val of column to evaluate
    var formatCol = $(&amp;#39;td[fidx=&amp;#39;+evalCol+&amp;#39;]&amp;#39;); //jQuery pull entire eval column into array

    $.each(formatCol, function(a, b){ //function to loop through array
        if($(this).attr(&amp;#39;val&amp;#39;) &amp;gt; 0) { //evaluate text content of each cell in column&amp;#39;s array. note: need to use JavaScript this instead of jQuery $(this), since textContent is a JavaScript attribute.
            $(this).css(&amp;#39;color&amp;#39;,&amp;#39;green&amp;#39;); //set conditional styling
        }
        else if ($(this).attr(&amp;#39;val&amp;#39;) &amp;lt; 0) {
            $(this).css(&amp;#39;color&amp;#39;,&amp;#39;red&amp;#39;);
        }
    });
});&lt;/pre&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span style="font-family:arial, helvetica, sans-serif;font-size:inherit;"&gt;Heath&amp;#39;s notes&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:inherit;"&gt;line 3&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; evaluate column #4 - This is the one to be recolored&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:inherit;"&gt;line 7-9&amp;nbsp; &amp;nbsp; if the data is more than 0 make it green&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:inherit;"&gt;line 11-12&amp;nbsp;&amp;nbsp;if the data is&amp;nbsp;less than 0 make it&amp;nbsp;red&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;img alt=" " src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/6521.Arsht-_2D00_-SiSsense-Analytics-Date-and-Time-Functions-_2D00_-01.jpg" /&gt;&lt;img alt=" " src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/2783.Arsht-_2D00_-SiSsense-Analytics-Date-and-Time-Functions-_2D00_-02-_2D00_-DiffPastPeriod.jpg" /&gt;&lt;img alt=" " src="/resized-image/__size/1040x988/__key/communityserver-wikis-components-files/00-00-00-01-14/2437.Arsht-_2D00_-SiSsense-Analytics-Date-and-Time-Functions-_2D00_-03-_2D00_-GrowthPastWeek.jpg" /&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://communitytest.tessitura.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/7608.ArshtCenter_5F00_SiSenseDateTimeFunctionExamples_5F00_2019_2D00_12_2D00_17.dash"&gt;communitytest.tessitura.com/.../7608.ArshtCenter_5F00_SiSenseDateTimeFunctionExamples_5F00_2019_2D00_12_2D00_17.dash&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Tessitura Analytics, Javascript, jquery, conditional format&lt;/div&gt;
</description></item><item><title>Conditionally format the color of text</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/766/conditionally-format-the-color-of-text/revision/3</link><pubDate>Fri, 10 Nov 2023 04:18:47 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:a5ea30e4-5bc7-4d96-ae80-e1cb5816103f</guid><dc:creator>Heath Wilder</dc:creator><description>Revision 3 posted to Wiki by Heath Wilder on 11/10/2023 4:18:47 AM&lt;br /&gt;
&lt;p&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;NB/ To&amp;nbsp;make these modifications below you&amp;#39;ll need to edit your widgets script and add&amp;nbsp;these special scripts in.&amp;nbsp;&lt;/em&gt;&lt;em&gt;That&amp;nbsp;guide is&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/w/wiki/807/analytics-scripts-not-saving"&gt;HERE&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1herjp6al0"&gt;Conditionally format the color of text within a Pivot Table column based on value (JQuery/JavaScript)&lt;/h2&gt;
&lt;p&gt;From Daniel Gomez&amp;nbsp;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/24079/analytics-date-time-functions"&gt;https://community.tessituranetwork.com/tessitura_software_forums/f/tessitura_shared_reports-9/24079/analytics-date-time-functions&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;Here are&amp;nbsp;some examples of using these functions that I threw together quickly.&amp;nbsp; The secret to using these functions is that you must have a&amp;nbsp;date/time column included in the&amp;nbsp;widget, otherwise,&amp;nbsp;SiSense has nothing to evaluate the functions against. Lots of much fancier ways to present the data you&amp;#39;re interested in depending on the visualization that&amp;nbsp;best tells the&amp;nbsp;narrative you are trying to present.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve also included below a pretty simple script you can use to&amp;nbsp;conditionally format the color of&amp;nbsp;text within a Pivot Table column based on value.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;&lt;span style="color:#808080;"&gt;//Text column formatting&lt;/span&gt;&lt;br /&gt;widget.on(&amp;#39;ready&amp;#39;, function(se, ev){&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div style="padding-left:60px;"&gt;&lt;code&gt;&lt;span style="color:#0000ff;"&gt;var evalCol = 4;&lt;span style="color:#808080;"&gt; //&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;fidx val of column to evaluate&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color:#0000ff;"&gt;var formatCol = $(&amp;#39;td[fidx='+evalCol+']&amp;#39;); &lt;span style="color:#808080;"&gt;//&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;jQuery pull entire eval column into array&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color:#0000ff;"&gt;$.each(formatCol, function(a, b){ &lt;span style="color:#808080;"&gt;//function to loop through array&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style="padding-left:30px;"&gt;&lt;code&gt;&lt;span style="color:#0000ff;"&gt;if($(this).attr(&amp;#39;val&amp;#39;) &amp;gt; 0) { &lt;span style="color:#808080;"&gt;//evaluate text content of each cell in column&amp;#39;s array. note: need to use JavaScript this instead of jQuery $(this), since textContent is a JavaScript attribute.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style="padding-left:30px;"&gt;&lt;code&gt;&lt;span style="color:#0000ff;"&gt;$(this).css(&amp;#39;color&amp;#39;,&amp;#39;green&amp;#39;); &lt;span style="color:#808080;"&gt;//set conditional styling&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;span style="color:#0000ff;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color:#0000ff;"&gt;else if ($(this).attr(&amp;#39;val&amp;#39;) &amp;lt; 0) {&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style="padding-left:30px;"&gt;&lt;code&gt;&lt;span style="color:#0000ff;"&gt;$(this).css(&amp;#39;color&amp;#39;,&amp;#39;red&amp;#39;);&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;span style="color:#0000ff;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;span style="color:#0000ff;"&gt;});&lt;/span&gt;&lt;/div&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;});&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;img src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/6521.Arsht-_2D00_-SiSsense-Analytics-Date-and-Time-Functions-_2D00_-01.jpg" alt=" " /&gt;&lt;img src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/2783.Arsht-_2D00_-SiSsense-Analytics-Date-and-Time-Functions-_2D00_-02-_2D00_-DiffPastPeriod.jpg" alt=" " /&gt;&lt;img alt=" " src="/resized-image/__size/1040x988/__key/communityserver-wikis-components-files/00-00-00-01-14/2437.Arsht-_2D00_-SiSsense-Analytics-Date-and-Time-Functions-_2D00_-03-_2D00_-GrowthPastWeek.jpg" /&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://communitytest.tessitura.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/7608.ArshtCenter_5F00_SiSenseDateTimeFunctionExamples_5F00_2019_2D00_12_2D00_17.dash"&gt;communitytest.tessitura.com/.../7608.ArshtCenter_5F00_SiSenseDateTimeFunctionExamples_5F00_2019_2D00_12_2D00_17.dash&lt;/a&gt;&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Tessitura Analytics, Javascript, jquery, conditional format&lt;/div&gt;
</description></item><item><title>Joining Isolated Data-points, Removing Data Markers, Interpolating Last Point</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/793/joining-isolated-data-points-removing-data-markers-interpolating-last-point</link><pubDate>Fri, 10 Nov 2023 04:16:40 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:2c5a8b84-c879-4c22-8263-f5b8dcca77b4</guid><dc:creator>Heath Wilder</dc:creator><description>Current Revision posted to Wiki by Heath Wilder on 11/10/2023 4:16:40 AM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;Initially the issue of gaps and isolated measures in line plots was something that needed special code intervention.&amp;nbsp; However now that feature is supported.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1hemlnm181"&gt;&lt;span&gt;Official help doc info:&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;a href="https://www.tessituranetwork.com/Help_System/Content/Tessitura%20Analytics/Designing%20Dashboards/Continuous%20Timeline.htm"&gt;Creating a Continuous Chart with Missing Date Values (tessituranetwork.com)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:75%;"&gt;&lt;em&gt;NB/ To&amp;nbsp;make these modifications below you&amp;#39;ll need to edit your widgets script and add&amp;nbsp;these special scripts in.&amp;nbsp;&lt;/em&gt;&lt;em&gt;That guide is&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/w/wiki/807/analytics-scripts-not-saving"&gt;HERE&lt;/a&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;From&amp;nbsp;&lt;a href="/members/chriswallingford8511"&gt;Chris Wallingford&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off"&gt;https://community.tessituranetwork.com/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1gi4rp40n0"&gt;JOINING THE DOTS&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;font-family:inherit;font-size:inherit;"&gt;Points on the original line that are isolated, single data-points not immediately preceded or followed by another non-null data-point of the x-axis, [can be linked but] a marker dot will still be rendered on the line chart:&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;widget.on(&amp;quot;beforeviewloaded&amp;quot;,function(scope, args){
args.options.plotOptions.series.connectNulls = true;
});&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1gi4rp40n1"&gt;&lt;span&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1647459498074v1.png" /&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h1 id="mcetoc_1gi4rp40n2"&gt;REMOVING THE MARKERS&lt;/h1&gt;
&lt;p&gt;&lt;span style="color:#000000;font-family:inherit;font-size:inherit;"&gt;Expanding this script, we can iterate through all series lines, and all data points on each line to explicitly remove the marker dots.&amp;nbsp;This will remove the markers as shown below, however, any series with only one data-point in the whole widget will disappear from the chart altogether. This may be a non-issue in your data however.&lt;/span&gt;&lt;/p&gt;
&lt;div class="line number1 index0 alt2" style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="line number1 index0 alt2"&gt;&lt;pre class="ui-code" data-mode="text"&gt;widget.on(&amp;quot;beforeviewloaded&amp;quot;,function(scope, args){
args.options.plotOptions.series.connectNulls = true;
});
     
widget.on(&amp;#39;render&amp;#39;, function(sender,se){
for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {
    for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {
        sender.queryResult.series[i].data[j].marker.enabled = false;
         }
    }
}
)&lt;/pre&gt;&lt;/div&gt;
&lt;div class="line number1 index0 alt2" style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;span&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1647459555222v2.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1gi4rp40n3"&gt;INTERPOLATING LAST POINT&lt;/h1&gt;
&lt;p&gt;Joining two points where there is a gap of multiple days might not be accurate.&amp;nbsp; On a daily sales graph, if you sold tickets in Feb 3rd and then again in Feb 10th you might not want to draw a straight line between those points indicating sales though our the quiet week.&amp;nbsp; A&amp;nbsp;more accurate&amp;nbsp;option might be to infer that&amp;nbsp;the ticket sales amount stays&amp;nbsp;the same from Feb 3rd to Feb 9th before increasing on Feb 10th.&lt;/p&gt;
&lt;p&gt;Chris gives the answer here&amp;nbsp;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off/82722#82722"&gt;https://community.tessituranetwork.com/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off/82722#82722&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Please update the panelName variable with the exact name of the value in your widget.&amp;nbsp;In my widget I&amp;#39;d named my value &amp;quot;RSUM Total Ticket Count&amp;quot;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;widget.on(&amp;#39;processresult&amp;#39;, function(se, ev){
     
    var panelName = &amp;#39;RSUM Total Ticket Count&amp;#39;
     
    var series = ev.result.series.find(el =&amp;gt; el.name == panelName)
    var prevValue = series.data[0].y
     
    $.each(series.data, function(index, value){
        if(value.y == null)
            value.y = prevValue
        else
            prevValue = value.y;
    })
     
})
      
widget.on(&amp;#39;render&amp;#39;, function(sender,se){
for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {
    for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {
        sender.queryResult.series[i].data[j].marker.enabled = false;
         }
    }
}
)&lt;/pre&gt;&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;&lt;code&gt;&lt;code&gt;&lt;/code&gt;&lt;/code&gt;
&lt;div class="line number1 index0 alt2"&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1668614557831v2.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: wiki, problem solving, Tessitura Analytics&lt;/div&gt;
</description></item><item><title>Analytics Scripts not Saving</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/807/analytics-scripts-not-saving</link><pubDate>Fri, 10 Nov 2023 04:08:52 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:6cae3dad-b1e6-448b-acad-d0bbf8231a9b</guid><dc:creator>Heath Wilder</dc:creator><description>Current Revision posted to Wiki by Heath Wilder on 11/10/2023 4:08:52 AM&lt;br /&gt;
&lt;p&gt;From the thread&amp;nbsp;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/30041/analytics-scripts-not-saving"&gt;HERE&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Do you have&lt;span&gt;&amp;nbsp;problems when trying to add a script to a widget and, although you get the &amp;quot;Script Saved&amp;quot;, it never seems to be applied?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Chris&amp;#39; tip:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Sisense is a little picky with the script save process. The most reliable steps are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;From the Edit Widget page,&amp;nbsp;&lt;span&gt;from the upper-right (...) menu, select Edit Widget Code&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Open the Edit script page, which opens in a new window.&lt;/li&gt;
&lt;li&gt;Update the script and click Save, which prompts with &amp;quot;Script Saved&amp;quot;.&lt;/li&gt;
&lt;li&gt;Leave the script window open and return to the Edit Widget page and refresh.
&lt;ol&gt;
&lt;li&gt;This is easiest in the web where you will return to the Edit Widget screen. Click Apply on the Edit Widget page.&lt;/li&gt;
&lt;li&gt;In the desktop app, right click somewhere where you can get the browser context menu - as opposed to the Sisense once - and select Hard Reload. You&amp;#39;ll be taken back to the Analytics Welcome screen, but navigate back to your dashboard and widget.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;The script changes should now be applied, and you can close the script page if the no further script edits are required.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: analytics, script&lt;/div&gt;
</description></item><item><title>First Time Buyers and Subsequent Buying</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/811/first-time-buyers-and-subsequent-buying/revision/3</link><pubDate>Wed, 08 Nov 2023 08:44:14 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:a927e880-0a3a-47d5-be87-286d478cd674</guid><dc:creator>Heath Wilder</dc:creator><description>Revision 3 posted to Wiki by Heath Wilder on 11/8/2023 8:44:14 AM&lt;br /&gt;
&lt;p&gt;From&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/f/discussions/33268/first-time-buyers-from-previous-year-returning-in-2023/86502#86502"&gt;(+) First Time Buyers from Previous Year Returning in 2023 - Discussions - analytic Coffee! - Tessitura Network&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;Michael Dorsey&lt;/span&gt;&amp;nbsp;(Spoleto Festival USA)&lt;/strong&gt;&lt;br /&gt; I&amp;#39;m wondering if anyone has&amp;nbsp;anything that gives the accurate&amp;nbsp;number first time buyers from a specified year that returned this year?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="author"&gt;
&lt;div class="meta"&gt;&lt;span class="user-name"&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;Christine Wingenfeld&lt;/span&gt; (&lt;/strong&gt;&lt;span&gt;&lt;strong&gt;Pittsburgh Cultural Trust Consortium)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="content full threaded-reply-content user-defined-markup"&gt;
&lt;div class="content"&gt;
&lt;p&gt;Hi Michael,&lt;/p&gt;
&lt;p&gt;I have a couple of formulas that might help you&amp;nbsp;with this concept. I created them to look overall at the return rate of first time buyers and what they were coming to next. I wonder if you could adjust things in these formulas to look more at specific years.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " height="445" src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1687552694251v5.png" width="941" /&gt;&lt;/p&gt;
&lt;p&gt;The summary widget is filtered to select different production seasons and then I have the following formula to calculate how many have since returned.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;COUNT ( [Constituent ID],&amp;nbsp;&lt;br /&gt;&lt;/code&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&lt;span&gt;&amp;nbsp;MIN&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;( &lt;span&gt;DDIFF&lt;/span&gt;( [Days in Date] , [Days in First Performance Date] ) ) = 0&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND&amp;nbsp;&lt;span style="color:#ff0000;"&gt;( [# of unique Production Season ID], ALL( [Production Season] ) ) &lt;span style="color:#000000;"&gt;&amp;gt; 1&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , [Max Constituent ID]&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ,&amp;nbsp;NULL&amp;nbsp;&lt;/span&gt;)&lt;/code&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;)&lt;/p&gt;
&lt;p&gt;The&lt;span style="color:#0000ff;"&gt;&amp;nbsp;first part&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;of the formula recognizes if they are a first-time buyer&lt;sup&gt; [HW: see below #1]&lt;/sup&gt;, and then the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;second part&amp;nbsp;&lt;/span&gt;adds in whether they have come to anything else.&lt;/p&gt;
&lt;p&gt;Taking this formula, I then add onto it to create a proportion of how many are returning:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;(&lt;span&gt;COUNT&amp;nbsp;&lt;/span&gt;( [Constituent ID],&lt;span&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;span style="color:#0000ff;"&gt;&amp;nbsp;MIN ( DDIFF( [Days in Date] , [Days in First Performance Date] ) ) = 0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff0000;"&gt;( [ # of unique Production Season ID] , ALL( [Production Season] ) )&lt;/span&gt; &amp;gt; 1&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,&amp;nbsp;[Max Constituent ID] &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;, NULL )&lt;br /&gt;&lt;/code&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &lt;br /&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:inherit;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp;/ &lt;br /&gt;(&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;COUNT&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;( [Constituent ID],&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;MIN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;&amp;nbsp;( DDIFF( [Days in D&lt;/code&gt;ate] , [Days in First Performance Date]) ) =0&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ,&amp;nbsp;[Max Constituent ID]&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &lt;/span&gt;&lt;span style="font-family:inherit;"&gt;NULL&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &lt;br /&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;So, the denominator here just gets a total count of first-time buyers, as in the&lt;span style="color:#0000ff;"&gt;&amp;nbsp;first part.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have another widget that then that looks at what they are coming to next designed as a bar chart. This widget is filtered by the first performance name. The formula I use here probably could have also been used in a variation in the above calculations.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;&lt;span&gt;COUNT&amp;nbsp;&lt;/span&gt;( [Constituent ID] ,&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&amp;nbsp;MIN (&amp;nbsp;DDIFF&amp;nbsp;( [Days in Date] , [Days in First Performance Date] ) ) &amp;gt; 0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &lt;span&gt;[Max Constituent ID]&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , NULL )&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For this formula, I started with the formula for first time buyers, but then looked at anything that they have come to since that first performance date [hence &amp;gt; 0]. I have categories for season&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;and&lt;/em&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;production season, but if you just want to look more broadly at who came back in a certain season, you could probably just use season.&lt;/p&gt;
&lt;p&gt;You won&amp;#39;t be able to use a jump-to with these formulas, but you could always add a constituent ID to a pivot table to download and import as a manual list to verify.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://communitytest.tessitura.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/FirstTimeBuyerWidgetIdeas.dash"&gt;communitytest.tessitura.com/.../FirstTimeBuyerWidgetIdeas.dash&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: wiki, first time buyers, analytic Coffee!, new to file&lt;/div&gt;
</description></item><item><title>First Time Buyers and Subsequent Buying</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/811/first-time-buyers-and-subsequent-buying/revision/2</link><pubDate>Wed, 08 Nov 2023 07:27:02 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:a927e880-0a3a-47d5-be87-286d478cd674</guid><dc:creator>Heath Wilder</dc:creator><description>Revision 2 posted to Wiki by Heath Wilder on 11/8/2023 7:27:02 AM&lt;br /&gt;

&lt;p&gt;From&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/f/discussions/33268/first-time-buyers-from-previous-year-returning-in-2023/86502#86502"&gt;(+) First Time Buyers from Previous Year Returning in 2023 - Discussions - analytic Coffee! - Tessitura Network&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a class="internal-link view-user-profile" href="/members/michaeldorsey3609"&gt;Michael Dorsey&lt;/a&gt;&amp;nbsp;(Spoleto Festival USA)&lt;br /&gt; I&amp;#39;m wondering if anyone has&amp;nbsp;anything that gives the accurate&amp;nbsp;number first time buyers from a specified year that returned this year?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="author"&gt;
&lt;div class="meta"&gt;&lt;span class="user-name"&gt;&lt;a class="internal-link view-user-profile" href="/members/christinesajewski9396"&gt;Christine Wingenfeld&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/a&gt;(&lt;span&gt;Pittsburgh Cultural Trust Consortium)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="content full threaded-reply-content user-defined-markup"&gt;
&lt;div class="content"&gt;
&lt;p&gt;Hi Michael,&lt;/p&gt;
&lt;p&gt;I have a couple of formulas that might help you&amp;nbsp;with this concept. I created them to look overall at the return rate of first time buyers and what they were coming to next. I wonder if you could adjust things in these formulas to look more at specific years.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " height="445" src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1687552694251v5.png" width="941" /&gt;&lt;/p&gt;
&lt;p&gt;The summary widget is filtered to select different production seasons and then I have the following formula to calculate how many have since returned.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;COUNT ( [Constituent ID],&amp;nbsp;&lt;br /&gt;&lt;/code&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&lt;span&gt;&amp;nbsp;MIN&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;( &lt;span&gt;DDIFF&lt;/span&gt;( [Days in Date] , [Days in First Performance Date] ) ) = 0&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND&amp;nbsp;&lt;span style="color:#ff0000;"&gt;( [# of unique Production Season ID], ALL( [Production Season] ) ) &lt;span style="color:#000000;"&gt;&amp;gt; 1&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , [Max Constituent ID]&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ,&amp;nbsp;NULL&amp;nbsp;&lt;/span&gt;)&lt;/code&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;)&lt;/p&gt;
&lt;p&gt;The&lt;span style="color:#0000ff;"&gt;&amp;nbsp;first part&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;of the formula recognizes if they are a first-time buyer&lt;sup&gt; [HW: see below #1]&lt;/sup&gt;, and then the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;second part&amp;nbsp;&lt;/span&gt;adds in whether they have come to anything else.&lt;/p&gt;
&lt;p&gt;Taking this formula, I then add onto it to create a proportion of how many are returning:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;(&lt;span&gt;COUNT&amp;nbsp;&lt;/span&gt;( [Constituent ID],&lt;span&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;span style="color:#0000ff;"&gt;&amp;nbsp;MIN ( DDIFF( [Days in Date] , [Days in First Performance Date] ) ) = 0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff0000;"&gt;( [ # of unique Production Season ID] , ALL( [Production Season] ) )&lt;/span&gt; &amp;gt; 1&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,&amp;nbsp;[Max Constituent ID] &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;, NULL )&lt;br /&gt;&lt;/code&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &lt;br /&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:inherit;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp;/ &lt;br /&gt;(&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;COUNT&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;( [Constituent ID],&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;MIN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;&amp;nbsp;( DDIFF( [Days in D&lt;/code&gt;ate] , [Days in First Performance Date]) ) =0&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ,&amp;nbsp;[Max Constituent ID]&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &lt;/span&gt;&lt;span style="font-family:inherit;"&gt;NULL&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &lt;br /&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;So, the denominator here just gets a total count of first-time buyers, as in the&lt;span style="color:#0000ff;"&gt;&amp;nbsp;first part.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have another widget that then that looks at what they are coming to next designed as a bar chart. This widget is filtered by the first performance name. The formula I use here probably could have also been used in a variation in the above calculations.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;&lt;span&gt;COUNT&amp;nbsp;&lt;/span&gt;( [Constituent ID] ,&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&amp;nbsp;MIN (&amp;nbsp;DDIFF&amp;nbsp;( [Days in Date] , [Days in First Performance Date] ) ) &amp;gt; 0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &lt;span&gt;[Max Constituent ID]&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , NULL )&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For this formula, I started with the formula for first time buyers, but then looked at anything that they have come to since that first performance date [hence &amp;gt; 0]. I have categories for season&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;and&lt;/em&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;production season, but if you just want to look more broadly at who came back in a certain season, you could probably just use season.&lt;/p&gt;
&lt;p&gt;You won&amp;#39;t be able to use a jump-to with these formulas, but you could always add a constituent ID to a pivot table to download and import as a manual list to verify.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://communitytest.tessitura.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/FirstTimeBuyerWidgetIdeas.dash"&gt;communitytest.tessitura.com/.../FirstTimeBuyerWidgetIdeas.dash&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: wiki, first time buyers, analytic Coffee!, new to file&lt;/div&gt;
</description></item><item><title>First Time Buyers and Subsequent Buying</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/811/first-time-buyers-and-subsequent-buying/revision/1</link><pubDate>Wed, 08 Nov 2023 06:37:34 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:a927e880-0a3a-47d5-be87-286d478cd674</guid><dc:creator>Heath Wilder</dc:creator><description>Revision 1 posted to Wiki by Heath Wilder on 11/8/2023 6:37:34 AM&lt;br /&gt;
&lt;p&gt;From&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/f/discussions/33268/first-time-buyers-from-previous-year-returning-in-2023/86502#86502"&gt;(+) First Time Buyers from Previous Year Returning in 2023 - Discussions - analytic Coffee! - Tessitura Network&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a class="internal-link view-user-profile" href="/members/michaeldorsey3609"&gt;Michael Dorsey&lt;/a&gt;&amp;nbsp;(Spoleto Festival USA)&lt;br /&gt; I&amp;#39;m wondering if anyone has&amp;nbsp;anything that gives the accurate&amp;nbsp;number first time buyers from a specified year that returned this year?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="author"&gt;
&lt;div class="meta"&gt;&lt;span class="user-name"&gt;&lt;a class="internal-link view-user-profile" href="/members/christinesajewski9396"&gt;Christine Wingenfeld&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/a&gt;(&lt;span&gt;Pittsburgh Cultural Trust Consortium)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="content full threaded-reply-content user-defined-markup"&gt;
&lt;div class="content"&gt;
&lt;p&gt;Hi Michael,&lt;/p&gt;
&lt;p&gt;I have a couple of formulas that might help you&amp;nbsp;with this concept. I created them to look overall at the return rate of first time buyers and what they were coming to next. I wonder if you could adjust things in these formulas to look more at specific years.&lt;/p&gt;
&lt;p&gt;&lt;img height="445" src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1687552694251v5.png" width="941" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;The summary widget is filtered to select different production seasons and then I have the following formula to calculate how many have since returned.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;COUNT ( [Constituent ID],&amp;nbsp;&lt;br /&gt;&lt;/code&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&lt;span&gt;&amp;nbsp;MIN&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;( &lt;span&gt;DDIFF&lt;/span&gt;( [Days in Date] , [Days in First Performance Date] ) ) = 0&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND&amp;nbsp;&lt;span style="color:#ff0000;"&gt;( [# of unique Production Season ID], ALL( [Production Season] ) ) &lt;span style="color:#000000;"&gt;&amp;gt; 1&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , [Max Constituent ID]&lt;br /&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ,&amp;nbsp;NULL&amp;nbsp;&lt;/span&gt;)&lt;/code&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;)&lt;/p&gt;
&lt;p&gt;The&lt;span style="color:#0000ff;"&gt;&amp;nbsp;first part&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;of the formula recognizes if they are a first-time buyer&lt;sup&gt; [HW: see below #1]&lt;/sup&gt;, and then the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;second part&amp;nbsp;&lt;/span&gt;adds in whether they have come to anything else.&lt;/p&gt;
&lt;p&gt;Taking this formula, I then add onto it to create a proportion of how many are returning:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;(&lt;span&gt;COUNT&amp;nbsp;&lt;/span&gt;( [Constituent ID],&lt;span&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IF&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;span style="color:#0000ff;"&gt;&amp;nbsp;MIN ( DDIFF( [Days in Date] , [Days in First Performance Date] ) ) = 0&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="color:#0000ff;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AND&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span style="color:#ff0000;"&gt;( [ # of unique Production Season ID] , ALL( [Production Season] ) )&lt;/span&gt; &amp;gt; 1&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;,&amp;nbsp;[Max Constituent ID] &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;, NULL )&lt;br /&gt;&lt;/code&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &lt;br /&gt;&lt;/span&gt;&lt;code&gt;&lt;span style="font-family:inherit;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp;/ &lt;br /&gt;(&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;COUNT&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;( [Constituent ID],&amp;nbsp;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp;&lt;span style="color:#0000ff;"&gt;MIN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;&amp;nbsp;( DDIFF( [Days in D&lt;/code&gt;ate] , [Days in First Performance Date]) ) =0&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ,&amp;nbsp;[Max Constituent ID]&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &lt;/span&gt;&lt;span style="font-family:inherit;"&gt;NULL&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:inherit;"&gt;) &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ) &lt;br /&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So, the denominator here just gets a total count of first-time buyers, as in the&lt;span style="color:#0000ff;"&gt;&amp;nbsp;first part.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have another widget that then that looks at what they are coming to next designed as a bar chart. This widget is filtered by the first performance name. The formula I use here probably could have also been used in a variation in the above calculations.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;code&gt;&lt;span&gt;COUNT&amp;nbsp;&lt;/span&gt;( [Constituent ID] ,&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IF (&amp;nbsp;MIN (&amp;nbsp;DDIFF&amp;nbsp;( [Days in Date] , [Days in First Performance Date] ) ) &amp;gt; 0&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &lt;span&gt;[Max Constituent ID]&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , NULL )&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For this formula, I started with the formula for first time buyers, but then looked at anything that they have come to since that first performance date [hence &amp;gt; 0]. I have categories for season&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;em&gt;and&lt;/em&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;production season, but if you just want to look more broadly at who came back in a certain season, you could probably just use season.&lt;/p&gt;
&lt;p&gt;You won&amp;#39;t be able to use a jump-to with these formulas, but you could always add a constituent ID to a pivot table to download and import as a manual list to verify.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item><item><title>Joining Isolated Data-points, Removing Data Markers, Interpolating Last Point</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/793/joining-isolated-data-points-removing-data-markers-interpolating-last-point/revision/10</link><pubDate>Wed, 08 Nov 2023 05:17:54 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:2c5a8b84-c879-4c22-8263-f5b8dcca77b4</guid><dc:creator>Heath Wilder</dc:creator><description>Revision 10 posted to Wiki by Heath Wilder on 11/8/2023 5:17:54 AM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;Initially the issue of gaps and isolated measures in line plots was something that needed special code intervention.&amp;nbsp; However now that feature is supported.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1hemlnm181"&gt;&lt;span&gt;Official help doc info:&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;&lt;a href="https://www.tessituranetwork.com/Help_System/Content/Tessitura%20Analytics/Designing%20Dashboards/Continuous%20Timeline.htm"&gt;Creating a Continuous Chart with Missing Date Values (tessituranetwork.com)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;From&amp;nbsp;&lt;a href="/members/chriswallingford8511"&gt;Chris Wallingford&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off"&gt;https://community.tessituranetwork.com/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1gi4rp40n0"&gt;JOINING THE DOTS&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;font-family:inherit;font-size:inherit;"&gt;Points on the original line that are isolated, single data-points not immediately preceded or followed by another non-null data-point of the x-axis, [can be linked but] a marker dot will still be rendered on the line chart:&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;widget.on(&amp;quot;beforeviewloaded&amp;quot;,function(scope, args){
args.options.plotOptions.series.connectNulls = true;
});&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1gi4rp40n1"&gt;&lt;span&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1647459498074v1.png" /&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h1 id="mcetoc_1gi4rp40n2"&gt;REMOVING THE MARKERS&lt;/h1&gt;
&lt;p&gt;&lt;span style="color:#000000;font-family:inherit;font-size:inherit;"&gt;Expanding this script, we can iterate through all series lines, and all data points on each line to explicitly remove the marker dots.&amp;nbsp;This will remove the markers as shown below, however, any series with only one data-point in the whole widget will disappear from the chart altogether. This may be a non-issue in your data however.&lt;/span&gt;&lt;/p&gt;
&lt;div class="line number1 index0 alt2" style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="line number1 index0 alt2"&gt;&lt;pre class="ui-code" data-mode="text"&gt;widget.on(&amp;quot;beforeviewloaded&amp;quot;,function(scope, args){
args.options.plotOptions.series.connectNulls = true;
});
     
widget.on(&amp;#39;render&amp;#39;, function(sender,se){
for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {
    for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {
        sender.queryResult.series[i].data[j].marker.enabled = false;
         }
    }
}
)&lt;/pre&gt;&lt;/div&gt;
&lt;div class="line number1 index0 alt2" style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;span&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1647459555222v2.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1gi4rp40n3"&gt;INTERPOLATING LAST POINT&lt;/h1&gt;
&lt;p&gt;Joining two points where there is a gap of multiple days might not be accurate.&amp;nbsp; On a daily sales graph, if you sold tickets in Feb 3rd and then again in Feb 10th you might not want to draw a straight line between those points indicating sales though our the quiet week.&amp;nbsp; A&amp;nbsp;more accurate&amp;nbsp;option might be to infer that&amp;nbsp;the ticket sales amount stays&amp;nbsp;the same from Feb 3rd to Feb 9th before increasing on Feb 10th.&lt;/p&gt;
&lt;p&gt;Chris gives the answer here&amp;nbsp;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off/82722#82722"&gt;https://community.tessituranetwork.com/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off/82722#82722&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Please update the panelName variable with the exact name of the value in your widget.&amp;nbsp;In my widget I&amp;#39;d named my value &amp;quot;RSUM Total Ticket Count&amp;quot;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;widget.on(&amp;#39;processresult&amp;#39;, function(se, ev){
     
    var panelName = &amp;#39;RSUM Total Ticket Count&amp;#39;
     
    var series = ev.result.series.find(el =&amp;gt; el.name == panelName)
    var prevValue = series.data[0].y
     
    $.each(series.data, function(index, value){
        if(value.y == null)
            value.y = prevValue
        else
            prevValue = value.y;
    })
     
})
      
widget.on(&amp;#39;render&amp;#39;, function(sender,se){
for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {
    for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {
        sender.queryResult.series[i].data[j].marker.enabled = false;
         }
    }
}
)&lt;/pre&gt;&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;&lt;code&gt;&lt;code&gt;&lt;/code&gt;&lt;/code&gt;
&lt;div class="line number1 index0 alt2"&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1668614557831v2.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: wiki, problem solving, Tessitura Analytics&lt;/div&gt;
</description></item><item><title>Conditionally format the color of text</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/766/conditionally-format-the-color-of-text/revision/2</link><pubDate>Wed, 08 Nov 2023 05:14:20 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:a5ea30e4-5bc7-4d96-ae80-e1cb5816103f</guid><dc:creator>Heath Wilder</dc:creator><description>Revision 2 posted to Wiki by Heath Wilder on 11/8/2023 5:14:20 AM&lt;br /&gt;
&lt;h2&gt;Conditionally format the color of text within a Pivot Table column based on value (JQuery/JavaScript)&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;From Daniel Gomez&amp;nbsp;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/24079/analytics-date-time-functions"&gt;https://community.tessituranetwork.com/tessitura_software_forums/f/tessitura_shared_reports-9/24079/analytics-date-time-functions&lt;/a&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;br /&gt;I&amp;#39;ve also included below a pretty simple script you can use to&amp;nbsp;conditionally format the color of&amp;nbsp;text within a Pivot Table column based on value.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;//Text column formatting&lt;br /&gt;widget.on(&amp;#39;ready&amp;#39;, function(se, ev){&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;&lt;span style="color:#0000ff;"&gt;var evalCol = 4; //fidx val of column to evaluate&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;var formatCol = $(&amp;#39;td[fidx='+evalCol+']&amp;#39;); //jquery pull entire eval column into array&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;$.each(formatCol, function(a, b){ //function to loop through array&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#0000ff;"&gt;if($(this).attr(&amp;#39;val&amp;#39;) &amp;gt; 0) { //evaluate text conent of each cell in column&amp;#39;s array. note: need to use JavaScript this instead of JQuery $(this), since textContent is a JavaScript attribute.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#0000ff;"&gt;$(this).css(&amp;#39;color&amp;#39;,&amp;#39;green&amp;#39;); //set conditional styling&lt;/span&gt;&lt;/div&gt;
&lt;span style="color:#0000ff;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;else if ($(this).attr(&amp;#39;val&amp;#39;) &amp;lt; 0) {&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style="color:#0000ff;"&gt;$(this).css(&amp;#39;color&amp;#39;,&amp;#39;red&amp;#39;);&lt;/span&gt;&lt;/div&gt;
&lt;span style="color:#0000ff;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;span style="color:#0000ff;"&gt;});&lt;/span&gt;&lt;/div&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code&gt;});&lt;/code&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Tessitura Analytics, Javascript, jquery, conditional format&lt;/div&gt;
</description></item><item><title>Joining Isolated Data-points, Removing Data Markers, Interpolating Last Point</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/793/joining-isolated-data-points-removing-data-markers-interpolating-last-point/revision/9</link><pubDate>Mon, 06 Nov 2023 09:07:41 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:2c5a8b84-c879-4c22-8263-f5b8dcca77b4</guid><dc:creator>Heath Wilder</dc:creator><description>Revision 9 posted to Wiki by Heath Wilder on 11/6/2023 9:07:41 AM&lt;br /&gt;
&lt;p&gt;&lt;span&gt;Initially this was something that needed special intervention.&amp;nbsp; However not that feature is supported natively.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Official help doc info is here&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:150%;"&gt;&lt;a href="https://www.tessituranetwork.com/Help_System/Content/Tessitura%20Analytics/Designing%20Dashboards/Continuous%20Timeline.htm"&gt;Creating a Continuous Chart with Missing Date Values (tessituranetwork.com)&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;From&amp;nbsp;&lt;a href="/members/chriswallingford8511"&gt;Chris Wallingford&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off"&gt;https://community.tessituranetwork.com/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1gi4rp40n0"&gt;JOINING THE DOTS&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#000000;font-family:inherit;font-size:inherit;"&gt;Points on the original line that are isolated, single data-points not immediately preceded or followed by another non-null data-point of the x-axis, [can be linked but] a marker dot will still be rendered on the line chart:&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;widget.on(&amp;quot;beforeviewloaded&amp;quot;,function(scope, args){
args.options.plotOptions.series.connectNulls = true;
});&lt;/pre&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1gi4rp40n1"&gt;&lt;span&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1647459498074v1.png" /&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h1 id="mcetoc_1gi4rp40n2"&gt;REMOVING THE MARKERS&lt;/h1&gt;
&lt;p&gt;&lt;span style="color:#000000;font-family:inherit;font-size:inherit;"&gt;Expanding this script, we can iterate through all series lines, and all data points on each line to explicitly remove the marker dots.&amp;nbsp;This will remove the markers as shown below, however, any series with only one data-point in the whole widget will disappear from the chart altogether. This may be a non-issue in your data however.&lt;/span&gt;&lt;/p&gt;
&lt;div class="line number1 index0 alt2" style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="line number1 index0 alt2"&gt;&lt;pre class="ui-code" data-mode="text"&gt;widget.on(&amp;quot;beforeviewloaded&amp;quot;,function(scope, args){
args.options.plotOptions.series.connectNulls = true;
});
     
widget.on(&amp;#39;render&amp;#39;, function(sender,se){
for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {
    for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {
        sender.queryResult.series[i].data[j].marker.enabled = false;
         }
    }
}
)&lt;/pre&gt;&lt;/div&gt;
&lt;div class="line number1 index0 alt2" style="padding-left:30px;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;span&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1647459555222v2.png" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="mcetoc_1gi4rp40n3"&gt;INTERPOLATING LAST POINT&lt;/h1&gt;
&lt;p&gt;Joining two points where there is a gap of multiple days might not be accurate.&amp;nbsp; On a daily sales graph, if you sold tickets in Feb 3rd and then again in Feb 10th you might not want to draw a straight line between those points indicating sales though our the quiet week.&amp;nbsp; A&amp;nbsp;more accurate&amp;nbsp;option might be to infer that&amp;nbsp;the ticket sales amount stays&amp;nbsp;the same from Feb 3rd to Feb 9th before increasing on Feb 10th.&lt;/p&gt;
&lt;p&gt;Chris gives the answer here&amp;nbsp;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off/82722#82722"&gt;https://community.tessituranetwork.com/tessitura_software_forums/f/tessitura_shared_reports-9/29770/data-markers-appearing-when-turned-off/82722#82722&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Please update the panelName variable with the exact name of the value in your widget.&amp;nbsp;In my widget I&amp;#39;d named my value &amp;quot;RSUM Total Ticket Count&amp;quot;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;widget.on(&amp;#39;processresult&amp;#39;, function(se, ev){
     
    var panelName = &amp;#39;RSUM Total Ticket Count&amp;#39;
     
    var series = ev.result.series.find(el =&amp;gt; el.name == panelName)
    var prevValue = series.data[0].y
     
    $.each(series.data, function(index, value){
        if(value.y == null)
            value.y = prevValue
        else
            prevValue = value.y;
    })
     
})
      
widget.on(&amp;#39;render&amp;#39;, function(sender,se){
for (var i = 0; i &amp;lt; sender.queryResult.series.length; i++ ) {
    for (var j = 0; j &amp;lt; sender.queryResult.series[i].data.length; j++) {
        sender.queryResult.series[i].data[j].marker.enabled = false;
         }
    }
}
)&lt;/pre&gt;&lt;/p&gt;
&lt;div class="content-scrollable-wrapper"&gt;&lt;code&gt;&lt;code&gt;&lt;/code&gt;&lt;/code&gt;
&lt;div class="line number1 index0 alt2"&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;code class="sql plain"&gt;&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1668614557831v2.png" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: wiki, problem solving, Tessitura Analytics&lt;/div&gt;
</description></item><item><title>More Power BI Link and Resouces</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/810/more-power-bi-link-and-resouces</link><pubDate>Fri, 13 Oct 2023 06:50:17 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:42a96d0f-bea5-4ed3-bb90-b47d197d174e</guid><dc:creator>Heath Wilder</dc:creator><description>Current Revision posted to Wiki by Heath Wilder on 10/13/2023 6:50:17 AM&lt;br /&gt;
&lt;h1 id="mcetoc_1hcjs473n8"&gt;Avoiding the Pitfalls to production-ready Power Query results&lt;/h1&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/17796/avoiding-the-pitfalls-to-production-ready-power-query-results"&gt;From Tom and Neil&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Includes some tips on training&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You too can deliver production-ready robust queries vis MS Power Query if your avoid &amp;quot;The Ten Pitfalls of the Data Wrangler...&amp;quot; I came across this article&amp;nbsp;that you might find of interest.&amp;nbsp; I know that I have personally discovered some of these issues.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a title="https://powerpivotpro.com/2017/02/the-ten-pitfalls-of-the-data-wrangler-aka-the-wielder-of-mpower-query/" href="https://powerpivotpro.com/2017/02/the-ten-pitfalls-of-the-data-wrangler-aka-the-wielder-of-mpower-query/" rel="noopener noreferrer" target="_blank"&gt;https://powerpivotpro.com/2017/02/the-ten-pitfalls-of-the-data-wrangler-aka-the-wielder-of-mpower-query/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id="mcetoc_1hcjseri52"&gt;&lt;/h1&gt;
&lt;h1 id="mcetoc_1hcjsdkpk1"&gt;ExcelIsFun&lt;/h1&gt;
&lt;p&gt;&lt;a href="/tessitura_software_forums/f/tessitura_shared_reports-9/17796/avoiding-the-pitfalls-to-production-ready-power-query-results"&gt;From Neil Cole&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Here is the&lt;strong&gt; &lt;a href="https://www.youtube.com/channel/UCkndrGoNpUDV-uia6a9jwVg"&gt;BEST YouTube channel I&amp;rsquo;ve found regarding Power Query, Power Pivot,&amp;nbsp;and Power BI&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;(I kept running into his videos and then I finally clicked the profile; then my jaw dropped looking at all the videos.)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;strong&gt;&lt;a href="https://excelisfun.net/"&gt;ExcelIsFun&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Includes links to downloadable files so you can follow along, PDF of notes (well done notes), and time stamped outline of topics (so you can easily get to the part you want)):&lt;/p&gt;
&lt;p class="p1"&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="s1"&gt;&lt;strong&gt;FREE Excel Education&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;a href="https://www.youtube.com/playlist?list=PLrRPvpgDmw0lPPRiJO5dCUratRGpGx3aT"&gt;&lt;span class="s1"&gt;3,000 Excel videos &amp;mdash;&amp;nbsp;&lt;/span&gt;100 Playlists&lt;/a&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;/p&gt;
&lt;p class="p2"&gt;&lt;strong&gt;&lt;span class="s1"&gt;Data Analysis and Business Intelligence Made Easy with Excel Power Tools. Excel Data Analysis Basics (E-DAB).&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p class="p2"&gt;&lt;span class="s1"&gt;&lt;a href="https://youtu.be/FLzKnNmE4Ms"&gt;E-DAB 06&lt;/a&gt;: The Magic of Power Query to Import, Transform, &amp;amp; Load Data&lt;/span&gt;&lt;/p&gt;
&lt;p class="p3"&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="s1"&gt;&lt;strong&gt;&lt;a href="https://youtu.be/ldoQws7Zbx8"&gt;Excel Magic Trick 1331&lt;/a&gt;&lt;/strong&gt;: Import Excel Files &amp;amp; Sheets into Excel: Power Query Get &amp;amp; Transform&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: Data Analysis, power bi&lt;/div&gt;
</description></item><item><title>Learning about Python</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/794/learning-about-python</link><pubDate>Fri, 13 Oct 2023 06:46:46 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:fe4c8763-1155-4048-8b2f-0cb0bd350147</guid><dc:creator>Heath Wilder</dc:creator><description>Current Revision posted to Wiki by Heath Wilder on 10/13/2023 6:46:46 AM&lt;br /&gt;
&lt;div class="content"&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-wikis-components-files/00-00-00-01-14/pastedimage1656027129774v1.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;This is a place to share how you are using&amp;nbsp;Python or for info on getting started.&lt;/p&gt;
&lt;p&gt;To get started here are some threads from the forums to help you get started. The first link is a broken into levels of learning and has plenty of resources&amp;nbsp;in many modalities&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Want to learn Python?&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/f/discussions/27177/want-to-learn-python"&gt;https://community.tessituranetwork.com/topical_groups/analytics-coffee/f/discussions/27177/want-to-learn-python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PyCon&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/f/discussions/25092/want-to-learn-more-about-python---try-pycon"&gt;https://community.tessituranetwork.com/topical_groups/analytics-coffee/f/discussions/25092/want-to-learn-more-about-python---try-pycon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tessitura&amp;#39;s Python Library&amp;nbsp;&lt;a href="/topical_groups/analytics-coffee/f/discussions/24208/tessitura-python-library"&gt;https://community.tessituranetwork.com/topical_groups/analytics-coffee/f/discussions/24208/tessitura-python-library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Python for Everyone by Dr Chuck Russel (You can audit this course and do it for free. &amp;nbsp;Still learn a lot. )&amp;nbsp;https://www.coursera.org/specializations/python&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Much love&amp;nbsp;to Tom Brown for all his input&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: python&lt;/div&gt;
</description></item><item><title>Learning about AI</title><link>https://communitytest.tessitura.com/topical_groups/analytics-coffee/w/wiki/767/learning-about-ai</link><pubDate>Fri, 13 Oct 2023 06:46:46 GMT</pubDate><guid isPermaLink="false">fd08b0f2-65fa-4b2b-916a-cce3e88b61d0:c8671333-d685-4223-8dfc-9cbb476f0811</guid><dc:creator>Heath Wilder</dc:creator><description>Current Revision posted to Wiki by Heath Wilder on 10/13/2023 6:46:46 AM&lt;br /&gt;
&lt;ul&gt;
&lt;li class="reset-3c756112--pageTitle-33dc39a3"&gt;&lt;a href="https://docs.paperspace.com/machine-learning/"&gt;Paperspace Artificial Intelligence Wiki&lt;br /&gt;&lt;/a&gt;Whether you&amp;#39;re looking to explore new concepts or brush up on your terminology, this wiki offers up-to-date information on key topics in data science, machine learning, and deep learning.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>