diff --git a/perf/Makefile b/perf/Makefile
index f5fa4fd..9114306 100644
--- a/perf/Makefile
+++ b/perf/Makefile
@@ -1,7 +1,6 @@
 .PHONY: build
-build:
+build: web ingest_json_validator
 	go install -v ./go/...
-	npx webpack-cli --mode=production
 
 buildk: web
 	CGO_ENABLED=0 GOOS=linux go install -a ./go/skiaperf
diff --git a/perf/go/absolute/absolute.go b/perf/go/absolute/absolute.go
deleted file mode 100644
index 636ea8b..0000000
--- a/perf/go/absolute/absolute.go
+++ /dev/null
@@ -1,45 +0,0 @@
-package absolute
-
-import (
-	"go.skia.org/infra/go/sklog"
-	"go.skia.org/infra/go/vec32"
-	"go.skia.org/infra/perf/go/stepfit"
-)
-
-// GetStepFitAtMid takes one []float32 trace and calculates and returns a
-// StepFit.
-//
-// See StepFit for a description of the values being calculated.
-//
-// If percent is true then use delta as a percent difference, otherwise use
-// delta as an absolute difference between to two means.
-func GetStepFitAtMid(trace []float32, delta float32, percent bool) *stepfit.StepFit {
-	stepSize := float32(0)
-
-	i := len(trace) / 2
-	y0 := vec32.Mean(trace[:i])
-	y1 := vec32.Mean(trace[i:])
-
-	if y0 != y1 {
-		if percent {
-			y := vec32.Mean(trace)
-			stepSize = (y0 - y1) / (y)
-		} else {
-			stepSize = (y0 - y1)
-		}
-		sklog.Warningf("stepSize: %f", stepSize)
-	}
-	status := stepfit.UNINTERESTING
-	if stepSize >= delta {
-		status = stepfit.LOW
-	} else if stepSize <= -delta {
-		status = stepfit.HIGH
-	}
-	return &stepfit.StepFit{
-		LeastSquares: 0,
-		StepSize:     stepSize,
-		TurningPoint: i,
-		Regression:   stepSize,
-		Status:       status,
-	}
-}
diff --git a/perf/go/absolute/absolute_test.go b/perf/go/absolute/absolute_test.go
deleted file mode 100644
index 7330df6..0000000
--- a/perf/go/absolute/absolute_test.go
+++ /dev/null
@@ -1,151 +0,0 @@
-package absolute
-
-import (
-	"reflect"
-	"testing"
-
-	"go.skia.org/infra/go/testutils/unittest"
-	"go.skia.org/infra/perf/go/stepfit"
-)
-
-func TestGetStepFitAtMid(t *testing.T) {
-	unittest.SmallTest(t)
-	type args struct {
-		trace   []float32
-		delta   float32
-		percent bool
-	}
-	tests := []struct {
-		name string
-		args args
-		want *stepfit.StepFit
-	}{
-		{
-			name: "No step - absolute",
-			args: args{
-				trace:   []float32{1, 2, 1, 2},
-				delta:   1.0,
-				percent: false,
-			},
-			want: &stepfit.StepFit{
-				LeastSquares: 0,
-				StepSize:     0,
-				TurningPoint: 2,
-				Regression:   0,
-				Status:       stepfit.UNINTERESTING,
-			},
-		},
-		{
-			name: "No step - percent",
-			args: args{
-				trace:   []float32{1, 2, 1, 2},
-				delta:   1.0,
-				percent: true,
-			},
-			want: &stepfit.StepFit{
-				LeastSquares: 0,
-				StepSize:     0,
-				TurningPoint: 2,
-				Regression:   0,
-				Status:       stepfit.UNINTERESTING,
-			},
-		},
-		{
-			name: "Step - absolute - exact",
-			args: args{
-				trace:   []float32{1, 1, 2, 2},
-				delta:   1.0,
-				percent: false,
-			},
-			want: &stepfit.StepFit{
-				LeastSquares: 0,
-				StepSize:     -1.0,
-				TurningPoint: 2,
-				Regression:   -1.0,
-				Status:       stepfit.HIGH,
-			},
-		},
-		{
-			name: "No step - absolute - too small",
-			args: args{
-				trace:   []float32{1, 1, 1.5, 1.5},
-				delta:   1.0,
-				percent: false,
-			},
-			want: &stepfit.StepFit{
-				LeastSquares: 0,
-				StepSize:     -0.5,
-				TurningPoint: 2,
-				Regression:   -0.5,
-				Status:       stepfit.UNINTERESTING,
-			},
-		},
-		{
-			name: "Step - absolute - big - odd",
-			args: args{
-				trace:   []float32{1, 1, 4, 4, 4},
-				delta:   1.0,
-				percent: false,
-			},
-			want: &stepfit.StepFit{
-				LeastSquares: 0,
-				StepSize:     -3,
-				TurningPoint: 2,
-				Regression:   -3,
-				Status:       stepfit.HIGH,
-			},
-		},
-		{
-			name: "Step - percent - big - odd",
-			args: args{
-				trace:   []float32{1, 1, 4, 4, 4, 4},
-				delta:   0.10,
-				percent: true,
-			},
-			want: &stepfit.StepFit{
-				LeastSquares: 0,
-				StepSize:     -2.0 / 3.0,
-				TurningPoint: 3,
-				Regression:   -2.0 / 3.0,
-				Status:       stepfit.HIGH,
-			},
-		},
-		{
-			name: "Empty absolute",
-			args: args{
-				trace:   []float32{},
-				delta:   0.10,
-				percent: false,
-			},
-			want: &stepfit.StepFit{
-				LeastSquares: 0,
-				StepSize:     0,
-				TurningPoint: 0,
-				Regression:   0,
-				Status:       stepfit.UNINTERESTING,
-			},
-		},
-		{
-			name: "Empty percent",
-			args: args{
-				trace:   []float32{},
-				delta:   0.10,
-				percent: false,
-			},
-			want: &stepfit.StepFit{
-				LeastSquares: 0,
-				StepSize:     0,
-				TurningPoint: 0,
-				Regression:   0,
-				Status:       stepfit.UNINTERESTING,
-			},
-		},
-	}
-	for _, tt := range tests {
-		t.Run(tt.name, func(t *testing.T) {
-			if got := GetStepFitAtMid(tt.args.trace, tt.args.delta, tt.args.percent); !reflect.DeepEqual(got, tt.want) {
-				t.Errorf("GetStepFitAtMid() = %v, want %v", got, tt.want)
-			}
-		})
-	}
-}
diff --git a/perf/go/regression/async.go b/perf/go/regression/async.go
index 9781ae5..491f983 100644
--- a/perf/go/regression/async.go
+++ b/perf/go/regression/async.go
@@ -69,7 +69,6 @@
 	TZ          string             `json:"tz"`
 	Algo        types.ClusterAlgo  `json:"algo"`
 	Interesting float32            `json:"interesting"`
-	Delta       float32            `json:"delta"` // Used by both absolute and percent Algos.
 	Sparse      bool               `json:"sparse"`
 	Type        ClusterRequestType `json:"type"`
 	N           int32              `json:"n"`
@@ -373,12 +372,7 @@
 		case types.KMEANS_ALGO:
 			summary, err = clustering2.CalculateClusterSummaries(df, k, config.MIN_STDDEV, p.clusterProgress, p.request.Interesting)
 		case types.STEPFIT_ALGO:
-			summary, err = StepFit(df, k, config.MIN_STDDEV, p.clusterProgress, p.request.Interesting, p.request.Algo)
-		case types.ABSOLUTE_ALGO:
-			summary, err = StepFit(df, k, config.MIN_STDDEV, p.clusterProgress, p.request.Interesting, p.request.Algo)
-		case types.PERCENT_ALGO:
-			summary, err = StepFit(df, k, config.MIN_STDDEV, p.clusterProgress, p.request.Interesting, p.request.Algo)
-
+			summary, err = StepFit(df, k, config.MIN_STDDEV, p.clusterProgress, p.request.Interesting)
 		default:
 			p.reportError(skerr.Fmt("Invalid type of clustering: %s", p.request.Algo), "Invalid type of clustering.")
 		}
diff --git a/perf/go/regression/stepfit.go b/perf/go/regression/stepfit.go
index f22fbc9..da6bc30 100644
--- a/perf/go/regression/stepfit.go
+++ b/perf/go/regression/stepfit.go
@@ -3,16 +3,14 @@
 import (
 	"go.skia.org/infra/go/sklog"
 	"go.skia.org/infra/go/vec32"
-	"go.skia.org/infra/perf/go/absolute"
 	"go.skia.org/infra/perf/go/clustering2"
 	"go.skia.org/infra/perf/go/config"
 	"go.skia.org/infra/perf/go/dataframe"
 	"go.skia.org/infra/perf/go/stepfit"
-	"go.skia.org/infra/perf/go/types"
 )
 
 // StepFit finds regressions by looking at each trace individually and seeing if that looks like a regression.
-func StepFit(df *dataframe.DataFrame, k int, stddevThreshold float32, progress clustering2.Progress, interesting float32, algo types.ClusterAlgo) (*clustering2.ClusterSummaries, error) {
+func StepFit(df *dataframe.DataFrame, k int, stddevThreshold float32, progress clustering2.Progress, interesting float32) (*clustering2.ClusterSummaries, error) {
 	low := clustering2.NewClusterSummary()
 	high := clustering2.NewClusterSummary()
 	// Normalize each trace and then run through stepfit. If interesting then
@@ -23,14 +21,9 @@
 		if count%10000 == 0 {
 			sklog.Infof("stepfit count: %d", count)
 		}
-		var sf *stepfit.StepFit
-		if algo == types.STEPFIT_ALGO {
-			t := vec32.Dup(trace)
-			vec32.Norm(t, stddevThreshold)
-			sf = stepfit.GetStepFitAtMid(t, interesting)
-		} else {
-			sf = absolute.GetStepFitAtMid(trace, interesting, algo == types.PERCENT_ALGO)
-		}
+		t := vec32.Dup(trace)
+		vec32.Norm(t, stddevThreshold)
+		sf := stepfit.GetStepFitAtMid(t, interesting)
 
 		isLow := sf.Status == stepfit.LOW
 		isHigh := sf.Status == stepfit.HIGH
diff --git a/perf/go/regression/stepfit_test.go b/perf/go/regression/stepfit_test.go
index 846b446..c69a81c 100644
--- a/perf/go/regression/stepfit_test.go
+++ b/perf/go/regression/stepfit_test.go
@@ -63,7 +63,7 @@
 		df.ParamSet.AddParamsFromKey(key)
 	}
 
-	sum, err := StepFit(df, 4, 0.01, nil, 50, types.STEPFIT_ALGO)
+	sum, err := StepFit(df, 4, 0.01, nil, 50)
 	assert.NoError(t, err)
 	assert.NotNil(t, sum)
 	assert.Equal(t, 1, len(sum.Clusters))
diff --git a/perf/go/types/types.go b/perf/go/types/types.go
index f4338e6..76a121c 100644
--- a/perf/go/types/types.go
+++ b/perf/go/types/types.go
@@ -26,15 +26,12 @@
 //
 // Update algo-select-sk if this enum is changed.
 const (
-	KMEANS_ALGO   ClusterAlgo = "kmeans"   // Cluster traces using k-means clustering on their shapes.
-	STEPFIT_ALGO  ClusterAlgo = "stepfit"  // Look at each trace individually and determine if it steps up or down.
-	ABSOLUTE_ALGO ClusterAlgo = "absolute" // Look at each trace individually and determine if it steps up or down by some value.
-	PERCENT_ALGO  ClusterAlgo = "percent"  // Look at each trace individually and determine if it steps up or down by a certain percentage.
-
+	KMEANS_ALGO  ClusterAlgo = "kmeans"  // Cluster traces using k-means clustering on their shapes.
+	STEPFIT_ALGO ClusterAlgo = "stepfit" // Look at each trace individually and determing if it steps up or down.
 )
 
 var (
-	AllClusterAlgos = []ClusterAlgo{KMEANS_ALGO, STEPFIT_ALGO, ABSOLUTE_ALGO, PERCENT_ALGO}
+	AllClusterAlgos = []ClusterAlgo{KMEANS_ALGO, STEPFIT_ALGO}
 )
 
 func ToClusterAlgo(s string) (ClusterAlgo, error) {
diff --git a/perf/modules/alert-config-sk/alert-config-sk-demo.js b/perf/modules/alert-config-sk/alert-config-sk-demo.js
index 2c7b10a..1c51332 100644
--- a/perf/modules/alert-config-sk/alert-config-sk-demo.js
+++ b/perf/modules/alert-config-sk/alert-config-sk-demo.js
@@ -1,5 +1 @@
-window.sk = window.sk || {}
-window.sk.perf = window.sk.perf || {}
-window.sk.perf.key_order = [];
-
 import './index.js'
diff --git a/perf/modules/alert-config-sk/alert-config-sk.js b/perf/modules/alert-config-sk/alert-config-sk.js
index 18e1e37..dcd4b43 100644
--- a/perf/modules/alert-config-sk/alert-config-sk.js
+++ b/perf/modules/alert-config-sk/alert-config-sk.js
@@ -28,49 +28,49 @@
 const template = (ele) => html`
   <h3>Display Name</h3>
   <label for=display-name>Display Name</label>
-  <input id=display-name type=text .value=${ele._config.display_name} @change=${(e) => ele._config.display_name = e.target.value}>
+  <input id=display-name type=text .value=${ele._config.display_name} @change=${(e) => ele._config.display_name=e.target.value}>
   <h3>Category</h3>
   <label for=category>Alerts will be grouped by category.</label>
-  <input id=category type=text .value=${ele._config.category} @input=${(e) => ele._config.category = e.target.value}>
+  <input id=category type=text .value=${ele._config.category} @input=${(e) => ele._config.category=e.target.value}>
   <h3>Which traces should be monitored</h3>
-  <query-chooser-sk id=querychooser .paramset=${ele.paramset} .key_order=${ele.key_order} current_query=${ele._config.query} count_url='/_/count/' @query-change=${(e) => ele._config.query = e.detail.q}></query-chooser-sk>
+  <query-chooser-sk id=querychooser .paramset=${ele.paramset} .key_order=${ele.key_order} current_query=${ele._config.query} count_url='/_/count/' @query-change=${(e) => ele._config.query=e.detail.q}></query-chooser-sk>
   <h3>What triggers an alert</h3>
   <h4>Algorithm</h4>
-  <algo-select-sk algo=${ele._config.algo} @algo-change=${(e) => ele._config.algo = e.detail.algo}></algo-select-sk>
+  <algo-select-sk algo=${ele._config.algo} @algo-change=${(e) => ele._config.algo=e.detail.algo}></algo-select-sk>
   <h4>K</h4>
   <label for=k>The number of clusters. Only used in kmeans. 0 = use a server chosen value. (For Tail algorithm, K is the jump percentage.)</label>
-  <input id=k type=number min=0 .value=${ele._config.k} @input=${(e) => ele._config.k = +e.target.value}>
+  <input id=k type=number min=0 .value=${ele._config.k} @input=${(e) => ele._config.k=+e.target.value}>
   <h4>Radius</h4>
   <label for=radius>Number of commits on either side to consider. 0 = use a server chosen value. (For Tail algorithm, we only consider 2*Radius commits on the left side.)</label>
-  <input id=radius type=number min=0 .value=${ele._config.radius} @input=${(e) => ele._config.radius = +e.target.value}>
+  <input id=radius type=number min=0 .value=${ele._config.radius} @input=${(e) => ele._config.radius=+e.target.value}>
   <h4>Step Direction</h4>
-  <select-sk @selection-changed=${(e) => ele._config.direction = e.target.children[e.detail.selection].getAttribute('value')}>
+  <select-sk @selection-changed=${(e) => ele._config.direction=e.target.children[e.detail.selection].getAttribute('value')}>
     <!-- TODO(jcgregorio) Go back to using select-sk.selection once we've excised all Polymer. -->
     <div value=BOTH ?selected=${ele._config.direction === 'BOTH'} >Either step up or step down trigger an alert.</div>
     <div value=UP ?selected=${ele._config.direction === 'UP'}>Step up triggers an alert.</div>
     <div value=DOWN ?selected=${ele._config.direction === 'DOWN'}>Step down triggers an alert.</div>
   </select-sk>
   <h4>Threshold</h4>
-  <label for=threshold>Interesting Threshold for clusters to be interesting. This value is based on the Algorithm chosen. It is a Regression factor for K-Means and Stepfit, an absolute value for Absolute, and a percentage value (0.0 -> 1.0) for Percent.</label>
-  <input id=threshold .value=${ele._config.interesting} @input=${(e) => ele._config.interesting = +e.target.value}>
+  <label for=threshold>Interesting Threshold for clusters to be interesting. (Tail algorithm use this 1/Threshold as the min/max quantile.)</label>
+  <input id=threshold type=number min=1 max=500 .value=${ele._config.interesting} @input=${(e) => ele._config.interesting=+e.target.value}>
   <h4>Minimum</h4>
   <label for=min>Minimum number of interesting traces to trigger an alert.</label>
-  <input id=min type=number .value=${ele._config.minimum_num} @input=${(e) => ele._config.minimum_num = +e.target.value}>
+  <input id=min type=number .value=${ele._config.minimum_num} @input=${(e) => ele._config.minimum_num=+e.target.value}>
   <h4>Sparse</h4>
   <checkbox-sk ?checked=${ele._config.sparse} @input=${(e) => ele._config.sparse = e.target.checked} label='Data is sparse, so only include commits that have data.'></checkbox-sk>
   <h3>Where are alerts sent</h3>
   <label for=sent>Alert Destination: Comma separated list of email addresses.</label>
-  <input id=sent .value=${ele._config.alert} @input=${(e) => ele._config.alert = e.target.value}>
+  <input id=sent .value=${ele._config.alert} @input=${(e) => ele._config.alert=e.target.value}>
   <button @click=${ele._testAlert}>Test</button>
   <spinner-sk id=alertSpinner></spinner-sk>
   <h3>Where are bugs filed</h3>
   <label for=template>Bug URI Template: {cluster_url}, {commit_url}, and {message}.</label>
-  <input id=template .value=${ele._config.bug_uri_template} @input=${(e) => ele._config.bug_uri_template = e.target.value}>
+  <input id=template .value=${ele._config.bug_uri_template} @input=${(e) => ele._config.bug_uri_template=e.target.value}>
   <button @click=${ele._testBugTemplate}>Test</button>
   <spinner-sk id=bugSpinner></spinner-sk>
   <h3>Who owns this alert</h3>
   <label for=owner>Email address of owner.</label>
-  <input id=owner .value=${ele._config.owner} @input=${(e) => ele._config.owner = e.target.value}>
+  <input id=owner .value=${ele._config.owner} @input=${(e) => ele._config.owner=e.target.value}>
   <h3>Group By</h3>
   <label for=groupby>Group clusters by these parameters. (Multiselect)</label>
   <multi-select-sk
@@ -80,7 +80,7 @@
     ${_groupByChoices(ele)}
   </multi-select-sk>
   <h3>Status</h3>
-  <select-sk @selection-changed=${(e) => ele._config.state = e.target.children[e.detail.selection].getAttribute('value')}>
+  <select-sk @selection-changed=${(e) => ele._config.state=e.target.children[e.detail.selection].getAttribute('value')}>
     <div value=ACTIVE ?selected=${ele._config.state === 'ACTIVE'} title='Clusters that match this will generate alerts.'>Active</div>
     <div value=DELETED ?selected=${ele._config.state === 'DELETED'} title='Currently inactive.'>Deleted</div>
   </select-sk>
@@ -103,16 +103,14 @@
       owner: '',
       step_up_only: false,
       direction: 'BOTH',
-      radius: 10,
+      radius:  10,
       k: 50,
       group_by: '',
       sparse: false,
       minimum_num: 0,
       category: 'Experimental'
     };
-    if (sk) {
-      this._key_order = sk.perf.key_order;
-    }
+    this._key_order = sk.perf.key_order;
   }
 
   connectedCallback() {
@@ -132,7 +130,7 @@
     fetch('/_/alert/bug/try', {
       method: 'POST',
       body: JSON.stringify(body),
-      headers: {
+      headers:{
         'Content-Type': 'application/json'
       }
     }).then(jsonOrThrow).then((json) => {
@@ -155,7 +153,7 @@
     fetch('/_/alert/notify/try', {
       method: 'POST',
       body: JSON.stringify(body),
-      headers: {
+      headers:{
         'Content-Type': 'application/json'
       }
     }).then(jsonOrThrow).then((json) => {
diff --git a/perf/modules/algo-select-sk/algo-select-sk.js b/perf/modules/algo-select-sk/algo-select-sk.js
index dafade9..46cca52 100644
--- a/perf/modules/algo-select-sk/algo-select-sk.js
+++ b/perf/modules/algo-select-sk/algo-select-sk.js
@@ -32,8 +32,6 @@
   <select-sk @selection-changed=${ele._selectionChanged}>
     <div value=kmeans ?selected=${ele.algo === 'kmeans'} title="Use k-means clustering on the trace shapes.">K-Means</div>
     <div value=stepfit ?selected=${ele.algo === 'stepfit'} title="Only look for traces that step up or down at the selected commit.">StepFit</div>
-    <div value=absolute ?selected=${ele.algo === 'absolute'} title="Only look for traces that step up or down by a specific value.">Absolute</div>
-    <div value=percent ?selected=${ele.algo === 'percent'} title="Only look for traces that step up or down by some percentage.">Percent</div>
   </select-sk>
   `;
 
