skip to content

Your dashboard reports 94% of services threat-modeled: how do you check that number is honest?

level: seniorimportance: should knowfreq 44%

answer

  1. the percentage hides three choices
  2. ask what population sits underneath it
  3. what exactly earns a service a tick
  4. compare against an inventory you do not own
  5. look hard at the missing six percent

basics

~20 s

Interrogate the three hidden choices behind the percentage: which population forms the denominator, what test earns a service a tick in the numerator, and how recent the model must be to count. Then sample and reconcile against an independent inventory.

solid answer

~50 s

I ask *94% of what*. The denominator is usually defined by where the data was convenient to collect - at one payments processor it was every service in the primary source-control organisation, which quietly excluded an acquired subsidiary's whole estate, vendor-hosted integrations and internal admin tools. So I reconcile the denominator against an inventory the practice does not own: the service catalogue, cloud accounts, the DNS zone. Next I ask what earns a tick: a diagram existing is very different from threats enumerated, rated and owned. Then freshness - a model only counts if it postdates the last significant architecture change. Then weighting: I want to know what is in the missing 6%, because a flat percentage hides whether the gap is internal dashboards or tier-1 payment paths. The honest report states all three choices and breaks out tier-1 coverage separately.

go deeper

for a junior

Know that a coverage percentage is made of a numerator and a denominator, and that both are choices someone made. Be ready to ask what counts as modeled rather than accepting the headline figure.

for a middle

Explain the three hidden choices - population, test for inclusion, and freshness - and give an example of each going wrong. You should be able to describe how to verify coverage against an inventory the security team did not build.

for a senior

Demonstrate the reconciliation habit: independent inventory, random sample of covered services opened and checked, exclusions named with owners. Show judgment about criticality weighting and about what the unmodeled remainder is likely to contain.

for a principal

Own how coverage is reported upward and what decisions ride on it. Argue for stated exclusions over convenient denominators even when the honest number is worse, and connect the metric to where you spend facilitation capacity next quarter.

A coverage percentage is the easiest threat modeling metric to produce and the easiest to fool yourself with, because the number carries none of the three choices that determine what it means: the population being counted, the test for being counted, and how recently the test was passed. ### Interrogate the denominator first *94% of what?* In the payments processor case, the denominator was every service with a repository in the company's primary source-control organisation. That sounded like the whole estate and was not. Outside it sat an acquired subsidiary that still ran its own build and hosting, a handful of vendor-hosted integrations that process the same cardholder data, internal admin tools nobody thought of as services, and scheduled jobs that move data between them. Measured against the full inventory, the same numerator gives a much lower figure. The general failure is that the denominator is defined by *where the measurement was convenient to collect* rather than by what is in scope. Fix it by reconciling against an independent inventory that was built for another purpose - the asset or service catalogue, cloud accounts and their billing lines, the DNS zone, the list of systems in scope for the last compliance exercise. Wherever those disagree with your denominator, you have found either an omission or a legitimate exclusion; write down which, so the exclusions are visible rather than silent. ### Then interrogate the numerator *What earns a tick?* Common definitions, in increasing strength: 1. A diagram exists somewhere for the service. 2. A diagram exists and threats were enumerated against its elements and flows. 3. Threats were enumerated, rated, and each accepted or paired with a control and an owner. 4. All of the above, and the controls have shipped or have dated tickets. Definition 1 is what most inflated coverage numbers use, and it counts artifacts rather than analysis. A service can hold a diagram drawn eighteen months ago by someone who has left and still count. Say which definition you are reporting; if you cannot, the percentage is not a measurement. ### Then freshness A model is a claim about a system as it was on a date. Coverage should count a model as current only if it is newer than the last significant architecture change to that service - a new external integration, a new datastore, a new trust boundary, a change of authentication. Coverage without a freshness rule slowly converts into a count of historical documents while the estate moves underneath it. ### Then weighting Ask what is in the missing 6%. A flat percentage treats a tier-1 payment authorisation path and an internal dashboard as one unit each, so a programme can hold a beautiful headline number while every system that would actually hurt you sits in the remainder. Report criticality-weighted coverage alongside the flat figure, or better, report the tiers separately: coverage of tier-1 services is the number that deserves the slide. ### How to check the claim in practice - Pull the denominator from a source your practice does not own, and diff it against your list. - Take a random sample of ten services counted as covered, open their models, and see which definition they actually satisfy. - Check the sample for freshness against each service's deployment or architecture history. - Look specifically at what is excluded and who decided: acquired estates, vendor-hosted components and internal tooling are where exclusions hide. ### Report it honestly The defensible form of the same claim states all three choices, for example: *94% of the 210 services in the primary organisation hold a model with threats enumerated and owned; against the full inventory of 340 services including the acquired estate, that is 58%; of 18 tier-1 services, 17 are covered and current, and the one gap is scheduled.* That sentence is longer and far more useful, and it survives the follow-up question that a single percentage does not. ### Why this matters beyond honesty Coverage drives decisions: whether to hire facilitators, whether to declare a rollout finished, whether an executive believes the design risk is understood. An inflated coverage number retires the programme's attention from exactly the estate that never got looked at. The acquired subsidiary in the example is the classic shape - a whole set of systems that no one is measuring, holding the same class of asset as the systems everyone is measuring.

  • What definition of covered would you actually adopt?
    A service counts when its model has threats enumerated against every element and flow, each threat either accepted with a named owner or paired with a control, and the model dated after the service's last significant architecture change. Weaker definitions count artifacts; stronger ones that require controls to have shipped conflate coverage with follow-through, which I would rather measure separately as closure.
  • How would you report the same 94% honestly on one line?
    State the population, the test and the tier split: 94% of the 210 services in the primary organisation hold an enumerated and owned model; against the full 340-service inventory including the acquired estate that is 58%; and 17 of 18 tier-1 services are covered and current. It survives the follow-up question that a bare percentage does not.
  • The acquired subsidiary objects that its estate was never in scope. How do you handle that?
    Exclusions are fine when they are explicit and owned. I record it as a stated exclusion with a date and a decision-maker, and I report coverage both ways so the excluded estate stays visible on the same slide. Silent exclusion is the defect; a written one is a scoping decision someone can revisit.

It is a satisfaction survey sent only to customers who never cancelled. The percentage is arithmetically true and tells you almost nothing, because the interesting population was excluded before anyone counted.

saying these in an interview costs you the question

  • Accepts the percentage without asking what the denominator counts
  • Counts a service as modeled because a diagram exists
  • Ignores whether the model predates the current architecture
  • Reports one flat percentage with no criticality tiers
  • Verifies coverage only against the practice's own tracker
  • Treats an unmeasured estate as out of scope by default

context