Open source. Not deployable to production. This page states what the tests prove and what is missing — nothing else.

What is a JTBD matrix, and how does it evaluate a CRM?

JTBD matrix, defined

People ask this as: what is a jobs to be done matrix for evaluating crm software

A JTBD (jobs-to-be-done) matrix is an evaluation instrument that lists the jobs a buyer hires software to do and records, per job, whether the system can complete it and on what evidence. It replaces the feature checklist's question — does it have X? — with a harder one: can it finish Y, and what proves that? Accordo publishes its own matrix of the catalogued CRM jobs, each with a status of validated end to end, partially supported or not supported, kept in step with the source by a test — and a status in a matrix is a self-assessment with evidence attached, not a benchmark result: the build benchmark has not been run.

Where this stops

Read this before the rest of the page. Every line below is a thing this does not do.

  • A JTBD matrix is an evaluation instrument, and this one is a self-assessment. No row measures Accordo against another product, and no row implies a ranking.
  • Validated end to end means the repository's own suite completes the job against its own fixtures — every provider offline, everything local (L-01, L-05).
  • A status is not a promise. The matrix records the current checkout, changes only when the code does, and is not a roadmap.
  • The comparative instrument is the build benchmark, which is published as a protocol and has not been run (L-03).
  • The absent rows stay absent: all marketing jobs read not supported (L-11), and import, export, dedupe and merge are not supported (L-06).

No authentication, tenancy or RBAC. The server is local-development-only. An actor header is an assertion, not an identity. Do not expose it to a network. Every claim and every limitation is on one page.

The definition, against the feature checklist

A jobs-to-be-done matrix lists the outcomes a buyer actually hires software for — capture a lead, request commercial approval on a deal, merge two duplicate contacts — and records for each one whether the system completes the job, with the evidence named. The unit is the job, not the feature, because features overlap jobs badly: a product can have a contacts feature and still be unable to complete merge two duplicate contacts.

The matrix's discipline is in its honest middle values. A binary checklist invites yes; a matrix with validated end to end, partially supported and not supported forces the author to say which parts of a job work, and a row that reads not supported is information rather than embarrassment. For CRM evaluation, the not-supported rows are usually the most useful ones on the page.

Accordo's matrix, as it exists in this repository

The matrix lives at docs/benchmarks/CRM_JTBD_MATRIX.md and covers the catalogued CRM jobs across core CRM, marketing, analytics, data operations, governance, commercial operations, contract and subscription, delivery and service, and packaging. As of this checkout, 23 read validated end to end, a band of partials and most honestly marked not supported — a distribution the site quotes rather than hides, because it is the honest shape of a young framework.

The statuses are load-bearing, not decorative. A machine-readable index is generated from the matrix, and a test holds the two in step and asserts that every test file a row names as evidence still exists on disk — so a status is checkable rather than asserted (C-20 describes the gate that runs it all on every push). Positioning tracks the matrix too: this site holds back service-desk language because the relevant rows read partially supported, and a page may not describe a support product while they do.

What a matrix row is not

A status is a self-assessment with evidence, not a comparative measurement. Validated end to end means this repository's own suite completes the job against this repository's own fixtures — it does not mean the job was measured against another product, and no row implies a ranking. The one instrument that would produce a comparative number, the build benchmark, is published as a protocol and has not been run (L-03).

A matrix also does not make the absent rows smaller. All marketing rows read not supported and no marketing package exists (L-11); import, export, dedupe and merge read not supported (L-06). Reading the matrix as a roadmap is a mistake the matrix itself refuses: it records what is true of the checkout, and it changes only when the code does.

The evidence this page rests on

Claims and limitations are printed from site/claims.json word for word. Job statuses come from docs/benchmarks/jobs.json; a job with no page of its own is listed with its status rather than linked.

Claims

  • C-20 The verification gate runs on every push — source checks and then the whole test suite — covering happy paths and the policy boundaries that matter: hostile input, transaction rollback, idempotency, concurrency and immutability among them.

    LimitA test count measures effort, not correctness — read the adversarial-review categories in docs/QUALITY_GATES.md to see what is actually attacked. Real-browser tests are run manually and are not in CI.

Limitations

  • L-01 No authentication, tenancy or RBAC. The server is local-development-only. An actor header is an assertion, not an identity. Do not expose it to a network.
  • L-03 The build benchmark has not been run. The protocol is designed and published; no Successful Agent Build Rate exists yet. Any number you see quoted for this project is not ours.
  • L-05 No email, calendar or marketing integrations. An in-memory notification provider contract exists. No adapter sends anything to anyone.
  • L-06 No import, export, dedupe, merge, bulk edit, saved views or global search. Table stakes in every commercial CRM, and none of them has a milestone yet. This is recorded deliberately rather than left for you to discover.
  • L-11 Marketing is a design document, not a package. All 43 marketing jobs read 'not supported', no marketing package exists, and the strategy document says nothing in it is implemented.

Jobs it covers