Sisense Community logo
     
    • Community Feedback
    • Chapters
    • Events
    • Forums
      • Help and How To
      • Product Feedback Forum
      • Strategy & Use Cases
    • Blogs
    • KB Docs
      • KB Docs
      • Add-Ons & Plug-Ins
      • APIs
      • Best Practices
      • Blox
      • CDT
      • Cloud Managed Service
      • Data Models
      • Data Sources
      • Embedding Analytics
      • How-Tos & FAQs
      • Onboarding
      • PySisense
      • Security
      • Sisense Administration
      • Sisense Intelligence & AI
      • Troubleshooting
      • Widget & Dashboard Scripts
    • Support
    • Learning
      • Sisense Academy: Free Courses and Certifications
      • Official Developer Documentation
      • Official Product Documentation
      • Official Sisense Youtube Channel
      • Sisense Compose SDK Playground
      • Official Sisense Discord
    • Use Case Gallery
    •      
    Discussions
    •                    
    •                    
    •                    
    •                    
    •                    
    •                    
    •                    
    •                    
    •                    
    •                    
    •                    
    •                    
    •                    
    •                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
    Discussions
    • TagsChevronRightIcon
    dashboards & reporting
    • Mia Isaacson

      Help and How-To

               
      Mia Isaacson
      Posted 1 month ago • Last reply 1 month ago
      Tired of stacking indicator widgets? There's a better way.
                                                       

      If you've ever found yourself stacking indicator widget after indicator widget just to show a handful of KPIs, you're not alone. It's a common dashboard design (and performance) frustration, and it's exactly what the KPI Card from QBeeQ was built to solve. What is the KPI Card? The KPI Card is a free, partner-supported plugin from QBeeQ that provides an alternative to the native indicator widget, but with a lot more flexibility. Where Sisense's built-in indicator is limited to one primary and one secondary metric, the KPI Card lets you consolidate multiple metrics, trend indicators, and time-series sparklines into a single compact widget. The result is cleaner dashboards, less cognitive overload, and more context for your end users without adding more widgets. What it can do Feature Description Multiple Metrics Display primary and secondary values together in one widget Trend Indicators Up/down icons with conditional color formatting to show direction at a glance Sparklines Embed mini line, area, or bar charts directly in the widget — no separate chart needed Tooltips Hover over any sparkline point to surface deeper data instantly Click-to-Filter Click a data point or drag a range to filter your entire dashboard Jump-to-Dashboard Link directly to a related dashboard from a primary value or sparkline data point Full Color Customization Match your dashboard's branding with per-value color control and conditional formatting A few use cases where it shines Sales & revenue tracking — Show revenue, growth %, and a monthly trend sparkline in one card Operations dashboards — Monitor multiple performance metrics side-by-side without the clutter Finance reporting — Surface current period values alongside prior period comparisons and directional trends Embedded analytics — Give end users more context in less space, especially in tighter dashboard layouts Before and after The top row uses the native Sisense indicator chart and displays the primary and secondary metrics.  The bottom row uses the KPI Card to show the same metrics, plus additional context using sparklines, trend metrics, trend icons, and Jump to Dashboard It's free — part of the QBeeQ Starter PowerUp The KPI Card is included in QBeeQ's Starter PowerUp , a free bundle of 10 plugins built specifically for Sisense. It's available at no cost and is actively maintained and supported by the QBeeQ team. 👉 Get the free Starter PowerUp   🔗 KPI Card Marketplace Listing   📄 KPI Card Documentation   Have questions or want to share how you're using it? Drop a comment below! 

                                             
      1
               
    • Mia Isaacson

      Help and How-To

               
      Mia Isaacson
      Posted 1 month ago
      Widget script: hide value labels and empty legend items on native bar and column charts
                                                       

      Hey everyone 👋 Ever built a stacked bar or column chart and found yourself wishing you could just... turn the labels off? Maybe you've got a lot of segments, and they're all squishing together, or the chart just doesn't have quite enough room to breathe in your dashboard layout, and the labels end up overlapping and making things harder to read rather than easier. Or, does it bother you that your legend still shows entries for categories that have no data at all for certain dimension values? So you've got these ghost entries sitting in the legend that don't correspond to anything visible in the chart. Sisense doesn't have a native toggle for either of these, so here's a widget script that handles both. It works on bar and column charts (stacked or single value) and does two things: Hides the value labels from displaying on the bars or columns Removes any series from the legend if all of its values are null or zero widget.on("beforeviewloaded", function(w, args){ var allEmpty = arr => arr.every(v => v.y === null || v.y === 0); for (e in args.options.series) { var serie = args.options.series[e]; if (allEmpty(serie.data)) { serie.showInLegend = false; } } }); A few situations where this comes in handy: You have a stacked chart with a lot of segments where the labels are colliding with each other Your dashboard is on the tighter side, and there just isn't room to make the chart large enough for labels to display cleanly Your legend is cluttered with entries for categories that have no data for certain dimension values, which can confuse users into thinking something is missing The chart is more of a visual overview and the exact values aren't the point, users can always hover for tooltips anyway You just prefer a cleaner, less noisy look overall Nothing groundbreaking, just a handy little script if you've ever hit this wall.  Mia from QBeeQ, a Sisense Gold Implementation Partner www.qbeeq.io

                                             
      0
               
    • Chris Wallingford

      Help and How-To

               
      Chris Wallingford
      Posted 4 months ago • Last reply 4 months ago
      Can Explanations be Relevant?
                       

      We are interested in rolling out Explanations to our clients, but I've hit a block and need some guidance. I think that the source of the issue may be our use of null replacement values in our data models. We don't allow data to join out of a query and instead ensure that all fact data joins to a null-replacement row in our dimensional tables. For example, given a fact table of product PURCHASES, imagine it was possible to sell those products at a discount in some orders. Assume that the fact table then joins to a dimension table of DISCOUNTS. Most purchases do not have a discount, but some do. Without a null-replacement row in the DISCOUNTS table, adding a field from that dimensional table onto a widget will limit the results in the widget to only fact rows with a discount. In our models, we would replace the null discount key in the fact table with a value that joins to a null-replacement row in the DISCOUNTS table. For example, replace null with -999999 in the fact table and have a row in DISCOUNTS with [id] = -999999 and a [description] = "(none)". The problem we're running into with Explanations is that the feature is presenting only the most useless information as being the most probable explanations. For example, when a single discount exists in the data set, then 99.9% of the PURCHASE rows have a "(none)" DISCOUNT, which is deemed this highest scoring field. More generally it seems that Explanations just reports back the most highly probably explanations as those fields where the member in the field is the commonly present in the data anyway, and it's just reflecting the raw change in fact data. For example, here's an image where the drop in revenue is explained by the drop in revenue from web sales (BRestAPI). But web sales constitute a larger over proportion of sales after the drop (89% up from 82% in the prior period). And another example in which an "Initiator Specified Flag" is whether or not an alternate order "owner" has been specified on a order. Specifying an alternat owner is allowed ("Y"), but not a common practice ("N"). Again, we're just seeing a reflection of sales in the explanation. Is there anything we can do to make the explanations discovered by Sisense relevant? The way it's functioning now, it would be better if Sisense DID NOT recommend possible explanations and just let the user Explore Other Fields immediately without having to wait for Sisense to return the list of completely irrelevant fields. I've tested this across many of our clients' data sets and found the same behavior. Hopefully there are options for us to improve the recommendations or maybe prevent it from recommending.

                                             
      2
               
    • tcfd135

      Help and How-To

               
      tcfd135
      Posted 7 months ago • Last reply 5 months ago
      Last 4 digits formula
               

      I am an ESO user and am trying to create a widget that will show only the final 4 digits of an incident number. The beginning of the incident numbers are not always the same but the last 4 are what I need. In excel I use =right(A2,4). I then use this list in excel with an =if formula (=if(c3-c2=1,"","missing") to show me any incident numbers that were not reported. If there is a way to make this part of the widget also, it would make my job that much easier. Thank you.

                                             
      5
               
    • Luke Flett

      Help and How-To

               
      Luke Flett
      Posted 7 months ago • Last reply 5 months ago
      Filtering Orders by Grouped Filter Criteria with Optional Nulls
               

      Afternoon SS community, We need a filtering mechanism in our business where users can apply  filter groups to retrieve specific orders. Each filter group consists of three fields: location_id, category_id, and client_id. When a filter value is NULL, it should behave as a wildcard and match all values for that field. The goal is for users to select one or more filter groups at a time and retrieve all matching orders — without returning duplicates , even if the same order matches multiple groups. Currently, I can filter by individual fields, but I’m unsure how to structure things to support grouped filters like this without requiring users to select each field individually. The business requirement is to let users select entire filter groups, not individual filters. Sample Data: order_id location_id category_id client_id 1 1 1 1 2 1 1 2 3 2 2 3 4 2 3 4 5 2 1 4 Filter Group Examples: Group 1 location_id: 1 category_id: 1 client_id: 1 Expected Result : Order 1 only Group 2 location_id: 1 category_id: 1 client_id: NULL Expected Result : Orders 1 and 2 Group 3 location_id: 2 category_id: NULL client_id: NULL Expected Result : Orders 3, 4, and 5 How can I design a filtering logic that: Accepts multiple filter groups (with NULLs acting as wildcards) Returns all matching orders Avoids duplicate orders if they match more than one group Any guidance or sample query structure would be greatly appreciated! Thanks in advance.

                                             
      6
               
    • Luke Flett

      Help and How-To

               
      Luke Flett
      Posted 6 months ago • Last reply 5 months ago
      Seeking Best Practice for Live Detail Reporting in Sisense (Replacing SSRS)
                       

      Afternoon Sisense community, Our team is looking to replicate the functionality of a crucial SSRS report within Sisense. This report is used by a department to obtain a detailed list of jobs for a specific month . The workflow involves: Running the report for a selected month (typically the current or previous month). Reviewing the output for discrepancies. Updating the source system based on the review. Re-running the report immediately to verify the changes (requiring live data ). Current Sisense Implementation & Performance Issue I've attempted to recreate this report's dataset using a Live Model connected to a Redshift SQL View . The view is complex: It contains approximately 50 columns of detailed data. It involves JOINs across 15 different tables to consolidate all necessary dimensions and metrics. The Issue: The performance of this Live Model is unacceptable. Users are accustomed to the SSRS report running a stored procedure and returning the filtered data in under 30 seconds . My Sisense Live Model is timing out . Constraints & Goal Requirement: The data must be live (no ElastiCube, as users need immediate reflection of system changes after updates). Target Performance: Sub-30-second return for monthly filtered data. Request for Guidance Given the high number of columns, multiple joins, and the strict requirement for live data with fast filtering (specifically by month), what would be the recommended best practice for implementing this detailed report in Sisense? Are there specific Sisense configurations, data modeling techniques for live connections that would address this performance bottleneck while meeting the "live" requirement? Thank you for your insights!

                                             
      6
               
    • EdwardWhitemore

      Help and How-To

               
      EdwardWhitemore
      Posted 6 months ago • Last reply 5 months ago
      Dashboard not auto-refreshing for mobile app performance data
                               

      Hi everyone, I’m using Sisense to track performance metrics from my mobile entertainment app — like daily active users, watch duration, and session time. Lately, I’ve noticed that some dashboards don’t refresh automatically, and I have to manually reload them to see updated results. I’ve already checked the data connector and refresh schedule, but everything looks fine there. Could this delay be due to caching, or maybe a dashboard setting I’m missing? Would appreciate any suggestions or settings to look into — thanks in advance!  

                                             
      4
               
    • rstemerman

      Help and How-To

               
      rstemerman
      Posted 1 year ago • Last reply 5 months ago
      CASE WHEN Statements
               

      We are using CASE WHEN statements for our customers looking to create their own booleans. We use live connection so these cannot be added to the elasticube. We are looking to complete the following:  CASE     WHEN [Timeline Type] = "emergency department" AND [Vital Systolic Blood Pressure] < 90     THEN 1      ELSE 0 END  Additionally, customers would like to know the percentage of time the above is yes. Can this be completed in the function area or do we need to handle this in our transformation pipeline? 

                                             
      1
               
    • newbie12

      Help and How-To

               
      newbie12
      Posted 10 months ago • Last reply 5 months ago
      How to hide a row in a pivot table?
               

      Hello. I am looking to hide (not filter out) a row based on its content in a pivot table widget. I haven't been able to find a native functionality for that, but I assume there's javascript to do that. Can anyone assist? I've only been able to find column masking, but that isn't helpful.

                                             
      6
               
    • zj493752

      Help and How-To

               
      zj493752
      Posted 8 months ago • Last reply 5 months ago
      Dashboard (fire unit time limit)
               

      Hello, I am currently working in ESO (insights), and I wondered if anyone had any luck with making a dashboard that would display information like the one attached?  It would be for certain apparatus that go lights-and-sirens to an incident, but are over a time limit.  I am having issues getting the filters to function for me.   Thanks

                                             
      4
               
    …