Help center

Guide aligned with the app menu — dashboard, portfolio, research, and settings

Dashboard

The dashboard (dashboard.php) — daily «Today in portfolio» summary, alerts, movers, and a 90-day invested-vs-value chart.

Value and daily change

Total value, change in percent and currency, unrealized P/L — based on latest cached quotes.

Top 3 up / down

Holdings with the largest daily gain and loss — for quick scanning.

Today's alerts

Price alerts triggered today, active alerts, and emails sent (if configured).

Portfolio chart

Invested vs value chart + normalized SPY benchmark — shown when purchase history exists. Local Chart.js.

Data refresh

Prices are cached (CACHE_TTL_SECONDS in Settings). Background cron (refresh-cache) refreshes quotes — see Settings section.

My portfolio

Holdings

Portfolio → Holdings tab — full table, P/L, and per-instrument detail.

Holdings table

One row per symbol: quantity, average price, current value, P/L. Zero-quantity lines are hidden.

Instrument detail

Click a name in the table for live price, daily change, units, cost, and profit — on the same Holdings tab.

Symbol chart

The chart icon in the table opens price history, time ranges, and CSV export — including analysis, fundamentals, and Maya fund data when available.

Buy / sell · transactions

Trade tab — buy/sell form on top, full transaction history below.

Log a buy

Trade tab → Buy: symbol, quantity, price per unit, date, and commission. Updates average cost — nothing is sent to a broker.

Log a sell

Trade tab → Sell: sell part or all of a position. You cannot sell more than recorded quantity.

Purchase calculator

Enter amount and price to get quantity (minus commission). USD symbols also show $→₪ for ILS planning.

Maya lookup (paper ID)

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.

Transaction history

Trade tab — table of all buys and sells. Edit or delete mistaken entries.

Average cost

After each buy — weighted average: (prior cost + new buy) ÷ units. A sell reduces units but does not change average on what remains.

Unrealized P/L

(Current price − average) × remaining units. Shown in holdings and Today block. Depends on live API quotes.

Realized P/L

On sell: difference between proceeds and average cost of units sold. Shown in the Realized column in history.

Edit and delete

Edit fixes date/units/amount. Delete removes a row — use carefully; balance recalculates.

Dividends

Log dividend cash flows per symbol — for a full return picture (price + cash).

Manual entry

Portfolio → Dividends tab: pick a symbol, amount, date, and currency. For dividends not imported automatically.

Automatic import

US/global symbols — Yahoo or FMP (per settings). TASE — often manual entry.

Portfolio summary

On the Portfolio → Dividends tab — dividend summary per holding.

Allocation & targets

Allocation tab — pie charts, benchmark comparison, and rebalancing targets.

Asset type

Stock vs fund/ETF — from instrument metadata. Helps spot concentration.

Geography

Israel / US / other — by symbol and metadata. Global funds follow list classification.

Sector

Tech, finance, index, etc. when defined. Missing data shows as unclassified.

Where to find it

Portfolio → Allocation tab — when value data exists. Click a slice for details.

Benchmark comparison

A card on the portfolio page compares performance (TWR) vs SPY or TA-125 — to see if you beat the market.

Allocation targets

Portfolio → Allocation tab: set a target % per category (stocks, funds, cash, etc.). Amounts are computed vs current portfolio value.

Gap vs target

Table shows actual vs target — green/red for drift. Useful after a large buy or market move.

How to open

Portfolio → Allocation tab.

Import & export

Tools tab — bank import, CSV export, and JSON backup/restore.

Step by step

  1. Export from the bank

    In your bank app/site: orders & executions → historical executions → export Excel (or CSV).

  2. Open the import page

    Portfolio → Tools tab → Bank import.

  3. Upload and preview

    Choose a file (.xlsx or .csv, max 5MB) and click Preview. Each row shows: new, duplicate, or unmapped.

  4. Review before confirm

    Check dates, units, and amounts. Enable skip duplicates for partial files. Fix paper→symbol mapping if needed.

  5. Import to portfolio

    Click Import to portfolio. You return to the portfolio with a summary — imported, skipped, and any errors.

Supported formats

Excel (.xlsx) or CSV. If PHP has no ZipArchive — export CSV from Excel. File must be a historical executions report with expected headers.

Duplicates

Already in portfolio means the same trade exists. Skip them to avoid importing twice.

Paper ID and symbol

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.

Common errors

Parse failed — check format. Size — max 5MB. zip_missing — use CSV. Row errors — shown in flash after import.

CSV export

Portfolio → Tools tab — CSV for trades and realized P/L by year. Different from JSON backup.

Portfolio backup

Portfolio → Tools tab: export full JSON or import (merge/replace). Recommended before major changes.

Research

Watchlist

Symbols you follow without holding in the portfolio — before buying or for comparison.

Add to watchlist

Enter paper ID, Yahoo symbol, or name — then Add. Fill manually or use the Maya button.

Maya button

Same as portfolio: auto-fills name, symbol, and price from bank paper ID. Works for funds (Maya) and TASE stocks (TheMarker).

Row actions

Chart · AI advisor · Alert · Buy (opens portfolio buy form) · Delete. Hover an icon for a tooltip.

Link to recommendations

Every watchlist symbol is automatically included in Recommendations scoring — no need to add twice.

Picks

A watchlist of symbols scored and labeled using the active recommendation profile.

What do the labels mean? — Rating profiles

The recommendation profile (Settings) controls how market signals are weighted. The same symbol can score differently per profile.

DCA
DCA — Dollar Cost Averaging

For steady investing over time. Favors stability and index diversification, less emphasis on catching dips. Good if you do not time the market.

Buy the Dip
Buy the dip

Looks for symbols down 2–15% from a 90-day high — an entry point. Less weight on long uptrends, more on moderate pullbacks.

Trend
Uptrend

Prefers price above the 50-day average with 20 above 50 — positive trend. Less bonus for dips; suits rising names.

What do verdicts mean?

  • Strong buy

    Score 75+ — very strong for the current profile. Not a must-buy; always check risk and your portfolio.

  • Buy

    Score 60–74 — meets main criteria. Worth reviewing.

  • Watch

    Score 45–59 — mixed signals. Monitor before acting.

  • Pass

    Below 45 — does not fit the profile now. May change with new prices.

Scoring signals

Trend

Trend — price above MA50 and MA20 above MA50. Up to 25 points.

Entry

Entry — down 2–15% from 90-day high. Up to 25 points.

Momentum

Momentum — up 0–12% over 30 days. Up to 25 points.

Stability

Stability — relatively low daily volatility (30 days). Up to 15 points.

Diversify

Diversification — bonus for index funds; weight varies by profile.

Watchlist and universe

Core universe (Israel + global) is built in. Watchlist items merge automatically into scoring — no separate management on the recommendations page.

Score and verdict

Score (0–100) combines trend, entry, momentum, stability, and diversification signals. Profile changes the weights. Holdings above ~35% of the portfolio lose diversification points.

Scoring method table

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 from recommendations

Buy opens the portfolio buy form prefilled with symbol, price, and label — you enter quantity and confirm.

Category filters

Filter tabs: Recommended (default, includes Israel quota) · All · Israel · US · In portfolio. No text search on this page — use global search (/) for quick navigation.

DCA simulator

Compare recurring investment strategies on historical prices — for learning, not prediction.

Profiles

DCA (fixed), Dip (buy dips), Trend (follow trend) — each profile decides when to «buy» each simulation month.

Inputs

Pick a symbol, monthly amount, period (months), and start date. Data comes from API price history.

Results chart

Value curve per profile — green/red for gain/loss. Compare profiles on the same symbol.

How to interpret

Past performance does not guarantee future results. Use to understand DCA vs timing — not as a buy signal.

AI advisor

Chat for symbol analysis or general questions — based on app data, not licensed investment advice.

Symbol analysis

AI advisor button (brain icon) on portfolio, recommendations, or watchlist — sends context: price, score, signals, holding. Follow-up questions supported.

General questions

Floating button (FAB) in the corner — DCA, diversification, terms — without a specific symbol.

Attachments

In chat you can attach a file (PDF/text) for analysis — e.g. a report or table. Size limit in settings.

Enable

Settings → AI advisor: enable, API key (OpenAI-compatible), model. Without a key — buttons show but chat won't work.

Disclaimer

Answers are for tracking and learning only. Not investment advice. Decisions are your responsibility.

Price alerts

Set a threshold — the system checks prices (cron) and notifies in-app and by email (if configured).

Alert types

Above price · Below price · Daily change % — for portfolio holdings. Positive threshold only.

Add and manage

Pick holding, type, and threshold → Save. Delete from the table. Requires at least one holding.

Email notification

Settings → Email: Gmail SMTP + recipient. Test button saves and sends. Automatic mail via evaluate-alerts.php (cron).

Cron for checks

Run every 15 min: php utility/php/cli/evaluate-alerts.php — or use cron-refresh.php for prices separately.

Settings

DB connection, price provider, recommendation profile, and admin users.

Data provider & API

Choose FMP / TASE, default dashboard symbol, cache TTL, commission, and TASE divisor. Empty API key fields keep the current key.

Portfolio storage

JSON (file) or MySQL. DB supports large imports and multiple users. config.php remains for DB connection only.

Recommendation profile

DCA / Buy the Dip / Trend — see Recommendations chapter. Changing profile updates scores on the recommendations page.

Email (Gmail SMTP)

Enable, server, user, app password, from address and alert recipient. Saved to system-settings.json. Test email available.

Cron — automated jobs

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.

Scheduled backup

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).

PWA — Add to Home Screen

manifest.php + sw.php — on mobile: Add to Home Screen. Faster loads, standalone icon, app-like mode.

Admin users

Add/remove login users (requires DB). Cannot remove the last user or yourself.

Admin inbox

Settings → Messages (settings.php#contact-inbox) — view contact form submissions.

Welcome

Portfolio Track brings your holdings, prices, and recommendations together. It is for tracking and logging — not for placing trades at a broker.

What is Portfolio Track?

An app to manage your investment portfolio: live prices (from your data provider), performance summary, buy/sell logging, and rule-based recommendations.

Getting started

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.

Main screens

Dashboard · Portfolio (holdings / trade / dividends / allocation / tools) · Research (watchlist / picks / DCA) · Alerts · Settings · Help · Contact · Accessibility.

Important

Information and recommendations are for tracking and learning only. Not investment advice. Trading decisions are your responsibility.

Login & language

The app is password-protected. The UI is available in Hebrew and English.

Signing in

Home (index.php) is public. After sign-in: dashboard, portfolio, Today, watchlist, recommendations, dividends, rebalancing, DCA, alerts, settings, messages, and help.

Switching language

HE / EN buttons in the header. Hebrew = RTL, English = LTR. Your choice is stored in the session.

Logout

Logout ends your session. You will need your password to sign in again.

Currency and USD rate

Israeli stocks in ILS; US symbols in USD — with conversion for display and calculator.

When is USD shown?

US symbols (e.g. AAPL, SPY) — price in $; portfolio summary and forms can also show ILS via FX rate.

Rate source

$→₪ from FMP or USD_ILS_RATE in config if API unavailable. Calculator shows 1$ = ₪X.

Calculator in shekels

For $ buys: enter units and price — calculator converts to ₪, adds commission, compares to total paid like the bank page.

TASE in shekels

TASE stocks and funds — amounts in ₪. Fund divisor in Settings adjusts display if needed.

Price charts

View price trends — from portfolio or recommendations.

How to open

Portfolio, recommendations, or watchlist: chart icon/button per row. Opens a modal with price history.

Time ranges

30 days — short trend. 1 year — broader context. Switch ranges with a click.

How to read

Up = price higher than range start. Use charts with recommendation signals (trend, entry) — not as a standalone decision.

Data source

Price points from API (FMP/Yahoo). If missing — chart won't load; check symbol and connection.

CSV export from chart

In the chart modal — Export CSV: prices by date, plus analysis, fundamentals, and Maya data for funds when available.

Frequently asked questions

Quick fixes for common issues.

Why is there no price?

Check Yahoo symbol (e.g. XXX.TA). For TASE — paper ID in map. Ensure API works and cache is fresh. No symbol = no quote.

Why can't I trade through the bank?

Portfolio Track logs trades only — it does not send orders to a broker. Execute at the bank; then log or import here.

Paper ID not in map

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.

Score changed — why?

Prices updated, profile changed, or portfolio composition affected diversification. Refresh recommendations after settings changes.

JSON or MySQL?

JSON — simple start, file in data/. MySQL — large imports, multiple users, proper backups. Switch in Settings + config.php.

Cron not running / stale prices

Set Task Scheduler (Windows) or crontab (Linux) for refresh-cache.php. Check CRON_TOKEN for HTTP. Settings → Cron shows last run.

Alert email in spam

Personal Gmail + SMTP may land in spam. Use app password, matching From, mark as not spam. SPF/DKIM on your own domain helps.

Accessibility

The app supports IS 5568 / WCAG 2.0 — accessibility menu on every page and a full statement.

Accessibility menu

Bottom-left button: text size, contrast, link underline, reduced motion. Saved in localStorage.

Accessibility statement

accessibility.php — commitment, features, limits, and reporting. Also linked in the site footer.

Keyboard and focus

Skip to content at top · Tab navigation · Escape closes menus · visible focus on all controls.

Contact us

Send a message from the site — support, feedback, or accessibility reports.

Sending a message

contact.php — email (required), phone (optional), and message. Public, no sign-in. Confirmation after send.

Accessibility reports

From the accessibility statement — Contact button. Include page, browser, and device.

Quick glossary

Short definitions for day-to-day use.

DCA
Dollar Cost Averaging — invest fixed amounts on a schedule without timing tops or bottoms.
Buy the Dip
Strategy of buying after moderate drops when price is below a recent high.
Symbol
Trading ticker — e.g. AAPL, SPY, or a TASE symbol.
Paper ID
TASE security identifier — needed for TASE data and bank import.
Benchmark
Comparison fund (e.g. SPY) for index ETFs in scoring.
Commission
Fixed fee per trade (₪) — subtracted in the purchase calculator.
Storage
JSON — local file; MySQL — server tables. Both store trades and holdings.
MA50 / MA20
50- (or 20-) day moving average — trend line. Above MA50 = positive trend in scoring.
Unrealized P/L
Gain/loss on shares you still hold — vs current quote and cost basis.
Realized P/L
P/L locked in on a sell — when the trade is done (even if only logged here).
ETF
Exchange-traded fund tracking an index (S&P, TA, etc.). Gets a diversification bonus in scoring.
Verdict
Label from score: strong buy, buy, watch, pass.
Portfolio breakdown
Split of portfolio value by asset type, geography, or sector — pie charts.
Cron
Scheduled server job — refreshes prices, checks alerts, updates ticker strip.
Price alert
Rule: when price crosses a threshold (above/below/daily %) — in-app and/or email notification.
Israel · Major stocks