ask_parallel
ChatGPTAsk Parallel a natural-language question about this organization's financial model. Parallel decides which grounded tools to call and returns a written answer. Prefer this when a question spans multiple metrics or needs judgement; reach for the granular tools when you want a single precise value.
compare_scenarios
ChatGPTDiff a scenario against the base model — or against another scenario — and return the formula, expense, and position changes with their values. Use this to answer "what does scenario X change vs the plan?" or "how does scenario A differ from scenario B?". Each element carries action (created / updated / deleted), the resourceUuid, the title, and the list of changed fields with original and updated values, all from the compare scenario's perspective. compare and (when given) base must be scenario UUIDs — pass a name and the call errors; resolve names via find_model_objects first.
explain_metric
ChatGPTExplain a single metric at a given month in one call: readable definition, the calc-engine value, the driver tree (formula-typed recipe variables and their values from the calc engine, never recomputed), how the metric is categorized in the CURRENT model (rollup path to its root total, which tab it lives on, whether it sits under revenue / COGS / opex / other expenses, and any department allocation), and the most recent relevant model change touching the metric or its drivers. Use this to answer "why is X what it is" and "where/how is X categorized" without chaining lookups. Values are in display units (dollars); quote each node's displayValue when stating a figure.
find_model_objects
ChatGPTResolve a natural-language name (e.g. "marketing spend", "Engineering", "Alice Smith") to ranked, case-insensitive UUID matches across formulas, departments, and positions. Returns multiple matches when the query is ambiguous so the model can pick the right one before calling other tools. Each match carries a matchType (uuid_exact, name_exact, name_prefix, name_substring) so the caller can tell a perfect hit from a candidate list. Formula matches also carry parentName and tab to help disambiguate same-named formulas without a follow-up call.
get_metric_timeseries
ChatGPTReturn the calc-engine values, month by month, for a single metric, plus its human-readable definition. Use this whenever you need the real numbers behind a metric. Each point carries a displayValue already formatted for the user (currency to 2 decimals) — quote that when stating a figure. The numeric value is in the same display units (dollars) for any arithmetic you need.
get_model_changes
ChatGPTAudit the model's EDIT HISTORY over a date range: who created, updated, or deleted which formulas, expenses, positions, and scenarios, and when. Use ONLY for edit-history / attribution / audit questions — "who changed X", "what edits happened last week", "when was this renamed". NEVER use this to learn the current model's structure, categorization, or values: use explain_metric for structure/drivers/categorization and get_metric_timeseries for values — past months of the current model come from get_metric_timeseries, not the changelog. explain_metric already returns the most recent change touching a metric. Output is truncated on busy ranges; narrow startDate/endDate or pass a single types value for more detail.
get_model_overview
ChatGPTReturn an orienting digest of the org's financial model: the modeled month range, the key metrics (name + formulaUuid + formatting), the departments, and the available scenarios. A cached version is already preloaded into the system prompt at conversation start, so call this only to refresh if you suspect the prompt is stale or to read a non-default scenario.
list_positions
ChatGPTList the organization's headcount plan: every position — current employees and planned/future hires — with title, department, employment type, hire date and start month, termination date, and the active toggle (on/off in the plan). When the caller may view compensation each position also carries annual base pay and any scheduled pay changes (raises). Also returns hiring rules (auto-hire triggers: "hire one X per N of a driving position or model metric") with the threshold and planned hires by month. Use this for ANY request to list the hiring plan, planned hires, open roles, positions, or headcount by department — never tell the user the roster is unavailable without calling it first. Compensation here is base pay only: Parallel does not store a per-position fully-loaded or burdened cost, and there is no org-wide raise or benefits-loading percentage (raises appear per position as pay changes). For a fully-loaded/burdened figure, layer expenses on top: also call get_metric_timeseries for the payroll-taxes-&-benefits expense line and Total Compensation, derive loading % = (taxes + benefits) ÷ total compensation, apply it to each base pay, and state the derivation. For headcount COUNT over time use get_metric_timeseries with a headcount metric; get_model_changes is only for edit history, never the current roster.
search_product_docs
ChatGPTCall this for any question about how Parallel itself works — product features, concepts, terminology (Scenarios, Attributes, Plans, Hiring Rules, BvA, …), or "how do I…" walkthroughs — and answer only from what it returns; the agent has no reliable built-in knowledge of Parallel. Do NOT use it for numbers from the user's model (use get_metric_timeseries / explain_metric for that). Pass the user's question as the query. Returns a grounded answer plus the doc slugs it cited; an empty citedDocs list means the docs do not cover the question.
ask_parallel
Claudecompare_scenarios
Claudeexplain_metric
Claudefind_model_objects
Claudeget_metric_timeseries
Claudeget_model_changes
Claudeget_model_overview
Claudesearch_product_docs
Claude