Analyst profiles

—
IR Question Intelligence
Agent-powered fintech · earnings intelligence

AI agents for the next earnings call.

Specialized agents analyze transcripts, analyst behavior and financial disclosures to predict what matters, verify every narrative, and prepare your IR team for what comes next.

Your earnings intelligence team

Four specialized agents, each responsible for one part of call preparation.

Forecast Agent

Predicts priority analyst questions from disclosure and history.

Analyst Agent

Learns analyst behavior, themes and prior responses.

Evidence Agent

Grounds every answer in transcripts and disclosures.

Brief Agent

Turns intelligence into a call-ready preparation brief.

The agentic layer for Investor Relations.

Traditional IR tools help teams access information. IR Question Intelligence puts agents to work across it — predicting questions, profiling analysts, and verifying every narrative before the call begins.

A team of agents working across your IR workflow

Specialized agents handle forecasting, analyst research and evidence verification — with a platform model that extends the same architecture to every covered institution tomorrow.

Meet the agents

Next-call preparation

Question forecast

A ranked briefing from the upcoming disclosure and historical analyst behavior.

Forecast ready
6priority questions
—topic recall (held-out)
3themes rising
Signal to prepare: Margin outlook and deposit mix are the most likely follow-up themes.

One intelligence platform. Every financial institution.

Live today across Axis Bank, Kotak Mahindra Bank, and IndusInd Bank. Expand across more institutions with the same agent architecture.

Coming soon

HDFC Bank

Coverage expansion is underway with the same archive and analyst-intelligence workflow.

Coming soon

ICICI Bank

Planned workspace for peer-aware preparation and institutional research.

One agent architecture, multiple institutions — extended through a repeatable transcript-ingestion and analyst-modeling pipeline.

Axis Bank · investor relations workspace

Prepare with a clear view of the next call.

Bring the disclosure, historical analyst behaviour, and source evidence into one focused preparation workflow.

—
target quarter
—
analysts in archive
—
grounding passages
Not uploaded
upcoming disclosure

Start with a task

Choose the job you need to complete.
Select an analyst.
Answers are grounded in the transcript archive and cite their source passages. Enter to send · Shift+Enter for a new line.
Compare regex-extracted call metrics across every quarter in the archive. Metrics with different units are never plotted on the same axis.

In the news

Analyst coverage

What share of each bank's analyst questions, over its own last several quarters, falls into each topic — the same topic taxonomy applied to every bank, so this is a real comparison, not three different measurements side by side.

Upcoming-quarter disclosure

none loaded

Upload the draft disclosure script, investor presentation, press release or transcript for the call you are preparing for. Prediction is then conditioned on the numbers management is about to read out — which is the only way to anticipate arithmetic follow-ups on a bridge that has never been disclosed before. Nothing is written to the archive.

Drop a PDF or text file here or
Parsed locally — metrics, anomaly percentiles, topic salience and drill-down flags.

Prepare the call

Builds the full brief for every active analyst: topic ranking, per-analyst reweighting, the grounding gate, and in-call arithmetic follow-ups from the disclosed numbers.
Advanced — run a single layer
The Overall layer ranks topics independent of who asks. The Analyst layer reweights that ranking for one analyst and runs the grounding gate on its own. Use these to inspect one stage in isolation — "Prepare next call" already runs both plus the arithmetic follow-ups.

Pin an answer, a source passage, or a predicted question from anywhere in the workspace — they collect here so the brief for this call is one place, not scattered across chat history and search results. Pinned items persist on the server, so they survive a reload.

Held-out evaluation

—

Each test quarter is scored separately against a training cutoff that excludes it and everything after it — predicting Q1FY27 trains through Q4FY26, predicting Q4FY26 trains through Q3FY26. That is the production setting: before a real call you do have every prior call. Scores are never averaged into a single headline, and the spread between quarters is reported as a first-class number.

Running the held-out evaluation…

Recall trend

question recall is the objective this project actually optimizes for -- topic recall is free context, not the goal

Error Researcher

not "the model was wrong" — which pipeline stage caused each miss

Framework Loop — backtest a weight change

propose new composite weights, score them on the same held-out quarters, promote only if they clear the existing gate

The Overall layer ranks candidate topics with five named weights (anomaly, disclosure, momentum, base rate, drill-flag). This never edits those defaults directly — it runs the SAME held-out quarters twice, current weights vs your candidate, and only reports PROMOTE if the candidate doesn't regress recall or fall below the existing promotion-gate floors.

Continual learning — propose, backtest, review

closes the loop the Framework Loop stops short of: generates the candidate from this run's own misses and keeps a reviewable record instead of letting the result vanish on refresh

Reads this run's topic_ranked_low misses (the one failure category a weight change can fix — see Error Researcher above), works out which single weight would close the most of them within a safety cap, and backtests that ONE candidate the same way the Framework Loop above does, plus a bootstrap confidence signal on the recall delta. Every proposal is logged below with status pending review until a human approves or rejects it. Approving never edits this app's production weights by itself — that stays a deliberate step an engineer takes by hand afterward.

Question Recall

did the framed QUESTION TEXT anticipate what they actually asked — not just whether the topic bucket matched

Topic recall answers "was the bucket on the brief". This answers "did we anticipate what they actually asked" — each analyst's real question is split into individual concerns and judged 1.0 / 0.5 / 0.0 against our framed question text. A topic can be a perfect hit while the actual question is about something else entirely; this is the number that would have caught that. Costs real LLM calls across every held-out analyst in both test quarters — only run this deliberately.

Agentic Skills

the named, reusable units the pipeline above is built from — agents/skills/harness separation
Every LLM call this platform makes — across every provider in the fallback chain — is logged here: who called it, which provider/model answered, how many tokens it used, how long it took, and whether it succeeded. This reads the durable append-only audit trail (data/logs/llm_calls_*.jsonl), not the in-memory counters that reset on every restart — platform-wide, not scoped to the selected bank.
Loading usage summary…

Recent calls

Ingest a quarter's transcript

Preview parses the PDF and shows what would be extracted — quarter, call date, analysts and firms, and the extraction-quality monitor's fuzzy-match flags against the canonical registry — writing nothing. Commit saves it into the archive, recompiles the dataset and graph, and refreshes every view.

Drop a transcript PDF here or
No file selected.