Crop Risk Report - Agricultural Weather & Climate Analysis
Crop risk assessment for any agricultural commodity — wheat, corn, soybeans, coffee, rice, cotton, cocoa — combining live data from 8 authoritative sources into a single composite risk score. Built for commodity traders, food manufacturers, agricultural insurers, and portfolio managers who need structured, machine-readable risk intelligence faster than manual research allows.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| analysis-run | Full intelligence analysis run | $0.30 |
Example: 100 events = $30.00 · 1,000 events = $300.00
Documentation
Crop risk assessment for any agricultural commodity — wheat, corn, soybeans, coffee, rice, cotton, cocoa — combining live data from 8 authoritative sources into a single composite risk score. Built for commodity traders, food manufacturers, agricultural insurers, and portfolio managers who need structured, machine-readable risk intelligence faster than manual research allows.
Each run queries NOAA weather alerts, 7-day weather forecasts, GDACS disaster events, UN Comtrade trade flows, World Bank agricultural indicators, GBIF biodiversity observations, FRED commodity price series, and geolocation data simultaneously. Four scoring models — weather stress, pest emergence, trade disruption, and price shock — combine into a composite 0–100 risk score with a verdict from LOW_RISK to CRITICAL, plus actionable recommendations on hedging, insurance, and supplier diversification.
What data can you extract?
| Data Point | Source | Example |
|---|---|---|
| 🌾 Commodity | Input | wheat |
| 📊 Composite risk score | All 8 sources | 58 (0–100, higher = worse) |
| 🔴 Risk verdict | Scoring engine | HIGH_RISK |
| 🌩 Weather stress score | NOAA + GDACS + forecast | 65 — SEVERE |
| 🦟 Pest emergence score | GBIF biodiversity | 42 — MODERATE |
| 🚢 Trade disruption score | UN Comtrade + FRED | 55 — CONCENTRATED |
| 💰 Price shock score | FRED economic data | 62 — HIGH |
| ⚠️ Risk signals | All sources | "4 severe weather alerts — crop-threatening conditions" |
| 📋 Recommendations | Scoring engine | "Activate crop insurance and hedging strategies" |
| 📈 Trade HHI | UN Comtrade | 2800 |
| 🐛 Invasive species count | GBIF | 3 (locust, rust, armyworm) |
| 🗂 Data source record counts | All actors | { noaaAlerts: 6, gbifObservations: 14, ... } |
| 🕐 Report timestamp | System | 2026-03-20T09:14:33.000Z |
Why use Crop Risk Report?
Manually researching crop risk for a single commodity means checking NOAA's website for weather alerts, hunting GDACS for disaster reports, downloading UN Comtrade CSVs, querying the World Bank data portal, and cross-referencing FRED price series — all before you can start interpreting what you found. That process takes a skilled analyst two to four hours per commodity. It is not repeatable at scale and it misses cross-signal interactions.
This actor automates the entire data collection and scoring pipeline. You provide a crop name. It handles the rest, delivering a structured report in under 60 seconds.
- Scheduling — run weekly before earnings calls, monthly for portfolio reviews, or at crop season milestones with Apify's built-in scheduler
- API access — trigger risk assessments from Python, JavaScript, or any HTTP client for integration into trading systems or risk dashboards
- Proxy rotation — parallel sub-actor calls are rate-managed through Apify's infrastructure so you don't hit API limits
- Monitoring — receive Slack or email alerts when composite scores cross a threshold by combining with Apify webhooks
- Integrations — push results to Google Sheets, HubSpot, Zapier automations, or any downstream system via webhook
Features
- 8 parallel data source queries — NOAA weather alerts, 7-day weather forecasts, GDACS disaster events, UN Comtrade trade flows, World Bank agricultural indicators, GBIF biodiversity/pest observations, FRED commodity price series, and Nominatim geocoding all queried concurrently to minimize run time
- Weather stress scoring with 9 crop threat categories — drought, flood, frost, freeze, heat, hail, tornado, hurricane, and wildfire detected from NOAA event text; temperature extremes flagged when forecast highs exceed 38°C or lows fall below 0°C
- Drought composite detection — consecutive days with temperature above 35°C and precipitation below 1mm are counted as drought-condition days and contribute to a separate water stress signal
- GDACS agricultural disaster layer — flood, drought, cyclone, and storm events with red or orange severity alerts contribute up to 25 points to weather stress
- Compound weather amplification — concurrent alert + temperature stress, or concurrent drought + disaster, activates a compound score multiplier for non-linear risk escalation
- GBIF pest and disease screening — 10 invasive-species keywords screened: locust, armyworm, borer, weevil, aphid, rust, blight, fusarium, phytophthora, whitefly; recent observations (2024+) carry higher spread velocity weight
- HHI trade concentration calculation — Herfindahl-Hirschman Index computed from UN Comtrade partner trade values; scores above 2500 trigger a concentrated-supply-chain signal; scores above 2500 with concurrent price volatility activate cascade amplification
- FRED price trend analysis — recent price tercile compared to baseline tercile; a 15% price rise triggers a supply pressure signal; a 30% rise adds further score weight
- Price volatility detection — individual FRED data points with >5% period-over-period moves flagged as volatile; >15% moves count double
- Composite override rule — when weather stress reaches CROP_FAILURE_RISK and price shock reaches IMMINENT simultaneously, the verdict is forced to CRITICAL regardless of other scores
- Weighted composite formula — weather stress 30%, trade disruption 25%, price shock 30%, pest emergence 15%; weights reflect typical loss magnitude for agricultural commodity exposure
- Actionable recommendations engine — score thresholds trigger specific advisory outputs: crop insurance activation, hedging strategy, supplier diversification, inventory buffer increase, and futures contract recommendations
- Regional and seasonal targeting — region and season inputs refine all 8 sub-queries for growing-season-specific analysis (e.g., "Punjab monsoon" vs. "Kansas winter 2026")
Use cases for crop risk assessment
Commodity trading and futures positioning
Traders building or unwinding positions in wheat, corn, soybean, or coffee futures need to quantify weather and supply disruption risk before committing capital. This actor delivers a structured risk verdict — including specific weather signals and price trend direction — that feeds directly into position sizing models or pre-trade checklists. A HIGH_RISK or CRITICAL verdict with concurrent weather stress and price shock signals is a quantitative trigger for hedging action.
Agricultural insurance underwriting
Insurers pricing crop policies for a specific region and growing season need to assess the likelihood and magnitude of crop loss before binding coverage. The weather stress sub-score, combined with GDACS disaster exposure and pest emergence levels, provides underwriters with a structured evidence base for risk-loading decisions. Running the actor weekly through the growing season tracks risk trajectory rather than a single point-in-time snapshot.
Food manufacturing ingredient sourcing
A food manufacturer with cocoa, wheat, or palm oil in their ingredient supply chain needs to know whether their primary sourcing region faces elevated supply disruption in the next growing season. The trade disruption sub-score — built from HHI concentration and partner count — surfaces single-country dependency risk before it becomes a production shortage. Coupled with the recommendations engine, procurement teams get specific actions: diversify suppliers or increase forward contracts.
Portfolio risk management and ESG screening
Asset managers with agricultural commodity exposure need to stress-test positions against climate, trade, and price risk as part of portfolio construction or ESG reviews. Running crop risk reports for each commodity in a portfolio — wheat, soybeans, sugar, coffee — produces comparable composite scores that can be ranked, trended over time, and reported to investors or risk committees.
Government food security monitoring
Agricultural agencies tracking food security across producing regions can schedule weekly runs for key crops — rice in Southeast Asia, wheat in the Sahel, corn in Sub-Saharan Africa — to build an early warning dashboard. Rising composite scores combined with GDACS disaster alerts and GBIF pest spread signals give planners lead time to activate response programs before crop failure occurs.
Supply chain due diligence
Companies conducting supplier due diligence on agricultural inputs can use crop risk reports to quantify the environmental and geopolitical exposure of their sourcing regions. The trade HHI score and disruption level provide a standardized, defensible metric for procurement risk registers and board-level supply chain disclosures.
How to run a crop risk assessment
- Enter the crop name — Type any agricultural commodity: "wheat", "soybeans", "coffee", "corn", "rice", "cotton", "cocoa", "sugar". The actor uses this as the primary search term across all 8 data sources.
- Optionally set region and season — Add a region like "Kansas" or "Brazil Mato Grosso" to focus weather and pest data geographically. Add a season like "winter 2026" or "monsoon" to align the time window with your growing cycle.
- Click Start — The actor calls all 8 sub-actors in parallel. Most runs complete in under 60 seconds.
- Download the report — Open the Dataset tab and download in JSON, CSV, or Excel. The composite score, all four sub-scores, risk signals, and recommendations are structured fields ready for import into any system.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
crop | string | Yes | wheat | The crop or commodity to assess. Examples: "wheat", "soybeans", "coffee", "corn", "rice", "cotton", "cocoa", "sugar" |
region | string | No | (crop name) | Primary growing region or country. Examples: "Kansas", "Brazil", "Punjab", "Ukraine", "Ivory Coast". Defaults to the crop name if not provided |
season | string | No | (none) | Growing season for temporal focus. Examples: "winter 2026", "summer", "monsoon", "Q3 2026" |
Input examples
Standard crop assessment — most common:
{
"crop": "wheat",
"region": "Kansas",
"season": "winter 2026"
}
Tropical commodity with origin region:
{
"crop": "coffee",
"region": "Brazil Minas Gerais",
"season": "harvest 2026"
}
Minimal input — crop only:
{
"crop": "soybeans"
}
Input tips
- Start with crop name only — omitting region and season still produces a useful report because the actor defaults region to the crop name and queries globally.
- Use the most specific region you can — "Punjab India" returns more precise NOAA and GBIF data than "India" alone.
- Match season to your planning horizon — "winter 2026" focuses the weather and disaster queries on conditions relevant to winter crop planting decisions.
- Batch multiple commodities as separate runs — run wheat, corn, and soybeans in three parallel runs to build a commodity risk dashboard faster than sequential runs allow.
Output example
{
"commodity": "wheat",
"compositeScore": 58,
"verdict": "HIGH_RISK",
"region": "Kansas",
"season": "winter 2026",
"weatherStress": {
"score": 65,
"severeAlerts": 4,
"extremeTemps": 3,
"weatherLevel": "SEVERE",
"signals": [
"4 severe weather alerts — crop-threatening conditions",
"3 drought-condition days — water stress risk",
"3 extreme temperature events — crop damage risk"
]
},
"pestEmergence": {
"score": 42,
"speciesDetected": 8,
"invasiveCount": 3,
"pestLevel": "MODERATE",
"signals": [
"3 crop pest/disease species detected — outbreak risk",
"7 recent observations — active pest spread"
]
},
"tradeDisruption": {
"score": 55,
"tradePartners": 6,
"concentrationHHI": 2800,
"disruptionLevel": "CONCENTRATED",
"signals": [
"Trade HHI 2800 — concentrated commodity supply chain"
]
},
"priceShock": {
"score": 62,
"volatileIndicators": 6,
"supplyRiskFactors": 4,
"shockLevel": "HIGH",
"signals": [
"Commodity prices trending up 15%+ — supply pressure building",
"4 supply disruption factors — price shock catalyst"
]
},
"allSignals": [
"4 severe weather alerts — crop-threatening conditions",
"3 drought-condition days — water stress risk",
"3 extreme temperature events — crop damage risk",
"3 crop pest/disease species detected — outbreak risk",
"7 recent observations — active pest spread",
"Trade HHI 2800 — concentrated commodity supply chain",
"Commodity prices trending up 15%+ — supply pressure building",
"4 supply disruption factors — price shock catalyst"
],
"recommendations": [
"Severe weather stress — activate crop insurance and hedging strategies",
"Price shock risk — consider commodity futures hedging",
"Elevated commodity risk — increase inventory buffers and forward contracts"
],
"dataSources": {
"noaaAlerts": 6,
"weatherForecast": 7,
"gdacsDisasters": 3,
"comtradeRecords": 18,
"worldBankIndicators": 12,
"gbifObservations": 14,
"fredDataPoints": 24,
"geocoderResults": 1
},
"generatedAt": "2026-03-20T09:14:33.000Z"
}
Output fields
| Field | Type | Description |
|---|---|---|
commodity | string | The crop name provided as input |
compositeScore | number | Weighted composite risk score 0–100. Higher scores indicate greater risk |
verdict | string | Risk classification: LOW_RISK, MANAGEABLE, ELEVATED, HIGH_RISK, or CRITICAL |
region | string|null | Region provided as input, or null if not specified |
season | string|null | Season provided as input, or null if not specified |
weatherStress.score | number | Weather stress sub-score 0–100 (30% weight in composite) |
weatherStress.severeAlerts | number | Count of crop-threatening NOAA alerts detected |
weatherStress.extremeTemps | number | Count of extreme temperature events from forecast data |
weatherStress.weatherLevel | string | FAVORABLE, MILD_STRESS, MODERATE_STRESS, SEVERE, or CROP_FAILURE_RISK |
weatherStress.signals | array | Human-readable signal descriptions for weather stress drivers |
pestEmergence.score | number | Pest emergence sub-score 0–100 (15% weight in composite) |
pestEmergence.speciesDetected | number | Count of distinct species identified in GBIF observations |
pestEmergence.invasiveCount | number | Count of species matching the 10 known crop pest/disease keywords |
pestEmergence.pestLevel | string | CLEAR, LOW, MODERATE, HIGH, or OUTBREAK |
pestEmergence.signals | array | Human-readable signal descriptions for pest risk drivers |
tradeDisruption.score | number | Trade disruption sub-score 0–100 (25% weight in composite) |
tradeDisruption.tradePartners | number | Count of distinct trade partner countries from UN Comtrade data |
tradeDisruption.concentrationHHI | number | Herfindahl-Hirschman Index for trade partner concentration (0–10000) |
tradeDisruption.disruptionLevel | string | DIVERSIFIED, LOW, MODERATE, CONCENTRATED, or CRITICAL_DEPENDENCY |
tradeDisruption.signals | array | Human-readable signal descriptions for trade disruption drivers |
priceShock.score | number | Price shock sub-score 0–100 (30% weight in composite) |
priceShock.volatileIndicators | number | Count of FRED periods with >5% or >15% price moves |
priceShock.supplyRiskFactors | number | Count of weather and disaster events classified as supply disruption factors |
priceShock.shockLevel | string | STABLE, MILD, MODERATE, HIGH, or IMMINENT |
priceShock.signals | array | Human-readable signal descriptions for price shock drivers |
allSignals | array | All signals from all four sub-models, combined into one flat array |
recommendations | array | Actionable recommendations triggered by score thresholds |
dataSources | object | Record count from each of the 8 data sources queried |
generatedAt | string | ISO 8601 timestamp of report generation |
How much does it cost to run a crop risk assessment?
Crop Risk Report uses pay-per-run pricing — each run costs approximately $0.15 in Apify platform credits. Compute costs for the 8 parallel sub-actor calls are included in this estimate.
| Scenario | Runs | Cost per run | Total cost |
|---|---|---|---|
| Quick test | 1 | $0.15 | $0.15 |
| Commodity basket (5 crops) | 5 | $0.15 | $0.75 |
| Monthly portfolio review (20 crops) | 20 | $0.15 | $3.00 |
| Weekly monitoring (50 runs/month) | 50 | $0.15 | $7.50 |
| Enterprise daily monitoring | 200 | $0.15 | $30.00 |
You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached.
Apify's free tier includes $5 of monthly credits — enough for roughly 30 crop risk assessments at no cost. Compare this to Bloomberg Terminal agricultural data subscriptions at $2,000+/month or specialized agri-risk platforms at $500–1,500/month — with this actor, most users spend $3–30/month with no subscription commitment.
Crop risk assessment using the API
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/crop-risk-report").call(run_input={
"crop": "wheat",
"region": "Kansas",
"season": "winter 2026"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"Crop: {item['commodity']}")
print(f"Composite Score: {item['compositeScore']}/100 — {item['verdict']}")
print(f"Weather: {item['weatherStress']['score']} ({item['weatherStress']['weatherLevel']})")
print(f"Price Shock: {item['priceShock']['score']} ({item['priceShock']['shockLevel']})")
for rec in item.get("recommendations", []):
print(f" Recommendation: {rec}")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/crop-risk-report").call({
crop: "wheat",
region: "Kansas",
season: "winter 2026"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(`Crop: ${item.commodity}`);
console.log(`Composite Score: ${item.compositeScore}/100 — ${item.verdict}`);
console.log(`Weather: ${item.weatherStress.score} (${item.weatherStress.weatherLevel})`);
console.log(`Trade HHI: ${item.tradeDisruption.concentrationHHI}`);
console.log(`Signals: ${item.allSignals.join("; ")}`);
}
cURL
# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~crop-risk-report/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"crop": "wheat", "region": "Kansas", "season": "winter 2026"}'
# Fetch results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
How Crop Risk Report works
Phase 1 — Parallel data collection across 8 sources
When the actor starts, it builds query strings from the input parameters. The region query combines the region and season fields (e.g., "Kansas winter 2026"). The crop query combines the crop name and season. Eight sub-actor calls are then dispatched concurrently using Promise.all, each with a 512 MB memory allocation and a 120-second timeout. The sub-actors called are: NOAA Weather Alerts, Weather Forecast Search, GDACS Disaster Alerts, UN Comtrade Search, World Bank Indicators, GBIF Biodiversity, FRED Economic Data, and Nominatim Geocoder. Results from each are collected as arrays of up to 1,000 items.
Phase 2 — Weather stress scoring
The weather stress model processes three data streams. NOAA alert events are scanned against 9 crop-threat keywords (drought, flood, frost, freeze, heat, hail, tornado, hurricane, wildfire) and severity levels (extreme, severe), contributing up to 30 points. Forecast temperature data triggers extreme-event flags when highs exceed 38°C (100°F) or lows fall below 0°C (frost threshold), with drought-condition days scored when highs exceed 35°C with precipitation below 1mm — contributing up to 25 points. GDACS disaster events of flood, drought, cyclone, or storm type with red or orange severity contribute up to 25 points. A compound amplifier adds up to 20 additional points when multiple stress types coincide. The resulting 0–100 score maps to five levels: FAVORABLE, MILD_STRESS, MODERATE_STRESS, SEVERE, CROP_FAILURE_RISK.
Phase 3 — Pest, trade, and price shock scoring
The pest emergence model queries GBIF biodiversity observations and screens species names against 10 invasive pest and disease keywords. Observations from 2024 onwards receive a recency premium to measure active spread velocity. World Bank agricultural indicators (cereal yield below 2,000 kg/ha, agriculture as share of GDP above 20%) add agricultural vulnerability context.
The trade disruption model computes HHI from UN Comtrade partner trade values. An HHI above 2,500 indicates concentrated supply dependence. FRED price series are analyzed for period-over-period volatility: moves above 5% flag a volatile period; moves above 15% count double. When HHI concentration coincides with price volatility, a cascade amplifier activates.
The price shock model compares recent and baseline FRED price terciles. A 15%+ price rise across the most recent third of the series triggers a supply pressure signal. NOAA and GDACS supply disruption events contribute directly to a supply risk factor score.
Phase 4 — Composite scoring and report assembly
The four sub-scores are combined with fixed weights: weather stress 30%, price shock 30%, trade disruption 25%, pest emergence 15%. The composite score determines the verdict (LOW_RISK through CRITICAL). A hard override forces CRITICAL if both weatherLevel is CROP_FAILURE_RISK and shockLevel is IMMINENT simultaneously. Recommendations are generated by threshold logic: weather stress above 60 triggers insurance activation; trade HHI above 2,500 triggers supplier diversification; price shock above 50 triggers futures hedging. The assembled result is pushed to the Apify dataset as a single structured record.
Tips for best results
-
Use region for any commodity with distinct growing geographies. Wheat risk in Kansas is materially different from wheat risk in Ukraine — without a region, the actor queries globally and may dilute region-specific weather signals.
-
Run the actor at the start of each growing season. Weather stress scores reflect current conditions, not seasonal averages. A run timed to planting season captures the risk window that matters most for insurance and sourcing decisions.
-
Watch the compound score signals first. A composite score of 55 driven primarily by concurrent weather stress and price shock signals is more actionable than a 55 driven by trade volume alone. Read
allSignalsbefore acting on the verdict number. -
Combine with FRED price history for trend context. The
fredDataPointscount indataSourcestells you how many price observations were analyzed. More data points produce more reliable volatility assessments. -
Batch your commodity portfolio in a single session. Running wheat, corn, soybeans, and coffee in four parallel runs takes no longer than a single run and gives you a ranked risk table across your full exposure.
-
Schedule weekly runs during active growing seasons. An actor schedule in Apify lets you automate weekly Monday-morning risk updates across your commodity watchlist without manual intervention.
-
Use the HHI score alongside the trade disruption verdict. An HHI above 4,000 indicates near-monopolistic supply dependence on a single country. Cross-reference the trade partners count to understand whether diversification is realistically achievable for that commodity.
-
Pipe results to a Google Sheet via Zapier to build a rolling risk tracker. Each weekly run appends a new row so you can chart composite score trajectories over a growing season.
Combine with other Apify actors
| Actor | How to combine |
|---|---|
| Company Deep Research | Run a crop risk report first, then pass the top agricultural commodity suppliers through company research to assess individual counterparty risk |
| Waterfall Contact Enrichment | Identify procurement contacts at alternative suppliers flagged in the trade diversification recommendation, then enrich them for outreach |
| Website Change Monitor | Monitor the USDA, NOAA, or GDACS websites for new crop advisory publications that would warrant re-running risk assessments |
| B2B Lead Qualifier | Score alternative agricultural suppliers identified after a CRITICAL trade disruption verdict to prioritize sourcing outreach |
| HubSpot Lead Pusher | Push the recommendations and risk signals directly into a CRM record for procurement team follow-up workflows |
| Event Lead Extractor | Find contacts at agricultural trade conferences or commodity exchanges who are relevant to the crop and region you're monitoring |
| Website Contact Scraper | Extract contact details from the websites of alternative commodity suppliers identified in the trade disruption analysis |
Limitations
- Weather data reflects current conditions only. NOAA and GDACS data represent active alerts and recent events. The actor does not model seasonal climate outlooks or multi-year drought patterns. For long-range climate risk, supplement with CMIP6 climate projection data.
- GBIF pest observations depend on reporting density. In regions with sparse biodiversity observation networks, pest emergence may be under-detected. Low GBIF record counts in
dataSources.gbifObservationsare a signal to treat the pest sub-score as incomplete. - UN Comtrade data has a publication lag. Trade flow data from Comtrade may reflect the most recently published reporting period rather than real-time shipment volumes. Rapidly evolving trade disruptions (such as newly imposed tariffs) may not be fully reflected.
- FRED price series coverage varies by commodity. Major commodities (wheat, corn, soybeans, crude oil) have rich FRED coverage. Niche or regional commodities may return fewer data points, reducing the reliability of the price shock score. Check
dataSources.fredDataPoints— fewer than 10 points limits trend detection. - Sub-actor timeouts can reduce data completeness. Each sub-actor runs with a 120-second timeout. If a data source API is slow or unavailable, that source returns an empty array rather than failing the run. The
dataSourcesfield shows how many records each source returned — zeros indicate a sub-actor that did not return data. - No crop-specific agronomic models. The scoring weights are uniform across all commodities. The temperature thresholds (38°C, 0°C) are general thresholds — they are not calibrated to the specific growth stage or tolerance range of a particular crop variety.
- Price shock analysis is retrospective. The FRED price trend model compares historical price terciles. It identifies momentum but does not predict future price direction. Forward-looking price signals require supplementation with futures curve data.
- No proprietary satellite imagery or ground-truth data. All data comes from publicly available APIs. Proprietary remote sensing (NDVI, soil moisture) or commodity broker intelligence would require separate data sources.
Integrations
- Zapier — trigger a crop risk report when a new commodity is added to a Google Sheet, then append the results back to the same sheet for a self-updating risk register
- Make — build a multi-step automation that runs risk reports for a commodity basket, filters for HIGH_RISK or CRITICAL verdicts, and sends a Slack notification to the procurement team
- Google Sheets — export weekly crop risk reports to a tracking sheet to chart composite score trajectories across a full growing season
- Apify API — integrate crop risk assessments into internal trading systems, procurement dashboards, or risk reporting pipelines using REST API calls
- Webhooks — send the full risk report to any endpoint when a run completes, enabling real-time integration with risk management platforms or alerting systems
- LangChain / LlamaIndex — feed the structured crop risk report into an LLM workflow to generate natural-language risk summaries for analyst briefings or board reports
Troubleshooting
-
Composite score seems low despite known adverse conditions — Check
dataSourcesin the output. IfnoaaAlerts,gdacsDisasters, orfredDataPointsshow zero or very low counts, one or more sub-actors did not return data. This is usually a transient API issue. Retry the run, or run again after a few minutes. -
Pest emergence score is 0 despite known regional pest problems — GBIF observation density varies significantly by region. In some areas, professional pest surveys are not submitted to GBIF. The score reflects publicly reported biodiversity observations only. For specialized pest intelligence, supplement with FAO EMPRES data or national agricultural extension sources.
-
Trade HHI shows 0 but the commodity has active trade flows — UN Comtrade coverage depends on whether partner countries have filed trade returns for the queried commodity code. Some commodity codes or partner combinations have reporting gaps. The HHI will be 0 if no partner-level value data is available. The overall trade disruption score will still reflect volume and price volatility signals from FRED.
-
Run taking longer than 90 seconds — The parallel sub-actor architecture means total run time is bounded by the slowest individual sub-actor call, not the sum of all calls. If one API is under load, the run waits up to 120 seconds for it. Runs under two minutes are normal. Runs exceeding two minutes indicate a sub-actor timeout — check the
dataSourcesrecord counts to identify which source returned incomplete data. -
Verdict is CRITICAL but the commodity seems low-risk — The CRITICAL override fires when BOTH weather stress reaches CROP_FAILURE_RISK AND price shock reaches IMMINENT simultaneously. If either sub-score seems disproportionate relative to the underlying signals, check
weatherStress.signalsandpriceShock.signalsto trace which specific data points drove each sub-score.
Responsible use
- This actor queries only publicly available data from government and intergovernmental APIs (NOAA, GDACS, UN Comtrade, World Bank, GBIF, FRED, Nominatim).
- Risk scores are analytical outputs intended to inform, not replace, expert agricultural, financial, or policy judgment.
- Do not use risk verdicts as the sole basis for decisions with material financial consequences without independent verification.
- Comply with the terms of use for each underlying data source. UN Comtrade, World Bank, and GBIF data are available under open data licenses but attribution may be required for commercial publications.
- For guidance on responsible use of public data, see Apify's guide.
FAQ
How many crops can I assess in one run?
Each run assesses one crop. To assess multiple commodities, start separate runs for each. Apify lets you trigger runs in parallel via the API, so assessing a 10-commodity basket takes the same elapsed time as a single run.
Does the crop risk report work for any agricultural commodity?
Yes. The actor accepts any string as the crop input. It is tuned for major traded commodities — wheat, corn, soybeans, rice, coffee, cocoa, cotton, sugar, palm oil — but will produce useful results for any commodity that has FRED price series coverage and UN Comtrade trade data.
How accurate is the pest emergence score?
Accuracy depends on GBIF observation density in the queried region. For regions with active biodiversity reporting programs (North America, Western Europe, Australia), the score is reliable. For regions with sparse GBIF coverage, the score may understate pest risk. Always check dataSources.gbifObservations — fewer than 5 records warrant caution in interpreting the pest sub-score.
How is this different from Bloomberg or Refinitiv agricultural data?
Bloomberg and Refinitiv provide price quotes, futures curves, and analyst forecasts from commercial data providers. This actor synthesizes risk signals from public government and intergovernmental sources — NOAA, GDACS, UN Comtrade, World Bank, GBIF, FRED — and applies a structured scoring model. The outputs are complementary: this actor provides a structured risk verdict from public data; Bloomberg provides market-consensus price data. Most users pay $3–30/month here versus $2,000+/month for a Bloomberg Terminal.
Can I schedule this actor to run on a recurring basis?
Yes. Apify's built-in scheduler lets you trigger this actor daily, weekly, or on any custom cron schedule. You can also set up a Zapier or Make automation that runs the actor at the start of each growing season and sends results to a Slack channel or Google Sheet.
How long does a typical crop risk assessment run take?
Most runs complete in 30–60 seconds. The actor calls 8 sub-actors in parallel, so total time is bounded by the slowest individual API response rather than the sum of all calls. Runs exceeding 90 seconds indicate that one sub-actor API was slow to respond.
What does an HHI score above 2500 mean for my supply chain?
The Herfindahl-Hirschman Index (HHI) measures trade partner concentration. An HHI above 2,500 indicates that your commodity's global trade is dominated by a small number of partner countries — the equivalent of what US antitrust regulators classify as a "concentrated" market. In supply chain terms, it means a single geopolitical event, natural disaster, or export ban affecting a dominant trade partner could materially disrupt supply. The tradePartners count gives you the number of distinct countries in the data — two or fewer partners with an HHI above 2,500 is a CRITICAL_DEPENDENCY signal.
Is it legal to use this data for commercial purposes?
All eight data sources used are publicly available government or intergovernmental APIs. NOAA, GDACS, World Bank, GBIF, and FRED data are provided under open access terms and are widely used in commercial research. UN Comtrade data is freely available but may require attribution in published reports. For jurisdiction-specific guidance, see Apify's legal overview.
What happens if one of the 8 sub-actors returns no data?
The actor handles sub-actor failures gracefully. Each sub-actor call has a 120-second timeout and runs inside a try/catch block. If a call fails or times out, that source returns an empty array and the run continues. The dataSources field in the output shows exactly how many records each source returned. A zero count means that source was unavailable, and the corresponding sub-score will be lower than it would be with complete data.
Can I use this actor in a Python or JavaScript data pipeline?
Yes. The actor exposes a standard Apify API endpoint. The Python and JavaScript code examples in this README are copy-paste runnable. The output is a structured JSON record with typed numeric scores and string classifications, making it straightforward to parse and integrate into risk models, databases, or dashboards.
How does the CRITICAL verdict override work?
The composite score calculation uses weighted averages of four sub-scores. A separate override rule checks whether weatherStress.weatherLevel equals CROP_FAILURE_RISK AND priceShock.shockLevel equals IMMINENT simultaneously. If both conditions are true, the verdict is set to CRITICAL regardless of what the weighted composite score would otherwise produce. This captures the scenario where severe weather destruction and simultaneous price collapse represent a qualitatively different risk category than either condition alone.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise integrations, reach out through the Apify platform.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Crop Risk Report - Agricultural Weather & Climate Analysis?
Start for free on Apify. No credit card required.
Open on Apify Store