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
Question forecast
A ranked briefing from the upcoming disclosure and historical analyst behavior.
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.
HDFC Bank
Coverage expansion is underway with the same archive and analyst-intelligence workflow.
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.
Prepare with a clear view of the next call.
Bring the disclosure, historical analyst behaviour, and source evidence into one focused preparation workflow.
Start with a task
Choose the job you need to complete.In the news
Analyst coverage
Upcoming-quarter disclosure
none loadedUpload 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.
Prepare the call
Advanced — run a single layer
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.
Recall trend
question recall is the objective this project actually optimizes for -- topic recall is free context, not the goalError Researcher
not "the model was wrong" — which pipeline stage caused each missFramework Loop — backtest a weight change
propose new composite weights, score them on the same held-out quarters, promote only if they clear the existing gateThe 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 matchedTopic 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 separationdata/logs/llm_calls_*.jsonl), not
the in-memory counters that reset on every restart — platform-wide, not scoped to the selected bank.
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.