score_evidence
One score's legs, each paired with the notes in the company's own annual report that bear on it.
What it does
Takes one of the six scores and returns every leg that makes it up -- the leg, its weight or axis, its value where the scoring run stored one, and the stored measurements that feed it -- each paired with the note or notes from the company's own latest annual report whose subject covers that leg, quoted inline with a section_id for reading the whole note. THE TOOL DOES NOT ASSERT THAT THE TEXT EXPLAINS THE NUMBER: it states where the filer writes about the subject, and the inference is yours. A leg with no sensible note returns NO note and says why in unmapped_because -- a forced match would have you cite an irrelevant disclosure with total confidence. The quote is capped; section_chars is the whole note's size and read_filing_section returns it uncapped. Where a company has no SEC filing, the legs still come back and note says why nothing is quoted.
score_evidence is on the free tier. A free account gets 12 agent calls per 16 hours and this is one of them; Pro is uncounted. The website's own screening allowance is counted separately.
Arguments, returns and a worked call
Everything below is generated from the same registry entry the MCP server and /openapi.json are generated from, so this page cannot name an argument that does not exist. The two examples are the same call, once over each transport.
score_evidence
FreeTakes one of the six scores and returns every leg that makes it up -- the leg, its weight or axis, its value where the scoring run stored one, and the stored measurements that feed it -- each paired with the note or notes from the company's own latest annual report whose subject covers that leg, quoted inline with a `section_id` for reading the whole note. THE TOOL DOES NOT ASSERT THAT THE TEXT EXPLAINS THE NUMBER: it states where the filer writes about the subject, and the inference is yours. A leg with no sensible note returns NO note and says why in `unmapped_because` -- a forced match would have you cite an irrelevant disclosure with total confidence. The quote is capped; `section_chars` is the whole note's size and read_filing_section returns it uncapped. Where a company has no SEC filing, the legs still come back and `note` says why nothing is quoted.
Arguments
symbol string, required — The ticker as Crush The Market spells it.
score string, required — Which score to break down. One of: value_score, growth_score, financial_score, dividend_score, management_score, total_score.
accession string, optional — Take the notes from this filing rather than the latest annual report.
Returns
symbol, score, score_label, score_value, score_column, filer_family, filing, legs, leg_count, legs_with_notes, legs_without_notes, quote_chars_max, token_estimate, note, error, as_of, source, disclaimer
> curl -s https://crushthemarket.com/api/v1/score_evidence \ -H "Authorization: Bearer $CTM_KEY" \ -H 'Content-Type: application/json' \ -d '{"symbol":"AAPL","score":"management_score"}'{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "score_evidence", "arguments": { "symbol": "AAPL", "score": "management_score" } }}Can answer
bad_request — `symbol` is missing, or `score` is not one of the six score ids.
unknown_symbol — No profile is held for the symbol at all.
not_covered — The symbol is an ETF, which is never scored.
no_analysis — The company is covered but has no scored row yet.
Calling score_evidence
- 1.Register free — an email address, no card — then create a key under API Keys on your account page. Your email address has to be verified first, and the key is shown once.
- 2.Using a chat client that speaks MCP? The MCP guide is one paste. Anything else takes bearer auth, the error codes and the limits from the REST guide.
- 3.Make the call above with your own key in it.
Every successful response carries as_of, source, a quota block saying how much of the allowance is left, and the same disclaimer this page ends on.
More for agents
Data, not advice. Do your own diligence.