CSDM
CSDM quality & scope

A CSDM model can be complete, conformant, and still worthless. Quality in a service model is not object count — it is whether the model can be trusted by the workflows that consume it: incident routing, change impact, portfolio decisions. These are the failure modes we design against, and the bars we hold.
How service models fail
- The empty service layer — infrastructure fully discovered, services never connected. The model exists; nothing consumes it.
- Everything is a business service — the application portfolio pasted into the service layer, no owners, no offerings, no consumers.
- The architecture diagram, replicated — hundreds of objects modeling how the system is built instead of how it is operated and consumed.
- Catch-all attribution — impressive coverage percentages built on default buckets doing no analytical work.
- The inert offering — the service layer is populated, the groups are wired, and the offerings carry no Managed By, Support Group or Change Group. Nothing is missing on the diagram; nothing reaches the devices either. This is the one that survives an audit, because every object exists.
The interview cycle
A CSDM model has two halves, and they are filled by completely different means. The lower half is principally machine-observable: devices, the software installed on them, the service instances that software forms. Scanners reach it — though not trivially, which is why ServiceNow supports several different ways to populate an Application Service rather than one. The upper half — what the organisation promises, to whom, at what commitment, and who is accountable when it breaks — is declarable only. No packet on the wire carries it. Buying better discovery does not move it, because there is nothing there to find.
Declaration usually means asking someone — but not only that. Sometimes an authoritative record already holds the answer: a service catalogue, a contract, an org chart, a portfolio system. Those are evidence too, and ServiceMatch reads them when they exist. What no amount of scanning produces is the answer itself. The cycle is small and it repeats — the model’s own gaps generate the questions, the answers close gaps and expose new ones, and the cycle stops when nothing is left that a person could settle. Nobody writes a questionnaire. A service that publishes no offering, an instance nothing claims, a device class reaching nothing at all: each of those is a structural fact about the graph, and each turns into a question ranked by how much it unblocks and addressed to the person who could plausibly know.
The part that matters most is knowing which gaps are not questions. Ask a business lead whether a particular switch supports pharmacovigilance and you will get an answer, because people are helpful — and that answer is a guess which becomes a claim which survives in the CMDB for years. So gaps sort into three kinds and only two of them are ever put to a human:
- A person settles it. Who owns this service, what do we promise, which team operates these devices. The answer is the fact.
- A person informs it. What a class of equipment is used for, day to day. Genuinely useful, genuinely knowable — but it becomes a hypothesis to verify against the devices, never an attachment on its own.
- Nobody can settle it. Whether a specific machine supports a specific service. This is a search, not a question, and it never goes to a stakeholder.
Watch one get derived
Press play, or step through it a beat at a time. Every step is the same three moves, landed separately: what somebody said or a scanner found, the claim extracted from it, and the records that claim instantiates. The model does not know about the step until that third beat — so the coverage numbers are not narrated alongside the animation, theyare the animation. Two streams feed it: what the scanners find, working up from the metal, and what people say, working down from the business. Twelve of the twenty steps quote one sitting; one more stands in for the four sessions that followed, and says so rather than inventing eighty further turns. Watch the bar through the first four steps: devices attach to applications and to support groups and nothing turns amber, because attached is not parked until a person has named who operates it.
Contoso Pharmaceuticals — a fabricated example estate. The class model is the real CSDM 5.0.
Built for a large screen — on a phone it stacks and you scroll. Open it on a laptop to see the model, the transcript and the evidence move together.
6,982 infrastructure CIs. Parked means the chain reaches the technology management service that operates the device, and stops there. Attached to a group or an application nobody has claimed yet is not parked — it reaches nothing until a person names the operator. Endpoints park by design: a laptop that also carries mail, expenses and training is evidence of nothing, so it attaches to whoever manages it rather than to a business service it cannot be shown to support.
Nothing has been scanned and nobody has been asked. Press play, or step through it.
Watching the model fill in
Below is one estate at four points in the cycle. The first panel is not a mock-up of an immature customer — it is the same estate with everything a person declared removed, leaving only what discovery could have produced on its own. That is the honest starting line, and it is where the argument lives.
Contoso Pharmaceuticals — a fabricated example estate. Fabricated data. The early stages are not drawn by hand — they are the same estate restricted to what discovery alone produces, then rebuilt by answering real generated questions.
Stage 1
What discovery found
Discovery tooling only
Stage 2
Who operates it
One interview pass, and one generated question
Stage 3
What the business promises
Stakeholder interviews, plus two generated questions
Stage 4
What the evidence proves
Connection strings and guest inventory
0.0% reaches the business
0 parked · 6,982 reaching nothing
0.0% reaches the business
5,052 parked · 1,930 reaching nothing
27.6% reaches the business+1,930 CIs
5,052 parked · 0 reaching nothing
30.5% reaches the business+203 CIs
4,849 parked · 0 reaching nothing
What discovery found
Devices, the software running on them, and the service instances that software forms. Discovery climbs this far and stops.
What to notice
Not one configuration item reaches the business — and no amount of better scanning would change that. There is no packet on the wire that says what a service is worth or who is accountable for it.
What the four panels are actually saying
Discovery climbs to the service instance and stops: no capabilities, no services, no offerings, nothing reaching the business. One interview pass gives every device an owner. A second gives the business its structure — and attribution jumps, but not because the interview attributed anything. It built the ladder that evidence discovery had already collected could finally climb.
Then look at the last panel, which moves least of all. Evidence is the only thing that can carry a device from parked to business-attributed, and it moves the fewest of the four. Any tool where that last step is the easy one is inventing attribution rather than finding it.
Run the cycle yourself
The same generator, live. Answer a question and watch the coverage change — then watch what it refuses to change. That turns out to be the more useful lesson.
Contoso Pharmaceuticals — a fabricated example estate. Fabricated data. The questions below are generated from the model’s own gaps — nobody wrote a script.
Which team operates the UPS units? Not which business service they support — who gets the call when one fails.
90 configuration items reach nothing at all: no service, no owner, no support group. Parking them honestly is a five-minute answer; inventing a business service for them would be a lie that survives for years.
Where does a class of device actually end up?
Dependency maps answer “what does this service need?” The more useful question for a CMDB owner is the inverse: pick a class of device, and show me where instances of it land — with the reason for every hop, and an honest marker where the chain stops. Every evidence line below is a governed decision: in the product it is an entry in the decision record, not a label.
Contoso Pharmaceuticals — a fabricated example estate. Fabricated data. In the product this runs against the customer’s own estate, and every evidence line below is the real reason the attribution engine attached that hop.
cmdb_ci_ip_switchdiscovered↑ group membership
structuralCarry traffic for everything. A switch supporting one business service is a claim nobody could evidence.
cmdb_ci_query_based_servicediscovered↑ [Contains::Contained by]
structuralQuery-populated on device class.
service_offeringdeclared↑ Ref: "Published as"reference — a traversal stops here
evidencedSupport and change groups confirmed by the network team lead.
cmdb_ci_service_technicaldeclaredParked, deliberately
cmdb_ci_ip_switch stops at Network Operations — the service that operates it. That is not a break. No evidence was found that these devices support any particular business service, so they attach to whoever runs them rather than being forced somewhere to improve a percentage.
They still have an accountable owner, a support group and a change group. What they do not have is a business claim nobody could evidence.
Walking the chain on a worked estate
Failure modes are easier to recognise against something concrete. Below is a fabricated biopharma estate — deliberately imperfect — walked from business capability down to metal, with the first break on each path marked and the breaks ranked by how many configuration items sit behind them.
Contoso Pharmaceuticals — a fabricated example estate. Fabricated data — a fictional company invented to demonstrate diagnosis. Not a customer, and not traced from any engagement or any partner-authored model.
The 6 chips outlined in red are the breaks. Select one to pull up its entry in the ranked list below — the rest of the estate is drawn for context and is walking fine.
Capability
Business Service
Offering
Technology Mgmt
Dynamic CI Group
Service Instance
Application
Infrastructure
Breaks, ranked by how many CIs sit behind them
These CIs are in the CMDB and reach nothing. They are the population that makes a coverage percentage a fiction — counted as managed, attributable to nothing.
Fix. Park them on the technology management service that operates them, rather than forcing a business placement they have no evidence for.
These CIs are in the CMDB and reach nothing. They are the population that makes a coverage percentage a fiction — counted as managed, attributable to nothing.
Fix. Park them on the technology management service that operates them, rather than forcing a business placement they have no evidence for.
CSDM asks that every operational business service have at least one offering. Nothing is stranded behind this one today — because nothing has been attached to it yet, and nothing can be. It is a blocked path rather than a leaking one, which is why it shows zero and still matters.
Fix. Agree a service owner, declare at least one offering, then point the service instance at it.
CSDM asks that every operational business service have at least one offering. Nothing is stranded behind this one today — because nothing has been attached to it yet, and nothing can be. It is a blocked path rather than a leaking one, which is why it shows zero and still matters.
Fix. Agree a service owner, declare at least one offering, then point the service instance at it.
CSDM asks that every operational business service have at least one offering. Nothing is stranded behind this one today — because nothing has been attached to it yet, and nothing can be. It is a blocked path rather than a leaking one, which is why it shows zero and still matters.
Fix. Agree a service owner, declare at least one offering, then point the service instance at it.
This is the joint where the business layer meets delivery. With no offering depending on it, everything below is invisible to business-impact questions — discovered, classified, and unanswerable.
Fix. Publish an offering on the service this instance delivers, and add the dependency.
Most of these breaks strand nothing at all — and the zeroes are the interesting ones. A service with no offering is a blocked path rather than a leaking one: nothing sits behind it because nothing can, until somebody agrees an owner and publishes a tier. Ranking by configuration items tells you where the bleeding is. The zeroes tell you where the ceiling is. A single coverage percentage tells you neither.
Note which fixes are which, because they are not the same work. Most of these want a person to decide something — an owner, a tier, a name. Only the unassigned devices want evidence to be found. Those are different budgets, different people and different timescales, and teams routinely spend months hunting for more discovery data when the answer was a half-hour conversation about who owns a service.
Where the entity you mean and the table you query diverge
One quality failure has nothing to do with your data and everything to do with the schema: two CSDM tables each carry two different conceptual entities, told apart only by a classification value that survived a rename. Query either table without filtering and the number you report is the sum of two unrelated populations — which is why offering counts so often fail to reconcile between two people looking at the same instance.
service_offering
carries 2 different conceptual entities — Technology Management Service Offering, Business Service Offering — told apart only by service_classification.
Query that table without filtering on the classification and your count is the sum of two unrelated things. This is the mechanical cause of “my CSDM report is wrong”, and no amount of relationship-diagram study reveals it.
cmdb_ci_query_based_service
carries 2 different conceptual entities — Application Service — query based, Dynamic CI Group — told apart only by service_classification.
Query that table without filtering on the classification and your count is the sum of two unrelated things. This is the mechanical cause of “my CSDM report is wrong”, and no amount of relationship-diagram study reveals it.
| Entity | Table | Service classification | CI? |
|---|---|---|---|
| Product IdeaNon-CI status is our inference from the sn_align_core_ prefix. Figure 15 marks only Product Model, Service Portfolio and Request Catalog as “Not a CMDB CI”. | sn_align_core_product_idea | — | not a CI |
| Planning ItemNon-CI status inferred, not stated by Figure 15. | sn_align_core_planning_item | — | not a CI |
| Business Capability | cmdb_ci_business_capability | — | yes |
| Business Application | cmdb_ci_business_app | — | yes |
| Business Process | cmdb_ci_business_process | — | yes |
| Product ModelProduct model classes are not CMDB classes. CIs reference them via model_id. | cmdb_model | — | not a CI |
| Information Object | cmdb_ci_information_object | — | yes |
| SDLC Component | cmdb_ci_sdlc_component | — | yes |
| Technology Management ServiceRelabelled in CSDM 5 — but the stored classification value is still the old one. | cmdb_ci_service_technical | Technical Service | yes |
| Technology Management Service Offering | service_offering | Technical Service | yes |
| Service InstanceRelabelled from “Application Service” in CSDM 5. | cmdb_ci_service_auto | — | yes |
| Application Service — mapped or manual | cmdb_ci_service_discovered | Application Service | yes |
| Application Service — tag based | cmdb_ci_service_by_tags | Application Service | yes |
| Application Service — calculated | cmdb_ci_service_calculated | Application Service | yes |
| Application Service — query based | cmdb_ci_query_based_service | Application Service | yes |
| Dynamic CI Group | cmdb_ci_query_based_service | Technical Service | yes |
| Connection Service Instance | cmdb_ci_connection_service_instance | Technical Service | yes |
| Data Service InstanceFigure 15 adds: also used for AI System based services. | cmdb_ci_data_service_instance | Technical Service | yes |
| Facility Service Instance | cmdb_ci_facility_service_instance | Technical Service | yes |
| Network Service Instance | cmdb_ci_network_service_instance | Technical Service | yes |
| Network Function | cmdb_ci_network_function_instance | Technical Service | yes |
| Operational Process Service Instance | cmdb_ci_operational_process_service_instance | Technical Service | yes |
| API | cmdb_ci_api | — | yes |
| Application | cmdb_ci_appl | — | yes |
| Network Function Application | cmdb_ci_network_function_application | — | yes |
| Infrastructure CIs | cmdb_ci_* | — | yes |
| Service Portfolio | service_portfolio | — | not a CI |
| Business Service | cmdb_ci_service_business | Business Service | yes |
| Business Service Offering | service_offering | Business Service | yes |
| Request Catalog | sc_catalog | — | not a CI |
The quality bars ServiceMatch holds
- No more objects than the operating workflows actually use — decompose services only where support structure genuinely differs.
- Every business placement is evidence-backed or honestly parked on a management service — never faked from weak signals.
- The upper layers are interviewed, never invented: capabilities, services, and ownership come from stakeholder declarations, reviewed against a pre-built draft (see CSDM doctrine).
- Every business service is checked for an accountable owner, and a missing one is reported against the design — a service without an owner is a diagram.
- Every offering is checked for what it propagates. Managed By, Support Group and Change Group are what CSDM copies from an offering onto the devices beneath it, so an offering missing them is reported as inert rather than complete — and the devices it strands are counted. The fix is an interview question, never a derived value.
- Every business placement records who asserted it, not only who last confirmed it. The named claim and the device evidence both stay on the relationship, so the model can answer who said it, what confirmed it, and who approved it.
- Coverage reports as three numbers; emission grows with adoption stage; the workbook is a generated view of the governed model.
Scope: the discovered estate
There are two legitimate ways service context gets into a CMDB. Where development teams own their services — cloud-native, PaaS, greenfield — declared registration works: teams register services as code or tags in their own toolchain, and the model follows their declarations. ServiceMatch works the other side: the discovered estate — the endpoints, servers, and infrastructure reported by discovery tooling, where there is no development team to declare anything and the evidence has to be assembled from what the estate actually shows.
Design Principle
Declared registration and discovered-estate conditioning are complementary lanes that meet in the same CMDB. We deliberately build for the discovered side — most of an enterprise's CIs live there, and it is the side no declaration process will ever cover.