economic-calendar — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited economic-calendar (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Skill: Economic Calendar | Domain: trading | Category: data | Level: beginner Tags:trading,data,calendar,news,high-impact,avoidance
| Event | Currency | Frequency | Typical Impact |
|---|---|---|---|
| NFP (Non-Farm Payrolls) | USD | Monthly (1st Fri) | 50–150 pips |
| FOMC Rate Decision | USD | 8x/year | 50–200 pips |
| CPI (Inflation) | USD/EUR/GBP | Monthly | 30–100 pips |
| GDP | USD/EUR/GBP | Quarterly | 20–80 pips |
| PMI (Mfg/Services) | Multi | Monthly | 20–60 pips |
| BoE/ECB/BoJ Decision | GBP/EUR/JPY | 8x/year | 50–150 pips |
| EIA Oil Inventory | OIL | Weekly (Wed 14:30 UTC) | $0.50–2.00 |
from datetime import datetime, timedelta
def is_news_blackout(event_time: datetime, current_time: datetime,
impact: str = "HIGH") -> bool:
"""Should we avoid trading near this news event?"""
windows = {"HIGH": (30, 15), "MEDIUM": (15, 5), "LOW": (5, 0)} # (before_min, after_min)
before, after = windows.get(impact, (30, 15))
start = event_time - timedelta(minutes=before)
end = event_time + timedelta(minutes=after)
return start <= current_time <= end
def news_risk_level(minutes_to_event: float) -> str:
if minutes_to_event < 5: return "EXTREME — do not trade"
if minutes_to_event < 15: return "HIGH — reduce size 50%"
if minutes_to_event < 30: return "ELEVATED — tight stops"
return "NORMAL"import requests
from bs4 import BeautifulSoup
def get_todays_events(min_impact: str = "high") -> list:
"""Scrape Investing.com economic calendar for today's events."""
# Note: Use WebSearch tool to get current day's events
# WebSearch query: f"site:investing.com economic calendar today {min_impact} impact"
pass
# Alternative: use Brave Search via WebSearch tool
CALENDAR_QUERY = "economic calendar high impact events today forex"DAILY_EVENTS = {
"00:30": "AUD data (RBA related)",
"07:00": "EUR data + London open",
"09:30": "GBP data",
"12:30": "USD major data (CPI, NFP, retail)",
"13:30": "NYSE open — US equity data",
"14:30": "EIA oil inventory (Wednesday only)",
"18:00": "FOMC (when scheduled)",
"22:00": "NZD/AUD data + NY close",
}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.