Receipts
Every figure here is produced by running something, and each block names what. If a number on this site is wrong, the machine is wrong — which is the only failure mode worth having, because it is the one a test can catch.
Generated 2026-09-17 from build c4c9ae9, against emulator image
fidelic/emulator:latest reporting 054a4c7. Shipped tier:
C1.
Conformance — 68/68
Produced by go run ./cmd/confrun --target=emulator (fidelic-conformance)
Every test is tied to Salesforce's own documentation or to an observation from a real org. A test with no source does not go in.
Denominator: 68 tests in the public fidelic-conformance suite that can run against a stock emulator; 5 skipped for an org prerequisite and 3 pending real-org verification are excluded from both sides of the fraction
Classification over a real codebase — 24%
Produced by sfapex coverage --json <corpus> against NPSP @ 19646faa (force-app)
44 of 177 trigger-context pairs classify EXECUTE, across 7 of 26 triggers. This is a public, real Salesforce codebase, not a fixture we chose.
Denominator: ALL 177 trigger-context pairs declared by the 26 triggers in this corpus. This is NOT the runtime ladder's denominator, which counts only the pairs declared by classified-EXECUTE triggers and is therefore a smaller number over a different population.
The unit is the pair, not the trigger. A trigger declaring seven timings and a one-line before-insert trigger are not the same amount of an org, so counting triggers makes the figure swing on which size of trigger happens to be blocked. On this corpus the two framings differ by three points in our favour, which is why the harder one is published.
The exact words
The capability page uses three plain labels. Your own coverage report uses these, and so does the emulator's boot output.
- EXECUTE
- Nothing in the reachable code is unsupported, so the interpreter will run your real Apex.
- SIMULATED
- Your code runs but one or more named things were modelled rather than really done.
- Provisional
- Faithful behaviour whose response envelope still awaits confirmation against a real org. A different axis from SIMULATED — a capability can be neither, either, or both.
- UNRESOLVED
- Declined by name, with a reason and a file and line.
- RECORDED-ONLY
- The code could run, but the event that starts it cannot happen locally: a platform-event subscriber, for instance.
Every capability family
Produced by sfapex capabilities, read from the same maps the classifier
consults at runtime — so a capability cannot ship without its label.
These are the internal families the grouped table on the capability page is folded from. They are our tier boundaries rather than Salesforce's vocabulary, which is why they are here and not there.
| Family | What it covers | Verdict | Caveat |
|---|---|---|---|
async | Queueable, @future, Schedulable, Batchable | EXECUTE | SIMULATED drained inline after commit, not truly deferred; per-chunk transactions and Database.Stateful are not modelled |
callout | HttpRequest / HttpResponse outbound calls | EXECUTE | SIMULATED answered from a mock registry you register; nothing reaches the network |
crypto | Crypto.getRandomInteger and friends (seeded) | EXECUTE | SIMULATED seeded and reproducible rather than real entropy, which is the property tests need |
crypto-unshipped | digests, signatures, encryption | UNRESOLVED | — |
database | Database.insert/update/delete partial-success | EXECUTE | Provisional database: SaveResult/Error envelope Provisional (partner-pinned) |
database-savepoint | Database.setSavepoint and rollback | UNRESOLVED | — |
database-unshipped | Database.query and Database.merge | UNRESOLVED | — |
recorded-effect | EventBus.publish and Messaging.sendEmail | EXECUTE | SIMULATED captured and readable afterwards, never actually sent |
schema | describe served from the org's retrieved metadata | EXECUTE | Provisional schema: describe labels derived where the metadata carries none; DisplayType modeled as its enum name; == identity on describe results Provisional (SCHEMA-DESIGN §7) |
schema-metadata-gated | describe answers the retrieved metadata does not carry | UNRESOLVED | — |
schema-no-metadata | describe for an object no metadata was retrieved for | UNRESOLVED | — |
schema-permission | isAccessible / isCreateable / isUpdateable / isDeletable | EXECUTE | SIMULATED answers as a system-mode user; field-level security is not enforced |
schema-unshipped | describe surfaces outside the shipped set | UNRESOLVED | — |
settings | Custom Setting and Custom Metadata reads | EXECUTE | SIMULATED org defaults only — no per-user or per-profile resolution |
Run it against your own org
docker run --rm -v "$PWD/mdapi":/mdapi:ro \
--entrypoint /sfapex fidelic/emulator coverage --report /mdapi