Binomial's earnings-call NLP scorer — 23 structured signals per transcript.
Project description
binomial-marks
Binomial's earnings-call NLP scorer — 23 structured signals per transcript, in ~50ms on CPU.
Part of Binomial AI Research's specialist zoo — small, deployable models for quantitative finance. Named after Howard Marks (Oaktree), whose memos parse market sentiment and tone.
Model card: BinomialTechnologies/binomial-marks-1.
Install
pip install binomial-marks
Pulls in torch, transformers>=4.48, huggingface-hub. Weights (~1.6 GB) are downloaded
from HuggingFace on first use.
One-shot
from binomial_marks import score
result = score(
transcript="Operator: Welcome to NVIDIA's Q4 2025 earnings call...",
ticker="NVDA", sector="Technology", country="US",
year=2025, quarter=4,
)
Returns:
{
"topics": {
"guidance": {"mentioned": True, "mention_prob": 0.94, "score": 1.7},
"revenue_growth": {"mentioned": True, "mention_prob": 0.97, "score": 1.5},
"margins": {"mentioned": True, "mention_prob": 0.91, "score": 0.8},
# ... 7 more topics
},
"mgmt_confidence": 4.6, # 1 = uncertain "we hope" → 5 = "we will deliver X"
"mgmt_defensiveness": 1.4, # 1 = open Q&A → 5 = pivots, refuses to commit
"analyst_skepticism": 1.8, # 1 = congratulatory → 5 = re-asking same question
}
Batched
from binomial_marks import MarksScorer
scorer = MarksScorer() # loads model once
results = scorer.score_batch([
{"transcript": "...", "ticker": "NVDA", "sector": "Technology", "year": 2025, "quarter": 4},
{"transcript": "...", "ticker": "AAPL", "sector": "Technology", "year": 2025, "quarter": 1},
])
Configuration
MarksScorer(
model_id="BinomialTechnologies/binomial-marks-1", # or local path / pinned version
device="cuda", # auto-detect: cuda > mps > cpu
dtype=torch.bfloat16, # default: bf16 on GPU, fp32 on CPU
max_length=16384, # tokenizer truncation cap
mention_threshold=0.5, # sigmoid threshold for the topic_mentioned heads
)
What it returns
10 topic-direction scores (each: was the topic discussed? if so, what direction in [-2, +2]?):
| Topic | What −2 / +2 mean |
|---|---|
guidance |
lowered hard / raised significantly |
revenue_growth |
decelerating / accelerating |
margins |
compressing / expanding |
demand |
softening / strong |
buybacks |
paused or reduced / new or upsized |
dividends |
cut or skipped / raised or initiated |
m_and_a |
divestiture / strategic acquisition |
headcount |
layoffs / aggressive hiring |
macro_exposure |
clear headwind / clear tailwind |
competition |
losing share / gaining share |
3 tone scores (1 to 5): mgmt_confidence, mgmt_defensiveness, analyst_skepticism.
When mentioned=False, score is forced to 0 — the topic wasn't discussed, so direction
is undefined.
Hardware
- CPU: ~50ms/call on a modern laptop.
- GPU: ~10ms/call on A100/H100/B200, ~12 calls/sec batched.
- Memory: ~1.6 GB weights, ~3 GB peak with a 16k-token context.
Limitations
The model card has the full picture. In short:
headcountis the weakest dimension (Spearman 0.39 vs. frontier — half the others).- Tone has rank-order signal but absolute levels drift; normalize cross-sectionally.
- English transcripts only.
- Truncates at 16,384 tokens (~50k characters; covers ~p99 of calls).
- Pure NLP scorer — outputs are features, not trades. The trading rule is yours.
License
Apache 2.0. If you build on this, a citation is appreciated.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file binomial_marks-0.1.2.tar.gz.
File metadata
- Download URL: binomial_marks-0.1.2.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1fcfc5f936f43bd83cc241816dfcb61339d2287b8e4c5f135d78b6b293f5c04
|
|
| MD5 |
32c449075f7b497bc0b643c722a52c9d
|
|
| BLAKE2b-256 |
e0b40101f1edc3a9c1d0b1aa8012af4be4397050bc0bc27779b3f8713f44ecc3
|
Provenance
The following attestation bundles were made for binomial_marks-0.1.2.tar.gz:
Publisher:
publish.yml on Binomial-Capital-Management/binomial-ai-research
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
binomial_marks-0.1.2.tar.gz -
Subject digest:
a1fcfc5f936f43bd83cc241816dfcb61339d2287b8e4c5f135d78b6b293f5c04 - Sigstore transparency entry: 1394212181
- Sigstore integration time:
-
Permalink:
Binomial-Capital-Management/binomial-ai-research@1ae212a468eae3fa9997a3e71271959bb32fab2f -
Branch / Tag:
refs/tags/marks-v0.1.2 - Owner: https://github.com/Binomial-Capital-Management
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1ae212a468eae3fa9997a3e71271959bb32fab2f -
Trigger Event:
release
-
Statement type:
File details
Details for the file binomial_marks-0.1.2-py3-none-any.whl.
File metadata
- Download URL: binomial_marks-0.1.2-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb73a93d78cb407227584da21f4a701060d386ece0cf74b444ee567ea5663748
|
|
| MD5 |
d2612c41a5446e368a856cea1b62aa54
|
|
| BLAKE2b-256 |
e489c1eb062553ecd3a8f386bb77cd21bd821aff0e8de105eca92a56d697f069
|
Provenance
The following attestation bundles were made for binomial_marks-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on Binomial-Capital-Management/binomial-ai-research
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
binomial_marks-0.1.2-py3-none-any.whl -
Subject digest:
eb73a93d78cb407227584da21f4a701060d386ece0cf74b444ee567ea5663748 - Sigstore transparency entry: 1394212251
- Sigstore integration time:
-
Permalink:
Binomial-Capital-Management/binomial-ai-research@1ae212a468eae3fa9997a3e71271959bb32fab2f -
Branch / Tag:
refs/tags/marks-v0.1.2 - Owner: https://github.com/Binomial-Capital-Management
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1ae212a468eae3fa9997a3e71271959bb32fab2f -
Trigger Event:
release
-
Statement type: