diff --git a/src/plugins/vis_type_timeseries/common/vis_schema.ts b/src/plugins/vis_type_timeseries/common/vis_schema.ts
index 40f776050617e..d92d997dc2a2b 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 bb3d39797656f..5bf4fb55ee5e5 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 11b3e303e7e00..0b879adbd37ae 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 faf1a59adc4aa..fa1289dc74c72 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 316e0f9af43bd..fb945d2606bc8 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 1999862f7aa0e..6ca5fa8e7447f 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 10b3d551bb89f..e3a0c74273539 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 30e5c57ac90ba..bed5e9caa9f87 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) => {
>