Competitive intelligence data · Database design
Build a competitive intelligence database from evidence, not noise.
Design a competitive intelligence database with reliable sources, entity matching, change history, quality checks, and repeatable monitoring.
A competitive intelligence database should preserve the path from source evidence to a reviewed business signal. Build it as several related records—tracked entities, governed sources, immutable observations, normalized assertions, changes, and review decisions—not as one wide table of “latest competitor facts.”
That distinction is what lets an analyst answer three different questions without manufacturing certainty:
- What did the source show?
- What changed in the source?
- What does that change mean for the decision we care about?
The first is evidence, the second is a comparison, and the third is an interpretation. A production design keeps them connected but never interchangeable.
Competitive intelligence database: the short answer
- 01
Declared grain
Entity registry
One tracked organization, brand, product line, or location.
entity_identity_typecanonical_namealiases[]
Defines what the monitoring brief means by a competitor.
- 02
Declared grain
Source registry
One monitored source surface in a declared locale and scope.
source_identity_idsource_urlsource_typelocale
Makes expected coverage explicit before collection begins.
- 03
Declared grain
Observation ledger
One source state captured at one observation time.
observation_idsource_idobserved_atcontent_refstate_hash
Preserves the evidence from which changes can be derived.
- 04
Declared grain
Signal ledger
One classified, evidence-linked change about one entity.
signal_identity_idsignal_typefirst_seen_atconfidence_state
Supplies decision-ready events without discarding provenance.
- Entity owns identity
- A source name is evidence, not automatically a new competitor.
- Observation owns evidence
- A signal points back to immutable evidence instead of replacing it.
- View owns convenience
- Current state and dashboards are derived views, not the historical ledger.
Use this sequence:
- Write the decisions and actions the system must support before listing competitors or sources.
- Define the tracked universe: organizations, brands, products, offers, locations, people, or another explicit entity type.
- Register every source with its scope, authority, access basis, cadence, expected behavior, and owner.
- Give each internal entity a stable ID. Store source-native IDs, domains, aliases, and match evidence separately.
- Capture immutable observations with the exact source reference, retrieval time, content hash, and parser or method version.
- Derive normalized facts from observations while retaining the raw value and transformation provenance.
- Compare compatible observations to produce candidate changes. Do not call every page diff a business event.
- Preserve effective, published, observed, processed, and delivered times as separate fields when they exist.
- Model confidence by decision: identity match, extraction validity, source authority, and event relevance are different judgments.
- Route ambiguous identity, conflicting evidence, and high-impact changes through review states rather than forced automation.
- Publish a current view for convenient queries and retain the underlying history for reconstruction and audit.
- Measure source health, applicable-field completeness, match precision and recall, event precision, review backlog, and latency with visible denominators.
- Put an API, feed, or portal on top only after the evidence and identity layers are stable.
- Review source rights, contracts, privacy, security, and retention before collection begins and whenever scope changes.
This article owns the competitive-data model. For the cross-domain delivery contract—manifests, atomic publication, replay, and recovery—use the custom data feed production guide. For a managed collection scope, go to competitor and market intelligence data feeds.
Begin with the decision, not the database
“Track our competitors” is not a usable data requirement. It names a subject, not a decision. The same company could be monitored for price changes, product launches, geographic expansion, hiring direction, regulatory activity, partnerships, or messaging. Each question needs different entities, sources, clocks, and evidence.
Write a decision contract before choosing technology:
| Contract item | Question to answer | Example |
|---|---|---|
| Decision | What will someone decide? | Which product changes need a sales briefing? |
| Tracked universe | Which entities are in scope? | Named companies, brands, and product families in two markets |
| Signal | What observable condition matters? | A new plan, material price change, or new country page |
| Evidence | What must a reviewer see? | Source URL, captured value, prior value, timestamps, and content hash |
| Cadence | How late can the signal arrive? | Daily collection; accepted by 09:00 local time |
| Threshold | What is material enough to route? | A defined percentage after currency and pack checks |
| Action | Where does an accepted signal go? | Analyst queue, CRM task, weekly brief, or warehouse table |
| Exclusion | What must never become a signal? | Cosmetic edits, tracking parameters, or unverified name matches |
The contract prevents an expensive failure mode: collecting everything visible and only later asking what the records mean. It also makes missingness interpretable. A missing field that is irrelevant to the stated decision is not a quality defect; a missing field required to approve a high-impact signal is.
Model the grains before the fields
A competitive intelligence database usually needs at least six record grains. Flattening them into one row creates duplicate facts, lost evidence, and ambiguous timestamps.
- 01
Capture
- Receives
- Rendered source state
- Emits
- Immutable observation + evidence reference
Expected entity, source, locale, and capture time are present.
- 02
Normalize
- Receives
- Source-native fields
- Emits
- Comparable typed state
Units, labels, whitespace, and ordering follow declared rules.
- 03
Compare
- Receives
- Prior accepted state
- Emits
- Candidate field changes
A missing or failed capture cannot masquerade as a deletion.
- 04
Classify
- Receives
- Candidate change + context
- Emits
- Typed event with confidence
Materiality, recurrence, and hard conflicts are evaluated.
- 05Signal
Release
- Receives
- Accepted event
- Emits
- Source-linked signal
A consumer can inspect the before, after, source, and clocks.
Illustrative source change
- before
- Plan price · 49 EUR / month
- after
- Plan price · 59 EUR / month
- source
- pricing page · named locale
Released signal
Published plan price increased by 10 EUR in the monitored locale.
The record keeps the entity, field, old value, new value, currency, source reference, observation pair, and confidence state. It does not infer revenue impact, motive, or a global price change.
The core grains are:
- Entity: the internal organization, brand, product, offer, location, or other thing being tracked.
- Source: one governed origin, such as a company newsroom, product page, public filing system, marketplace listing, or careers site.
- Observation: what one source showed at one collection time, including a content or payload hash.
- Assertion: one normalized fact derived from a specific observation, such as a displayed plan price or a stated launch market.
- Change: a typed comparison between compatible assertions or observations.
- Signal: a change or evidence bundle that passed the business rule and review policy for a named decision.
Keep review decisions at their own grain too. A reviewer may accept the entity match but reject the event interpretation, or approve a change while lowering its urgency. If review columns live only on the entity or observation, one decision overwrites another.
Relationships are also first-class. An organization can own a brand, a brand can market a product, a product can have market-specific offers, and a location can belong to a subsidiary. Store a relationship with its own ID, type, validity interval, source evidence, and review state. Do not encode the entire graph in an entity-name string. The business location data guide develops the location case into separate organization, brand, physical-site, listing, address, category, and lifecycle records.
Build a governed source registry
A URL list is not a source registry. The registry should explain why a source exists in the system, what it can support, and how its behavior will be assessed.
For each source, record:
source_id, canonical URL or endpoint, source type, geography, language, and owning entity;- decision purpose and expected signal types;
- access method and the authority or permission for that method;
- terms, license, attribution, personal-data posture, and review date;
- expected cadence, normal quiet periods, and freshness target;
- source-native identity fields and timestamp semantics;
- capture mode: structured payload, document, rendered page, or another approved representation;
- parser or mapping version, schema profile, and known limitations;
- owner, escalation route, and active/paused/retired state.
Source authority is field-specific. A company newsroom may be authoritative for its own announcement but weak evidence for a product's current local price. A marketplace can be direct evidence of one seller's displayed offer without proving the manufacturer's list price. Store source_role at the assertion level when that nuance matters; do not give an entire domain one universal truth score.
Define an expected schedule carefully. “No records today” can be normal for a newsroom and suspicious for a catalog expected to contain thousands of products. Source health therefore needs an expectation—scheduled publication, expected partitions, stable watch list, or historical range—not merely an HTTP success.
The W3C PROV model describes provenance around entities, activities, and agents so users can assess quality, reliability, or trustworthiness. You do not need to implement the full ontology to borrow its discipline: identify the evidence entity, the transformation activity, and the software or reviewer responsible for the derived result.
The W3C's Data on the Web Best Practices also separates provenance, version history, persistent identifiers, coverage, and licensing into explicit publication concerns. That is a useful registry audit: a source entry should not be considered governed merely because its URL resolves.
Resolve entity identity without forcing uncertain matches
Competitive intelligence becomes unreliable when aliases are treated as entities or similar names are merged automatically. Build identity as a separate, reviewable process.
| Evidence tier | Observed evidence | Permitted action | Stored state |
|---|---|---|---|
| 01Deterministic | Official registry identifier, canonical domain, or source-owned stable ID | Link when scope and identifier namespace agree. | Accepted match |
| 02Corroborated | Documented alias plus matching domain, address, parent, or official profile | Link with the evidence bundle and effective dates. | Accepted with method |
| 03Contextual | Similar name, product, geography, people, or description | Create a candidate; require review or stronger evidence. | Review queue |
| 04Conflicted | Shared brand, recycled name, contradictory domain, or incompatible scope | Keep separate and record the conflict instead of forcing a merge. | Unresolved |
Hard conflicts to retain
- Different official identifiers
- Parent versus subsidiary
- Brand versus legal entity
- Same name in another market
- Identity changed over time
- Source scope is uncertain
Every accepted link records
Raw identifier, canonical entity, match method, supporting source, reviewer or rule version, confidence state, and effective time.
Do not publish a universal score threshold. Calibrate states against a reviewed truth set for the actual entity type and decision.
Use an internal stable ID that never depends on the current display name. Around it, store scoped evidence:
- official or source-native identifiers, including their scheme and issuer;
- registered domains and source accounts;
- legal names, trading names, brands, former names, transliterations, and local aliases;
- parent, subsidiary, brand, product-family, and location relationships;
- effective dates and the evidence for an alias or relationship;
- candidate-match features, rules, score components, model version, and review outcome.
A matching outcome should be one of at least four states:
- Accepted: the evidence is sufficient for this use case.
- Rejected: a hard conflict proves the records refer to different entities.
- Ambiguous: evidence exists on both sides or does not meet the acceptance rule.
- Unreviewed: a candidate has been generated but not evaluated.
Do not collapse those into match/no-match. An ambiguous candidate is useful operational state; it is not an error that must be hidden.
Hard conflicts should outrank fuzzy similarity. Different official identifiers, incompatible markets, pack sizes, legal entities, or product variants may invalidate a high name-similarity score. Conversely, a shared identifier is only as strong as its scope: a seller SKU can be unique inside one seller, not across the market.
The retail product price Python workflow shows the deliberately narrower alternative: it analyzes exact-barcode observations and does not expand them through fuzzy product resolution. That boundary is safer than silently treating similar catalog names as the same product.
NIST's 2026 discussion of entity resolution notes that combining datasets depends on determining whether records refer to the same entity and that the work involves cleaning, labeling, feature extraction, and evaluation. Treat matching as a measured subsystem, not a preprocessing footnote. Evaluate accepted matches against a representative labeled set with both precision and recall: high precision reduces false merges, while recall shows how many true links the system misses.
Store observations, facts, and evidence separately
An observation is what the source showed. A normalized assertion is what your system says that observation means. Keep both.
A practical minimum schema looks like this:
| Table | Stable key | Essential contents |
|---|---|---|
entities | entity_id | Entity type, canonical label, lifecycle state |
entity_aliases | alias_id | Alias value, type and scope; valid interval, evidence, review state |
sources | source_id | URL, role, cadence, access basis, owner, rights, status |
observations | observation_id | Source, source-native key, observed time, payload URI/hash, capture version |
assertions | assertion_id | Subject, predicate, typed and source values, unit, language, observation |
changes | change_id | Before/after assertions, type, rule version, materiality |
signals | signal_id | Decision contract, evidence bundle, relevance/severity state, destination |
reviews | review_id | Object type/ID, decision, reason code, reviewer, time, policy version |
The evidence layer should be content-addressed where practical. Store the raw response, document, or approved capture outside the analytical tables, then retain its SHA-256, byte count, media type, storage reference, and collection metadata. A hash proves byte identity, not truth, completeness, or legal permission—but it lets a later reviewer verify which exact evidence supported the assertion. The IETF's Digest Fields specification makes the same boundary for HTTP content digests: integrity metadata does not provide authentication, authorization, or privacy.
Normalized assertions need explicit value types. A price, percentage, date, boolean, identifier, and free-text claim should not all live in one untyped string. Preserve the source-native value beside the typed value and record the transformation version. That lets you repair a mapper and re-derive results without pretending the source changed.
JSON Schema is one option for declaring JSON structure and constraints. Declare the dialect with $schema; otherwise a validator may assume a different specification version. Also remember that formats such as date-time can be annotations unless the chosen validator is configured to assert them. Passing schema validation is necessary, not proof that the business meaning is correct.
Turn observations into change without inventing events
| Ledger event | Source-published time | Observed at | Recorded state | Interpretation |
|---|---|---|---|---|
| 1Observation 017 | Not supplied | 09:00 | Offer = 49 EUR | Accepted baseline |
| 2Observation 018 | Not supplied | 13:00 | Offer = 59 EUR | Candidate increase |
| 3Signal 004 | Unknown | 13:07 | +10 EUR | Released with evidence 017 → 018 |
| 4Observation 019 | Not supplied | 17:00 | Offer = 49 EUR | Reversal; prior signal remains historical |
- source_published_at
- Use only when the source supplies a trustworthy time.
- observed_at
- When the monitored state was actually captured.
- effective_at
- Use only for a source-declared business-effective time.
- released_at
- When an accepted signal became available downstream.
Illustrative times show ordering only. A missing page, failed capture, or absent field is an observation state—not proof that the competitor removed an offer.
The safest change pipeline has four steps:
- Compare compatible observations. Same source, same source-native object, same field semantics, and compatible parser versions.
- Produce a candidate change. Record before and after assertion IDs, the comparison rule, and the detected difference.
- Classify the cause. New source fact, source correction, late discovery, normalization correction, extraction error, or unresolved.
- Apply the decision rule. Decide whether the change becomes a signal, enters review, or remains an informational history row.
That separation matters. A page title changing from “Acme Pro” to “Acme Pro Platform” is a source observation. It may be a product rename, an editorial correction, an experiment, or merely a template change. The database should not announce a rebrand until the evidence and rule support that conclusion.
Use stable change IDs so reprocessing does not create duplicate alerts. A useful key can combine the decision contract, entity, source object, field or event type, normalized before/after values, and rule version. Store the key inputs rather than relying only on a hash, so operators can explain a duplicate or collision.
For downstream event envelopes, the CNCF CloudEvents specification offers a useful vocabulary: id, source, type, and specversion are required core attributes, while time, subject, dataschema, and content type add context. Adopting CloudEvents is optional. The design lesson is not: every signal needs a stable identity, origin, type, schema reference, and clearly defined time semantics.
Keep a current-state table or materialized view for fast queries, but rebuild it from accepted assertions and changes. Historical attributes can follow a Type 2 slowly changing dimension pattern: the previous row is expired and a new version is inserted. Microsoft describes that pattern as retaining old rows rather than overwriting them. It is useful for attributes, while a separate event ledger remains better for reviewed business signals.
Preserve effective, published, observed, and processed time
One timestamp column cannot answer competitive-intelligence questions reliably.
Store these clocks separately when available:
- Effective time: when the fact or event applies in the real world.
- Published time: when the source says it published or revised the information.
- Observed time: when your system retrieved the evidence.
- Processed time: when parsing, normalization, or change detection completed.
- Reviewed time: when a person or policy accepted the interpretation.
- Delivered time: when the accepted signal reached its consumer.
Only observed_at is always under your control. Do not copy it into published_at when the source supplies no publication time. Use null plus a reason or availability state.
This is a bitemporal problem whenever facts arrive late or are corrected. Microsoft describes bitemporal history as separating business time—when something happened—from system time—when the system recorded it. Martin Fowler's bitemporal example makes the same distinction between actual and record dates. That separation lets an analyst ask both “what do we now believe happened on Monday?” and “what did our system believe when Tuesday's decision was made?”
Never infer a launch date from first observation alone. The safe label is “first observed on.” Never infer discontinuation from one missing capture. The safe state is “not observed in this accepted run,” followed by a source-specific absence policy and, often, repeated confirmation.
Handle conflicts, corrections, and missingness
Two sources can disagree without either record being corrupt. They may refer to different markets, currencies, products, effective dates, or concepts. Preserve both assertions and resolve them for a named use case.
Use three layers:
- Source assertions: immutable claims tied to observations.
- Resolution decisions: rules or reviews that select, combine, or leave claims unresolved for a purpose.
- Current views: replaceable projections built from accepted resolution decisions.
Do not overwrite a source assertion when a mapping was wrong. Add a correction activity, supersede the derived assertion, and retain the previous result. The source did not change; your interpretation did.
Missingness needs reason codes rather than one null bucket:
- not applicable to this entity or signal;
- not published by the source;
- not captured because the source or partition failed;
- extraction or validation failure;
- withheld or removed;
- not yet reviewed;
- unknown.
Those states drive different actions. “Not published” may be an accepted limitation; “partition failed” blocks a completeness claim; “not yet reviewed” belongs in a queue.
Confidence should also be decomposed. Store identity confidence, extraction validity, source authority, change relevance, and review state independently. A single score of 0.87 hides which uncertainty matters and encourages downstream users to invent thresholds disconnected from risk.
Measure quality at each decision boundary
- 01
Coverage
- Pass oracle
- Expected entities, sources, locales, and partitions were attempted.
- Review trigger
- Unexpected missing source or scope drift
- 02
Observation
- Pass oracle
- The captured state is readable, typed, and tied to immutable evidence.
- Review trigger
- Challenge page, empty shell, or parser-path change
- 03
Identity
- Pass oracle
- Every record resolves to an accepted entity or an explicit unresolved state.
- Review trigger
- New alias, parent conflict, or ambiguous name
- 04
Change
- Pass oracle
- The candidate has a prior state, stable field semantics, and a material delta.
- Review trigger
- Oscillation, template noise, or unsupported deletion
- 05
Signal
- Pass oracle
- Type, confidence, clocks, and evidence references satisfy the release contract.
- Review trigger
- High-impact or low-confidence event
- 06
Delivery
- Pass oracle
- Counts, schema version, manifest, and destination receipt reconcile.
- Review trigger
- Partial batch, stale edition, or missing acknowledgement
- Pass
- Release with gate results and evidence references attached.
- Review
- Hold the candidate; record the question, owner, evidence, and disposition.
- Quarantine
- Exclude the affected scope and disclose the gap instead of emitting a plausible false signal.
Use a scorecard with numerators, denominators, windows, and exclusions:
| Boundary | Measure | Denominator |
|---|---|---|
| Source collection | Accepted source runs | Scheduled source runs |
| Source coverage | Observed expected objects | Expected registered objects or partitions |
| Extraction | Valid required assertions | Applicable observed objects |
| Entity matching | Precision and recall | Representative labeled match pairs |
| Change detection | Confirmed meaningful changes | Reviewed candidate changes |
| Missed-event audit | Confirmed missed changes | Source changes found by independent review |
| Review operations | Queue age and throughput | Open or completed review items |
| Delivery | Signals delivered within target | Accepted signals due in the window |
Overall accuracy is not enough for an imbalanced review problem. If only one in a thousand candidate diffs is important, a system that labels everything “not important” appears 99.9% accurate and finds nothing. Report precision, recall, and the reviewed support counts for identity and event decisions.
Sample across sources, languages, entity types, and hard cases—not only random easy records. Keep the gold set outside training and threshold tuning where a model is involved. Re-review a portion over time because product naming, site structures, markets, and decision policies drift.
The general data-quality QA framework explains completeness, validity, duplicates, freshness, fidelity, and publication gates in depth. The monitoring runbook covers schedules, incidents, and recovery. This database adds domain-specific identity, evidence, event, and review tests on top.
The UK Government Data Quality Framework is a useful external reference for this approach: it frames quality as fitness for purpose and calls for continuous monitoring, reporting, and communication of limitations. It is guidance, not proof that a particular competitive-intelligence dataset is accurate.
Choose a database, feed, or portal view
| Decision question | Required grain | Useful signal | Interpretation boundary |
|---|---|---|---|
| USE 01Did a named offer or product change? | Entity × offer × locale × observation | Typed price, packaging, availability, or positioning delta | Do not infer sales, motive, or market-wide effect. |
| USE 02Is a competitor expanding locations? | Entity × physical location × observation | New, changed, or removed location with source evidence | A page appearing is not proof that a location opened. |
| USE 03Is advertised hiring direction changing? | Entity × source posting × lifecycle observation | Posting mix, location, role, or first-seen change | Job postings are not vacancies, hires, or headcount. |
| USE 04Was a partnership or launch announced? | Entity × source document × published version | Classified announcement linked to the original evidence | Separate sourced facts from analytical interpretation. |
| USE 05What changed across a defined competitor set? | Accepted signals over a fixed entity and source universe | Comparable event counts, recurrence, and review status | The monitored universe is not the whole market. |
Strong fit
Named entities, inspectable public sources, repeatable observation rules, a stable event taxonomy, and a decision that benefits from change history.
Separate discovery job
Finding every emerging competitor or estimating the entire market needs a declared discovery and sampling method; monitoring alone cannot prove either.
These are consumption modes, not competing sources of truth:
- Database: best for analysts, joins, longitudinal queries, reconciliation, and model training. Provide current and historical views with documented grains.
- Feed: best for systems that need new accepted signals or bounded snapshots on a schedule. Include event IDs, schema versions, manifests, and replay rules.
- Portal: best for human triage, exploration, evidence review, saved views, and annotation. Show why a signal exists and what remains uncertain.
Build the evidence database first. A portal directly over page diffs becomes a noise dashboard; a feed directly over a mutable current table loses replay and correction semantics.
A useful portal result should display:
- entity and exact identity evidence;
- signal type and review state;
- before and after values with units, currencies, and languages;
- source URL and evidence reference;
- every relevant clock with its label;
- rule or model version and reason codes;
- related signals and conflicts;
- an explicit unknown or limitation state.
Do not advertise the interface as “the market.” It represents the registered sources, tracked universe, collection windows, and accepted rules. Show those coverage boundaries beside charts and counts.
Set legal, ethical, and security guardrails
Competitive intelligence is not an exemption from source terms, privacy law, confidentiality, intellectual-property rules, access controls, or internal ethics policies. Review the exact sources, jurisdictions, fields, purposes, methods, retention, and recipients with qualified counsel where needed.
Minimum governance controls include:
- document the legitimate business purpose and approved sources;
- use public or properly authorized access and never misrepresent identity or authorization;
- respect access restrictions and do not bypass technical controls;
- record terms, license, attribution, and legal-review dates by source;
- minimize personal data and sensitive content rather than collecting it because it is visible;
- separate sourced fact from analyst opinion and automated inference;
- restrict evidence access, encrypt storage and transport, and log review or export activity;
- define retention and deletion for raw evidence, personal data, assertions, and derived signals;
- provide a correction and challenge process;
- re-review governance when sources, purposes, models, fields, or destinations change.
The UK Information Commissioner's Office states that personal data should be adequate, relevant, and limited to what is necessary, and that records should keep their source and status clear. Its data-minimisation guidance and accuracy guidance are useful design references even when another legal regime applies. A joint regulator statement on data scraping likewise warns that publicly accessible personal information remains subject to privacy and data-protection law in most jurisdictions. Public visibility alone does not remove obligations.
WebTruffle's responsible data and security principles describe the operating boundary for managed work. This section is an engineering checklist, not legal advice.
Competitive intelligence database checklist
Before production, confirm all of the following:
- [ ] Every tracked decision has an owner, action, signal definition, evidence requirement, cadence, and exclusion rule.
- [ ] Entity, source, observation, assertion, change, signal, relationship, and review grains are documented.
- [ ] Stable internal IDs are separate from names, URLs, and source-scoped identifiers.
- [ ] Ambiguous matches remain ambiguous; hard conflicts override fuzzy similarity.
- [ ] Every assertion points to an immutable observation and evidence reference.
- [ ] Source-native values survive normalization.
- [ ] Schema, mapper, comparison rule, model, and review-policy versions are stored.
- [ ] Effective, published, observed, processed, reviewed, and delivered times are not conflated.
- [ ] Correction, deletion, absence, and missingness states are explicit.
- [ ] Current views can be rebuilt from retained accepted history.
- [ ] Match and event precision/recall use representative labeled examples and visible support counts.
- [ ] Source health and completeness use expected, applicable denominators.
- [ ] Review queues have owners, severity rules, age targets, and escalation paths.
- [ ] Feeds and portals display evidence, uncertainty, and coverage boundaries.
- [ ] Source rights, privacy, security, retention, and correction processes have been approved.
- [ ] A consumer can trace a chart, alert, or briefing claim back to the exact evidence and transformation path.
Frequently asked questions
What is a competitive intelligence database?
It is a structured, historical store of source-linked observations, normalized facts, entity relationships, changes, and review decisions used to answer defined questions about competitors or a market. A dependable database preserves both current views and the evidence behind them.
What is the difference between a competitor database and a competitive intelligence database?
A basic competitor database often stores current organization profiles and notes. A competitive intelligence database adds governed sources, repeated observations, provenance, temporal history, typed changes, review states, and decision-specific signals.
Should I use a relational database, graph database, or search index?
Relational storage is a strong default for governed facts, history, constraints, and analytical joins. Add a graph projection when relationship traversal is central and a search index for document or portal retrieval. Technology does not replace stable identity, explicit grains, or evidence provenance.
How should competitors be identified across sources?
Use stable internal IDs plus scoped source identifiers, registered domains, aliases, relationships, and dated evidence. Generate candidates with deterministic or similarity rules, reject hard conflicts, and retain accepted, rejected, ambiguous, and unreviewed states.
Is a website change the same as a competitor event?
No. It is first a source observation and candidate difference. A business event requires compatible before-and-after evidence plus a rule or review that supports the interpretation. Template edits, experiments, corrections, and extraction changes can all create diffs without a market event.
How do I track competitive intelligence over time?
Retain immutable observations and assertions, create typed change records, and publish a derived current view. Store real-world effective time separately from publication, observation, processing, review, and delivery time so late discovery and corrections remain explainable.
How do I measure entity-matching quality?
Use a representative labeled set and report precision, recall, support counts, and performance by hard-case segment. Precision measures how many accepted links are correct; recall measures how many true links were found. Choose thresholds around the cost of false merges and missed links.
What belongs in a competitive intelligence portal?
Show accepted signals and current views, but keep source evidence, before-and-after values, clocks, identity rationale, review state, conflicts, and coverage limitations visible. The portal should support triage and verification, not hide the database's uncertainty.
Can AI summarize or classify competitor signals?
Yes, as a derived and versioned step. Preserve the inputs, model and prompt or rule version, output, confidence or reason codes, and human review where impact warrants it. Never let a generated summary replace the source observation or become indistinguishable from sourced fact.
Does publicly available information have no privacy or usage restrictions?
No. Public visibility does not eliminate source terms, privacy, intellectual-property, confidentiality, access, or retention obligations. Review the purpose, jurisdiction, source, fields, method, and recipients, minimize personal data, and seek qualified legal advice for the specific program.
When should I use a managed competitive intelligence data feed?
Consider a managed feed when the organization needs the maintained data layer but does not want to own ongoing source collection, normalization, quality review, monitoring, and delivery. Keep the decision contract, schema, evidence requirements, acceptance rules, and exit rights explicit regardless of operating model.