Skip to main content
Glama

project_net_worth

Project net worth under multiple scenarios using Monte Carlo simulation with user-defined returns and volatility. Evaluate probability of reaching a target and plan life events.

Instructions

Thought experiment: forward-looking Monte Carlo projection of net worth under caller-supplied assumptions, multi-scenario. Runs monthly GBM under one or more (return, vol) pairs in parallel, adds a fixed monthly contribution, applies one-time life events, and returns P10 / P25 / P50 / P75 / P90 trajectories per scenario. horizon_months accepts any length from 1 (next month) to 720 (60 years) — same tool answers short-horizon outlooks and long-horizon FIRE planning. target_value is optional: when supplied, the response includes probability of reaching it and median months to reach; when omitted, just the distribution at the horizon. All monetary inputs/outputs are in the requested currency (default USD). YOU MUST set scenarios[].expected_annual_return and scenarios[].annual_volatility explicitly and disclose them verbatim to the user — firma does NOT bake in defaults. For reference, brief.risk_summary carries the user's realized 90d annualized_return_pct and annualized_vol_pct — those make a natural 'historical' scenario you can contrast with bear/bull overlays. All scenarios share the same seeded shock sequence so cross-scenario differences reflect (return, vol) — not random noise. For current portfolio state, use get_market_brief — that is the diagnostic tool; this is the thought-experiment tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
currencyNoCurrency for every monetary input and output (USD/KRW/EUR/JPY/CNY/GBP/HKD/INR/TWD). Default USD. The projection is unit-agnostic; this value is metadata for the response.USD
initial_valueYesStarting net worth in `currency`.
monthly_contributionYesNet monthly contribution in `currency` (income − expenses). Can be negative.
target_valueNoOptional net-worth target in `currency`. When provided, the response includes probability_of_reaching_target + median_months_to_target per scenario. Omit for pure distribution output.
horizon_monthsYesProjection horizon in months. 1 = next month outlook; 60 = 5-year planning; 360 = 30-year FIRE. Same tool for short and long horizons.
scenariosYesOne or more scenarios to run side-by-side. Each carries its own label, expected_annual_return, and annual_volatility. For single-scenario calls just pass an array of length 1.
life_eventsNoOptional one-time cash flows along the horizon.
iterationsNoMonte Carlo iterations per scenario. Default 1000 (P-band ±1.5%, ~500ms per scenario). Raise toward 10000 for smoother fan-chart curves at the cost of latency; lower to 100 for a quick sanity check.
seedNoOptional integer seed for reproducible runs.
include_pathsNoInclude the percentile trajectories per scenario (needed for fan-chart visualization). Set false for a lighter response (finals + probability + reach-month only).
path_resolutionNoPath sample frequency when include_paths=true. 'yearly' samples every 12 months (≈10× smaller payload, sufficient for trajectory curves); 'monthly' returns every month (needed only for month-precise visualization). All monetary values are rounded to the nearest currency unit in the response — full precision stays in the projection engine.yearly
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses: monthly GBM, cross-scenario shared seed, target_value behavior, horizon range, iteration precision, path resolution impact. Covers most behavioral aspects, but could be more explicit about probabilistic nature of output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is long but each sentence adds value, front-loaded with core purpose. Could be slightly more concise by grouping related concepts, but overall efficient given complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, description fully explains output (percentiles, probability, median months), simulation process, and all parameter options. Covers how to obtain historical reference via brief.risk_summary. Complete for a complex tool with 11 parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3. Description adds value by explaining how horizon_months covers short/long horizons, target_value changes response, scenarios share same seed, and iteration defaults affect precision. Provides context beyond schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'forward-looking Monte Carlo projection of net worth under caller-supplied assumptions, multi-scenario', clearly defining the resource (net worth projection), method (Monte Carlo), and scope. It distinguishes from sibling 'get_market_brief' by positioning this as the thought-experiment tool vs. a diagnostic tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance: use get_market_brief for current portfolio state, this tool for projections. Explains how to set scenarios (must set return/vol explicitly, disclose to user), and references brief.risk_summary for a historical scenario. Does not explicitly state when not to use, but covers when to use and alternatives well.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/evan-moon/firma'

If you have feedback or need assistance with the MCP directory API, please join our Discord server