Cyprus Health Observatory

Operations

What each automated job costs against its spending limit, day by day, and what a month would cost with every source covered.

€0.01 run log
Today
€1.42 run log
This week
€1.42 run log
This month
€8.38 run log
Monthly cost with every source covered
JobScheduleLimitTodayThis weekThis monthLimit usedLast 14 daysLast run
Statistics loader
No AI model
Every day at 03:00–000– run logDone
21 Oct 2026, 14:07
Document watch
Small model (Haiku class)
Every 2 hours€1.5 per day0.00320.05690.05690.2% run logDone
21 Oct 2026, 18:10
Morning brief
Mid-size model (Sonnet class)
Weekdays at 07:00€1 per day0.00850.070.070.8% run logDone
21 Oct 2026, 15:26
Anomaly watch
No AI model
Weekly, once Eurostat updates weekly deaths–000– run logSkipped
21 Oct 2026, 15:26
Workforce reconciliation
Mid-size model (Sonnet class)
Once a week€1 per week00.01090.01091.1% run logDone
19 Oct 2026, 23:18
Nurses' survey summary
Mid-size model (Sonnet class)
Every Sunday at 20:00€2 per week0000% run log–
Shortage watch
Small model (Haiku class)
Every day at 05:00€0.5 per day00.00340.00340% run logDone
21 Oct 2026, 15:26
Opportunity radar
Small model (Haiku class)
Every Monday at 06:00€0.5 per week00.00030.00030.1% run logDone
19 Oct 2026, 23:47
Month close
Large model (Opus class)
Once a month€5 per month00.28060.28065.6% run logDone
20 Oct 2026, 00:16
Document backfill (one-off)
Small model (Haiku class)
Once (initial backfill)€12 per month01.00071.00078.3% run logDone
19 Oct 2026, 22:50
Total0.01171.42291.4229run log

Monthly cost with every source covered

How it is worked out

Runs a month × (average input tokens × input price + average output tokens × output price) ÷ 1,000,000 × the euro rate × a coverage factor.

monthly_eur = runs_per_month x (avg_input_tokens x price_in_usd_per_mtok + avg_output_tokens x price_out_usd_per_mtok) / 1e6 x EUR_PER_USD x coverage_factor

JobModelRuns a monthTokens in / out€ per run€ a monthLimitBased on
Statistics loaderNo AI model30.40 / 000 within limit0No model used. no model calls run log
Document watchSmall model (Haiku class)365.3202,427 / 3,6570.0196.9335 within limit45.66Observed runs. average of 3 runs that used a model in the last 30 days run log
Morning briefMid-size model (Sonnet class)21.71,151 / 1,3990.0140.3045 within limit30.44Observed runs. average of 5 runs that used a model in the last 30 days run log
Anomaly watchNo AI model4.40 / 000 within limit0No model used. no model calls run log
Workforce reconciliationMid-size model (Sonnet class)4.43,280 / 6140.01090.0475 within limit4.35Observed runs. average of 1 runs that used a model in the last 30 days run log
Nurses' survey summaryMid-size model (Sonnet class)4.4100,000 / 4,0000.20640.8978 within limit8.7Assumed. 50 interviews x ~2k tokens in (brief's sizing); synthesis out run log
Shortage watchSmall model (Haiku class)30.46,154 / 2,7220.00170.0517 within limit15.22Observed runs. average of 2 runs that used a model in the last 30 days run log
Opportunity radarSmall model (Haiku class)4.41,173 / 3520.00030.0011 within limit2.17Observed runs. average of 1 runs that used a model in the last 30 days run log
Month closeLarge model (Opus class)17,342 / 6,6880.14030.1403 within limit5Observed runs. average of 2 runs that used a model in the last 30 days run log
Document backfill (one-off)Small model (Haiku class)03,463,111 / 83,1150.33360 within limit12Observed runs. average of 3 runs that used a model in the last 30 days run log
Total8.3765111.54run log

Recent runs

StartedJobStatusTokens in / outCost (€)What it did
21 Oct 2026, 18:10Document watchDone0 / 00new documents: hio: +0; okypy: +0; cystat_publications: +0; parliament_health: +0; seeds: +0; eu_council: +0; ecdc_cdtr: +0; ema_news: +0; who_news: +0; neha: +0; state_of_health: +0; ec_policy_pages: run log
21 Oct 2026, 16:10Document watchDone0 / 00new documents: hio: +0; okypy: +0; cystat_publications: +0; parliament_health: +0; seeds: +0; eu_council: +0; ecdc_cdtr: +0; ema_news: +0; who_news: +0; neha: +0; state_of_health: +0; ec_policy_pages: run log
21 Oct 2026, 15:26Morning briefDone941 / 7950.0085brief 2026-10-21: 5 sentences (97 words en), 0 dropped by the checks, 0 change-log entries, status ok run log
21 Oct 2026, 15:26Anomaly watchSkipped0 / 00weekly: skipped: Eurostat weekly deaths not updated since the last run; monthly cause groups 91 run log
21 Oct 2026, 15:26Shortage watchDone0 / 000 new shortages, 0 resolved run log
21 Oct 2026, 15:25Document watchDone0 / 00new documents: hio: +0; okypy: +0; cystat_publications: +0; parliament_health: +0; seeds: +0; eu_council: +0; ecdc_cdtr: +0; ema_news: +0; who_news: +0; neha: +0; state_of_health: +0; ec_policy_pages: run log
21 Oct 2026, 14:10Document watchDone34,045 / 6520.0032new documents: hio: +1; okypy: +0; cystat_publications: +0; parliament_health: +0; seeds: +0; eu_council: +0; ecdc_cdtr: +0; ema_news: +0; who_news: +0; neha: +0; state_of_health: +0; ec_policy_pages: run log
21 Oct 2026, 14:07Statistics loaderDone0 / 00cystat_db: 38 tables, +0 new, 0 revised, 0 errors; eurostat: 53 tables, +0 new, 0 revised, 0 errors; who_gho: 27 tables, +0 new, 0 revised, 0 errors; eea: 2 tables, +0 new, 17 revised, 0 errors; datag run log
20 Oct 2026, 00:16Month closeDone7,241 / 6,9890.1451month 2026-09: 21 sentences, 0 dropped, 0 change-log entries, status ok run log
20 Oct 2026, 00:10Month closeDone7,444 / 6,3880.1355month 2026-09: 21 sentences, 1 dropped, 0 change-log entries, status ok run log
20 Oct 2026, 00:10Morning briefDone1,340 / 1,8720.0184brief 2026-10-19: 9 sentences (195 words en), 1 dropped by the checks, 0 change-log entries, status ok run log
20 Oct 2026, 00:09Morning briefDone1,397 / 1,9380.0191brief 2026-10-16: 11 sentences (230 words en), 0 dropped by the checks, 0 change-log entries, status ok run log
20 Oct 2026, 00:09Morning briefDone834 / 8660.0089brief 2026-10-15: 6 sentences (107 words en), 0 dropped by the checks, 0 change-log entries, status ok run log
20 Oct 2026, 00:09Morning briefDone1,242 / 1,5220.0152brief 2026-10-14: 8 sentences (171 words en), 0 dropped by the checks, 0 change-log entries, status ok run log
20 Oct 2026, 00:09Morning briefDone0 / 00brief 2026-10-13: 0 sentences (0 words en), 0 dropped by the checks, 0 change-log entries, status empty run log
20 Oct 2026, 00:09Morning briefFailed0 / 00(Background on this error at: https://sqlalche.me/e/21/f405) run log
20 Oct 2026, 00:07Document watchDone572,997 / 10,3060.0537new documents: hio: +0; okypy: +0; cystat_publications: +0; parliament_health: +0; seeds: +0; eu_council: +0; ecdc_cdtr: +0; ema_news: +0; who_news: +0; neha: +0; state_of_health: +0; ec_policy_pages: run log
19 Oct 2026, 23:47Opportunity radarDone1,173 / 3520.00030 new matches; 5 open items run log
19 Oct 2026, 23:47Shortage watchDone5,903 / 2,4450.00160 new shortages, 0 resolved run log
19 Oct 2026, 23:47Shortage watchFailed6,405 / 3,0000.0018json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 1152 (char 1151) run log
19 Oct 2026, 23:26Anomaly watchDone0 / 00weekly: 6 events; monthly cause groups 91 run log
19 Oct 2026, 23:18Workforce reconciliationDone3,280 / 6140.010929 counts available, 2 missing; estimate rows 6 run log
19 Oct 2026, 22:50Document backfill (one-off)Done10,317,281 / 233,0180.9875new documents: hio: +210; okypy: +488; cystat_publications: +26; parliament_health: +1; seeds: +0. Enriched 725, extracted 711 (agreed 44, review 58, restated 53). run log
19 Oct 2026, 22:38Document backfill (one-off)Done23,509 / 7,1280.0051 run log
19 Oct 2026, 22:34Document backfill (one-off)Failed48,543 / 9,1980.0081json.decoder.JSONDecodeError: Expecting ',' delimiter: line 1 column 2314 (char 2313) run log
19 Oct 2026, 22:07Statistics loaderDone0 / 00eurostat: 53 tables, +755011 new, 41672 revised, 0 errors; who_gho: 27 tables, +5890 new, 0 revised, 0 errors; eea: 2 tables, +2788 new, 8 revised, 0 errors; datagovcy: 1 tables, +0 new, 0 revised, 0 run log
19 Oct 2026, 20:15Document watchDone240 / 140 run log
19 Oct 2026, 20:15Document watchFailed0 / 00TypeError: object of type 'int' has no len() run log