The licence check runs without a human reviewing it. If the server reports the licence as revoked or ended, or this computer as not linked to it, the licence stops granting its edition. That outcome affects a contract you have paid for, which is why it is written out under Art. 22 GDPR.
To contest such an outcome, obtain human review or explain a machine change, write to contact@stochastly.com. A server error does not revoke anything on its own: the application keeps its edition offline for the grace period set out in the Terms. Past that period it stops granting the edition until a check succeeds, and the first successful check restores it.
We do not sell or rent your data, and we do not share it for marketing. The providers below process it on our instructions, each under a data-processing agreement.
Several of these providers are United States companies, or can process data outside the European Union depending on the region we run in. Where one of the providers above processes data outside the European Economic Area, the transfer relies on the safeguards of that provider's data-processing terms, such as the EU-US Data Privacy Framework or the Standard Contractual Clauses. The assistant's model provider is described in the next section. You can ask us at contact@stochastly.com which safeguard applies to a given provider.
The desktop application reads and computes your market data, backtests and results on your own machine. Unless you tick one of the two optional boxes described in the next section, none of that is sent to us, on any plan — we hold no copy of your bars, your strategies or your performance. By default the application sends one daily usage summary with no identifier (see Product analytics); it never sends your market data, strategies or results.
Apart from the optional sharing described in the next section, two things leave the machine on their own: the licence check described above runs on a timer, and the daily usage summary described under Product analytics. The app ships no market data and downloads none: the bar files it reads are the files you put on your disk, and they are read there.
The assistant is the one feature that sends content off your machine. When it answers, the content of your conversation — which can include the graph you have composed and the file you have open in the editor — is sent to our relay and forwarded to a model provider. Bar files and result files are not uploaded as files; figures that the assistant quotes from a run you ask it to read travel in that conversation.
The app's sign-in screen shows three optional boxes: the two described in this section, and the crash-report box described under Crash reports and bug reports below. Clicking Sign in accepts the Terms of Use; this policy informs you, it is not something you consent to. The three boxes start unticked, are never required, and each covers one purpose only. The two described here send information produced on your computer, so they need your consent (Art. 82 of the French Data Protection Act, which applies Art. 5(3) of the ePrivacy Directive; Art. 6(1)(a) GDPR): that consent is the legal basis for both, and refusing or withdrawing it changes nothing in what the app does for you. Neither ever contains your account, your email address, your name, or your market data files. Each record does carry a random install identifier, which is what lets you erase it later: the records are therefore pseudonymous rather than anonymous, and we treat them as personal data. We never sell either set of data.
Box: “Add my GO/NO-GO verdicts to Stochastly's public research counter (verdict, market family, day and app version, sent under a random ID with no name, email or account)”. When it is ticked, each completed full backtest whose verdict is GO or NO-GO sends five research fields to stochastly.com: a random install identifier created when you tick the box and tied to nothing else, the verdict, the market family (crypto, foreign exchange, equities, stock indices, metals, commodities, mixed or other), the day of the run in UTC, and the app version. Preview passes, results replayed from the app's cache, and other verdicts send nothing. The totals are published on the research verdicts page as counts per market family; no individual record and no install identifier is ever shown.
Box: “Let Stochastly use descriptions of my backtests (graph, settings, metrics and verdict; no price data, code, name or email) to train its own models. Internal use only, never sold.” When it is ticked, each completed full backtest sends a description of the run: the structure of the graph and its node parameters, the market family and instrument symbols, the timeframe, the first and last date and the number of bars, the cost settings, the metrics, the verdict and the diagnostics, with the app version and a second random install identifier, distinct from the first so the two sets cannot be joined. The app removes before sending, and our server refuses if still present: price series, equity curves, trade journals, code you wrote, file and folder paths, free-text notes and labels, and any email address. Only Stochastly uses this data, to research and train its own models; it is never shared with a third party. With each record of either purpose, the app also sends its licence token and computer identifier: our server checks them so that only a licensed copy of the app can add records, then discards them. They are never stored with the record; the daily limit per licence is counted under a keyed digest that changes every day and is deleted the next day. The app also sends a deletion secret drawn on this computer, of which our server keeps only a hash next to the record.
Usage statistics (on by default, you can turn them off). Once a day, the desktop app sends one summary of the previous days' use: which screens were opened, which features were used and how many times, the active minutes per screen, crash counts, the app version and the major version of your operating system. The app also adds flags it computes on your computer: whether this is the first active day of the week or of the month, the week the app was installed, and whether a first backtest was run within 72 hours of installation. The summary carries no identifier of any kind: no account, no licence, no machine fingerprint, no install ID, no file, price, strategy or text you typed. Our server splits each summary into separate counters as soon as it arrives and does not keep the summary itself, so no counter can be traced back to one computer; it does not store your IP address. Purpose: counts of active computers per day, week and month, which features are used and for how long, and where the app fails, so we can decide what to improve. These statistics are published to the Stochastly team only, rounded to the nearest ten, and never combined with your account, your early-access answers or any other data. Legal basis: our legitimate interest, Art. 6(1)(f) GDPR; this measurement is set up to meet the conditions under which the French data protection authority (CNIL) exempts audience measurement from consent. Stored in our Supabase database (EU, Ireland) for 25 months, then deleted by a daily job. You can object at any time: Settings, General, Data sharing, turn off “Usage statistics”. The app remembers this choice across updates and stops sending at once.
The desktop app has a Report a bug button (in the title bar, and in a corner of the sign-in screen) and a Send this report button on its error screens. A report leaves your computer only when you press Send in the dialog that opens, after the dialog has shown you every line that will be attached. On the sign-in screen, a third optional box, unticked by default, reads: Send crash reports automatically to Stochastly. It sends the full crash report described below, linked to your account, to fix crashes. The same choice is in Settings, General, Data sharing, as Full crash reports, where you can tick or untick it at any time. Only if it is ticked does the app send a full crash report on its own after a crash.
When you check a backtest on the app window of the home page, the CSV you drop or paste is sent to our server, read in memory to compute the report, and discarded when the answer is sent. It is not written to disk or to a database. The computed report is sent to Nebius Token Factory for a short assistant reading. We cache that reading and hashes of the file and report for up to 30 days. Daily reading limits use your account identifier if your session is valid, or a salted hash of your IP address. The raw IP address is not stored in these tables. Daily keys whose UTC date is more than two days old are removed by an hourly purge. Each check also adds one to a daily counter of CSV checks by outcome, page and range of rows, with no file, file name, figure, account or IP address; a check refused before it reaches our server is added by the window with the same three values. Purpose: knowing how many checks are run and how many fail; legal basis: our legitimate interest, Art. 6(1)(f); kept 25 months, then deleted by a daily job.
Until 16 October 2026, a computed report was published only if you pressed “Publish this report in the public CSV count”. No new report is published since then. The stored record of a published report holds the computed figures (Sharpe ratios, probabilities, moments, drawdown, the N and frequency you entered, the NOT CONCLUSIVE strategy verdict), the first and last date of the file, the day of publication, a random identifier and a hash of a deletion code. It holds no file, no series, no column name, no account, no email address and no IP address. Each published report keeps its public page at stochastly.com/check/r/ followed by its identifier, which search engines may index, and it counts in the totals of the check method page. You can delete it with the deletion code shown when it was published, or by writing to us with its address. Published reports are deleted after three years.
An email address is required to create an account or join the early access, and the machine fingerprint is required to link a computer to it. Without them the contract cannot be performed. Other records are produced through use of the service or were submitted with consent you can withdraw.
Every table listed above has row-level security enabled with no public policy, so the anonymous key reaches none of them and only our server key does. The key that signs licence tokens is held offline and never reaches the server. A second key, held by the server as a secret, signs the short-lived authorisation each linked computer receives. Licence tokens are signature-verified before any database row is touched.
Under the GDPR you may, at any time:
To exercise any of these rights, email contact@stochastly.com. Erasing a licence record ends the licence, because the record is what proves it.
We update this policy as the service changes. The version in force is the one published at stochastly.com/privacy, under the date it carries.
The profile is private by default. If you request publication and a moderator approves it, your handle, biography, optional affiliation, photograph, social links, approved papers and approved extensions become public and may be indexed by search engines. We process them to provide the community feature you request. Pending material is visible only to you and moderators. Reports and moderation decisions are recorded to handle notices and protect the service. You can disable publication or delete the profile and its hosted content from your account; search engines may keep cached copies outside our control.
Marketplace partner requests: when you send the form on the marketplace partners page, we store your company name, website, name, work email and message to answer you and discuss a possible integration, on the basis of our legitimate interest in replying to a business enquiry. Only the moderation team reads them. A request is kept while the discussion is open and for at most three years after the last contact, and you can ask us to delete it at any time.