Privacy Policy
Last updated 28 September 2026
This document is written in English. If it is shown to you in another language, the English text is the one that applies.
This policy explains what JomTP ("we", "us") collects when you use the JomTP trading journal, why we collect it, who else touches it, and what you can do about it. It covers the website, the web app, the JomTP iOS app, and the APIs behind them.
In short
- We collect what the journal needs to work, and little else. There is no advertising here and nothing is sold.
- Your broker API keys are read-only, encrypted before they are stored, and never sent back to your browser or included in an export.
- Your trades, notes, playbooks and backtests are yours. Export them or delete them whenever you like, from Settings.
- Analytics record that something was used, not the numbers on your screen. Your P&L is not sent to any analytics service.
- You can reach a person at support@jomtp.com.
Who we are and what this covers
JomTP is the controller of the personal data described here: we decide what is collected and why. If a law such as the GDPR or Malaysia's PDPA gives you rights over your data, this policy tells you how to use them; where those laws conflict with anything below, they win.
JomTP is currently a beta service offered free to invited testers. That does not lower the standard applied to your data, but it does mean the product changes often. Where a practice below is planned rather than live, it says so.
What we collect
Account
Your email address, your display name, and, if you sign up with a password, a hash of that password (handled by our authentication provider — we never see the password itself). Signing in with Google shares your email and name with us, and nothing else. If you add a profile picture it is stored with your account. We also record the invite code you signed up with, and the version of the Terms and this policy you accepted, with the date and time you accepted them.
Broker API keys
The API keys you connect for each exchange. We check a key's permissions when you save it and reject any key that can trade or withdraw. Keys are encrypted before they are written to the database, are decrypted only on our servers at the moment a sync runs, and are never returned to your browser, shown in the app, written to logs, or included in a data export. Deleting a connected account deletes its keys.
Trading data
Using those keys, we read from your exchange: your positions and trade history, the orders behind them (including cancelled ones, which is how the app can tell a target that was hit from one that never traded), your fills, funding and fees, and your account balance. We keep the raw exchange responses alongside the trades we derive from them, so a figure can always be traced back to what the exchange actually said. We pull as much history as the exchange will give us, so your statistics cover your whole record rather than the last few weeks.
Things you write or upload
Everything you create in the app: journal entries and notes, trade tags and review answers, playbooks and rules, confluences, backtest sessions and their results, chart drawings and layouts, screenshots and files you attach, dashboard arrangements, and your display preferences (theme, language, risk settings). Notes are free text — please do not put anything in them you would not want stored, such as passwords or another person's private information.
Mentor sharing (optional)
Only if you choose it. Entering a mentor's code creates a link that lets that mentor read the trades on the accounts you selected, and write comments on them, through the companion JomTP Mentor app. We store the link, which accounts it covers, and the comments on both sides. You can revoke a link at any time from Settings; revoking stops all further access, and comments you already received stay in your journal because the advice is yours to keep. Mentors never see your API keys, your balances, or accounts you did not share.
Payments
Nothing is charged during the beta and no payment details are collected. When paid plans launch and you subscribe, Stripe takes your billing details and handles the card; card numbers never reach our servers. We store only your Stripe customer and subscription identifiers, your plan, and its status.
Technical and usage data
Ordinary server and app records: IP address, browser or app version, timestamps, the routes called and how they responded, and the outcome of each sync. We use them to run and secure the Service — rate limiting, abuse prevention, and working out why something broke. We also keep operational records of the sync engine itself (when an account was last synced, how long a job took, whether an exchange rate-limited us).
Waitlist
If you join the beta waitlist we store your email address and which part of the site you joined from, to contact you about access. Ask us and we will remove it.
How we use it
- To run the journal: sync your trades, reconstruct positions, compute your statistics, and show them back to you.
- To keep your account working: sign you in, keep your session alive, and tell you when a broker key has stopped working.
- To provide the features you use: backtests and replays, playbooks, mentor sharing, exports.
- To keep the Service secure and available: rate limiting, abuse and fraud prevention, debugging, and capacity planning.
- To improve the product: aggregated, masked usage analytics that tell us which features are worth building on (see below).
- To communicate with you: service notices, security notices, and replies when you contact us.
- To meet legal obligations, and to establish or defend legal claims.
We do not sell your data, share it with data brokers, or use it for advertising. We do not use your trades to train machine-learning models, and we do not use them to trade.
Product analytics
We use PostHog for product analytics: which pages and features are opened, and where people get stuck. It is configured for an app that shows real money on screen:
- Element text and attributes are masked. An event records that a row or a button was clicked, never the price, size, symbol, or P&L displayed on it.
- Custom events carry structure only — which step of a wizard, which broker, which tab. Never a number from your account.
- Session replay is off by default. If it is ever switched on, a replay is a reconstruction of the page's structure with all text masked, all inputs masked, charts excluded entirely, and network request and response bodies not recorded. It is not a video, and it does not carry your figures.
- When you are signed in, the analytics profile is keyed to your user id and carries your email and plan, so we can answer a support question. It is not used to profile your trading.
Emails we send you
- Service email you cannot turn off. Address confirmation, password resets, security notices, billing receipts, and changes to these documents. They are part of having an account, so there is no unsubscribe on them.
- Everything else you can. Beta invitations, release notes, tips, and offers go out only while you want them. Every such message carries an unsubscribe link, and you can also just ask us at support@jomtp.com. Opting out of those never affects the service email above.
- We do not sell or rent your address, and we do not pass it to anyone else's mailing list.
Cookies and local storage
- Session cookies keep you signed in. They are strictly necessary — without them there is no app.
- Your language choice is stored in a cookie so the first page you load is already in the right language.
- Browser storage on your own device holds preferences that never reach us: theme, sidebar width, whether you have dismissed the welcome panel, and a hint of whether you were signed in, so the page does not flicker.
- Analytics cookies are set by PostHog when analytics is enabled, as described above.
Why we are allowed to use it
Where the GDPR or a similar law applies, we rely on:
- Performance of a contract — everything needed to give you the journal you signed up for, including reading your exchange data with the keys you connected.
- Legitimate interests — security, abuse prevention, debugging, and understanding product usage in masked, aggregated form; balanced against your rights, which is why the analytics are configured as described.
- Consent — the waitlist, and any optional feature you switch on, such as mentor sharing. You can withdraw consent at any time.
- Legal obligation — where we must keep or disclose something by law.
Where your data is processed
JomTP is operated from Malaysia and runs on infrastructure in several countries, so your data is transferred and stored internationally. The parts, and what each does:
- Supabase — the database and the authentication service. This is where your account, trades, notes, playbooks and encrypted keys live.
- Netlify — serves the web app and runs its API routes.
- Our sync worker — a server we operate in Singapore that keeps your journal current by polling your exchanges in the background.
- A market-data relay we operate in the United Arab Emirates, used only to fetch public price candles for charts when your own connection cannot reach an exchange. The app tells you on screen when it switches to it. It never sees your keys or your trades.
- Upstash — a rate-limiting counter, keyed by IP address or user id. No trade data.
- OpenRouter, and the model providers it routes to — used only when you press AI Analyse on a trade, or Check rules with AI on a playbook (which sends only that playbook's name, description and rules, to work out what each rule needs measured). Nothing is sent unless you press one of them, and the feature is switched off entirely on deployments without an AI key. What is sent is a deliberately narrow description of that one trade: the symbol, direction, when it was opened and closed and how long it was held, your stop and targets as percentages from entry, how the position was exited, the sequence of execution events (their names only), process facts from the exchange's order history or your journal's closing record (such as order types, whether the stop was placed with the entry, stop moves and manual closes — counts and timings, never prices or amounts), measurements of the price chart around the trade and of BTC's chart (trend, volatility, range position, volume, and your indicators' readings such as JS Momo+ — all relative), the confluence tags you put on your stop and targets and each target's share of the position, how many trades you opened that day, if you use Pine indicators, their names, plot titles and readings at entry (never their source code), and your playbooks — their names, descriptions and rules, with a summary of the other trades you have tagged to each (typical hold time, stop and target distance, long/short share and most-traded symbols), and any definitions you have given when AI Analyse asked what a term in your playbooks means. Those definitions are used for your own playbooks straight away and are also sent to us as suggestions for the shared list of trading terms; if we approve one, it is added to that list and used in every user's analysis, without your name. It does not include your journal notes, your self-grade or emotion tags, your profit or loss, your R multiple, your position size, any absolute price, your screenshots, or anything identifying you or your account. The same description is sent whichever model you choose to judge the trade. We do not use your data to train anyone's model.
- Stripe — payments, once paid plans launch.
- PostHog — product analytics, as described above.
- Your exchanges (BingX, Bybit, Binance, MEXC and others you connect) receive read-only API calls made with your keys.
These providers act on our instructions under their own security and data-protection terms, and we use appropriate safeguards for international transfers where the law requires them. Beyond this list, we share your data with nobody — except where we must disclose it to comply with a valid legal obligation, to enforce our Terms & Conditions, or to protect the rights and safety of our users. If the Service is ever transferred to another owner, your data would move with it and you would be told first.
Who can see your data
- You. Everything, in the app and in an export.
- A mentor you linked, for the accounts you chose, until you revoke the link.
- Us, sparingly. Support and debugging sometimes require an administrator to open your account view. That access is read-only, gated behind a separate administrator credential, and logged. We do not read your journal for any other reason.
Sites we link to
The Service links out to places we do not run — your exchange, our payment provider's pages, documentation, and anything a mentor or a note points at. This policy covers what we do with your data, not what they do with it. Once you follow a link, that site's own privacy policy applies, and we are not responsible for it. Read theirs before you hand them anything.
How we protect it
- Traffic is encrypted in transit; the database is encrypted at rest by our provider.
- Broker API keys are encrypted with a separate key before storage, and only ever decrypted server-side during a sync.
- Keys that can trade or withdraw are refused at the moment you try to save them.
- Every API route checks who you are and scopes every query to your own account; the browser is never given database credentials.
- Exporting all of your data requires your password again, even with a live session, so a borrowed laptop cannot dump your journal in one click.
- Your half. Keep your password to yourself, do not share your account, and connect read-only keys only. We will never ask you for your password or for an API secret by email or chat — anyone who does is not us. Tell us straight away if you think someone else has reached your account.
- No system is perfectly secure, and this one is in beta. If you find a vulnerability, please tell us at support@jomtp.com before telling anyone else. If a breach affects you, we will notify you and any regulator we are required to notify.
Retention & deletion
- While your account is open we keep your data so the journal keeps working. That is the point of a journal: history that does not expire.
- Disconnecting an exchange account removes its keys and its synced trades from the app.
- Deleting your account — Settings → Delete my account — is immediate and permanent. It removes your profile, connected accounts and their keys, trades and the raw exchange records behind them, playbooks, backtests and setups, and your sign-in identity. Export first: we cannot recover it afterwards.
- Backups. Deleted data can persist in operational backups for a short period before those copies age out. Backup arrangements are still being finalised during the beta, which is another reason to keep your own export.
- Waitlist emails are kept until the beta closes or you ask us to remove yours.
- We may keep limited records, such as logs or billing records, for as long as we need them for security or to meet a legal obligation.
Your rights and choices
You can, at any time:
- Get a copy — Settings → Export my data returns everything you own as JSON. Broker keys are deliberately excluded; they never leave our servers.
- Correct it — edit your name, picture, notes and settings in the app.
- Delete it — Settings → Delete my account, or delete individual trades, notes and accounts.
- Withdraw consent — revoke a mentor link, leave the waitlist, or disconnect an exchange.
- Object or restrict — ask us to stop a particular use, such as analytics.
- Complain — to us first, please, at support@jomtp.com, and to your local data-protection authority if we do not put it right.
We answer requests within 30 days. We may need to confirm who you are before acting on one.
Age limit
JomTP is for adults. It is not directed at children, and you must be at least 18 to hold an account. If we learn that an account belongs to someone younger, we will delete it. If you believe a child has given us data, tell us and we will remove it.
Changes to this policy
We will update this policy as the product changes. The date at the top changes with it, and for anything material we will tell you in the app or by email before it takes effect. Continuing to use JomTP after that date means you accept the revised policy.
Contact
Questions about your data: support@jomtp.com. See also our Terms & Conditions and Risk Disclaimer.
Questions or requests: support@jomtp.com