read.markets/app/templates/disclaimer.html
Giorgio Gilestro 47dce1a1a4 compliance: flag-gate AI portfolio + cloud sync + Stripe; de-risk prompts; harden reviewer
Implements docs/read-markets-compliance-changes.md as flag-gated changes
(no deletions) so paused features stay in the tree for future re-enable.
All four flags default False so a fresh deploy is compliance-safe.

- New env flags: PORTFOLIO_AI_ENABLED, PORTFOLIO_SYNC_ENABLED,
  TICKER_UNIVERSE_AGGREGATE_ENABLED, SUBSCRIPTIONS_ENABLED.
- Gates: /api/analyze, /api/portfolio/sync*, /api/stripe/*, /pricing,
  ticker_universe writes, portfolio_analysis.analyse(). is_paid_active()
  returns True for any auth'd user when subscriptions are paused.
- Prompts (PROMPT_VERSION 10): universal _COMPLIANCE_RIDER prepended to
  every system prompt; watch list removed; price-target / close-above-below
  / trigger / forward-state-as-description rules added; SPECULATIVE
  pivoted to regime-only scenarios; daily + weekly digests tightened.
- Reviewer: deterministic regex/lexicon pre-check fail-closed under the
  Haiku call; portfolio rider gated by PORTFOLIO_AI_ENABLED; base prompt
  sharpened for forward-state and MAR forward-opinion patterns;
  ReviewerVerdict audit table; generate_with_review retry helper.
- Migration 0026: purge portfolio_sync + ticker_universe; create
  reviewer_verdicts.
- Copy: MAR cite fixed to Art 3(1)(35) + Art 20 + Del Reg 2016/958;
  portfolio reframed as browser-only viewer in disclaimer / privacy /
  terms / about / pricing / landing (en + it). TODO(legal) marker for
  lawyer sign-off on disclaimer.
- Tests: 13 lexicon + 6 reviewer compliance regressions; conftest enables
  all flags so existing 402 tests still cover their code paths.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 19:57:12 +02:00

121 lines
5 KiB
HTML

{% extends "public_base.html" %}
{% block title %}{{ BRAND_NAME }} &middot; Disclaimer{% endblock %}
{% block main %}
<section class="public-section public-section--callout public-section--warning">
<h1 class="public-section__head" style="border:0; margin:0 0 6px;">
Financial disclaimer
</h1>
<p style="margin:0; font-size:15px;">
<strong>{{ BRAND_NAME }} is not investment advice.</strong>
</p>
<p style="margin-top:6px; font-size:12px; color: var(--muted);">
This page is part of, and qualifies, the
<a href="/terms">Terms and Conditions</a>.
</p>
</section>
<section class="public-section">
<h2 class="public-section__head">In short</h2>
<ul>
<li>Everything published here is for <strong>educational and
informational purposes only</strong>.</li>
<li>Nothing on this site is a buy or sell recommendation, a personal
recommendation, or an inducement to deal in any financial
instrument.</li>
<li>{{ BRAND_NAME }} is not a regulated financial firm. It is not
authorised by the Financial Conduct Authority and is not a
registered investment adviser in any jurisdiction.</li>
<li>The output is not tailored to your circumstances, objectives,
tax position, or risk tolerance.</li>
<li>Past performance does not predict future returns. Investing
carries the risk of losing money, including the principal.</li>
</ul>
</section>
<section class="public-section">
<h2 class="public-section__head">About the AI output</h2>
<p>
The strategic log and indicator summaries are generated by large
language models from publicly available market data and news. They
can be wrong, incomplete, or out of date. Numbers can be misread.
Models occasionally generate inaccurate or invented information
(often called &ldquo;hallucinations&rdquo;). Treat them as a
<em>prompt to think</em>, not as facts to act on.
</p>
<p>
The portfolio feature is a browser-only composition viewer: it
parses a CSV you supply, computes neutral statistics (weights,
sector / currency / concentration breakdown), and shows them to
you. Your holdings stay in your browser; they are never sent to
or stored on the server. There is no AI commentary on your
portfolio.
</p>
</section>
<section class="public-section">
<h2 class="public-section__head">Before you act on anything</h2>
<p>
Consult a properly qualified, regulated financial adviser who knows
your full situation. Read the source documents (issuer accounts,
fund prospectus, etc.). If you are not in a position to lose the
money you would put at risk, do not put it at risk.
</p>
</section>
<section class="public-section">
<h2 class="public-section__head">Jurisdiction</h2>
<p>
{{ BRAND_NAME }} is operated from {{ OPERATOR_JURISDICTION }}. The
Service is not directed at, or intended for distribution to or use
by, any person in any jurisdiction where such distribution or use
would be contrary to local law or regulation.
</p>
<p>
No part of this Service constitutes an offer or solicitation of
securities to any US person within the meaning of US securities law.
</p>
<p>
The Service is not directed at retail or professional clients in any
EU/EEA member state, nor in any jurisdiction where its provision
would require local licensing or registration. Where any output of
the Service could be construed as an &ldquo;investment
recommendation&rdquo; within the meaning of
<strong>Article&nbsp;3(1)(35) of Regulation (EU) 596/2014 (Market
Abuse Regulation)</strong>, with conduct duties under
<strong>Article&nbsp;20 MAR</strong> and
<strong>Commission Delegated Regulation (EU) 2016/958</strong>
(or the UK onshored equivalent), the operator&rsquo;s position is
that the Service publishes <em>non-personalised commentary on
public market data by a non-regulated source for educational
purposes</em>, and does not directly propose a particular
investment decision in any specific instrument. The operator has
no position in, and no remuneration linked to, the specific
instruments mentioned in any individual piece of commentary.
</p>
<p style="font-size:12px; color: var(--muted);">
{# TODO(legal): final wording on the MAR paragraph above is pending
lawyer sign-off. See docs/read-markets-compliance-changes.md. #}
</p>
</section>
<section class="public-section">
<h2 class="public-section__head">No warranty</h2>
<p>
The service is provided &ldquo;as is&rdquo; without warranties of any
kind. To the maximum extent permitted by applicable law, the operator
excludes liability for any loss arising from use of, or reliance on,
the content. See the <a href="/terms">Terms and Conditions</a> for the
full limitation of liability.
</p>
</section>
<section class="public-section">
<p style="font-size: 12px; color: var(--muted);">
Questions about this disclaimer:
<a href="mailto:{{ OPERATOR_EMAIL }}">{{ OPERATOR_EMAIL }}</a>.
</p>
</section>
{% endblock %}