Value and daily change
Total value, change in percent and currency, unrealized P/L — based on latest cached quotes.
Guide aligned with the app menu — dashboard, portfolio, research, and settings
The dashboard (dashboard.php) — daily «Today in portfolio» summary, alerts, movers, and a 90-day invested-vs-value chart.
Total value, change in percent and currency, unrealized P/L — based on latest cached quotes.
Holdings with the largest daily gain and loss — for quick scanning.
Price alerts triggered today, active alerts, and emails sent (if configured).
Invested vs value chart + normalized SPY benchmark — shown when purchase history exists. Local Chart.js.
Prices are cached (CACHE_TTL_SECONDS in Settings). Background cron (refresh-cache) refreshes quotes — see Settings section.
Portfolio → Holdings tab — full table, P/L, and per-instrument detail.
One row per symbol: quantity, average price, current value, P/L. Zero-quantity lines are hidden.
Click a name in the table for live price, daily change, units, cost, and profit — on the same Holdings tab.
The chart icon in the table opens price history, time ranges, and CSV export — including analysis, fundamentals, and Maya fund data when available.
Trade tab — buy/sell form on top, full transaction history below.
Trade tab → Buy: symbol, quantity, price per unit, date, and commission. Updates average cost — nothing is sent to a broker.
Trade tab → Sell: sell part or all of a position. You cannot sell more than recorded quantity.
Enter amount and price to get quantity (minus commission). USD symbols also show $→₪ for ILS planning.
Next to Bank paper ID on a new buy: enter the ID and click Maya. The app fills name, Yahoo symbol, and price — funds from Maya, TASE stocks from TheMarker. You only enter quantity.
Trade tab — table of all buys and sells. Edit or delete mistaken entries.
After each buy — weighted average: (prior cost + new buy) ÷ units. A sell reduces units but does not change average on what remains.
(Current price − average) × remaining units. Shown in holdings and Today block. Depends on live API quotes.
On sell: difference between proceeds and average cost of units sold. Shown in the Realized column in history.
Edit fixes date/units/amount. Delete removes a row — use carefully; balance recalculates.
Log dividend cash flows per symbol — for a full return picture (price + cash).
Portfolio → Dividends tab: pick a symbol, amount, date, and currency. For dividends not imported automatically.
US/global symbols — Yahoo or FMP (per settings). TASE — often manual entry.
On the Portfolio → Dividends tab — dividend summary per holding.
Allocation tab — pie charts, benchmark comparison, and rebalancing targets.
Stock vs fund/ETF — from instrument metadata. Helps spot concentration.
Israel / US / other — by symbol and metadata. Global funds follow list classification.
Tech, finance, index, etc. when defined. Missing data shows as unclassified.
Portfolio → Allocation tab — when value data exists. Click a slice for details.
A card on the portfolio page compares performance (TWR) vs SPY or TA-125 — to see if you beat the market.
Portfolio → Allocation tab: set a target % per category (stocks, funds, cash, etc.). Amounts are computed vs current portfolio value.
Table shows actual vs target — green/red for drift. Useful after a large buy or market move.
Portfolio → Allocation tab.
Tools tab — bank import, CSV export, and JSON backup/restore.
In your bank app/site: orders & executions → historical executions → export Excel (or CSV).
Portfolio → Tools tab → Bank import.
Choose a file (.xlsx or .csv, max 5MB) and click Preview. Each row shows: new, duplicate, or unmapped.
Check dates, units, and amounts. Enable skip duplicates for partial files. Fix paper→symbol mapping if needed.
Click Import to portfolio. You return to the portfolio with a summary — imported, skipped, and any errors.
Excel (.xlsx) or CSV. If PHP has no ZipArchive — export CSV from Excel. File must be a historical executions report with expected headers.
Already in portfolio means the same trade exists. Skip them to avoid importing twice.
Paper IDs map to Yahoo symbols via paper-symbol-map.json. Unmapped rows — enter symbol in the mapping form on the import page; it saves to the map automatically.
Parse failed — check format. Size — max 5MB. zip_missing — use CSV. Row errors — shown in flash after import.
Portfolio → Tools tab — CSV for trades and realized P/L by year. Different from JSON backup.
Portfolio → Tools tab: export full JSON or import (merge/replace). Recommended before major changes.
Symbols you follow without holding in the portfolio — before buying or for comparison.
Enter paper ID, Yahoo symbol, or name — then Add. Fill manually or use the Maya button.
Same as portfolio: auto-fills name, symbol, and price from bank paper ID. Works for funds (Maya) and TASE stocks (TheMarker).
Chart · AI advisor · Alert · Buy (opens portfolio buy form) · Delete. Hover an icon for a tooltip.
Every watchlist symbol is automatically included in Recommendations scoring — no need to add twice.
A watchlist of symbols scored and labeled using the active recommendation profile.
The recommendation profile (Settings) controls how market signals are weighted. The same symbol can score differently per profile.
For steady investing over time. Favors stability and index diversification, less emphasis on catching dips. Good if you do not time the market.
Looks for symbols down 2–15% from a 90-day high — an entry point. Less weight on long uptrends, more on moderate pullbacks.
Prefers price above the 50-day average with 20 above 50 — positive trend. Less bonus for dips; suits rising names.
Score 75+ — very strong for the current profile. Not a must-buy; always check risk and your portfolio.
Score 60–74 — meets main criteria. Worth reviewing.
Score 45–59 — mixed signals. Monitor before acting.
Below 45 — does not fit the profile now. May change with new prices.
Trend — price above MA50 and MA20 above MA50. Up to 25 points.
Entry — down 2–15% from 90-day high. Up to 25 points.
Momentum — up 0–12% over 30 days. Up to 25 points.
Stability — relatively low daily volatility (30 days). Up to 15 points.
Diversification — bonus for index funds; weight varies by profile.
Core universe (Israel + global) is built in. Watchlist items merge automatically into scoring — no separate management on the recommendations page.
Score (0–100) combines trend, entry, momentum, stability, and diversification signals. Profile changes the weights. Holdings above ~35% of the portfolio lose diversification points.
At the bottom of Recommendations — a detailed table: each signal (trend, entry, momentum, stability, diversification, portfolio) with logic and max points, plus verdict thresholds (75+ / 60–74 / 45–59).
Buy opens the portfolio buy form prefilled with symbol, price, and label — you enter quantity and confirm.
Filter tabs: Recommended (default, includes Israel quota) · All · Israel · US · In portfolio. No text search on this page — use global search (/) for quick navigation.
Compare recurring investment strategies on historical prices — for learning, not prediction.
DCA (fixed), Dip (buy dips), Trend (follow trend) — each profile decides when to «buy» each simulation month.
Pick a symbol, monthly amount, period (months), and start date. Data comes from API price history.
Value curve per profile — green/red for gain/loss. Compare profiles on the same symbol.
Past performance does not guarantee future results. Use to understand DCA vs timing — not as a buy signal.
Chat for symbol analysis or general questions — based on app data, not licensed investment advice.
AI advisor button (brain icon) on portfolio, recommendations, or watchlist — sends context: price, score, signals, holding. Follow-up questions supported.
Floating button (FAB) in the corner — DCA, diversification, terms — without a specific symbol.
In chat you can attach a file (PDF/text) for analysis — e.g. a report or table. Size limit in settings.
Settings → AI advisor: enable, API key (OpenAI-compatible), model. Without a key — buttons show but chat won't work.
Answers are for tracking and learning only. Not investment advice. Decisions are your responsibility.
Set a threshold — the system checks prices (cron) and notifies in-app and by email (if configured).
Above price · Below price · Daily change % — for portfolio holdings. Positive threshold only.
Pick holding, type, and threshold → Save. Delete from the table. Requires at least one holding.
Settings → Email: Gmail SMTP + recipient. Test button saves and sends. Automatic mail via evaluate-alerts.php (cron).
Run every 15 min: php utility/php/cli/evaluate-alerts.php — or use cron-refresh.php for prices separately.
DB connection, price provider, recommendation profile, and admin users.
Choose FMP / TASE, default dashboard symbol, cache TTL, commission, and TASE divisor. Empty API key fields keep the current key.
JSON (file) or MySQL. DB supports large imports and multiple users. config.php remains for DB connection only.
DCA / Buy the Dip / Trend — see Recommendations chapter. Changing profile updates scores on the recommendations page.
Enable, server, user, app password, from address and alert recipient. Saved to system-settings.json. Test email available.
refresh-cache.php (CLI) or cron-refresh.php?token= — every 15 min: quotes, footer ticker, cache. evaluate-alerts.php — every 15 min: alerts + email. CRON_TOKEN in config.php. Last refresh shown in Settings.
backup-data.php (CLI) or backup-data.php?token= — daily recommended (02:15). Saves portfolio-*.json in data/backups/, keeps 14 copies. On failure → email to MAIL_ALERT_TO (max once per 24h).
manifest.php + sw.php — on mobile: Add to Home Screen. Faster loads, standalone icon, app-like mode.
Add/remove login users (requires DB). Cannot remove the last user or yourself.
Settings → Messages (settings.php#contact-inbox) — view contact form submissions.
Portfolio Track brings your holdings, prices, and recommendations together. It is for tracking and logging — not for placing trades at a broker.
An app to manage your investment portfolio: live prices (from your data provider), performance summary, buy/sell logging, and rule-based recommendations.
1) Public home page — overview. 2) Sign in → Dashboard (dashboard.php). 3) Set DB and API. 4) Add portfolio or import from bank. 5) Monitor Today, alerts, and recommendations.
Dashboard · Portfolio (holdings / trade / dividends / allocation / tools) · Research (watchlist / picks / DCA) · Alerts · Settings · Help · Contact · Accessibility.
Information and recommendations are for tracking and learning only. Not investment advice. Trading decisions are your responsibility.
The app is password-protected. The UI is available in Hebrew and English.
Home (index.php) is public. After sign-in: dashboard, portfolio, Today, watchlist, recommendations, dividends, rebalancing, DCA, alerts, settings, messages, and help.
HE / EN buttons in the header. Hebrew = RTL, English = LTR. Your choice is stored in the session.
Logout ends your session. You will need your password to sign in again.
Quickly find pages, portfolio symbols, watchlist items, and more — without opening each screen.
Click Search in the header or press / (slash) — a search dialog opens.
App pages (portfolio, recommendations, settings…), portfolio holdings, watchlist items, help topics, and transaction notes.
Type part of a name or symbol — Enter to navigate. Escape to close.
Israeli stocks in ILS; US symbols in USD — with conversion for display and calculator.
US symbols (e.g. AAPL, SPY) — price in $; portfolio summary and forms can also show ILS via FX rate.
$→₪ from FMP or USD_ILS_RATE in config if API unavailable. Calculator shows 1$ = ₪X.
For $ buys: enter units and price — calculator converts to ₪, adds commission, compares to total paid like the bank page.
TASE stocks and funds — amounts in ₪. Fund divisor in Settings adjusts display if needed.
View price trends — from portfolio or recommendations.
Portfolio, recommendations, or watchlist: chart icon/button per row. Opens a modal with price history.
30 days — short trend. 1 year — broader context. Switch ranges with a click.
Up = price higher than range start. Use charts with recommendation signals (trend, entry) — not as a standalone decision.
Price points from API (FMP/Yahoo). If missing — chart won't load; check symbol and connection.
In the chart modal — Export CSV: prices by date, plus analysis, fundamentals, and Maya data for funds when available.
Quick fixes for common issues.
Check Yahoo symbol (e.g. XXX.TA). For TASE — paper ID in map. Ensure API works and cache is fresh. No symbol = no quote.
Portfolio Track logs trades only — it does not send orders to a broker. Execute at the bank; then log or import here.
Click Maya next to paper ID — fills name, symbol, and price (funds from Maya, TASE stocks from TheMarker). Otherwise: add to paper-symbol-map.json or enter Yahoo symbol manually. On import — unmapped rows show no Yahoo symbol.
Prices updated, profile changed, or portfolio composition affected diversification. Refresh recommendations after settings changes.
JSON — simple start, file in data/. MySQL — large imports, multiple users, proper backups. Switch in Settings + config.php.
Set Task Scheduler (Windows) or crontab (Linux) for refresh-cache.php. Check CRON_TOKEN for HTTP. Settings → Cron shows last run.
Personal Gmail + SMTP may land in spam. Use app password, matching From, mark as not spam. SPF/DKIM on your own domain helps.
The app supports IS 5568 / WCAG 2.0 — accessibility menu on every page and a full statement.
Bottom-left button: text size, contrast, link underline, reduced motion. Saved in localStorage.
accessibility.php — commitment, features, limits, and reporting. Also linked in the site footer.
Skip to content at top · Tab navigation · Escape closes menus · visible focus on all controls.
Send a message from the site — support, feedback, or accessibility reports.
contact.php — email (required), phone (optional), and message. Public, no sign-in. Confirmation after send.
From the accessibility statement — Contact button. Include page, browser, and device.
Short definitions for day-to-day use.