Last updated: August 2026
This page describes where our data comes from, how often we update it, how we calculate the figures we display, and what we do not measure. The goal is verifiability: every claim on RetailBonds.in should be traceable to a public source.
Data sources
We aggregate data from the following primary sources:
- RBI Retail Direct portal (rbiretaildirect.org.in) — Central Government Securities, State Development Loans, Treasury Bills available to retail investors. Refreshed: daily.
- BSE Bond Platform (bseindia.com) — Listed corporate bonds, PSU bonds, and Non-Convertible Debentures traded on BSE. Refreshed: daily for listings and ratings snapshot.
- CRISIL rating actions (crisilratings.com) — Rating reaffirmations, upgrades, downgrades, and withdrawals published by CRISIL. Refreshed: daily.
- NSE Debt Centralised Database (nseindia.com) — Interest payment, redemption payment, and credit rating disclosures broadcast by listed issuers under SEBI LODR Regulation 52(4)/60. Shown on bond and issuer pages as "Reg52(4)" — real disclosed events, not a projected schedule. Refreshed: daily.
- SEBI public filings — Bond offer documents and prospectuses. Used for conflict resolution when sources disagree.
- BSE NCD public-issue filings — DRHP and prospectus pipeline for retail NCD offers (/ncd-calendar). Where the prospectus cover Issue Programme prints concrete dates, we extract subscription open/close onto /ncd-subscription. Shelf prospectuses that only say “as specified in the Tranche Prospectus” stay blank until a Tranche PDF (often inside a ZIP) is parsed. We never invent bidding dates.
We do not source data from paid feeds (Bloomberg, Refinitiv, etc.) at this time. Our coverage therefore has gaps: instruments that are not listed on BSE/NSE or covered by CRISIL may be absent. Coverage expands as more scrapers come online (ICRA, CARE, India Ratings).
Update frequency
Data flows into our database via scheduled scrapers running on our infrastructure:
- RBI Retail Direct auction news: daily at 00:30 IST
- CRISIL rating actions: daily at 01:00 IST
- BSE bond instrument master: daily at 01:30 IST
- NSE Reg52(4) interest/redemption/credit-rating disclosures: daily at 02:47–02:49 IST
- BSE NCD public-issue filings + prospectus term/subscription-window extract: daily (off-market hours)
All scrapes run outside Indian market hours. Stale data is a real risk. If a fetch fails repeatedly, we display a warning on the affected page rather than show outdated figures silently.
Validation and quality
For every scraper, we run automated health checks on expected record counts, schema integrity, and range sanity on yields and dates. When a check fails, the source is flagged and reviewed before its output reaches our screener or detail pages.
We retain raw snapshots of every scraping run for debugging and audit purposes. These snapshots are compressed and stored on-server; they are not publicly accessible.
What we do not measure
- Real-time prices. Our prices reflect the most recent fetch and may lag the actual market by hours or days. For real-time pricing, use the exchange feed or a SEBI-registered OBPP.
- Suitability for individual investors. We do not assess whether any bond is appropriate for your specific financial situation, goals, or risk tolerance.
- Forward-looking ratings or recommendations. We display credit ratings as published by the rating agencies. We do not issue our own ratings or buy/sell recommendations.
- Off-market and private placements. Our scope is publicly listed and publicly accessible securities only.
- G-Sec ISINs (Phase 0). RBI Retail Direct is a React SPA with no public ISIN endpoint; BSE’s G-Sec data uses internal script codes not directly mapped to ISINs. G-Sec ISIN coverage is coming in a future release as we build additional data pipelines.
Calculation conventions
Our calculations follow FIMMDA (Fixed Income Money Market and Derivatives Association of India) standards where applicable:
- Yield to Maturity (YTM): Calculated using the bond’s stated day-count convention with the bond’s stated compounding frequency. Each bond detail page displays the specific conventions used. (YTM calculator coming in M5.)
- Modified duration: Macaulay duration divided by (1 + periodic YTM).
- Accrued interest: From the last coupon date to the assumed settlement date using the bond’s stated day-count.
- Spread: Bond’s YTM minus the YTM of the on-the-run G-Sec of nearest maturity.
Where our calculations differ from a source’s published figure, the difference is usually a convention choice (day-count or settlement date). We aim to be explicit and consistent rather than match a specific source’s number exactly.
Issuer name normalization
The same issuer often appears with different names across sources ("Power Finance Corporation Limited", "PFC Ltd", "Power Finance Corp"). We use fuzzy name matching (rapidfuzz token-set ratio, threshold 85) to collapse these into a single issuer record, caching confirmed matches as aliases. Every match is logged for audit. False positives at the 85–90 score band are a known limitation; we correct them as discovered.
Handling missing data
When a field is unknown, we display “—” rather than guess. We do not impute coupon rates, maturity dates, or ratings.
Handling conflicting data
When two sources disagree, we display the SEBI filing as authoritative and log the discrepancy. We do not silently average or pick the more attractive number.
Reporting errors
If you find a data error, email [email protected] with the ISIN, the field in question, and the source supporting the correction. We acknowledge corrections within two business days.
Limitations and transparency
RetailBonds.in is a small independent operation, not a regulated data provider. Our coverage will have gaps. Our refresh frequencies will occasionally lag. Our calculations rest on convention choices that other providers may make differently. We will get things wrong, and when we do, we will fix them publicly rather than quietly.