How Graieva works

A high-level look at the engine, the data model, and how your proprietary feed chemistry stays yours.

The engine loop

RIQ-Core™ v1.3 runs a 300-hour simulation in sub-second time. Instead of static lookup tables, it integrates the rumen as a dynamic system — feed entering, microbes growing, ammonia recycling, and digested nutrients leaving — all on a 6-minute timestep.

  • Intake scheduled across 24-hour feeding events
  • Urea recycling driven by rumen ammonia gradients
  • Microbial protein (MCP) from bacterial growth on fermented carbs
  • Protozoal predation grazing bacteria and recycling nitrogen
  • Dynamic passage rates scaled by DMI, body weight, and forage ratio
Steady-state convergence

The solver runs until hours 276–300 show stable rumen N, MCP flow, and pH. That window is cached per diet + kinetics + model version, so reopening a pen is instant.

Rumen NMCP flowpH / VFAUrea recyclingCH₄Manure N split
Tenant isolation

Every feed library, kinetics set, and simulation result is scoped to your tenant. Row-level security in Postgres enforces this at the database layer — there is no cross-tenant query path.

Cold-start kinetics
New feeds get blended kinetics from an anonymized global index via similarity search. Your chemistry is never exposed.
Cache invalidation
Edit a feed’s kinetics and only the steady-state window for that diet hash is recomputed — not the entire history.

Data model & privacy

The platform is built on a multi-tenant PostgreSQL backend with vector extensions for feed embedding search. Each consulting practice (or enterprise division) operates as an isolated tenant.

  • Row-level security policies enforce tenant boundaries
  • Feed embeddings are anonymized before entering the Global Commons
  • Simulation results are cached by diet hash and model version
  • Audit exports include mass-balance reports and 300-hour traces

Want to see the math? The full equation registry and regression suite are available inside the dashboard.

Open the dashboard