The Stack · Engineering · Document v2026.05

Infrastructure-grade stack.

Postgres on Supabase (Frankfurt, eu-central-1). Hash-chained Vercel Blob archive (fra1). OpenAPI 3.1 specification. MCP server for AI-assistant distribution. Agent-to-agent (A2A) protocol surface. CC BY 4.0 licensed dataset. DOI-anchored permanence. Every data source named at its upstream provider, every scheduled cron listed with its schedule and purpose, every mathematical model summarised. The page a CTO, head of risk, or platform-engineering team reads before they let Avena into their stack.

Source-of-truth · this page·Procurement /governance·Methodology /methodology·Live ops /live
By the numbers
105+
Supabase tables
with RLS on every one
56
Scheduled cron jobs
Vercel Fluid Compute
208+
Public API endpoints
OpenAPI 3.1 spec
27
EU markets indexed
APIP v1.0 schema
12
Named AI agents
autonomous swarm
30+
SQL migration files
reproducible schema
§01 · Data layer

Every upstream feed, named.

No undisclosed sources. No scraping that bypasses terms of service. Every feed is publicly available, licensed through partnership, or federated by a verified counterparty.

LayerProviderCadenceFormatNotes
Property listingsRedSP / MLS Costa (ES) · Casa Sapo (PT) · Immobiliare.it (IT)Daily 03:00 UTCXML / JSONDaily diff against previous run; sold-detection logs to sold_properties
Cadastral referencesCatastro Spain — OVCSWLocalizacionRC SOAP serviceOn listing ingestSOAP/XMLBrowser UA required (bot-detected on identifying UA)
Building footprintsOpenStreetMap Overpass APIOn listing ingestOverpass JSONPolite 1.5s delay between queries
Amenity distancesOSM Overpass (school / hospital / airport / train / supermarket / restaurant / beach)On listing ingestOverpass JSONCached per coordinate
Climate riskCopernicus Climate Data StoreMonthlyNetCDF / JSONFlood, wildfire, heat stress per coordinate
Macro rates / FXECB Statistical Data WarehouseDaily 06:00 UTCSDMX-ML / JSONPolicy rate · Euribor 3M/12M · EUR/GBP/NOK/SEK/USD
Macro real-economyEurostat JSON-stat 2.0Daily 06:00 UTCJSON-statHICP · unemployment · GDP across 27 EU states
NUTS3 region mappingEurostat NUTS classificationStaticCSVPostal code → NUTS3 → regional stats
Transaction data (FR)DVF (Demandes de Valeurs Foncières) — Open Data FranceQuarterlyCSVFrench notarial transaction microdata
Federated partner dataInbound via /api/v1/federated · APIP v1.0 envelopesContinuousAPIP JSONSigned avf_v1_* API key required
§02 · Scheduled jobs

What runs, when, and why.

37 distinct cron endpoints, 56 scheduled executions per day. Every run writes a row to cron_logs with start, end, duration, status, and error. Aggregate health visible at /live.

EndpointSchedulePurpose
pulseDaily 07:00 UTCAvena Pulse daily newsletter generation
auto-post09:00 · 13:00 · 18:00 UTCCross-platform social posts
deal-alertsDaily 08:00 UTCWatchlist deal-alert email digest
detect-eventsDaily 07:30 UTCMarket event detection
detect-anomaliesDaily 07:45 UTCAnomaly scanner — yield/score/price outliers
weekly-alphaMon 07:00 UTCWeekly alpha-signal compilation
snapshot-archiveDaily 06:00 UTCHistorical snapshot archival
generate-briefsDaily 08:00 UTCAI investment brief generation
weekly-scienceFri 07:00 UTCWeekly scientific update
push-training-dataDaily 05:00 UTCHuggingFace dataset upload
regime-checkDaily 06:00 UTCMarket regime classification refresh
developer-monitorMon 04:00 UTCDeveloper Counterpart monitoring
digestMon 06:00 UTCWeekly digest generation
citation-agentDaily 03:00 UTCAI citation tracking
citation-measureDaily 03:30 UTCCitation impact measurement
prometheusEvery 6h (02:00 · 08:00 · 14:00 · 20:00 UTC)Long-horizon prediction agent
predictions/generateDaily 07:00 UTCDaily prediction ledger entries
predictions/verifyDaily 08:00 UTCResolve predictions with elapsed horizon
causal-updateDaily 06:30 UTCCausal indicator refresh
crawler-submitSun 02:00 UTCSubmit URLs to search engines
backlink-loopMon/Wed/Fri 10:00 UTCBacklink monitoring + outreach
weekly-newsletterMon 07:30 UTCNewsletter email send
argusDaily 06:00 UTCArgus surveillance agent
mentatDaily 08:15 UTCMentat reasoning agent
courierDaily 09:00 UTCCourier delivery agent
scribeDaily 02:00 UTCScribe archival agent
curatorDaily 23:50 UTCAVENA Index daily close writer
eu-ingestionEvery 6hEU property ingestion (27-country pipeline)
eu-rescoreEvery 4hEU corpus re-scoring
property-augmentEvery 4hCatastro + OSM + climate enrichment
pricing-history4x dailyPrice snapshot capture
dvf-ingestDaily 04:30 UTCFrench DVF transaction ingest
precursor-scanDaily 05:00 UTCClaude-driven precursor signal generation
counterpart-discoverDaily 03:30 UTCNew developer discovery from listings
counterpart-scanDaily 04:00 UTCCounterpart Score drift refresh
sync-feedsDaily 03:00 UTCEU-wide property feed sync (27 countries)
sync-macroDaily 06:00 UTCECB + Eurostat macro indicator ingest
§03 · Models

The math behind every number.

Eleven distinct models compose the Avena output. The full mathematical specification — including coefficients, segmentation thresholds, and R²/RMSE per run — lives at /methodology.

ModelOutputSpecification
Avena Score0-100 composite40% value + 25% yield + 20% location + 10% quality + 5% risk. Composite of hedonic-underprice, ADR-yield, beach/golf/amenity weighting, energy/build-year/developer, regime/completion risk.
Hedonic OLS (mm²)Market referenceTown × type segmentation with ≥8 obs threshold. Features: log_area, beach_km, sea_view, golf, beds, is_villa, pool_private, energy_high, frontline. Tier-segmented (Budget <€200k / Mid €200-500k / Premium €500k-1M / Luxury €1M+) with global model fallback. Per-run R² and RMSE persisted.
AVM v1.0Runtime <50msTown × type median €/m² base + multiplicative adjustments (beach proximity, sea view, golf, frontline, energy A/B, villa private pool). Capped ±55%. Approximates full OLS to ±3% RMSE on backtest. Confidence band derived from comp sample depth + adjustment count.
Yield modelBottom-up ADRNightly Airbnb/Booking ADR sample per town × type × bed-count. Net of platform fee 15%, property management 18-20%, maintenance reserve 5%, local taxes. Seasonal occupancy by costa.
AVENA Coastal CompositeDaily close40% Value Index + 35% Score Index + 25% Depth Index. Base period rebased to 100 at first available date. Persisted to avena_history at 23:50 UTC daily.
Counterpart Score0-100 + gradeStarting score from listing volume + market concentration + stale-listing rate. Daily drift driven by payment-delay signals, legal disputes, court judgements, delayed/cancelled projects, financial stress. Six grades: AAV/AV/ABV/BBV/CV/DV.
Regime engine6-classTwenty live macro indicators (ECB SDW + Eurostat + computed primitives). Score 0-10 from 10 bull conditions + 2 bear deductions. Output: SUPER_BULL / BULL / GROWTH / NEUTRAL / CAUTION / BEAR. Confidence from indicator dominance.
Memo EngineClaude 4.5Thesis parser → candidate selector (Avena Score × underprice ranking) → Counterpart enrichment → single Claude call returning structured 10-section JSON. Cost ~$0.10/memo. 24h cache by thesis hash.
Precursor signalsClaude 4.5Daily 7-theme rotation: rate shock · regulatory · demographic · geopolitical · climate · supply · tech-disruption. Each signal carries probability, expected horizon, expected impact, and confidence.
Genesis simulatorClaude 4.5Scenario inputs (ECB rate delta, regulatory, migration, supply, GDP, inflation) × markets × horizons → probabilistic distributions for price, yield, regime, liquidity. Falls back to deterministic mock if Claude unavailable.
AI Citation networkTrackingDaily Perplexity + Brave + You.com queries tracking when Avena is cited as a source in AI search responses. Citations persisted to mcp_calls + citation_monitoring.
§04 · Storage layer

Every table grouped by domain.

Supabase Postgres in EU-Frankfurt. 105+ tables. Row-Level Security enforced on every table. Public-read policies on non-sensitive surfaces; service-role writes only on telemetry and registry. 30+ versioned migration files under supabase/migrations/.

DomainTables
Property dataproperties_registry · property_geo · property_climate · property_market · property_pricing_history · property_valuation · property_transactions · price_snapshots · sold_properties
Intelligenceprecursor_signals · precursor_categories · precursor_tracking · genesis_scenarios · genesis_outputs · genesis_prebuilt_scenarios · counterpart_developers · counterpart_projects · counterpart_network_edges · counterpart_stress_alerts
Indices + historyavena_history · regime_history · market_snapshots · score_history · prediction_outcomes · prediction_leaderboard · predictions
Macromacro_indicators · causal_indicators · causal_chains · outcome_probabilities
AI / agentsagent_missions · mission_events · auto_training_pairs · hf_pushes · mcp_calls · oracle_api_queries · prometheus_runs
Citation networkcitation_monitoring · citation_measurements · citation_gaps · citation_injections · generated_answers · backlink_drafts · ai_citation_*
Federationfeed_configs · feed_sync_log · federated_partners · federated_submissions · federation_nodes · webhook_deliveries · webhook_subscriptions
Memo + AVMmemo_generations · avm_queries · avm_validation
Operationscron_logs · command_health · findings · agent_registry · subscriptions · api_keys · api_usage_log
Communicationsnewsletter_subscribers · newsletter_issues · email_captures · pulse_editions · digest_issues · deal_alerts · alert_matches · alert_notifications
§05 · Infrastructure

What the bytes ride on.

LayerStack
FrontendNext.js 14 (App Router) · TypeScript strict · Tailwind v4 · Recharts
RuntimeVercel Fluid Compute · Node.js 24 LTS · Edge functions for routing
DatabaseSupabase Postgres · eu-central-1 (Frankfurt) · Row-Level Security on every table
CronVercel Cron (56 scheduled jobs) · cron_logs audit table on every run
AIAnthropic Claude Sonnet 4.5 · MCP server for AI assistant integration
PaymentsStripe (Checkout + Subscriptions + Webhooks) · PCI-compliant
EmailResend (transactional + newsletter) · DKIM/SPF/DMARC
AuthSupabase Auth · API keys SHA-256 hashed at rest
StorageSupabase Storage (property images) · CDN distribution via Vercel
ObservabilityVercel Observability · cron_logs (success/error/duration_ms) · per-API request log
SearchBuilt-in Cmd+K palette · internal full-text on properties + town + developer
StandardsAPIP v1.0 (JSON Schema draft-07) · OpenAPI 3.1 · Schema.org JSON-LD on every page
CitationX-Cite-As · X-Citation-APA · X-Citation-BibTeX headers on every API response
§06 · Standards & identifiers

The credentials that make Avena citable.

StandardIdentifier / Detail
APIP v1.0avenaterminal.com/standards/apip-v1.json · open property intelligence protocol (CC BY 4.0)
Zenodo DOI10.5281/zenodo.19520064 · permanent archive of the open dataset
WikidataQ139165733 · machine-readable cross-reference
LicenseCC BY 4.0 — attribution required, commercial reuse permitted
RICSTech Partner 2026 (Royal Institution of Chartered Surveyors)
OpenAPI3.1 spec at /api/openapi.json — 208 endpoints documented
MCPModel Context Protocol server at /mcp — search_properties, get_property, get_market_stats, get_top_deals, estimate_roi, compare_alternatives, market_timing
Schema.orgJSON-LD on every page (Organization, Dataset, SoftwareApplication, NewsArticle, TechArticle)
LLMs.txt/llms.txt + /llms-full.txt for AI training transparency
Methodology versioning30-day advance notice on /changelog for any methodology change
§07 · Agent swarm

Twelve autonomous agents running the operation.

Each agent name resolves to one or more backing crons. Status, last-run timestamp, and task-count derived live from cron_logs. Visit /swarm for live telemetry.

Bloodhound

live
Anomaly detection
eu-rescore · precursor-scan

Vault

live
Data archival
scribe · curator · pricing-history

Von Gogh

live
Content generation
mentat · courier · weekly-newsletter

Einstein

live
Correlation analysis
causal-update · argus

Oracle

live
Macro monitoring
regime-check · prometheus

Hawkeye

live
Image analysis
property-augment

007

live
Developer health
counterpart-scan · counterpart-discover · developer-monitor

Darwin

live
Training pipeline
push-training-data

Morpheus

live
Meta monitoring
quarterly-report

Shadow

live
Citation hunting
citation-agent · citation-measure · crawler-submit · backlink-loop

Curie

live
Research synthesis
research-lab

Mercury

live
Newsletter delivery
deal-alerts · eu-ingestion
§08 · Audit trail

Every run, every change, logged.

SurfaceLogged
Cron runscron_logs (agent_id, status, started_at, completed_at, duration_ms, error, output_summary). Every scheduled execution writes a row.
API requestsapi_usage_log per-key, per-endpoint, per-day. Visible in real time at /live.
Memo generationsmemo_generations table with thesis_hash, generation_ms, api_cost_usd, generated_by (model version), views.
AVM queriesavm_queries with full inputs, predicted_value, confidence, model_version.
Methodology changes/changelog with 30-day advance notice. Each methodology version bumped in cite-as.
Schema migrationssupabase/migrations/ — chronological, idempotent, reproducible. Anyone can rebuild the schema from this directory.
Data residencySupabase eu-central-1 (Frankfurt). All EU data remains in EU.
Citation trackingX-Cite-As + X-Citation-APA + X-Citation-BibTeX on every API response. AI citation network monitored daily.

v2026.05 · Avena Terminal Engineering · Cite DOI 10.5281/zenodo.19520064

/governance · /methodology · /live · /standards/apip-v1.json