Editorial Policy
How real mistakes shaped our data standards. We've made errors, discovered edge cases, and built systems to catch them. This page documents what we learned.
Why This Page Exists
Billiver provides financial data in a YMYL (Your Money or Your Life) domain. Inaccurate numbers can lead to poor investment decisions. We take that responsibility seriously.
Rather than claiming "we validate everything," we want to show you the specific problems we've encountered and how they changed the way we work. Every rule in our system exists because something went wrong first.
Where Our Data Comes From
All financial metrics on Billiver come from SEC EDGAR, the official database maintained by the U.S. Securities and Exchange Commission. Company descriptions come from Wikipedia under CC BY-SA license.
Why SEC EDGAR as a single source:
- -Official filings — Companies submit these to regulators. The data is audited and legally binding.
- -Public domain — No licensing restrictions. Anyone can verify our numbers against the source.
- -Original over processed — Third-party data providers add their own transformations. We prefer the raw filing data even though it's harder to parse.
Parsing challenges we handle:
- -Revenue has 7+ field names — SEC EDGAR uses different XBRL tags depending on the company type and filing era. We maintain a priority list:
Revenues(total) first, thenRevenuesNetOfInterestExpense(banks), then legacy tags. Using the wrong one once caused us to underreport Bank of America's revenue by 80%. - -Balance sheet uses "instant" frames — Income statement data uses duration frames like
CY2024. Balance sheet data uses instant frames likeCY2024Q3I. A single filter rule once wiped out all balance sheet data for every company. - -Financial sector exceptions — Banks report revenue differently from manufacturers. We apply sector-specific field mappings to avoid systematic underreporting.
What We Caught (and Fixed)
These are real problems we discovered in our data pipeline. Each one led to a new validation rule.
Case: Dividing two negatives produced a misleadingly positive ROE
When net income is negative and shareholders' equity is also negative (common in buyback-heavy companies like Boeing and Starbucks), the division produces a positive number. Boeing was showing ROE of +119.4% despite losing money with -$23.5B in equity. 51 major companies were affected.
Rule created: Never calculate ROE when shareholders' equity is negative. Display "N/A" instead of a misleading positive number.
Case: Q4 data doesn't exist separately in SEC filings
SEC EDGAR provides Q1, Q2, Q3 from individual 10-Q filings, but Q4 must be derived: Annual (10-K) minus (Q1 + Q2 + Q3). When acquisitions or divestitures happen mid-year, this subtraction can produce negative revenue — a mathematical impossibility.
Rule created: Derived Q4 values must be non-negative. If Q4 revenue comes out negative, we discard it rather than display wrong data.
Case: Dividend history silently stops at 2010
SEC EDGAR's frame field (used to identify time periods like "CY2024Q1") is not consistently available before ~2010. Our parser skipped entries without frames, which meant companies with 50+ year dividend histories showed only 15 years of data.
Rule created: Accepted as a data source limitation. We document the constraint rather than display incomplete history that could mislead users about dividend consistency.
Case: A single filter rule erased all balance sheet data
Our quarterly data filter rejected any frame containing "Q" (to skip quarterly data). But balance sheet "instant" frames like CY2024Q3I also contain "Q". This caused 0% coverage for Total Assets, Total Debt, and Total Equity across all companies. ROE and ROA returned NULL for everyone.
Rule created: Separate parsing logic for "instant" (balance sheet) and "duration" (income statement) fields. Field coverage must be checked after every pipeline run.
Case: Bank of America revenue underreported by 80%
We used RevenueFromContractWithCustomerExcludingAssessedTax as a universal revenue field. For banks, this captures only fee income — about 20% of total revenue. Bank of America showed $1.5B instead of $8B+.
Rule created: Revenue field priority list with Revenues (total) first. Financial sector companies are tested separately in every pipeline run.
We maintain a full data quality process with anomaly detection and cross-validation. This list grows as we discover new edge cases.
What We Won't Show
Missing data is better than wrong data. We deliberately exclude metrics we cannot verify.
Market cap, P/E ratio, dividend yield
These require real-time stock prices. We use SEC EDGAR only and do not have a market data feed.
Estimates and projections
We present historical, audited figures only. No forward guidance, analyst estimates, or price targets.
Investment advice or recommendations
We are not financial advisors. You will never see "buy," "sell," or "hold" recommendations on Billiver.
Unverified metrics
If a data point fails cross-validation or produces an out-of-range result, it is hidden from the site. An empty cell means we don't trust the number enough to show it.
How We Handle Errors
When we discover incorrect data — whether through our own checks or user reports — we follow a fixed process:
Immediately hide — Remove the affected metric from all pages. Users should never see data we know is wrong.
Find root cause — Identify why the data was wrong. Was it a parsing error? A source limitation? An edge case in the calculation?
Add validation — Create a new check that would have caught this error automatically.
Re-collect and verify — Reprocess the affected data with the new validation in place.
Document the case — Record the bug pattern so future development avoids the same mistake.
Found an error? Contact us at hello@billiver.com. We investigate every report and respond to confirm the outcome.
Data Freshness
Billiver does not provide real-time data. There is always a delay between an SEC filing and its appearance on our site.
| Filing Type | Frequency | Typical Delay |
|---|---|---|
| Annual Financials (10-K) | Once per year | 60 days after fiscal year-end (SEC deadline) + our processing |
| Quarterly Financials (10-Q) | Three times per year | 40 days after quarter-end (SEC deadline) + our processing |
| Institutional Holdings (13F) | Quarterly | 45 days after quarter-end + up to 2 weeks processing |
| Insider Trading (Form 4) | As transactions occur | 2 business days (SEC deadline) + 48 hours processing |
Financial scores (Piotroski F-Score, Altman Z-Score, etc.) are recalculated when new annual filings become available. Data older than 90 days without updates is flagged for review.
Investment Disclaimer: Billiver provides financial data for informational purposes only. Nothing on this site constitutes investment advice, a recommendation, or a solicitation to buy or sell any security. All investment decisions should be made based on your own research and consultation with a qualified financial advisor. Past performance does not guarantee future results. Financial data is sourced from SEC EDGAR public filings and may contain errors or delays. Always verify critical data against official SEC filings before making investment decisions.