docs(adr): 0013 — stocks provider evaluation, AV retained as bascule target #196

Merged
maximus merged 2 commits from issue-41-adr-0013-stocks-provider into main 2026-05-09 12:40:09 +00:00
Owner

Summary

ADR 0013 — override partiel de l'ADR 0011 sur le provider de bascule désigné.

Décision

  • Yahoo best-effort reste en prod (statu quo, ADR 0011 inchangé sur le path principal).
  • Le provider de bascule désigné passe de Tiingo Power à Alpha Vantage Premium $49.99/mo (75 rpm), à activer au moment d'un trigger réel.
  • Aucune bascule immédiate. 0 $ cash burn maintenu jusqu'à : 1ère licence payée active OU plainte client formelle OU saturation incidents.

Pourquoi le changement vs ADR 0011

  • Tiingo Power invalide : ToS = "internal consumption only", multi-tenant proxy force Commercial ~$500/mo + redistribution license (~10× plus cher que ce que 0011 supposait).
  • Alpha Vantage Premium drop-in : découverte Phase 2 — accepte .TO Yahoo silencieusement comme alias de .TRT. Pas de mapping table à coder. Bascule prendra des heures, pas des jours.

Phases couvertes

  • Phase 1 (docs research 3-way) — synthèse dans maximus-api/docs/research/0013-stocks-providers-phase1.md.
  • Phase 2 (smoke test live AV free tier, 13 calls).
  • Phase 3 (cet ADR).
  • Phase 4 (feat issue d'intégration AV) différée au moment du trigger.

Cross-repo PR liée

maximus-api PR — research note + ADR index

Refs maximus-api#41

Test plan

  • Format mirror ADR 0011
  • Override explicite documenté
  • Triggers de bascule listés
  • Email ToS draft en annexe (à envoyer au moment du trigger)
  • Parsing défensif documenté (5 cas distincts sur HTTP 200)
  • Cleanup ~/.maximus-research-keys/ après merge
## Summary ADR 0013 — override partiel de l'ADR 0011 sur le provider de bascule désigné. ## Décision - **Yahoo best-effort reste en prod** (statu quo, ADR 0011 inchangé sur le path principal). - **Le provider de bascule désigné passe de Tiingo Power à Alpha Vantage Premium $49.99/mo (75 rpm)**, à activer au moment d'un trigger réel. - **Aucune bascule immédiate.** 0 $ cash burn maintenu jusqu'à : 1ère licence payée active OU plainte client formelle OU saturation incidents. ## Pourquoi le changement vs ADR 0011 - Tiingo Power **invalide** : ToS = "internal consumption only", multi-tenant proxy force Commercial ~$500/mo + redistribution license (~10× plus cher que ce que 0011 supposait). - Alpha Vantage Premium **drop-in** : découverte Phase 2 — accepte `.TO` Yahoo silencieusement comme alias de `.TRT`. Pas de mapping table à coder. Bascule prendra des heures, pas des jours. ## Phases couvertes - Phase 1 (docs research 3-way) — synthèse dans `maximus-api/docs/research/0013-stocks-providers-phase1.md`. - Phase 2 (smoke test live AV free tier, 13 calls). - Phase 3 (cet ADR). - Phase 4 (feat issue d'intégration AV) **différée** au moment du trigger. ## Cross-repo PR liée [maximus-api PR — research note + ADR index](https://git.lacompagniemaximus.com/maximus/maximus-api/pulls) Refs maximus-api#41 ## Test plan - [x] Format mirror ADR 0011 - [x] Override explicite documenté - [x] Triggers de bascule listés - [x] Email ToS draft en annexe (à envoyer au moment du trigger) - [x] Parsing défensif documenté (5 cas distincts sur HTTP 200) - [ ] Cleanup `~/.maximus-research-keys/` après merge
maximus added 2 commits 2026-05-08 11:29:46 +00:00
Override partial of ADR 0011: Tiingo Power pre-designation is invalidated
by 2026 pricing reality (~30 USD/mo, not 10) AND by ToS (Power tier is
internal-use only; multi-tenant proxy requires Commercial 500+/mo plus a
redistribution license).

Alpha Vantage Premium 49.99 USD/mo retained as direct Yahoo replacement,
under suspensive condition of written ToS authorization for commercial
multi-tenant proxy use.

Phase 2 smoke test surfaced a key finding: Alpha Vantage silently accepts
Yahoo-style .TO ticker suffix as alias of .TRT, removing the need for any
mapping table. Drop-in compatible with existing Yahoo provider code.

Refs maximus-api#41
docs(adr): 0013 — narrow scope to bascule-target validation, no immediate switch
All checks were successful
PR Check / rust (pull_request) Successful in 24m42s
PR Check / frontend (pull_request) Successful in 2m28s
7fe509ab17
Rewrite per Max feedback: the ADR no longer triggers a switch to Alpha
Vantage Premium 49.99 USD/mo. It only overrides the Tiingo Power
pre-designation in ADR 0011 with Alpha Vantage Premium as the new
bascule target, validated empirically via free tier.

Yahoo best-effort stays in prod. Bascule deferred to a real trigger
(first paying licensee, or first formal complaint, or saturated
incidents). The ToS email to support@alphavantage.co is deferred to the
same trigger — no upfront paranoid effort.

Status flips from Proposed to Accepted (no suspensive condition).

Refs maximus-api#41
maximus added the
status:review
label 2026-05-08 11:30:56 +00:00
Author
Owner

Review — APPROVE

ADR docs-only, well-structured override partiel de l ADR 0011. Le scope de l override est explicitement limité au provider de bascule désigné — Yahoo prod, garde-fous et triggers de 0011 restent en vigueur. Findings Phase 2 empiriques (notamment le .TO natif comme alias de .TRT chez AV) justifient solidement le choix vs Tiingo Power. Format mirror ADR 0011 respecté.

Points forts

  • Override scope explicite (pas de remplacement total de 0011), clarifié dans le commit 7fe509a.
  • 5 cas de parsing défensif sur HTTP 200 documentés avec snippet TypeScript directement réutilisable au moment de l implémentation.
  • Email ToS draft en annexe — préparé mais explicitement reporté au moment du trigger réel (pas d effort gaspillé).
  • Risques actés explicitement : free tier érodé historiquement (500→100→25), ToS zone grise, smallcaps TSXV non validés, leak risk apikey en query string + mitigation regex pino.
  • Aucun secret dans le diff. Le path ~/.maximus-research-keys/ est out-of-tree, flaggé pour cleanup dans le test plan + section Plan de bascule.

Suggestions non-bloquantes

  1. Phase 4 smoke test smallcaps TSXV — ligne ~136, l ADR mentionne ce risque comme à mitiger en Phase 4 (différée jusqu au trigger). Pourrait être détaché en sub-task indépendante pour valider plus tôt — sinon on découvre le gap au pire moment (après bascule sous pression client). À considérer comme issue Forgejo séparée trackable maintenant.
  2. Cleanup ~/.maximus-research-keys/ — la dernière case du test plan PR est non cochée. Vu que c est mentionné 3 fois dans l ADR comme à supprimer après merge, peut-être l inscrire comme TODO Forgejo plutôt qu un commitment dans le doc lui-même (l ADR devient stale dès que le cleanup est fait).
  3. Métriques tracking (section Suivi) — crypto_provider_distribution listé alors que cet ADR ne touche pas crypto. À supprimer ou clarifier comme métrique 0011 globale héritée.
  4. Footnote 10× plus cher — la comparaison Tiingo $500/mo Commercial vs $10/mo Power n est pas tout à fait apples-to-apples (le $10/mo Power n a jamais été légalement utilisable pour notre cas selon la même Phase 1). Reformulation possible : « le prix supposé par 0011 ($10/mo) était basé sur un plan dont le ToS interdit notre cas d usage ; le plan effectivement applicable est ~50× plus cher ».

Aucun blocant. Bon merge.

## Review — APPROVE ADR docs-only, well-structured override partiel de l ADR 0011. Le scope de l override est explicitement limité au provider de bascule désigné — Yahoo prod, garde-fous et triggers de 0011 restent en vigueur. Findings Phase 2 empiriques (notamment le `.TO` natif comme alias de `.TRT` chez AV) justifient solidement le choix vs Tiingo Power. Format mirror ADR 0011 respecté. ### Points forts - Override scope explicite (pas de remplacement total de 0011), clarifié dans le commit `7fe509a`. - 5 cas de parsing défensif sur HTTP 200 documentés avec snippet TypeScript directement réutilisable au moment de l implémentation. - Email ToS draft en annexe — préparé mais explicitement reporté au moment du trigger réel (pas d effort gaspillé). - Risques actés explicitement : free tier érodé historiquement (500→100→25), ToS zone grise, smallcaps TSXV non validés, leak risk apikey en query string + mitigation regex pino. - Aucun secret dans le diff. Le path `~/.maximus-research-keys/` est out-of-tree, flaggé pour cleanup dans le test plan + section Plan de bascule. ### Suggestions non-bloquantes 1. **Phase 4 smoke test smallcaps TSXV** — ligne ~136, l ADR mentionne ce risque comme à mitiger en Phase 4 (différée jusqu au trigger). Pourrait être détaché en sub-task indépendante pour valider plus tôt — sinon on découvre le gap au pire moment (après bascule sous pression client). À considérer comme issue Forgejo séparée trackable maintenant. 2. **Cleanup `~/.maximus-research-keys/`** — la dernière case du test plan PR est non cochée. Vu que c est mentionné 3 fois dans l ADR comme à supprimer après merge, peut-être l inscrire comme TODO Forgejo plutôt qu un commitment dans le doc lui-même (l ADR devient stale dès que le cleanup est fait). 3. **Métriques tracking** (section Suivi) — `crypto_provider_distribution` listé alors que cet ADR ne touche pas crypto. À supprimer ou clarifier comme métrique 0011 globale héritée. 4. **Footnote 10× plus cher** — la comparaison Tiingo $500/mo Commercial vs $10/mo Power n est pas tout à fait apples-to-apples (le $10/mo Power n a jamais été légalement utilisable pour notre cas selon la même Phase 1). Reformulation possible : « le prix supposé par 0011 ($10/mo) était basé sur un plan dont le ToS interdit notre cas d usage ; le plan effectivement applicable est ~50× plus cher ». Aucun blocant. Bon merge.
maximus added
status:approved
and removed
status:review
labels 2026-05-09 12:37:02 +00:00
maximus merged commit bc7a0e0231 into main 2026-05-09 12:40:09 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maximus/Simpl-Resultat#196
No description provided.