Install
openclaw skills install @vestafolio/vestafolio-interets-composesProject compound-interest growth of an investment with initial capital and monthly contributions using Vestafolio's simulator API, after asking the simulator's questions (initial capital, monthly contribution, duration, annual return, compounding frequency). Use when a user asks about intérêts composés, compound interest projections, how much recurring savings will grow over N years, or wants a year-by-year table of invested amounts versus gains.
openclaw skills install @vestafolio/vestafolio-interets-composesFor a request within this simulator's scope:
https://www.vestafolio.com, summarize the fields and
values to be sent, and obtain the user's agreement. Existing explicit
approval for this destination and data scope is sufficient; do not ask
again for calls it already covers. Installing or selecting the skill alone
is not approval to transmit personal data. If the user declines, do not
POST; offer the simulator link for manual use without prefilled inputs.execute_code in OpenWebUI). Python can use
urllib.request; in browser-based Pyodide use await pyfetch(...) from
pyodide.http. A Python environment does not need a shell to call the API.ok must be true; read the
calculation from result. Ground the answer in that output, state relevant
assumptions and limits. Offer the simulator link when useful for checking
assumptions or exploring alternatives; respect requests for no links.Writing a code block is not execution. Do not substitute mental arithmetic, remembered tax rules, or the worked example for a tool result. If execution or network access is unavailable, or the API fails, say the calculation could not be completed and provide the simulator link; do not invent its result or recommendation. A schema GET alone is not a completed simulation.
Reply in French whenever the user speaks or writes in French.
Projects the final value of an investment with an initial capital and monthly contributions, at a chosen compounding frequency, returning total invested, gains and a year-by-year evolution table.
The simulator asks these five inputs, in this order (card « Paramètres »). Ask or confirm each in French; there is no conditional question.
initialAmount.monthlyContribution.years (the site allows 1 to 50).annualRate (nominal percent; the site allows 0 to
20).compoundingPeriod: « Mensuelle » =
monthly, « Trimestrielle » = quarterly, « Annuelle » = yearly.totalInvested = initial + monthly × 12 × years; gains = total − invested.yearlyEvolution rounds invested, gains and total to the euro per year,
starting with year 0.Always fetch the canonical input schema first (fields, bounds, defaults):
GET https://www.vestafolio.com/api/tools/v1/interets-composes
Then POST the user's parameters (amounts in euros, rate in percent):
curl --fail-with-body --silent --show-error --max-time 30 -X POST https://www.vestafolio.com/api/tools/v1/interets-composes \
-H 'Content-Type: application/json' \
-d '{
"initialAmount": 10000,
"monthlyContribution": 300,
"years": 20,
"annualRate": 7,
"compoundingPeriod": "monthly"
}'
Unknown fields are rejected (strict schema) — if you get a validation_error,
re-read the schema from the GET endpoint rather than guessing field names.
total — final value (« Capital final »); totalInvested — sum of all
contributions; gains — the compounding effect (« Plus-values »)yearlyEvolution — rounded per-year invested, gains, total (year 0 is
the starting point); ideal for tables and "after N years" follow-ups