The comparison, including what we lose
A comparison that only lists your wins is a brochure.
The general-purpose CRM makes a coherent and useful claim about the world, and on a number of rows it is simply better than this product. Those rows are in the table, conceded outright, in the same type size as the rest.
Then the questions a studio sales lead actually asks — including the ones with answers we would rather not give.
Against a general CRM
13 rows. The general model wins the first 4, outright.
Most vendor comparison tables are a list of things the author is good at, and every reader knows it. So the four axes where a general-purpose CRM beats us come first, without qualification. It is available today, with a seat this afternoon and a working board by the end of the day. It carries a decade of integrations and an app marketplace; we have neither. It ships email sequences, which we have not built at all. And it has a screen for every endpoint, which we do not — 9 of our capabilities have no screen. Those four are not small, and for many studios one of them decides the question.
The 9 rows underneath are where the district-shaped model wins, and there is a discipline in how they are written that matters more than the tally. We describe our own behaviour precisely, because we can read our own source. Where a cell would require us to assert what another company’s code does internally, it says instead that we have not established it — because we cannot read their source, and a guess in the direction that flatters us is not a comparison. Every middle cell on this table is either a capability the category openly advertises or an explicit admission that we do not know.
| What you are buying | A general-purpose CRM | MyClient.software |
|---|---|---|
| Available to buy and use today | Advertised across the category, and true: a seat this afternoon, an imported list before lunch, a working board the same day. | Early access. One lane is in daily reach; the rest is built and this page names which parts a user can reach and which it cannot. |
| Integrations and an app marketplace | Advertised across the category, and true: a decade of third-party connectors, an app marketplace, and a documented integration path for almost anything. | None. There is no marketplace and no connector directory. If your requirement is a specific integration, we do not have it. |
| Email sequences and cadence automation | Advertised across the category, and true: multi-step sequences, enrolment rules, send windows and reply detection. | A spine and no engine. A cadence table, a pure step resolver and a sequence step type landed in the platform; there is no endpoint that runs one and no screen that builds one. Nothing sends anything. We will not label a table a feature. |
| A screen for every endpoint | Advertised across the category, and true: the documented surface and the usable surface are the same surface. | Not yet. 9 registered capabilities have no screen that reaches them. They are listed by name on the what you can reach page rather than counted as features. The one orphaned PAGE this row used to name was routed and given a navigation entry on 2026-07-30, and this row was re-measured rather than left standing. |
| The account is a school, and the district above it is resolved | The category advertises a parent-account field and account hierarchies. Whether any product resolves a school to its district from an authoritative directory is not established — we have not found that published. | The district comes from the national directory’s own local-education-agency identifier on the school’s row. Nobody types it. Four named answers, including one that means the school genuinely has no district. |
| “We don’t know” is a first-class answer | Not established. We make no claim about how any other product represents a missing hierarchy. | The roll-up distinguishes no link, an unreadable link, a school that HAS no district, and a resolved district. The third is a resolved answer, not an empty state, and a sibling school this studio has no account for contributes zero rather than a guess. |
| The score reads school facts | The category advertises lead scoring on firmographics and behaviour. Whether any product scores Title-I status or an incumbent yearbook publisher is not established. | Title-I fit, enrollment band, incumbent switchability, contract-end proximity, in-territory. Every contribution comes back as a named factor with its points, so the answer to “why is this a 56?” is a list, not a model. |
| Winning a deal provisions the customer | The category advertises closed-won stages and workflow automation on stage change. Whether any product provisions a customer tenant as part of the close is not established. | The convert verb stands up the school’s own workspace, and the stage-move validator then refuses to move that deal at all. Closed-won is a fact about the world here, not a label. |
| Expected revenue cannot drift | Expected revenue as amount times probability is the standard advertised model across the category. Whether it is stored or derived is not established, and we do not claim to know. | Derived at read time from integer cents times integer basis points, with a single floor at the end. There is no stored column, so there is nothing to fall out of step with the amount. |
| A client cannot set a price | The category advertises product catalogs and price books. We have not established how any product handles a client-supplied override. | A line that references a real plan or SKU has its client-supplied price DISCARDED and nulled: the catalog is the only price authority. A custom line must carry a non-negative integer anchor or it is refused by name. |
| The contract ladder is enforced by the server | The category advertises approval flows, quote-to-cash and configurable stage gates. What is enforced server-side rather than in a configured workflow is not established. | Three literal transition allowlists. No creative attaches to an unsigned order. No tear sheet issues on an unsettled invoice. An illegal move returns the legal ladder in its refusal. |
| Marking something paid requires evidence | The category advertises payment integrations and revenue recognition. Whether a manual paid flip requires evidence is not established. | A paid transition needs either a provider identifier with the live payments switch on, or an explicit offline record with a method and a reference, attributed to the server-resolved staff member. A bare request is refused with nothing written. |
| Children’s data is structurally absent | Not established, and not a fair axis to grade a general product on: a general CRM is not built for schools and makes no claim here. | No roster or student field is read or written anywhere in the CRM model — adult organisation context only. The one place a student can appear is the advertiser tear sheet, and there the answer is a consent re-check that BLOCKS. |
When to buy the general product instead
If your requirement is automated multi-step outreach, buy a general CRM — we have none. If your requirement is a specific integration with a specific system, buy a general CRM; we have no marketplace and no connector directory. If you need every documented capability to have a screen on the day you sign, buy a general CRM, and come back to us when the 9 rows above have shrunk. We would rather say that than sell you around it.
Buy this one when the shape is the problem. When you are maintaining a spreadsheet beside the CRM to remember which schools belong to which district. When your rep is scoring leads by feel because the field for “employee count” is not a fact about a school. When your close-won means somebody now has to set up an account by hand. That is the work this model removes, and no amount of configuration in a general CRM produces a district hierarchy that resolves itself from an authoritative directory.
One note on the category, since this page makes a claim about it. The general-purpose customer-relationship-management market this product is measured against includes Salesforce, HubSpot, Pipedrive and Zoho. They are named here once, only as factual category references, and none of their code, copy or design is used anywhere in this product. Nothing above is a claim about how any of them is built internally — we have not read their source and cannot, so every row of the table either cites our own measured behaviour or says outright that we could not establish theirs. Their advertised capabilities are their own to describe, any of them may ship any of the things in our column tomorrow, and the four rows we concede are conceded to the category as a whole rather than to any one of them.
Common questions
The questions a studio sales lead actually asks.
Can I use this as my CRM today?
For advertising and sponsorship sales inside a school publication, yes — that lane is wired end to end and sits behind two navigation entries. For general district prospecting, partly: the prospect board, the activity timeline, the contact model, the forecast and the account read are all reachable, and the deal detail screen that owns every deal EDIT is reachable only by typing its URL. Account creation has no browser screen at all. That is the honest shape of it, and the built-not-switched-on list on the what you can reach page is the full accounting.
Why can I not create an account in the browser?
Because nobody wired the write. The endpoint exists, it enforces one account per studio per directory row and returns a conflict on the duplicate, and the browser client carries only the two reads. We could have described the endpoint and let you find out. Naming it here costs us a sentence and saves you a week.
Do you have email sequences?
No, and the precise answer is more interesting than the no. There is a spine and no engine: a cadence table with row-level security, a pure resolver that turns a cadence definition into ordered steps, a sequence step type, and isolation tests over both. There is no endpoint that runs one, no screen that builds one, and nothing anywhere in the application that calls the resolver. Nothing sends anything. Worth knowing how we know that, because it is the same reason to trust the rest of this page: the first draft of it claimed a total absence, which was true when it was measured and stopped being true two commits later, while the page was being written. We re-measured rather than shipping the sentence. If multi-step outreach automation is your requirement today, a general CRM has it and we do not.
What is an account here — the school or the district?
The school. The district is resolved ABOVE it rather than being a second kind of account you also maintain, because in a district the money and the signature and the person you actually talk to are frequently at three different levels. The roll-up walks upward: this school’s district identifier, every sibling school under it, and the summed deal value across the ones your studio has an account for.
How is the forecast number computed?
For each open deal: take the amount in integer cents, take the effective probability in integer basis points — the per-deal override when one is set, otherwise the stage default — multiply, and floor once. Sum those into buckets by owner, stage or close month. Won and lost deals are excluded. A deal with no stage is excluded, because it has no probability basis and the alternative would be to invent one. Nothing is stored, so nothing drifts.
What happens when a deal goes quiet?
Each stage can carry a rot threshold in days. A deal whose last activity is older than its stage’s threshold is flagged as rotting, and the count rolls up into the forecast bucket. Three rules make the flag trustworthy: a won or lost deal never rots, a stage with no threshold never rots because the studio opted that stage out, and a deal that has never been touched at all is rotting the moment a threshold exists. The never-touched case is the most neglected one, so it gets no free pass.
Does closing a deal actually do anything?
Yes — the convert verb provisions the school’s own workspace, and the stage-move validator then refuses every subsequent move on that deal. Closed-won here is not a label on a row; it is the moment a customer exists. The immutability is deliberate: a provisioned deal that could be dragged back to “negotiation” is a reporting lie waiting to happen.
Does any of this touch student data?
No, with one named exception that runs the safe direction. The CRM model carries adult organisation context only — the route module says so in its own header, and no roster or student field is read or written anywhere in it. The exception is the advertiser tear sheet: a student can appear in an advertisement, so before that document is issued the students in the creatives that actually ran are re-checked against publication consent, and one suppressed student blocks the whole document. The only student-facing behaviour in this product is a refusal.
Can a rep see another rep’s deals?
No. A rep reaches its own deals — as the working rep or as the owner — plus the unassigned house pipeline, and nothing else. A deal outside that set comes back as not-found rather than forbidden, so the wall does not confirm the row exists.
Can your support staff edit my pipeline?
No. Support reads across tenants and is refused every write by name: the function that resolves which studio a write targets forbids a support session outright. Reading to help you and writing to your data are different powers and they are separated in code, not in policy.
Is money live?
No. The live payments switch defaults to off, and with it off a live key is held rather than used. So the only settlement this lane can currently record is the honest offline one: a method, a reference, and the staff member the server resolved, written into the audit trail as an offline reconciliation rather than as a provider charge. An invoice in this system never claims a card payment that did not happen.
What does “built, not switched on” mean, exactly?
A registered handler that answers, with tests over its logic, and zero surfaces a user can reach that call it. It is not vapour and it is not a feature. The distinction matters because the characteristic dishonesty of a technical product page is to present a green test suite as a working capability, and this codebase has 9 places where that temptation exists. All 9 are listed by name. The cadence spine is one rung lower still and is described in its own section: it has no handler at all, so it does not even qualify for that table.
Why should I believe this page?
Because it is checkable and it argues against itself in the places that matter. Every capability claim on it names the file and, where it is load-bearing, the line. Every count states the instrument that produced it. The comparison table gives the general-CRM category the first four rows outright, including the one where our own coverage is thinnest. And it publishes a correction against our own source: two comments in our web code assert that the deal detail screen is reached from the pipeline cards, and measured at tip that is false — it is a typeable URL. A page that will not contradict its own codebase is not measuring anything.