It will not turn your question into SQL
Ank's own feature specification states the reason directly: "natural-language-to-SQL translation is the central failure mode of this entire product category," because a subtly wrong join or misread column produces a wrong number with the same confident tone as a correct one. Every answer Ank gives comes from a query a person already wrote and reviewed — never one generated from your words at request time.
Every answer shows its SQL and what it counted — nothing is presented bare
The query string and a plain-language statement of what was counted travel with every single-value answer, every series point, every drill-through row and every CSV export — so a reader can verify the number instead of trusting the tone it was said in.
An unanswerable question is refused, not guessed at
Asking for a metric outside the catalogue returns a 404 naming exactly that, with the list of what Ank can actually answer attached — never a plausible-sounding number for a question nobody reviewed.
A point-in-time figure is never compared across periods as if it had history
Comparing 'this period vs last' needs a snapshot of what the number was then, and Ank stores none. Asking to compare or chart a point-in-time metric like open pipeline value returns comparable: false or a refused series with the reason stated, rather than a number computed from today's rows and presented as if it were history.
A custom metric compiles nothing you type — only keys picked from a whitelist
Extending the catalogue means choosing a base table, an aggregation and filters from a fixed set the API publishes; the code looks each choice up by key in that set both when it is saved and again every time it runs, and values become bound parameters. Nothing typed into a custom definition is ever compiled or interpolated into a query string.
No employee-identifying column is ever filterable or exposed
owner_user_id and assigned_to simply do not exist as keys in the filterable map for leads or conversations, so there is no runtime check to bypass — the column is not reachable by construction. Drill-through rows never carry a message body or an employee identifier either, even where the underlying table has both.