Alternative Data avatar

Alternative Data

Pricing

from $1.30 / 1,000 company signals

Go to Apify Store
Alternative Data

Alternative Data

Build alternative data signals for a company or market area. Choose company, sector, macro, consumer, innovation, or cross-asset analysis and get a score, public indicators, and source links in a structured dataset for research—not investment advice.

Pricing

from $1.30 / 1,000 company signals

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

📊 Alternative data signals for company and market research

For finance researchers, equity analysts, data teams, and developers, Alternative Data turns a company or market-area choice into a structured signal row. Each row includes a 0–100 score, classification, confidence, source links, source timing, and the public indicators behind the score. Use it to study alternative data for investment decisions and build finance research datasets—not to get investment advice.

Use cases

📈 Scores with evidence across six analysis lenses

Choose one target per run: target values are company, sector, macro, consumer, innovation, or cross_asset. Each saved row is for the selected target and includes its score, the signal components, public source URLs, source periods, and collection time. sourceIssues, stalenessWarnings, and history add context when the schema has it.

The score value is from 0 to 100, and confidence is from 0 to 1. A score is research context, not a price forecast, trade instruction, or investment recommendation.

▶️ Choose one lens and review its signal

Set the required target field to one analysis mode. Company analysis also uses companies, newsLookbackDays, and componentWeights; other targets ignore those company fields. Start with one company to review the output shape, then check the score rationale, source issues, freshness warnings, and source links before using a row.

⚙️ Input

The input form has one required field, target. Company analysis accepts one to 25 ticker symbols. The lookback and weight fields apply only to Company analysis.

Input fields

FieldTypeWhat it does
targetstring, requiredSelects company, sector, macro, consumer, innovation, or cross_asset analysis for the run.
companiesarray of stringsFor Company analysis, accepts one to 25 public-company ticker symbols, one per line. Other targets ignore it.
newsLookbackDaysintegerFor Company analysis, sets how many recent days of company news to review. It must be at least 1. Other targets ignore it.
componentWeightsobjectFor Company analysis, sets the relative weights for news, hiring, and filing fundamentals. Values run from 0 to 100 and are scaled to a total of 100. Other targets ignore it.
componentWeights.newsnumberSets the relative weight of recent company news.
componentWeights.hiringnumberSets the relative weight of the public company job board.
componentWeights.filingFundamentalsnumberSets the relative weight of filing-backed revenue and gross-margin changes.

Default input example

This is the public input from a successful current-beta default-input run:

{
"target": "company",
"companies": [
"AAPL"
],
"newsLookbackDays": 30,
"componentWeights": {
"news": 40,
"hiring": 30,
"filingFundamentals": 30
}
}

🧾 Output

The run output links to the dataset. A dataset row contains the shared fields below and one matching analysis branch. Optional source-backed branches can be absent when a public source has no data for the subject. Arrays use [] in the field path to describe each member.

Run output link

FieldTypeWhat it does
datasetURL stringLinks to the signal rows from a successful run.

Shared row fields

FieldTypeWhat it does
targetstringNames the analysis target for the row.
subjectobjectIdentifies the company or market area covered by the row.
subject.namestringNames the company or market area.
subject.symbolstring, optionalGives the public ticker or source symbol for a company.
subject.scopestring, optionalGives the market scope used for a non-company target.
scoreobjectHolds the bounded score and its explanation.
score.valuenumberGives the score from 0 to 100.
score.classificationstringGives the plain label for the score direction.
score.confidencenumberGives confidence from 0 to 1.
score.rationalestringExplains the score in plain language.
score.componentsarrayLists the signal parts used in the score.
score.components[].namestringNames one signal part.
score.components[].scorenumberGives that part's score from 0 to 100.
score.components[].weightnumberGives that part's weight from 0 to 100.
score.components[].rationalestringExplains that part's score.
settingsobject, optionalEchoes the settings used for the row.
settings.newsLookbackDaysintegerGives the recent-news window used for company news.
settings.componentWeightsobjectHolds the applied company weights.
settings.componentWeights.newsnumberGives the applied news weight.
settings.componentWeights.hiringnumberGives the applied hiring weight.
settings.componentWeights.filingFundamentalsnumberGives the applied filing weight.
analysisobjectHolds the branch for the selected target.
sourcesarrayLists public source links and the periods they cover.
sources[].sourcestringNames the source kind.
sources[].urlURL stringLinks to the public source used for the row.
sources[].periodobjectDescribes the source period or as-of date.
sources[].period.startDatedate string, optionalGives the first date covered by the source.
sources[].period.endDatedate string, optionalGives the last date covered by the source.
sources[].period.asOfDatedate string, optionalGives the date described by a point-in-time source.
sources[].period.labelstringNames the source period.
sourceIssuesarray, optionalLists public sources that did not return data for the row.
sourceIssues[].sourcestringNames the source with an issue.
sourceIssues[].messagestringExplains the source issue.
stalenessWarningsarray, optionalWarns about an old source period or delayed data.
stalenessWarnings[].sourcestringNames the source with a freshness warning.
stalenessWarnings[].messagestringExplains the freshness warning.
stalenessWarnings[].periodEnddate stringGives the end date of the source period.
historyobject, optionalShows changes from a prior result for the same subject and target.
history.previousCollectedAtdate-time stringGives the prior collection time.
history.scoreChangenumberGives the current score minus the prior score.
history.classificationChangedbooleanSays whether the classification changed.
history.componentChangesarrayLists changes for signal parts found in both runs.
history.componentChanges[].namestringNames the changed signal part.
history.componentChanges[].scoreChangenumberGives the part's score change.
history.componentChanges[].summarystringExplains the part's change.
collectedAtdate-time stringGives the time when the row was collected.

Company analysis shape

The following fields are under analysis.company. The table includes company branches that can be absent when a public source does not provide data.

FieldTypeWhat it does
analysis.companyobjectHolds company news, hiring, filing, market, insider, and related signals.
analysis.company.marketProfileobjectHolds basic public company profile details.
analysis.company.marketProfile.sectorstringNames the company's main sector.
analysis.company.marketProfile.industrystringNames the company's main industry.
analysis.company.marketProfile.exchangestringNames the exchange where the company is listed.
analysis.company.marketProfile.countrystringGives the country linked to the company.
analysis.company.marketProfile.marketCapnumberGives the market value at quote time.
analysis.company.marketProfile.marketCapCurrencystringGives the market-cap currency.
analysis.company.quoteobjectHolds the latest public quote found for the company.
analysis.company.quote.pricenumberGives the quoted price.
analysis.company.quote.currencystringGives the quote currency.
analysis.company.quote.changePercentnumberGives the quote-period price change in percent.
analysis.company.quote.asOfdate-time stringGives the quote time.
analysis.company.newsobjectHolds recent news coverage, sentiment, and speed.
analysis.company.news.articleCountintegerCounts the news articles found.
analysis.company.news.publishersarray of stringsLists publishers found in the news set.
analysis.company.news.sentimentstringLabels the overall news sentiment.
analysis.company.news.sentimentScorenumberGives the news sentiment score from -1 to 1.
analysis.company.news.velocityobjectShows how fast news appeared in the review period.
analysis.company.news.velocity.articlesPerDaynumberGives the average articles per day.
analysis.company.news.velocity.recentArticleCountintegerCounts articles in the recent part of the period.
analysis.company.news.velocity.priorArticleCountintegerCounts articles in the prior comparison period.
analysis.company.news.periodobjectGives the dates covered by the news review.
analysis.company.news.period.startDatedate stringGives the first news date.
analysis.company.news.period.endDatedate stringGives the last news date.
analysis.company.hiringobjectHolds current job openings and the hiring mix.
analysis.company.hiring.openingCountintegerCounts current open jobs.
analysis.company.hiring.mixarrayGroups open jobs by job function.
analysis.company.hiring.mix[].functionstringNames a job function.
analysis.company.hiring.mix[].openingCountintegerCounts open jobs in that function.
analysis.company.hiring.changeobjectShows changes since a prior company run.
analysis.company.hiring.change.newOpeningsintegerCounts jobs found now but not in the prior snapshot.
analysis.company.hiring.change.removedOpeningsintegerCounts prior jobs not found now.
analysis.company.hiring.change.netChangeintegerGives new openings minus removed openings.
analysis.company.hiring.change.comparedAtdate-time stringGives the prior comparison time.
analysis.company.filingFundamentalsobjectHolds annual revenue and gross-margin changes from a filing.
analysis.company.filingFundamentals.periodEnddate stringGives the end of the annual filing period.
analysis.company.filingFundamentals.annualRevenueobjectHolds reported annual revenue.
analysis.company.filingFundamentals.annualRevenue.amountnumberGives the annual revenue amount.
analysis.company.filingFundamentals.annualRevenue.currencystringGives the annual revenue currency.
analysis.company.filingFundamentals.revenueChangePercentnumberGives year-over-year revenue change in percent.
analysis.company.filingFundamentals.grossMarginPercentnumberGives gross margin in percent.
analysis.company.filingFundamentals.grossMarginChangePointsnumberGives year-over-year gross-margin change in percentage points.
analysis.company.institutionalobjectHolds institutional convergence from quarterly 13F holdings.
analysis.company.institutional.periodEnddate stringGives the end of the holdings period.
analysis.company.institutional.convergenceScorenumberGives the institutional convergence score from 0 to 100.
analysis.company.institutional.institutionCountintegerCounts institutions in the holdings data.
analysis.company.institutional.directionstringLabels the direction of institutional convergence.
analysis.company.insiderobjectHolds directional public Form 4 insider activity.
analysis.company.insider.transactionCountintegerCounts insider transactions found.
analysis.company.insider.buyCountintegerCounts insider buys.
analysis.company.insider.sellCountintegerCounts insider sells.
analysis.company.insider.netValuenumberGives the net reported value of insider activity.
analysis.company.insider.currencystringGives the net-value currency.
analysis.company.insider.sentimentstringLabels the direction of insider activity.
analysis.company.insider.periodobjectGives the dates covered by insider data.
analysis.company.insider.period.startDatedate stringGives the first insider-activity date.
analysis.company.insider.period.endDatedate stringGives the last insider-activity date.
analysis.company.filingContextobjectHolds material filing events and risk factors.
analysis.company.filingContext.materialEventsarrayLists material events found in public filings.
analysis.company.filingContext.materialEvents[].typestringNames the filing-event type.
analysis.company.filingContext.materialEvents[].filedAtdate stringGives the filing date.
analysis.company.filingContext.materialEvents[].summarystringSummarizes the filing event.
analysis.company.filingContext.riskFactorsarrayLists risk factors named in public filings.
analysis.company.filingContext.riskFactors[].titlestringNames a risk factor.
analysis.company.filingContext.riskFactors[].summarystringSummarizes the risk factor.
analysis.company.innovationContextobjectHolds company patent and research-and-development hiring context.
analysis.company.innovationContext.patentActivityobjectHolds recent public patent activity.
analysis.company.innovationContext.patentActivity.patentCountintegerCounts patents in the review period.
analysis.company.innovationContext.patentActivity.periodEnddate stringGives the end of the patent period.
analysis.company.innovationContext.researchAndDevelopmentHiringobjectHolds research-and-development job openings.
analysis.company.innovationContext.researchAndDevelopmentHiring.openingCountintegerCounts research-and-development openings.
analysis.company.innovationContext.researchAndDevelopmentHiring.periodEnddate stringGives the end of the hiring period.
analysis.company.innovationContext.momentumScorenumberGives the innovation momentum score from 0 to 100.

Company row example

This shortened genuine row is from the successful current-beta company run. The string value "..." marks omitted fields from the same real row.

{
"target": "company",
"subject": {
"name": "Apple Inc.",
"symbol": "AAPL",
"scope": "company"
},
"score": {
"value": 83,
"classification": "strong_positive",
"confidence": 0.7100000000000001,
"rationale": "news: 100 articles with mixed sentiment and 3.333 articles/day. filing_fundamentals: Revenue changed 81.54% and gross margin changed 8.44 points. insider: 0 buys and 5 sells in current Form 4 rows. market_profile: Quote change over the Yahoo window is 2.5%.",
"components": [
{
"name": "news",
"score": 70,
"weight": 40,
"rationale": "100 articles with mixed sentiment and 3.333 articles/day."
},
"..."
]
},
"settings": "...",
"analysis": {
"company": {
"marketProfile": {
"sector": "Electronic Computers",
"industry": "Electronic Computers",
"exchange": "NasdaqGS",
"country": "US"
},
"quote": {
"price": 311,
"currency": "USD",
"asOf": "2026-08-05T13:30:00.000Z",
"changePercent": 2.5
},
"news": {
"articleCount": 100,
"publishers": "...",
"sentiment": "mixed",
"sentimentScore": 0.07,
"velocity": {
"articlesPerDay": 3.333,
"recentArticleCount": 100,
"priorArticleCount": 0
},
"period": {
"startDate": "2026-07-07",
"endDate": "2026-08-06"
}
},
"filingFundamentals": "...",
"insider": "...",
"filingContext": "...",
"innovationContext": "..."
}
},
"sources": [
{
"source": "company_news",
"url": "https://news.google.com/rss/search?q=(AAPL%20OR%20%22Apple%20Inc.%22)%20when%3A30d&hl=en-US&gl=US&ceid=US:en",
"period": {
"label": "30-day Google News window",
"startDate": "2026-07-07",
"endDate": "2026-08-06"
}
},
"..."
],
"sourceIssues": [
{
"source": "company_jobs",
"message": "No supported public source mapping is available for this target."
},
{
"source": "institutional_holdings",
"message": "No supported public source mapping is available for this target."
},
{
"source": "patent_records",
"message": "The public source could not be reached after safe retries."
}
],
"stalenessWarnings": [
{
"source": "insider_filings",
"message": "This insider filings source period is 51 days old.",
"periodEnd": "2026-06-16"
}
],
"collectedAt": "2026-08-06T02:28:33.597Z",
"history": "..."
}

Sector analysis shape

The following fields are under analysis.sector.

FieldTypeWhat it does
analysis.sectorobjectHolds descriptive sector rotation and market activity signals.
analysis.sector.rotationobjectHolds the direction and score of sector rotation.
analysis.sector.rotation.signalstringLabels the descriptive sector flow signal.
analysis.sector.rotation.scorenumberGives the rotation score from 0 to 100.
analysis.sector.rotation.rationalestringExplains the rotation signal.
analysis.sector.sectorReturnPercentnumberGives the sector return for the review period.
analysis.sector.relativeStrengthPercentnumberGives the sector return compared with its reference market.
analysis.sector.congressionalActivityobjectHolds disclosed congressional trading linked to the sector.
analysis.sector.congressionalActivity.buyCountintegerCounts disclosed buys.
analysis.sector.congressionalActivity.sellCountintegerCounts disclosed sells.
analysis.sector.congressionalActivity.netValuenumberGives the net disclosed trade value.
analysis.sector.congressionalActivity.currencystringGives the net-value currency.
analysis.sector.congressionalActivity.periodEnddate stringGives the end of the trade period.

Sector row example

This complete row is from the successful current-beta sector run:

{
"target": "sector",
"subject": {
"name": "Technology sector",
"scope": "sector"
},
"score": {
"value": 70,
"classification": "positive",
"confidence": 0.63,
"rationale": "sector: XLK returned 5.79% versus 3.79% for SPY. congressional: 0 congressional buys and 1 sells.",
"components": [
{
"name": "sector",
"score": 70,
"weight": 100,
"rationale": "XLK returned 5.79% versus 3.79% for SPY."
},
{
"name": "congressional",
"score": 40,
"weight": 0,
"rationale": "0 congressional buys and 1 sells."
}
]
},
"settings": {
"newsLookbackDays": 30,
"componentWeights": {
"news": 40,
"hiring": 30,
"filingFundamentals": 30
}
},
"analysis": {
"sector": {
"rotation": {
"signal": "inflow",
"score": 70,
"rationale": "XLK returned 5.79% versus 3.79% for SPY."
},
"sectorReturnPercent": 5.79,
"relativeStrengthPercent": 2,
"congressionalActivity": {
"buyCount": 0,
"sellCount": 1,
"netValue": 0,
"currency": "USD",
"periodEnd": "2026-08-06"
}
}
},
"sources": [
{
"source": "macro_indicators",
"url": "https://query1.finance.yahoo.com/v8/finance/chart/XLK?range=5d&interval=1d",
"period": {
"label": "Yahoo sector ETF comparison",
"asOfDate": "2026-08-06"
}
},
{
"source": "congressional_trades",
"url": "https://disclosures-clerk.house.gov/public_disc/ptr-pdfs/2025/20032062.pdf",
"period": {
"label": "House periodic disclosure 20032062",
"endDate": "2026-08-06"
}
}
],
"sourceIssues": [],
"stalenessWarnings": [],
"collectedAt": "2026-08-06T02:29:42.374Z",
"history": {
"previousCollectedAt": "2026-08-06T01:29:51.568Z",
"scoreChange": 0,
"classificationChanged": false,
"componentChanges": [
{
"name": "sector",
"scoreChange": 0,
"summary": "Current 70; previous 70."
},
{
"name": "congressional",
"scoreChange": 0,
"summary": "Current 40; previous 40."
}
]
}
}

Macro analysis shape

The following fields are under analysis.macro.

FieldTypeWhat it does
analysis.macroobjectHolds a macro regime and the public indicators behind it.
analysis.macro.regimestringLabels the current macro regime.
analysis.macro.indicatorsarrayLists domestic and global indicators used for the regime.
analysis.macro.indicators[].namestringNames the indicator.
analysis.macro.indicators[].regionstringNames the region covered.
analysis.macro.indicators[].valuenumberGives the reported indicator value.
analysis.macro.indicators[].unitstringGives the indicator unit.
analysis.macro.indicators[].directionstringDescribes the direction signaled by the indicator.
analysis.macro.indicators[].periodEnddate stringGives the end of the indicator period.

Macro row example

This complete row is from the successful current-beta macro run:

{
"target": "macro",
"subject": {
"name": "US and global macro",
"scope": "macro"
},
"score": {
"value": 70,
"classification": "positive",
"confidence": 0.5900000000000001,
"rationale": "macro: Macro regime is expansion.",
"components": [
{
"name": "macro",
"score": 70,
"weight": 100,
"rationale": "Macro regime is expansion."
}
]
},
"settings": {
"newsLookbackDays": 30,
"componentWeights": {
"news": 40,
"hiring": 30,
"filingFundamentals": 30
}
},
"analysis": {
"macro": {
"regime": "expansion",
"indicators": [
{
"name": "US unemployment rate",
"region": "domestic",
"value": 4.2,
"unit": "percent",
"direction": "improving",
"periodEnd": "2026-06-01"
},
{
"name": "US CPI index",
"region": "domestic",
"value": 332.568,
"unit": "index",
"direction": "stable",
"periodEnd": "2026-06-01"
},
{
"name": "World GDP growth",
"region": "global",
"value": 2.92127318539153,
"unit": "percent",
"direction": "improving",
"periodEnd": "2025-12-31"
}
]
}
},
"sources": [
{
"source": "macro_indicators",
"url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=UNRATE&cosd=2025-01-01&coed=2026-08-06",
"period": {
"label": "FRED unemployment",
"endDate": "2026-06-01"
}
},
{
"source": "macro_indicators",
"url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=CPIAUCSL&cosd=2025-01-01&coed=2026-08-06",
"period": {
"label": "FRED CPI",
"endDate": "2026-06-01"
}
},
{
"source": "macro_indicators",
"url": "https://api.worldbank.org/v2/country/WLD/indicator/NY.GDP.MKTP.KD.ZG?format=json&per_page=5",
"period": {
"label": "World Bank global GDP",
"endDate": "2025-12-31"
}
}
],
"sourceIssues": [],
"stalenessWarnings": [
{
"source": "macro_indicators",
"message": "This macro indicators source period is 218 days old.",
"periodEnd": "2025-12-31"
}
],
"collectedAt": "2026-08-06T02:29:31.983Z",
"history": {
"previousCollectedAt": "2026-08-06T00:52:51.895Z",
"scoreChange": 0,
"classificationChanged": false,
"componentChanges": [
{
"name": "macro",
"scoreChange": 0,
"summary": "Current 70; previous 70."
}
]
}
}

Consumer analysis shape

The following fields are under analysis.consumer.

FieldTypeWhat it does
analysis.consumerobjectHolds consumer financial stress and its public indicators.
analysis.consumer.stressScorenumberGives the consumer stress score from 0 to 100.
analysis.consumer.classificationstringLabels the level of consumer stress.
analysis.consumer.indicatorsarrayLists public indicators used for the stress score.
analysis.consumer.indicators[].namestringNames the consumer indicator.
analysis.consumer.indicators[].valuenumberGives the reported indicator value.
analysis.consumer.indicators[].unitstringGives the indicator unit.
analysis.consumer.indicators[].directionstringDescribes the direction signaled by the indicator.
analysis.consumer.indicators[].periodEnddate stringGives the end of the indicator period.

Consumer row example

This complete row is from the successful current-beta consumer run:

{
"target": "consumer",
"subject": {
"name": "Consumer conditions",
"scope": "consumer"
},
"score": {
"value": 0,
"classification": "strong_negative",
"confidence": 0.5900000000000001,
"rationale": "consumer: Consumer stress score is 100.",
"components": [
{
"name": "consumer",
"score": 0,
"weight": 100,
"rationale": "Consumer stress score is 100."
}
]
},
"settings": {
"newsLookbackDays": 30,
"componentWeights": {
"news": 40,
"hiring": 30,
"filingFundamentals": 30
}
},
"analysis": {
"consumer": {
"stressScore": 100,
"classification": "high",
"indicators": [
{
"name": "CFPB complaints",
"value": 16906013,
"unit": "complaints",
"direction": "higher_stress",
"periodEnd": "2026-08-05"
},
{
"name": "US unemployment rate",
"value": 4.2,
"unit": "percent",
"direction": "stable",
"periodEnd": "2026-06-01"
},
{
"name": "University of Michigan sentiment",
"value": 49.5,
"unit": "index",
"direction": "higher_stress",
"periodEnd": "2026-06-01"
}
]
}
},
"sources": [
{
"source": "consumer_indicators",
"url": "https://www.consumerfinance.gov/data-research/consumer-complaints/search/api/v1/?size=1&from=0&sort=created_date_desc",
"period": {
"label": "latest CFPB complaint",
"asOfDate": "2026-08-05"
}
},
{
"source": "consumer_indicators",
"url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=UNRATE&cosd=2025-01-01&coed=2026-08-06",
"period": {
"label": "FRED unemployment",
"endDate": "2026-06-01"
}
},
{
"source": "consumer_indicators",
"url": "https://fred.stlouisfed.org/graph/fredgraph.csv?id=UMCSENT&cosd=2025-01-01&coed=2026-08-06",
"period": {
"label": "FRED sentiment",
"endDate": "2026-06-01"
}
}
],
"sourceIssues": [],
"stalenessWarnings": [],
"collectedAt": "2026-08-06T02:29:32.922Z",
"history": {
"previousCollectedAt": "2026-08-06T00:52:42.872Z",
"scoreChange": 0,
"classificationChanged": false,
"componentChanges": [
{
"name": "consumer",
"scoreChange": 0,
"summary": "Current 0; previous 0."
}
]
}
}

Innovation analysis shape

The following fields are under analysis.innovation.

FieldTypeWhat it does
analysis.innovationobjectHolds patent activity and research-and-development hiring signals.
analysis.innovation.momentumScorenumberGives the innovation momentum score from 0 to 100.
analysis.innovation.classificationstringLabels innovation momentum.
analysis.innovation.patentActivityobjectHolds recent public patent activity.
analysis.innovation.patentActivity.patentCountintegerCounts patents in the review period.
analysis.innovation.patentActivity.periodEnddate stringGives the end of the patent period.
analysis.innovation.researchAndDevelopmentHiringobjectHolds research-and-development job openings.
analysis.innovation.researchAndDevelopmentHiring.openingCountintegerCounts research-and-development openings.
analysis.innovation.researchAndDevelopmentHiring.periodEnddate stringGives the end of the hiring period.

Innovation row example

This complete row is from the successful current-beta innovation run:

{
"target": "innovation",
"subject": {
"name": "Cloudflare, Inc.",
"symbol": "NET",
"scope": "innovation"
},
"score": {
"value": 100,
"classification": "strong_positive",
"confidence": 0.5900000000000001,
"rationale": "innovation: 124810 public patent search results and 293 R&D openings.",
"components": [
{
"name": "innovation",
"score": 100,
"weight": 100,
"rationale": "124810 public patent search results and 293 R&D openings."
}
]
},
"settings": {
"newsLookbackDays": 30,
"componentWeights": {
"news": 40,
"hiring": 30,
"filingFundamentals": 30
}
},
"analysis": {
"innovation": {
"momentumScore": 100,
"classification": "strong_positive",
"patentActivity": {
"patentCount": 124810,
"periodEnd": "2026-08-06"
},
"researchAndDevelopmentHiring": {
"openingCount": 293,
"periodEnd": "2026-08-06"
}
}
},
"sources": [
{
"source": "patent_records",
"url": "https://patents.google.com/xhr/query?url=q%3DCloudflare%2C%20Inc.&exp=",
"period": {
"label": "Google Patents public search result",
"asOfDate": "2026-08-06"
}
},
{
"source": "company_jobs",
"url": "https://boards-api.greenhouse.io/v1/boards/cloudflare/jobs?content=false",
"period": {
"label": "current public Greenhouse openings",
"asOfDate": "2026-08-06"
}
}
],
"sourceIssues": [],
"stalenessWarnings": [],
"collectedAt": "2026-08-06T02:29:37.548Z",
"history": {
"previousCollectedAt": "2026-08-06T00:52:56.231Z",
"scoreChange": 0,
"classificationChanged": false,
"componentChanges": [
{
"name": "innovation",
"scoreChange": 0,
"summary": "Current 100; previous 100."
}
]
}
}

Cross-asset analysis shape

The following fields are under analysis.crossAsset.

FieldTypeWhat it does
analysis.crossAssetobjectHolds observational risk context across major asset groups.
analysis.crossAsset.riskRegimestringLabels the current cross-asset risk regime.
analysis.crossAsset.assetsarrayLists quote and change context for each asset group.
analysis.crossAsset.assets[].assetClassstringNames the asset group.
analysis.crossAsset.assets[].symbolstringGives the public symbol used for the quote.
analysis.crossAsset.assets[].valuenumberGives the latest value for the asset group.
analysis.crossAsset.assets[].changePercentnumberGives the value change in percent for the quote period.
analysis.crossAsset.assets[].currencystringGives the value currency.
analysis.crossAsset.assets[].asOfdate-time stringGives the quote time.
analysis.crossAsset.rationalestringExplains the cross-asset risk label.

Cross-asset row example

This complete row is from the successful current-beta cross_asset run:

{
"target": "cross_asset",
"subject": {
"name": "Cross-asset risk context",
"scope": "cross_asset"
},
"score": {
"value": 50,
"classification": "mixed",
"confidence": 0.5900000000000001,
"rationale": "cross_asset: Cross-asset risk regime is normal.",
"components": [
{
"name": "cross_asset",
"score": 50,
"weight": 100,
"rationale": "Cross-asset risk regime is normal."
}
]
},
"settings": {
"newsLookbackDays": 30,
"componentWeights": {
"news": 40,
"hiring": 30,
"filingFundamentals": 30
}
},
"analysis": {
"crossAsset": {
"riskRegime": "normal",
"assets": [
{
"assetClass": "equities",
"symbol": "SPY",
"value": 769.7899780273438,
"changePercent": 3.79,
"currency": "USD",
"asOf": "2026-08-05T13:30:00.000Z"
},
{
"assetClass": "cryptoassets",
"symbol": "BTC",
"value": 64491,
"changePercent": 0,
"currency": "USD",
"asOf": "2026-08-06T02:29:24.260Z"
},
{
"assetClass": "foreign_exchange",
"symbol": "EURUSD=X",
"value": 1.1559356451034546,
"changePercent": 0.31,
"currency": "USD",
"asOf": "2026-08-06T02:28:56.000Z"
},
{
"assetClass": "volatility",
"symbol": "^VIX",
"value": 15.8100004196167,
"changePercent": -7.49,
"currency": "USD",
"asOf": "2026-08-05T07:00:00.000Z"
},
{
"assetClass": "rates",
"symbol": "^TNX",
"value": 4.616999626159668,
"changePercent": -0.99,
"currency": "USD",
"asOf": "2026-08-05T12:20:00.000Z"
}
],
"rationale": "Volatility was 15.8100004196167; the observed risk regime is normal."
}
},
"sources": [
{
"source": "cross_asset_quotes",
"url": "https://query1.finance.yahoo.com/v8/finance/chart/SPY?range=5d&interval=1d",
"period": {
"label": "Yahoo equity quote window",
"asOfDate": "2026-08-06"
}
},
{
"source": "cross_asset_quotes",
"url": "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd",
"period": {
"label": "CoinGecko spot quote",
"asOfDate": "2026-08-06"
}
},
{
"source": "cross_asset_quotes",
"url": "https://query1.finance.yahoo.com/v8/finance/chart/EURUSD%3DX?range=5d&interval=1d",
"period": {
"label": "Yahoo FX quote window",
"asOfDate": "2026-08-06"
}
},
{
"source": "cross_asset_quotes",
"url": "https://query1.finance.yahoo.com/v8/finance/chart/%5EVIX?range=5d&interval=1d",
"period": {
"label": "Yahoo volatility quote window",
"asOfDate": "2026-08-06"
}
},
{
"source": "cross_asset_quotes",
"url": "https://query1.finance.yahoo.com/v8/finance/chart/%5ETNX?range=5d&interval=1d",
"period": {
"label": "Yahoo rates quote window",
"asOfDate": "2026-08-06"
}
}
],
"sourceIssues": [],
"stalenessWarnings": [],
"collectedAt": "2026-08-06T02:29:24.261Z",
"history": {
"previousCollectedAt": "2026-08-06T00:52:49.686Z",
"scoreChange": 0,
"classificationChanged": false,
"componentChanges": [
{
"name": "cross_asset",
"scoreChange": 0,
"summary": "Current 50; previous 50."
}
]
}
}

💳 Pricing

This Actor uses pay-per-event pricing. The current buyer-facing company signal charge applies when one evidence-linked company signal is saved for a submitted public company. Empty, setup, and diagnostic work are not described here as a company-signal charge. Check the pricing panel for the current tier rate.

🔌 Integrations

Use the dataset link in the run output to read the saved JSON rows in Apify or export them for a spreadsheet, notebook, or review workflow. Source URLs remain in each row so you can inspect the public data behind a signal.

Video guide

❓ FAQ

What is alternative data here?

Here, alternative data means public company and market indicators used with a score, rationale, and source links. The Actor does not promise private, paywalled, or proprietary datasets.

Can one run combine company, sector, and macro analysis?

No. Choose one target for each run. Use separate runs for separate analysis targets.

What happens to company fields for another target?

The companies, newsLookbackDays, and componentWeights fields apply to Company analysis. Other targets ignore them.

Can I change how much news, hiring, and filings affect a company score?

Yes. Set the three component weights from 0 to 100. The Actor scales the relative values so their total is 100.

Will every company have hiring data?

No. Company hiring fields depend on a supported public Greenhouse job board. The Actor does not guess an employer-board mapping; check sourceIssues when hiring data is not present.

What does confidence mean?

score.confidence is the schema's confidence value from 0 to 1. Read it with the score rationale, source periods, and source links. It is not a promise of accuracy or an investment recommendation.

What do source periods and freshness warnings tell me?

Each source can include the period it covers, while collectedAt shows when the row was saved. stalenessWarnings calls out an old source period or delayed data so you can judge how fresh the signal is.

Why can a source issue appear in a successful row?

sourceIssues lists a public source that did not return data for that row. Review the available analysis fields and the source links before using the signal.

Can I compare repeated company runs?

Yes. A later row can include history for the same subject and target, including score and component changes. The Actor does not provide historical backtesting or a guaranteed long-term history.

What does a cross-asset row mean?

It is observational context for equities, cryptoassets, foreign exchange, volatility, and rates. It is not a mathematical correlation measure, price forecast, or trading signal.

Does this Actor give investment advice?

No. It provides public-data research context and source links. It does not tell you what to buy, sell, or hold.

📝 Changelog

0.0: Initial release

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré