Install
openclaw skills install @vestafolio/vestafolio-rentabilite-locativeCompute gross and net rental yield and monthly cash-flow for a French buy-to-let investment from acquisition cost, rent and annual charges using Vestafolio's simulator API, after asking the simulator's questions (price, notary fees, works, rent, taxe foncière, copropriété, other charges, management fees, vacancy). Use when a user asks about rental profitability, "quelle rentabilité locative", rendement brut vs net, cash-flow of an investissement locatif, or whether a rental property is a good deal.
openclaw skills install @vestafolio/vestafolio-rentabilite-locativeFor 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.
Computes the gross and net rental yield and the average monthly cash-flow (excluding financing) of a buy-to-let investment, from the total acquisition cost (price, frais de notaire, travaux), the rent and the annual charges (taxe foncière, copropriété, gestion, vacance locative). The formulas below are the ones coded in the simulator.
The simulator asks these nine inputs, in this order. Ask or confirm each in French; there is no conditional question.
« Acquisition »
purchasePrice.notaryFees (euros; the site's 16 000 € default is
not derived from the price — chain vestafolio-frais-notaire for a real
figure, roughly 7-8 % in the ancien, 2-3 % in the neuf).renovationCost.monthlyRent (hors charges).« Charges annuelles »
propertyTax (€/an).condoFees (€/an, non-recoverable share).otherCharges (« Assurance PNO, entretien, etc. »).managementFeesPercent (percent of the rent
collected; the site allows 0 to 15; 0 for self-management).vacancyWeeks (« Période sans locataire (en
semaines par an) », 0 to 52).Always fetch the canonical input schema first (fields, bounds, defaults):
GET https://www.vestafolio.com/api/tools/v1/rentabilite-locative
Then POST the user's parameters (all amounts in euros, rates in percent):
curl --fail-with-body --silent --show-error --max-time 30 -X POST https://www.vestafolio.com/api/tools/v1/rentabilite-locative \
-H 'Content-Type: application/json' \
-d '{
"purchasePrice": 200000,
"notaryFees": 16000,
"renovationCost": 5000,
"monthlyRent": 900,
"propertyTax": 1200,
"condoFees": 1800,
"otherCharges": 300,
"managementFeesPercent": 8,
"vacancyWeeks": 2
}'
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.
grossYield vs netYield — always present both; the gap shows how much
charges and vacancy eat into the headline number. Net yield is the decision
metric.monthlyCashFlow — average monthly net rental income before any loan;
negative means charges exceed rents even without financingannualNetRent (after vacancy), netRent, annualCharges, vacancyLoss
— the components behind the net yield, useful to explain what to optimizetotalAcquisitionCost — the denominator of both yields