CtrlK
BlogDocsLog inGet started
Tessl Logo

funding-trend-forecaster

Predict funding trend shifts using NLP analysis of grant abstracts from NIH, NSF, and Horizon Europe

54

4.42x
Quality

34%

Does it follow best practices?

Impact

84%

4.42x

Average score across 3 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Optimize this skill with Tessl

npx tessl skill review --optimize ./scientific-skills/Academic Writing/funding-trend-forecaster/SKILL.md
SKILL.md
Quality
Evals
Security

Skill: Funding Trend Forecaster

ID: 200
Version: 1.0.0
Author: OpenClaw Agent
License: MIT


Overview

Funding Trend Forecaster is an intelligent analysis tool that uses Natural Language Processing (NLP) technology to analyze awarded project abstracts from major global research funding agencies (NIH, NSF, Horizon Europe) and predict funding preference shift trends for the next 3-5 years.

Features

  • Multi-source Data Collection: Automatically fetches awarded project data from NIH, NSF, Horizon Europe
  • NLP Deep Analysis: Uses advanced text mining techniques to extract topics, keywords, and research trends
  • Trend Prediction Model: Predicts funding direction changes based on time series analysis and topic modeling
  • Visualized Reports: Generates charts and trend reports for intuitive display of analysis results
  • Field Segmentation: Categorized analysis by medicine, engineering, natural sciences, and other fields

Installation

# Enter skill directory
cd skills/funding-trend-forecaster

# Install dependencies
pip install -r requirements.txt

# Download NLTK data
python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords'); nltk.download('wordnet')"

Dependencies

requests>=2.28.0
beautifulsoup4>=4.11.0
pandas>=1.5.0
numpy>=1.23.0
scikit-learn>=1.1.0
textblob>=0.17.1
nltk>=3.7
matplotlib>=3.6.0
seaborn>=0.12.0
wordcloud>=1.8.0
python-dateutil>=2.8.0

Usage

Command Line Interface

# Run full analysis workflow
python scripts/main.py --analyze-all --output report.json

# Analyze specific agency only
python scripts/main.py --source nih --months 6

# Generate visualization report
python scripts/main.py --visualize --input data.json --output charts/

# View trend forecast
python scripts/main.py --forecast --years 5 --output forecast.json

API Call

from scripts.main import FundingTrendForecaster

# Initialize forecaster
forecaster = FundingTrendForecaster()

# Collect data
forecaster.collect_data(sources=['nih', 'nsf', 'horizon_europe'], months=6)

# Execute analysis
results = forecaster.analyze_trends()

# Generate forecast
forecast = forecaster.predict_trends(years=5)

# Export report
forecaster.export_report(output_path='report.pdf', format='pdf')

Parameters

ParameterTypeDefaultRequiredDescription
--analyze-allflagfalseNoRun full analysis workflow on all sources
--sourcestring-NoSpecific agency to analyze (nih, nsf, horizon_europe)
--monthsint6NoNumber of months of historical data to analyze
--yearsint5NoYears ahead for trend prediction
--visualizeflagfalseNoGenerate visualization charts
--forecastflagfalseNoGenerate trend forecast
--input, -istring-NoInput data file path (for visualization/forecast)
--output, -ostring-NoOutput file path
--configstringconfig.jsonNoPath to configuration file

Data Sources

AgencyData Source URLUpdate Frequency
NIHhttps://reporter.nih.gov/Daily
NSFhttps://www.nsf.gov/awardsearch/Daily
Horizon Europehttps://ec.europa.eu/info/funding-tenders/opportunities/Weekly

Configuration

Create config.json file to customize analysis parameters:

{
  "sources": {
    "nih": {
      "enabled": true,
      "base_url": "https://reporter.nih.gov/",
      "max_results": 1000
    },
    "nsf": {
      "enabled": true,
      "base_url": "https://www.nsf.gov/awardsearch/",
      "max_results": 1000
    },
    "horizon_europe": {
      "enabled": true,
      "base_url": "https://ec.europa.eu/info/funding-tenders/",
      "max_results": 500
    }
  },
  "nlp": {
    "language": "en",
    "min_word_length": 3,
    "max_topics": 20,
    "stop_words": ["research", "study", "project"]
  },
  "forecast": {
    "method": "lda_trend",
    "confidence_level": 0.95,
    "years_ahead": 5
  }
}

Output Format

JSON Report Structure

{
  "metadata": {
    "generated_at": "2024-01-15T10:30:00Z",
    "data_period": "2023-07-01 to 2024-01-01",
    "sources": ["nih", "nsf", "horizon_europe"],
    "total_projects": 15420
  },
  "trend_analysis": {
    "top_keywords": [
      {"term": "artificial intelligence", "frequency": 342, "growth": 0.45},
      {"term": "climate change", "frequency": 298, "growth": 0.32}
    ],
    "emerging_topics": [
      {"topic": "Large Language Models", "projects": 89, "trend": "rising"},
      {"topic": "Carbon Capture", "projects": 156, "trend": "stable"}
    ],
    "funding_shifts": {
      "increasing": ["AI/ML", "Climate Tech", "Quantum Computing"],
      "decreasing": ["Traditional Materials", "Fossil Fuels Research"]
    }
  },
  "forecast": {
    "2025": {
      "predicted_hot_topics": ["Generative AI", "Gene Editing", "Fusion Energy"],
      "confidence": 0.87
    },
    "2026-2029": {
      "long_term_trends": ["AGI Safety", "Personalized Medicine", "Space Mining"],
      "confidence": 0.72
    }
  }
}

Architecture

funding-trend-forecaster/
├── scripts/
│   ├── main.py              # Main entry
│   ├── collectors/          # Data collection module
│   │   ├── __init__.py
│   │   ├── nih_collector.py
│   │   ├── nsf_collector.py
│   │   └── horizon_collector.py
│   ├── analyzers/           # NLP analysis module
│   │   ├── __init__.py
│   │   ├── text_processor.py
│   │   ├── topic_modeler.py
│   │   └── trend_detector.py
│   ├── predictors/          # Prediction module
│   │   ├── __init__.py
│   │   └── trend_forecaster.py
│   └── utils/               # Utility module
│       ├── __init__.py
│       ├── config.py
│       └── visualizer.py
├── data/                    # Data storage
│   ├── raw/
│   └── processed/
├── output/                  # Output directory
├── config.json              # Configuration file
├── requirements.txt         # Python dependencies
└── SKILL.md                 # This document

Roadmap

  • Basic architecture design
  • Core analysis module
  • More data source support (Wellcome Trust, JSPS, etc.)
  • Real-time data stream processing
  • Interactive web interface
  • Machine learning model optimization

License

MIT License - See LICENSE file in project root directory


Generated by OpenClaw Agent | Skill ID: 200

Risk Assessment

Risk IndicatorAssessmentLevel
Code ExecutionPython scripts with toolsHigh
Network AccessExternal API callsHigh
File System AccessRead/write dataMedium
Instruction TamperingStandard prompt guidelinesLow
Data ExposureData handled securelyMedium

Security Checklist

  • No hardcoded credentials or API keys
  • No unauthorized file system access (../)
  • Output does not expose sensitive information
  • Prompt injection protections in place
  • API requests use HTTPS only
  • Input validated against allowed patterns
  • API timeout and retry mechanisms implemented
  • Output directory restricted to workspace
  • Script execution in sandboxed environment
  • Error messages sanitized (no internal paths exposed)
  • Dependencies audited
  • No exposure of internal service architecture

Prerequisites

# Python dependencies
pip install -r requirements.txt

Evaluation Criteria

Success Metrics

  • Successfully executes main functionality
  • Output meets quality standards
  • Handles edge cases gracefully
  • Performance is acceptable

Test Cases

  1. Basic Functionality: Standard input → Expected output
  2. Edge Case: Invalid input → Graceful error handling
  3. Performance: Large dataset → Acceptable processing time

Lifecycle Status

  • Current Stage: Draft
  • Next Review Date: 2026-03-06
  • Known Issues: None
  • Planned Improvements:
    • Performance optimization
    • Additional feature support
Repository
aipoch/medical-research-skills
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.