agentsclimarketplace

Savings goal planner

Skill skillim-hub/skills/savings-goal-planner

Plan monthly savings for major purchases, business reserves, equipment upgrades, and retirement gaps in Israel. Calculate future target amounts, required monthly deposits, inflation impact, current-savings contribution, and Israeli vehicle scenarios such as bank deposits, money-market funds, government bond funds, training funds, investment provident funds, and pension funds. Use when a consumer, freelancer, or small business needs a practical savings plan in ₪, including conservative assumptions, tax-aware caveats, and implementation checks. Do not treat as personal investment, pension, tax, or legal advice.From its SKILL.md

Install
npx -y skills add skillim-hub/skills --skill savings-goal-planner

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

12.0 KB, ~2.7k tokens by cl100k_base, as published. Nobody here has run it

Savings Goal Planner

Purpose

Calculate the monthly amount required to reach a future financial goal in Israel. Cover purchase goals such as a car, wedding, renovation, equipment, VAT reserve, income-tax reserve, National Insurance reserve, emergency fund, equipment upgrade, and retirement gap. Use Israeli terminology, shekel formatting, and clear warnings when a vehicle is not suitable for the time horizon or liquidity need.

Produce a practical planning output, not a personal investment recommendation. Use the calculations as a deterministic scenario model. Validate tax, pension, provident-fund, inflation, and interest-rate assumptions against official sources before production use.

Required inputs

FieldRequiredMeaningExample
goal_nameNoHuman-readable goalUsed delivery vehicle
target_amountYesTarget amount in ₪180000
monthsYesMonths until funds are needed36
current_savingsNoExisting amount allocated to the goal40000
current_monthly_savingsNoExisting monthly contribution1500
annual_returnNoExpected annual nominal return before fee/tax drag0.035
annual_feeNoAnnual fee estimate0.004
tax_rate_on_gainNoApproximate tax drag on gains0.25
inflation_rateNoAnnual inflation assumption when target is in today's terms0.025
amount_is_today_termsNoTreat target as today's ₪ and inflate to target datetrue
contribution_timingNoMonthly deposit timingend or beginning
vehicle_keyNoIsraeli vehicle presetbank_deposit_fixed
monthly_incomeNoUsed for affordability warnings22000

Core outputs

OutputMeaningFormat
Future target valueTarget adjusted for inflation if the starting amount is in today's terms₪ with 2 decimals
Required monthly savingAdditional monthly amount needed beyond current monthly saving₪ with 2 decimals
Existing savings future valueCurrent balance projected to the goal date₪ with 2 decimals
Current monthly saving future valueExisting deposits projected to the goal date₪ with 2 decimals
Effective annual returnReturn after approximate fees and tax dragPercent
Shortfall at current rateGap if no additional monthly contribution is made
Vehicle warningLiquidity, horizon, tax, and risk concernsPlain text
Assumption checklistSource freshness and validation itemsPlain text

Formula model

Use nominal values for purchase goals. Use real values for retirement gap calculations unless a nominal retirement analysis is explicitly requested.

future_target = target_amount * (1 + inflation_rate) ** (months / 12)
net_annual_return = max(-0.99, annual_return - annual_fee)
effective_annual_return = net_annual_return * (1 - tax_rate_on_gain) when positive
monthly_return = (1 + effective_annual_return) ** (1 / 12) - 1
future_current_savings = current_savings * (1 + monthly_return) ** months
future_current_monthly = current_monthly_savings * annuity_future_value_factor
required_monthly = remaining_gap / annuity_future_value_factor

When the monthly return is zero, the annuity factor equals the number of months. For beginning-of-month deposits, multiply the ordinary annuity factor by (1 + monthly_return).

Decision tree

flowchart TD
    A[Define the goal] --> B{Is the money needed within 12 months?}
    B -- Yes --> C[Prefer capital preservation and high liquidity]
    B -- No --> D{Is the horizon 1 to 5 years?}
    D -- Yes --> E[Model bank deposits, money-market funds, and low-duration bond exposure]
    D -- No --> F{Is this a retirement goal?}
    F -- Yes --> G[Use real-return retirement gap workflow]
    F -- No --> H[Compare taxable portfolio, investment provident fund, and eligible training fund]
    C --> I[Calculate future target and monthly requirement]
    E --> I
    G --> I
    H --> I
    I --> J{Monthly amount exceeds cash-flow limit?}
    J -- Yes --> K[Extend horizon, reduce target, add initial capital, or split the goal]
    J -- No --> L[Record assumptions, source dates, and monitoring schedule]

Israeli vehicle presets

KeyUse caseMinimum horizonLiquidityMain caution
cash_bankEmergency reserve, VAT reserve, immediate purchases0 monthsSame dayPurchasing power can erode
bank_deposit_fixedKnown payment date and low volatility3 monthsOften lockedEarly withdrawal can reduce interest
money_market_fundShort reserve with daily pricing1 monthUsually a few daysYield changes with interest-rate environment
government_bond_fundMedium horizon and lower credit risk24 monthsUsually a few daysUnit price can fall when yields rise
taxable_brokerage_balancedMedium or long flexible goal36 monthsUsually a few daysCapital-gains tax and market volatility
equity_index_fundLong horizon and high risk tolerance84 monthsUsually a few daysLarge drawdowns can occur near the goal date
keren_hishtalmutEligible saver with at least six-year horizon72 monthsRestricted before eligibilityContribution and withdrawal rules matter
kupat_gemel_investmentLong flexible investment wrapper60 monthsUsually a few daysFees, tax treatment, and product rules vary
pension_fundRetirement only120 monthsRestrictedNot suitable for ordinary purchases

Concrete examples

Used delivery vehicle

Inputs:

{
  "goal_name": "Used delivery vehicle",
  "target_amount": 180000,
  "months": 36,
  "current_savings": 40000,
  "current_monthly_savings": 1500,
  "inflation_rate": 0.025,
  "vehicle_key": "bank_deposit_fixed",
  "monthly_income": 22000
}

Interpretation:

  • Inflate the purchase price because the vehicle price is stated in today's ₪.
  • Use a low-volatility vehicle because the purchase date is close.
  • Add a warning if the required monthly saving exceeds 30 percent of monthly income.

Freelancer equipment upgrade

Inputs:

{
  "goal_name": "Camera and editing workstation",
  "target_amount": 42000,
  "months": 18,
  "current_savings": 8000,
  "current_monthly_savings": 900,
  "vehicle_key": "money_market_fund"
}

Interpretation:

  • Keep the time horizon short.
  • Avoid equity exposure for funds needed within 18 months.
  • Record whether VAT reclaim timing changes the cash requirement.

Retirement gap

Inputs:

{
  "current_age": 42,
  "retirement_age": 67,
  "life_expectancy": 95,
  "desired_monthly_spending_today": 14000,
  "expected_monthly_pension_today": 7000,
  "current_retirement_savings": 180000,
  "annual_real_return_accumulation": 0.04,
  "annual_real_return_retirement": 0.025
}

Interpretation:

  • Use today's shekels.
  • Calculate the monthly income gap.
  • Convert the gap into a required retirement nest egg.
  • Calculate the monthly saving required until retirement.

CLI quick start

Install locally:

pip install -e .
pip install -r requirements-dev.txt

Create a stored goal and chain the returned identifier into the next command:

CREATE_RESPONSE="$(savings-goal-planner create-goal \
  --name "Used delivery vehicle" \
  --target 180000 \
  --months 36 \
  --current-savings 40000 \
  --inflation-rate 0.025 \
  --vehicle bank_deposit_fixed \
  --env sandbox \
  --format json)"

GOAL_ID="$(python -c 'import json,sys; print(json.load(sys.stdin)["id"])' <<< "$CREATE_RESPONSE")"

savings-goal-planner show-goal \
  --id "$GOAL_ID" \
  --env sandbox \
  --format json

Run a direct calculation without storing:

savings-goal-planner goal \
  --target 12000 \
  --months 12 \
  --format json

Python quick start

from savings_goal_planner import GoalRequest, SavingsGoalPlannerClient

client = SavingsGoalPlannerClient()
result = client.calculate_goal(
    GoalRequest(
        goal_name="Renovation",
        target_amount=90000,
        months=30,
        current_savings=25000,
        inflation_rate=0.025,
        vehicle_key="money_market_fund",
    )
)
print(result.to_dict()["monthly_required"])

Edge cases

CaseCorrect handling
Target already stated as future invoice amountSet amount_is_today_terms=false
Current savings already exceed future targetReturn monthly required of 0
Monthly return is zeroUse straight-line monthly saving
Negative amountRaise validation error
Month count is zeroRaise validation error
Annual return below minus 99 percentRaise validation error
Training fund before six-year eligibilityWarn and avoid treating as liquid
Pension fund for ordinary purchaseWarn that retirement assets should not fund ordinary purchases
Inflation assumption above 6 percentAdd stress-test warning
Required monthly amount above 30 percent of incomeAdd affordability warning
Business reserve includes VATModel VAT and income-tax reserve separately
Retirement income gap is zeroReturn zero required monthly contribution and add explanation

Troubleshooting

SymptomLikely causeAction
Required monthly amount seems too highTarget was inflated twiceConfirm whether the target is in today's ₪ or future nominal ₪
Output is lower than a bank quoteFees, tax, or lower actual rate are missingEnter product fee and tax drag explicitly
Vehicle looks unsuitableHorizon is shorter than the preset minimumSelect a more liquid vehicle or extend the horizon
Retirement result is unrealisticNominal and real assumptions were mixedUse real returns and today's ₪ consistently
CLI cannot import the packageEditable install was not runRun pip install -e . from the package root
Stored goal cannot be foundDifferent store path or environment was usedPass the same --store and --env values to show-goal

Anti-patterns

Avoid these practices:

  • Treating the highest expected return as the best vehicle for every goal.
  • Using pension assets for short-term business purchases.
  • Ignoring VAT, income-tax, and National Insurance timing for freelancers.
  • Modelling a one-year purchase with equity-like returns.
  • Mixing nominal purchase prices with real retirement returns in the same calculation.
  • Using stale tax caps or contribution limits without source validation.
  • Hiding assumptions from the final output.
  • Presenting a scenario as personal investment advice.
  • Treating monthly affordability as acceptable without checking business cash flow.

Production checklist

  1. Define the goal and owner.
  2. Capture target amount, horizon, existing funds, existing monthly saving, and target date.
  3. Classify the target as today's ₪ or future nominal ₪.
  4. Select a vehicle scenario only after checking horizon and liquidity.
  5. Record inflation, return, fee, and tax assumptions.
  6. Validate assumptions against official source pages listed in references/api-reference.md.
  7. Run a base case, downside return case, and higher inflation case.
  8. Verify affordability against household or business cash flow.
  9. Separate business tax reserves from discretionary purchases.
  10. Store the goal with create-goal when repeat review is needed.
  11. Save the output and the source dates used.
  12. Schedule a review after rate, tax, or price changes.
  13. Use a licensed professional for personal investment, pension, tax, or legal decisions.

What ships with it: 26 files

140.3 KB alongside SKILL.md, 12 of them executable

savings_goal_planner/

Keep looking

Skills are one crate of 326,750. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.