diff --git a/src/plugins/vis_type_timeseries/common/vis_schema.ts b/src/plugins/vis_type_timeseries/common/vis_schema.ts
index 27f09fb574b0..9ec5ae1424ae 100644
--- a/src/plugins/vis_type_timeseries/common/vis_schema.ts
+++ b/src/plugins/vis_type_timeseries/common/vis_schema.ts
@@ -120,7 +120,7 @@ export const metricsItems = schema.object({
type: stringRequired,
value: stringOptionalNullable,
values: schema.maybe(schema.nullable(schema.arrayOf(schema.nullable(schema.string())))),
- size: stringOptionalNullable,
+ size: stringOrNumberOptionalNullable,
agg_with: stringOptionalNullable,
order: stringOptionalNullable,
order_by: stringOptionalNullable,
diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/calculation.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/calculation.js
index bb3d39797656..5bf4fb55ee5e 100644
--- a/src/plugins/vis_type_timeseries/public/application/components/aggs/calculation.js
+++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/calculation.js
@@ -26,6 +26,7 @@ import { createChangeHandler } from '../lib/create_change_handler';
import { createSelectHandler } from '../lib/create_select_handler';
import { createTextHandler } from '../lib/create_text_handler';
import { CalculationVars, newVariable } from './vars';
+import { METRIC_TYPES } from '../../../../common/metric_types';
import { FormattedMessage } from '@kbn/i18n/react';
import {
@@ -99,6 +100,7 @@ export function CalculationAgg(props) {
onChange={handleChange}
name="variables"
model={model}
+ exclude={[METRIC_TYPES.TOP_HIT]}
/>
diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/cumulative_sum.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/cumulative_sum.js
index 11b3e303e7e0..0b879adbd37a 100644
--- a/src/plugins/vis_type_timeseries/public/application/components/aggs/cumulative_sum.js
+++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/cumulative_sum.js
@@ -24,6 +24,7 @@ import { AggSelect } from './agg_select';
import { MetricSelect } from './metric_select';
import { createChangeHandler } from '../lib/create_change_handler';
import { createSelectHandler } from '../lib/create_select_handler';
+import { METRIC_TYPES } from '../../../../common/metric_types';
import { FormattedMessage } from '@kbn/i18n/react';
import {
htmlIdGenerator,
@@ -80,6 +81,7 @@ export function CumulativeSumAgg(props) {
metrics={siblings}
metric={model}
value={model.field}
+ exclude={[METRIC_TYPES.TOP_HIT]}
/>
diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/derivative.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/derivative.js
index faf1a59adc4a..fa1289dc74c7 100644
--- a/src/plugins/vis_type_timeseries/public/application/components/aggs/derivative.js
+++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/derivative.js
@@ -25,6 +25,7 @@ import { AggRow } from './agg_row';
import { createChangeHandler } from '../lib/create_change_handler';
import { createSelectHandler } from '../lib/create_select_handler';
import { createTextHandler } from '../lib/create_text_handler';
+import { METRIC_TYPES } from '../../../../common/metric_types';
import {
htmlIdGenerator,
EuiFlexGroup,
@@ -91,6 +92,7 @@ export const DerivativeAgg = (props) => {
metrics={siblings}
metric={model}
value={model.field}
+ exclude={[METRIC_TYPES.TOP_HIT]}
fullWidth
/>
diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/moving_average.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/moving_average.js
index 316e0f9af43b..fb945d2606bc 100644
--- a/src/plugins/vis_type_timeseries/public/application/components/aggs/moving_average.js
+++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/moving_average.js
@@ -25,6 +25,7 @@ import { MetricSelect } from './metric_select';
import { createChangeHandler } from '../lib/create_change_handler';
import { createSelectHandler } from '../lib/create_select_handler';
import { createNumberHandler } from '../lib/create_number_handler';
+import { METRIC_TYPES } from '../../../../common/metric_types';
import {
htmlIdGenerator,
EuiFlexGroup,
@@ -153,6 +154,7 @@ export const MovingAverageAgg = (props) => {
metrics={siblings}
metric={model}
value={model.field}
+ exclude={[METRIC_TYPES.TOP_HIT]}
/>
diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/positive_only.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/positive_only.js
index 1999862f7aa0..6ca5fa8e7447 100644
--- a/src/plugins/vis_type_timeseries/public/application/components/aggs/positive_only.js
+++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/positive_only.js
@@ -24,6 +24,7 @@ import { MetricSelect } from './metric_select';
import { AggRow } from './agg_row';
import { createChangeHandler } from '../lib/create_change_handler';
import { createSelectHandler } from '../lib/create_select_handler';
+import { METRIC_TYPES } from '../../../../common/metric_types';
import {
htmlIdGenerator,
EuiFlexGroup,
@@ -85,6 +86,7 @@ export const PositiveOnlyAgg = (props) => {
metrics={siblings}
metric={model}
value={model.field}
+ exclude={[METRIC_TYPES.TOP_HIT]}
/>
diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/serial_diff.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/serial_diff.js
index 10b3d551bb89..e3a0c7427353 100644
--- a/src/plugins/vis_type_timeseries/public/application/components/aggs/serial_diff.js
+++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/serial_diff.js
@@ -25,6 +25,7 @@ import { AggRow } from './agg_row';
import { createChangeHandler } from '../lib/create_change_handler';
import { createSelectHandler } from '../lib/create_select_handler';
import { createNumberHandler } from '../lib/create_number_handler';
+import { METRIC_TYPES } from '../../../../common/metric_types';
import {
htmlIdGenerator,
EuiFlexGroup,
@@ -87,6 +88,7 @@ export const SerialDiffAgg = (props) => {
metrics={siblings}
metric={model}
value={model.field}
+ exclude={[METRIC_TYPES.TOP_HIT]}
/>
diff --git a/src/plugins/vis_type_timeseries/public/application/components/aggs/std_sibling.js b/src/plugins/vis_type_timeseries/public/application/components/aggs/std_sibling.js
index 30e5c57ac90b..bed5e9caa9f8 100644
--- a/src/plugins/vis_type_timeseries/public/application/components/aggs/std_sibling.js
+++ b/src/plugins/vis_type_timeseries/public/application/components/aggs/std_sibling.js
@@ -25,6 +25,8 @@ import { AggSelect } from './agg_select';
import { createChangeHandler } from '../lib/create_change_handler';
import { createSelectHandler } from '../lib/create_select_handler';
import { createTextHandler } from '../lib/create_text_handler';
+import { METRIC_TYPES } from '../../../../common/metric_types';
+
import {
htmlIdGenerator,
EuiFlexGroup,
@@ -154,7 +156,7 @@ const StandardSiblingAggUi = (props) => {
>