Last Updated: April 2026
SGX Tracker is designed so your portfolio data lives in your own cloud storage account, not on a server we control. Specifically:
appDataFolder scope to store your portfolio files in a hidden folder that only this app can access./Apps/SGXTracker/.The transactions, dividends, and settings files themselves are never sent to or stored on a server we operate. You can delete them at any time by removing the files from your cloud account.
We operate a Cloudflare Worker (sgx-tracker-proxy) that does two things: (a) proxy live SGX prices from Yahoo Finance, and (b) record anonymous usage analytics so we can understand how the app is used and detect outages.
When the app shows you live prices, it sends the list of stock symbols you hold to the Worker. The Worker does not see how many shares you own, your purchase prices, or any totals.
The app sends event-level analytics to our Worker. These events are recorded in Cloudflare Analytics Engine and used in aggregate to monitor app health. Event types include:
app_open, page_view, page_dwell, theme_changelogin_success, login_failed (with provider only — no email or token)session_start — sends total cost basis bucketed to the nearest S$1,000 and total transaction counttransaction_add — sends ticker symbol, sector, share count, and trade value bucketed to S$1,000transaction_edit, transaction_delete — sends ticker symbolportfolio_snapshot, achievement_level — sends derived portfolio metricsdividend_sync, twr_result — sends derived metricserror events with the type of errorWe send these to detect issues and understand usage, not to identify you. If you want to use the app without sending these events, use a network blocker that drops requests to sgx-tracker-proxy.ladiida.workers.dev/event; this will not affect any other functionality.
Each event is tagged with a daily-rotating identifier derived from the SHA-256 hash of your IP address combined with a date-based salt. The same IP produces a stable identifier within a single calendar day (so we can count unique visitors that day) but a different identifier the next day. We do not store raw IP addresses in Analytics Engine.
Our pages also include the Cloudflare Web Analytics beacon, which records page-level traffic without cookies. See Cloudflare's documentation for details.
We request access to your Google account for the following purposes:
We do not transfer Google user data to any third party. We do not use it for advertising or for any purpose other than what is described above.
You can delete your portfolio data at any time by deleting the files from your Google Drive or OneDrive account, or by clearing browser storage in local-only mode. Authentication is handled via official OAuth 2.0 flows, meaning we never see or store your password.
Analytics events are retained according to Cloudflare Analytics Engine's default retention. Because the visitor identifier rotates daily, individual users cannot be tracked across days in the analytics data.
We do not share data with third parties beyond the infrastructure providers we use to run the app:
If we materially change what data is sent to our Worker, we will update this page and the "Last Updated" date above.