PIPELINE

AI Website Pipeline / Niche Score

Niche Score

The viability score the pipeline runs on its own candidate niches, in your browser. Six subscores, six weights that are printed rather than hidden, and a verdict that is allowed to be KILL.

Optional. Carried into the copied result so two runs can be told apart. It does not affect the score, because nothing on this page reads a SERP.

Six subscores, 0 to 100

40 / 100

volume sitting in the winnable KD bands

49 / 100

demand after SERP feature discounting

78 / 100

clicks surviving AI, shopping and local packs

37 / 100

authority spread across the top 10

71 / 100

intent tier against the money model

95 / 100

can the pipeline build what wins here

JavaScript is off, so the sliders are inert and the card shows the loaded profile. The formula, the six weights, the thresholds and two fully worked reference profiles are printed further down, so the method is auditable either way.

The sliders load with reference profile G from the layer spec, the marginal go, rounded to whole numbers. In the pipeline these six subscores are computed from SERP and volume data rather than typed in. Here you supply them, which is why this page is arithmetic rather than research.

Questions

What score is worth building?

An L01 viability score of 55 and up is GO. From 40 up to 55 is CONDITIONAL: the run proceeds but is capped at 25 pages with no budget increase, so a marginal niche gets a marginal spend. Below 40 is KILL and the run halts there. Neither threshold was picked. Both are consequences of two reference profiles that are printed below with their arithmetic.

Where do the weights come from?

They are declared constants in the layer specification, mirrored in the pipeline config so a deployment can override them without editing the spec. Nothing fitted them to outcomes. Nothing could have, because no outcomes have been measured. Each weight carries a written justification instead, which is a weaker claim than a regression and an honest one.

Does a high score mean the page gets traffic?

No. The score is an input to one decision, whether to start a run. It is not a forecast of traffic, rankings or indexation, and nothing here should be read as one. Six numbers you set yourself can't know what a search engine is going to do.

Why is competitor displaceability weighted below accessibility?

Because it partly duplicates it. Difficulty already encodes some of the same competitive signal, so weighting C at the level of A would count one fact twice and flatter every SERP with a soft top ten. The same logic puts format buildability last: it is nearly always high, and it exists to catch the video and user-generated niches where it collapses and correctly drags the score down.

6 factors, weighted GO
55.9 / 100

0.9 clear of the 55 GO threshold. That is a decision to start a run, not a statement about traffic, rankings or indexation.

ADifficulty accessibility400.2610.40
VAddressable volume490.2411.76
SSERP capture headroom780.1612.48
CCompetitor displaceability370.145.18
MMonetization fit710.128.52
BFormat buildability950.087.60
Total 1.00 55.94

Weights sum to 1.00 exactly. Largest contribution: SERP capture headroom, 12.48 of a possible 16.00. Largest shortfall: difficulty accessibility, 15.60 unclaimed of 26.00.

Estimate only / your judgement is the input

Weights: A 0.26, V 0.24, S 0.16, C 0.14, M 0.12, B 0.08. GO at 55, KILL below 40. See how the score is computed, or read the full method.

How the score is computed

Every number on this page shows its inputs, including the ones that argue against building. The formula is below in full, the six weights are below in full, and the arithmetic runs in your browser with nothing sent anywhere. If you disagree with a weight you can see exactly which one, and by how much.

VIABILITY = 0.26*A + 0.24*V + 0.16*S + 0.14*C + 0.12*M + 0.08*B

weights:    0.26 + 0.24 + 0.16 + 0.14 + 0.12 + 0.08 = 1.00

decision:   score < 40   KILL         the run halts
            score < 55   CONDITIONAL  capped at 25 pages
            otherwise    GO

Every subscore is an integer from 0 to 100 that you set.
The weights are held as integer hundredths, so the six
contributions and the total are exact at two decimals.
The numeral above is that total rounded to one decimal,
which is how the layer reports a score. The verdict is
evaluated on the exact total, and the table is what to
check by hand.

The six weights

ADifficulty accessibility0.26 How much addressable volume sits in the winnable part of the keyword difficulty distribution. The heaviest weight, because the binding constraint on a new domain is not how much demand exists but how much of it is reachable without backlinks. It reads four bands of volume mass, never an average, since two niches with the same mean difficulty can be a business and a wall.
VAddressable volume0.24 Demand after SERP feature discounting. Nearly as important as accessibility but strictly less, because unreachable volume is worth zero. It saturates: past the point where the site's own publishing capacity is the constraint, more volume earns nothing.
SSERP capture headroom0.16 How much of the click demand survives AI Overviews, shopping packs and local packs, less a credit for the surfaces a programmatic site can occupy. A feature-saturated result page can halve realizable clicks at unchanged position. An unmeasured feature rate is never set to zero, because zero is a strong positive claim about a SERP nobody looked at.
CCompetitor displaceability0.14 Authority distribution and brand concentration across the top ten. Higher means easier to displace, so the inversion is built into the definition rather than applied afterwards. Weighted below the components it partly duplicates.
MMonetization fit0.12 Commercial intent tier against the chosen money model. It affects revenue per session, not whether the site can rank at all, which is why it sits below the four factors that decide reachability.
BFormat buildability0.08 Can this pipeline produce what the result page rewards. The lowest weight because it is nearly always high. It exists to catch the video and user-generated niches, where it collapses and correctly drags the score down.
Sum1.00 The page asserts this at runtime rather than claiming it. If the six weights ever failed to sum to 1.00, the card would refuse to show a score instead of showing a wrong one, which is the same rule the pipeline applies to itself: a check that cannot be evaluated is a failure, not a pass.

The weights are declared constants. They are not fitted to outcomes, and no measured result sits behind them, because this product has no measured outcomes to fit against. Claiming a fit would be the exact failure the pipeline exists to catch. Each weight has a written reason instead, printed above, and you're free to reject any of them. The thresholds are different. Those are derived, and the derivation is below.

The thresholds, and where they come from

55 to 100 GO. The niche is worth starting a run on. That is a decision about your own calendar, not a claim about a search engine.
40 to 55 CONDITIONAL. The run proceeds, capped at 25 pages, with no budget increase. A marginal niche gets a marginal spend. In a real run it carries one further condition this page cannot evaluate: at least 15 percent of the volume mass has to sit in the easiest difficulty band, and if it does not, the decision drops to KILL.
0 to 40 KILL. The run halts. Downstream layers are cancelled if still executing and never start if they had not. The refusal gets the same type size and the same space on this card as the approval.

Both thresholds are consequences of two reference profiles rather than round numbers somebody liked. Profile K is a niche at the edge of unbuildable. Profile G is a niche that is genuinely thin but worth building. They score 39.1 and 56.0, so the kill threshold sits immediately above K and the conditional threshold immediately below G. Changing a threshold without re-deriving the profiles is a configuration error, not a preference.

REFERENCE PROFILE K, the kill boundary

V = 24.5    0.24 * 24.5 =  5.88
A = 17.8    0.26 * 17.8 =  4.63
S = 62.4    0.16 * 62.4 =  9.98
C = 21.9    0.14 * 21.9 =  3.07
M = 69.4    0.12 * 69.4 =  8.33
B = 90.0    0.08 * 90.0 =  7.20
                  SCORE  = 39.1     KILL

REFERENCE PROFILE G, the marginal go

V = 49.0    0.24 * 49.0 = 11.76
A = 40.3    0.26 * 40.3 = 10.48
S = 77.8    0.16 * 77.8 = 12.45
C = 36.9    0.14 * 36.9 =  5.17
M = 71.3    0.12 * 71.3 =  8.56
B = 94.8    0.08 * 94.8 =  7.58
                  SCORE  = 56.0     GO

Kill threshold 40, immediately above K.
Conditional threshold 55, immediately below G.

The sliders on this page load profile G rounded to whole
numbers, which scores 55.94 rather than 56.0. The spec
carries one decimal per subscore and these sliders carry
none. That difference is the rounding, not a disagreement.

The score is not the only way a real run stops, and this page cannot show you the other ways. Four kill guards are evaluated independently of it, and any one of them forces a KILL regardless of how high the number is, because a high score computed on unusable data is worse than no score: it is actionable and wrong. Separately, if the confidence interval around the score straddles 40, the decision is neither GO nor KILL but INCONCLUSIVE: the sample doubles and the layer runs again, at most twice, and then kills rather than shipping a site on a coin flip.

None of that is available here, because this page has no data, only your six numbers. Treat it as the arithmetic, not the whole decision.

Source for the weight vector, the thresholds and both reference profiles: layers/L01-niche-research/LAYER.md sections 8 and 12.1, mirrored in pipeline.config.json under the l01 key. The layer is the authority. If a constant on this page disagrees with the repository, the page is stale and the repository wins.

Why this page is a tool and not an article

Every site this pipeline produces has to carry at least one element that cannot be reproduced by rewording somebody else's page: original data, a working tool, or a first-hand observation. A site without one is a candidate for the scaled content policy, and deserves to be. This calculator is that element for this site.

So it computes for real. There's no mock-up state, no blurred result behind an email field, and no version of this page where the answer is always yes. Drag accessibility and volume down and the same card will tell you to kill the run, in amber, at the same size it uses to approve one.

Related reading