Raiss-16/market-share-stone
0
market_share
Dashboard de market share de adquirencia (Stone vs concorrentes vs ABECs).
Setup (primeira vez)
cd C:\Users\raissa.barros\Documents\market_share
py -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txtSe o PowerShell bloquear o Activate.ps1, rode uma vez: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
Rodar o dashboard
.\.venv\Scripts\Activate.ps1
streamlit run src/dashboard/app.py(Recomendado) Setar LLM API key para fallback resiliente
Quando uma empresa muda o formato do release (como Stone fez no 1Q26), o regex do scraper pode falhar. Configurando uma chave de LLM, o scraper usa IA como fallback automatico — le o PDF e acha o valor semanticamente.
Opcao A (recomendada): Google Gemini — free, sem cartao
- Vai em aistudio.google.com/app/apikey
- Sign in com Google -> "Create API key" -> copia a key
- PowerShell:
[Environment]::SetEnvironmentVariable("GOOGLE_API_KEY", "AIzaSy...", "User")Free tier: 15 req/min, milhares/dia. Mais que suficiente para uso trimestral.
Opcao B (alternativa): Anthropic Claude
[Environment]::SetEnvironmentVariable("ANTHROPIC_API_KEY", "sk-ant-...", "User")Sem nenhuma chave, scrapers seguem funcionando via regex (sem fallback).
Estrutura
market_share/
.claude/ config do Claude Code (settings.json)
data/ banco SQLite + PDFs/HTML brutos
src/
db.py schema e conexao SQLite
models.py tipos de dominio (Pydantic)
ingest/ scraper por empresa (stone, rede, getnet, ...)
parse/ parsers de PDF/HTML
dashboard/ app Streamlit
seed.py dados iniciais (manuais) para os 4 ultimos trimestres
requirements.txt
CLAUDE.md
README.mdEmpresas acompanhadas
- Stone (StoneCo, NASDAQ: STNE)
- Rede (Itau)
- Getnet (Santander)
- PagBank (PagSeguro, NYSE: PAGS)
- Mercado Pago (Mercado Livre, NASDAQ: MELI)
Total de mercado: ABECs (TPV transacionado). "Outros" = ABECs - soma dos 5 acima.
