diff --git a/frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx b/frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx
index ba39b956cc4d6ba6702336a50eba4b2d9ac2a41b..17a6b75f3aa7260907b4b564b50b75d5ee7dd2f6 100644
--- a/frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx
+++ b/frontend/src/metabase/visualizations/components/LineAreaBarChart.jsx
@@ -308,6 +308,7 @@ function transformSingleSeries(s, series, seriesIndex) {
                 cols: rowColumnIndexes.map(i => cols[i]),
                 _rawCols: cols
             },
+            // for when the legend header for the breakout is clicked
             clicked: {
                 dimensions: [{
                     value: breakoutValue,
@@ -330,6 +331,7 @@ function transformSingleSeries(s, series, seriesIndex) {
                         metricColumnIndexes.length > 1 && getFriendlyName(col)
                     ].filter(n => n).join(": "),
                     _transformed: true,
+                    _seriesIndex: seriesIndex,
                 },
                 data: {
                     rows: rows.map((row, rowIndex) => {
diff --git a/frontend/src/metabase/visualizations/components/Visualization.jsx b/frontend/src/metabase/visualizations/components/Visualization.jsx
index 0891714986a27b79dcf66354ef79b9fba2d99cbd..18f7d75f9c7657060b790f3abf576b2543cb1243 100644
--- a/frontend/src/metabase/visualizations/components/Visualization.jsx
+++ b/frontend/src/metabase/visualizations/components/Visualization.jsx
@@ -226,22 +226,22 @@ export default class Visualization extends Component<*, Props, State> {
     handleOnChangeCardAndRun = (card: UnsavedCard) => {
         const { series, clicked } = this.state;
 
-        // If the current card is saved or is based on a saved question,
-        // carry that information to the new card for showing lineage
         const index = (clicked && clicked.seriesIndex) || 0;
-        // $FlowFixMe
-        const hasOriginalCard = series[index] && series[index].card && (series[index].card.id || series[index].card.original_card_id);
-        if (hasOriginalCard) {
-            const cardWithOriginalId: UnsavedCard = {
-                ...card,
-                // $FlowFixMe
-                original_card_id: series[index].card.id || series[index].card.original_card_id
-            };
+        const originalCard = series && series[index] && series[index].card;
 
-            this.props.onChangeCardAndRun(cardWithOriginalId)
-        } else {
-            this.props.onChangeCardAndRun(card)
+        let cardId = card.id || card.original_card_id;
+        // if the supplied card doesn't have an id, get it from the original card
+        if (cardId == null && originalCard) {
+            // $FlowFixMe
+            cardId = originalCard.id || originalCard.original_card_id;
         }
+
+        this.props.onChangeCardAndRun({
+            ...card,
+            id: cardId,
+            // $FlowFixMe
+            original_card_id: cardId
+        });
     }
 
     onRender = ({ yAxisSplit, warnings = [] } = {}) => {
diff --git a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js
index f5d4977325164a7058f41360ad88f549b473a13e..0752437e6581edd62b2ea3fa3169b2b85c2bc1d9 100644
--- a/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js
+++ b/frontend/src/metabase/visualizations/lib/LineAreaBarRenderer.js
@@ -434,11 +434,11 @@ function applyChartTooltips(chart, series, isStacked, isScalarSeries, onHoverCha
                                 column: card._breakoutColumn
                             });
                         }
-                        // series was not transformed
-                        else if (!series._raw) {
-                            // $FlowFixMe
-                            clicked.seriesIndex = seriesIndex;
-                        }
+                    }
+
+                    if (card._seriesIndex != null) {
+                        // $FlowFixMe
+                        clicked.seriesIndex = card._seriesIndex;
                     }
 
                     if (clicked) {
diff --git a/frontend/src/metabase/visualizations/visualizations/Scalar.jsx b/frontend/src/metabase/visualizations/visualizations/Scalar.jsx
index c3b09b1bd7eeed6e947defbe81471c5f273f5fbf..a973509d374442caa81a4fb5942033d0378b5d20 100644
--- a/frontend/src/metabase/visualizations/visualizations/Scalar.jsx
+++ b/frontend/src/metabase/visualizations/visualizations/Scalar.jsx
@@ -45,14 +45,15 @@ export default class Scalar extends Component<*, VisualizationProps, *> {
 
     static transformSeries(series) {
         if (series.length > 1) {
-            return series.map(s => ({
+            return series.map((s, seriesIndex) => ({
                 card: {
                     ...s.card,
                     display: "funnel",
                     visualization_settings: {
                         ...s.card.visualization_settings,
                         "graph.x_axis.labels_enabled": false
-                    }
+                    },
+                    _seriesIndex: seriesIndex,
                 },
                 data: {
                     cols: [