METHODOLOGY

Data Sources

Where every input to the Corporate Integrity Score comes from, and what that implies for the signals it produces. We state limitations plainly — the score is only as honest as the data beneath it.

For how the score is calculated from these inputs, see Scoring Methodology.

1. FINANCIAL STATEMENTS — YAHOO FINANCE (VIA YFINANCE)

Annual financial statement data is fetched from Yahoo Finance using the open-source yfinance library. Fields collected: revenue, net income, operating cash flow, free cash flow, total debt, total assets, accounts receivable, and gross margin. Data is cached for 12 hours.

Critical limitation: restated, not as-filed

Yahoo Finance serves the current, restated view of a company's financial history — not the figures as originally filed with the SEC. When a company restates a prior period, Yahoo's historical series updates retroactively. The headline Integrity Score is computed from this restated view. (Where SEC EDGAR coverage exists, a separate as-filed score is also computed — see the next section.)

This matters specifically for fraud forensics: a restatement is itself one of the strongest fraud signals that exists — it is an admission that previously published numbers were wrong. If a company's aggressive original figures were later corrected, the divergence patterns that would have flagged the original manipulation may no longer be visible in the restated data. Read forensic scores as: "Does this company's financial history, as Yahoo Finance reports it today, show signs of aggressive accounting?" — not as a verdict on originally-filed figures.

2. AS-FILED VERIFICATION — SEC EDGAR (FREE, KEYLESS)

For companies with U.S. SEC XBRL coverage, SentinelIQ also pulls each company's full historical filing record directly from SEC EDGAR's public, keyless API — no vendor, no cost. This serves two purposes: detecting restatements (a company quietly revising a previously reported figure — itself a meaningful fraud signal, surfaced as a flag) and computing a separate as-filed forensic score, built from the figures as they stood on each filing's original date, not the restated view above.

A parallel signal, not a replacement

The as-filed score is computed and shown alongside the headline Integrity Score — it does not change it. Coverage is also not universal: foreign private issuers filing Form 20-F, and any company without SEC XBRL data, have no EDGAR coverage and fall back to the yfinance-only path above. Where coverage exists, the divergence between the as-filed and restated scores is itself a signal worth reading.

3. NEWS DATA — RSS FEEDS (GOOGLE NEWS, YAHOO FINANCE, REUTERS)

News data is fetched from public RSS feeds using the open-source feedparser library — no paid news API. Three distinct pipelines use news for different purposes:

PurposeCache
Governance event extraction (fed to Gemini)Not cached
News Sentiment scoring (keyword analysis)2 hours
Narrative Consistency (tone analysis)2 hours

Headlines, not transcripts

Everything SentinelIQ calls "governance evidence" or "narrative" is derived from news headlines — not from earnings call transcripts, management prepared remarks, or SEC filings (10-K/10-Q MD&A, proxy statements). Governance scoring evaluates what journalists reported; narrative measures press-coverage tone consistency. These are real signals, but different ones than management narrative analysis would produce. This is why Narrative Consistency is labeled "experimental" and carries zero weight in the Integrity Score.

4. AI ANALYSIS — GOOGLE GEMINI 2.5 FLASH

Two modules — Governance Risk and Narrative Consistency — use Google Gemini 2.5 Flash (free tier). Both run at temperature=0 with a pinned model version for reproducibility. The exact prompt and raw API response are persisted per analysis, so every AI-influenced score can be traced back to its exact inputs.

For governance events specifically: every event Gemini extracts must include a verbatim source quote from the input news text. Events that fail this grounding check are dropped before scoring — this prevents fabricated governance findings from becoming persisted risk labels on real companies.

Each Gemini call has a 30-second timeout. A per-process daily cap of 200 requests (well below Gemini's 1,500/day free limit) guards against runaway loops. When the cap is reached or a call times out, the affected module returns a neutral score and the analysis continues normally.

5. WHAT SENTINELIQ DOES NOT USE

To set expectations explicitly, the following are not part of the current pipeline:

  • —Earnings call or investor-day transcripts
  • —Any paid or real-time financial data provider
  • —Insider trading / Form 4 data
  • —Social media or analyst-estimate data
  • —Alternative data (satellite imagery, credit card data, web traffic)
6. SUMMARY
DataSourcePoint-in-time?
Financial statementsyfinance (Yahoo Finance)No — restated
As-filed verificationSEC EDGAR XBRL (data.sec.gov)Yes — where covered
News headlinesGoogle News / Yahoo Finance / Reuters RSSYes (publish date)
AI extractionGoogle Gemini 2.5 FlashN/A