Skip to main content

Intratio Tutorial & Complete Feature Guide

Welcome. This guide compresses everything you need: concepts, UI navigation, API, analytics patterns, portfolio construction, monitoring and extension. Use the left navigation or just scroll—sections auto-highlight.

1. Onboarding & Account Basics #

1.1 Create Account & Verify Email #

Sign up using email or supported social providers (Google / Microsoft / Facebook). Email verification is mandatory for API access and quota tracking.

1.2 Subscription Tiers #

You need the Optimize entitlement for all programmatic endpoints and advanced analytics modules. Visit Pricing to upgrade.

1.3 Retrieving Your API Key

API Key: YOUR_API_KEY

Every request must include an X-API-Key header. Base URL for this session: https://intratio.com/api/v1.

1.4 Core Data Objects

  • Company: Fundamental snapshot + trailing numeric metrics.
  • Signal: Forecast value per horizon (3_months, 1_month, 2_weeks, 1_week, 3_days) and optionally alpha-adjusted variants.
  • Portfolio Optimization: Mean-variance style solver leveraging forecast-derived expected returns, constraints and objective variants.
  • Analytics Metrics: Distributions, correlations, outliers, trends, change detection, percentiles and peers aggregation.

3. Core Forecast & Metric Concepts #

3.1 Forecast Horizons

Horizon keys: 3_months, 1_month, 2_weeks, 1_week, 3_days. Alpha versions normalize relative to baseline risk/benchmark behaviour.

3.2 Signal Quality & Change

Change compares successive dates; Trend accumulates over a window (fast SQL variant). Use both to detect emerging acceleration.

3.3 Percentiles

Percentile = percentage of observations strictly below the company value. Provided for All, Sector and Industry contexts.

3.4 Aggregations

Sector & industry endpoints return primarily Median to reduce outlier distortion. Dispersion endpoints show spread (std, IQR) enabling factor crowding detection.

4. API Quick Start #

Base URL: https://intratio.com/api/v1 — Add trailing slash & query parameters as needed.

curl -s -H "X-API-Key: YOUR_API_KEY" https://intratio.com/api/v1/signals/top/?horizon=3_months | jq
import requests
API_KEY='YOUR_API_KEY'; BASE='https://intratio.com/api/v1'
r = requests.get(f"{BASE}/companies/AAPL/", headers={'X-API-Key':API_KEY})
print(r.json()['ticker'], 'loaded')
const API_KEY='YOUR_API_KEY'; const BASE='https://intratio.com/api/v1';
fetch(`${BASE}/metrics/distribution/?metric=Gross_Margin_percentage`,{headers:{'X-API-Key':API_KEY}})
  .then(r=>r.json()).then(console.log);

4.1 Essential Endpoints

EndpointPurposeKey Params
/usage/Quota counters-
/signals/top/Positive forecastshorizon, alpha
/signals/worst/Negative forecastshorizon, alpha
/signals/change/Two-date deltafrom, to, horizon
/signals/trend/Window momentumwindow, horizon
/metrics/distribution/Histogram & statsmetric, sector, industry
/metrics/correlation/Matrixmetrics, sector, industry
/metrics/outliers/Z / IQR flagsmetric, method, threshold
/companies/<ticker>/snapshot/20-key metrics + peers-
/portfolio/optimize/Weights solvertickers, objective

4.2 Authentication Pattern

Use a thin wrapper to attach headers; rotate keys by regenerating in profile (coming soon) without downtime.

5. Core Analytical Workflows #

Idea Generation

Surface fresh directional edges.

  1. Check /signals/top/ & /signals/worst/.
  2. Open selected ticker pages.
  3. Validate fundamentals percentile outliers.

Factor Discovery

Uncover metrics correlating with forecast dispersion.

  1. Pull /metrics/correlation/ with profitability & leverage fields.
  2. Plot matrix heatmap (Analytics dashboard already)
  3. Rank high absolute correlation pairs.

Peer Relative Value

Assess percentile advantage.

  1. /companies/TICKER/snapshot/
  2. Review peer_median gaps.
  3. Cross-check outliers & sector median rank.

Momentum Validation

Confirm persistence.

  1. /signals/trend/ (window=10)
  2. Intersect with /signals/change/ large magnitude moves.
  3. Filter by predictability threshold.

Risk Control

Detect concentration & anomalies.

  1. /metrics/distribution/ for leverage metrics.
  2. /metrics/outliers/ (zscore)
  3. Exclude extreme exposures in optimizer.

Sector Rotation

Allocate towards improving medians.

  1. /sectors/rank/?metric=Gross_Margin_percentage
  2. /signals/change/ for rising sectors' constituents.
  3. Construct overweight basket.

6. Portfolio Optimization #

The optimizer maps selected tickers to expected returns derived from the latest horizon forecast (raw or alpha). Objectives:

  • MaximizeReturnToRisk (maximum Sharpe)
  • MinimizeRisk (efficient risk given target return)
  • MaximizeReturn (efficient return given target risk)

Optional constraints: weight bounds, total cash out (capital deployment), target portfolio beta.

import requests, json
payload={
  "tickers":["AAPL","MSFT","GOOGL"],
  "horizon":"3_months",
  "alpha":false,
  "objective":"MaximizeReturnToRisk",
  "weight_bounds":[0,1],
  "target_risk":10,
  "target_return":10
}
res=requests.post("https://intratio.com/api/v1/portfolio/optimize/",headers={'X-API-Key':'YOUR_API_KEY'},json=payload)
print(res.json()['performance'])

6.1 Interpreting Output

FieldDescription
expected_return_90dScaled forecast based aggregate expected return for horizon
volatility_90dModelled portfolio variance translated to horizon
sharpe_90dReturn to risk ratio (no risk-free adjustment)
portfolio_betaOptional computed beta vs benchmark (if available)

6.2 Best Practices

  • Exclude tickers missing forecasts (endpoint returns errors for missing).
  • Apply metric filters for quality (e.g. Debt_per_Equity upper bound).
  • Rebalance when /signals/change/ indicates drift beyond threshold.

7. Advanced Analytics Modules #

The Analytics Dashboard renders interactive Plotly visuals powered by the same endpoints:

  • Sectors & Industries Ranking: Median aggregation by selected metric.
  • Signals Distribution: Central tendency & tail profile for horizon.
  • Metric Distribution & Outliers: Robust trimming & hist fences.
  • Correlation Matrix: Multi-metric relationship map.
  • Scatter & Regression: Quick factor scatter with linear fit & correlation.
  • Percentile Compare: Multi-ticker relative positioning across metrics.
  • Signals Change & Trend: Short term shock vs multi-bar momentum.
  • Company Snapshot: 20-key metrics vs peer median.

7.1 Extending Analytics

Copy network calls from browser DevTools (all /api/v1/...)—compose bespoke research notebooks using identical JSON contracts.

8. Monitoring, Watchlists & Risk Flags #

Design a lightweight monitoring loop:

import requests, time
API='YOUR_API_KEY'; BASE='https://intratio.com/api/v1'
WATCH=['AAPL','MSFT','NVDA']
while True:
  ch=requests.get(f"{BASE}/signals/change/?horizon=3_months",headers={'X-API-Key':API}).json()['results']
  flagged=[r for r in ch if r['ticker'] in WATCH and abs(r['change'])>0.05]
  if flagged: print('Rebalance candidates:', flagged)
  time.sleep(3600)

Combine with /metrics/outliers/ to dynamically exclude deteriorating quality names.

9. Data Integrity & Limitations #

  • Daily forecast refresh—intraday calls may not shift values until next batch.
  • Median aggregation over raw averages to damp outlier skew.
  • Percentiles strict-below methodology (ties cluster at same rank threshold).
  • Missing metrics return null; propagate carefully in custom analytics.

10. Roadmap & Extensibility #

WebhooksSignal change push events
Custom FactorsUser uploaded metric blends
Scenario OptimizerStress & regime overlays
Key RegenerationSelf-service rotation
Alert RulesThreshold-based email triggers

11. FAQ #

How often should I re-run optimization?

Common cadence: daily after forecast refresh, plus on significant /signals/change/ divergences.

Raw vs Alpha forecast?

Alpha attempts to isolate stock-specific return component; use in diversified baskets to reduce systematic drift.

Why medians everywhere?

Robust central tendency—less sensitivity to single distortive outlier values, improving comparative stability.

Percentile vs Rank?

Percentile gives continuous 0–100 scale; you can derive rank by ordering on value if discrete ordering required.

12. System Architecture & Data Flow #

This section clarifies how raw inputs become actionable forecasts and portfolio outputs so you can reason about latency, consistency, and extensibility.

Data Sources: Market quotes, fundamentals (periodic filings), sector classifications, macro series. Batches pulled / diffed and normalized nightly (UTC). Checksums and schema validation ensure structural integrity before landing in the staging zone.
Fields are cleaned (type coercion, currency normalization USD base, trailing twelve month roll-ups). Missing fundamental sub-components flagged; null propagation preserved instead of forward-filling to avoid synthetic signal distortion.
Model features produced (growth rates, margins, leverage ratios, volatility bands, factor exposures). Outlier winsorization applied (adaptive percentile caps) to stabilize training gradients.
Ensemble forecaster (stacked gradient boosting + elastic nets + calibrated residual correction). Multi-horizon targets produced simultaneously to enforce temporal coherence (monotonic penalty for inconsistent directional flips across adjacent horizons).
Alpha isolation uses cross-sectional regression vs benchmark factor proxies; residual becomes alpha variant. Quality gating discards horizons where confidence score under threshold.
Materialized forecast tables keyed by (ticker, date, horizon, variant). REST layer exposes aggregated + raw values; caching (etag + short TTL) balances freshness with performance. Portfolio optimizer reads from in-memory snapshot updated after daily publish.
Tip: Understanding pipeline timing (publish window) helps schedule backtests and production rebalances near fresh data availability.

13. Forecast Methodology & Interpretation #

13.1 Signal Scale

Signals represent an expected relative directional magnitude. They are not guaranteed percentage returns; instead they rank order opportunities. Empirically the top decile historically outperforms median baskets after transaction cost adjustments (internal research; forthcoming whitepaper).

13.2 Confidence & Reliability

Not all horizons have equal predictive stability. Longer horizons incorporate more noise; use convergence across at least two adjacent horizons for higher conviction. Future release: explicit confidence field beta.

13.3 Alpha Variant

The alpha=true variant neutralizes broad market and sector factor exposures using rolling factor betas. Residual emphasis reduces systematic drift but slightly lowers raw magnitude. Use when constructing diversified multi-sector portfolios.

13.4 Limitations & Risks

  • Regime Shifts: Structural breaks (macro shocks, policy changes) can reduce model fit until adaptation cycle completes.
  • Data Gaps: Newly listed tickers with sparse historical fundamentals yield lower quality signals.
  • Survivorship: Downstream backtests must incorporate delisted names to avoid bias (future extended dataset export).
Note: Past signal performance does not guarantee future results. Use as one component of a holistic investment process.

14. API Deep Dive (Auth, Pagination, Filtering) #

14.1 Authentication

Supply X-API-Key with every request. Unauthorized responses: 401. Invalid or missing key: 403. Rotate keys (coming soon) with zero downtime by creating overlapping validity windows.

14.2 Pagination

List endpoints (e.g. /companies/, /signals/top/) implement standard limit/offset parameters: ?limit=100&offset=200. Default limit often 50. Always code defensively against truncated result sets.

import requests
API='YOUR_API_KEY'; BASE='https://intratio.com/api/v1'
all_rows=[]; offset=0
while True:
  r=requests.get(f"{BASE}/signals/top/?horizon=3_months&limit=100&offset={offset}",headers={'X-API-Key':API}).json()
  all_rows.extend(r['results'])
  if not r.get('next'): break
  offset+=100
print('Loaded', len(all_rows))

14.3 Filtering Patterns

  • Range: Gross_Margin_percentage__gte=40
  • In-list: ticker__in=AAPL,MSFT,NVDA
  • Case-insensitive contains: name__icontains=pharma

14.4 Rate Limiting

Response headers expose X-RateLimit-Remaining, X-RateLimit-Reset. On 429, backoff until reset epoch. Avoid burst loops; batch tickers or use vector endpoints.

14.5 Error Codes

StatusDescriptionResolution
400Validation errorCheck parameter names & types
401Missing authAdd header or renew session
403Invalid key / insufficient tierUpgrade plan or regenerate key
404Resource missingVerify ticker or endpoint path
429Rate limit exceededRespect reset header; implement sleep
500Internal errorRetry with exponential backoff; contact support if persistent

15. Data Dictionary (Selected Metrics) #

Key standardized fields. (Extended downloadable dictionary forthcoming.)

FieldDefinitionUnitNotes
Gross_Margin_percentage(Revenue - COGS)/Revenue * 100%TTM basis
Operating_Margin_percentageOperating Income / Revenue * 100%TTM
Net_Income_margin_percentageNet Income / Revenue * 100%TTM
Debt_per_EquityTotal Debt / Shareholder EquityratioBalance sheet date-aligned
Revenue_growth_yoy_percentage((Rev_t - Rev_{t-4})/Rev_{t-4}) * 100%Quarter over same quarter prior year
EPS_diluted_ttmTrailing twelve month diluted EPScurrencyAdjusted for splits
Shares_floatPublic float sharescountMay lag filings
Beta_1yRegression beta vs benchmark over ~252 trading daysratioRolling update
EV_to_EBITDAEnterprise Value / EBITDAratioForward-looking if guidance available else TTM
Tip: Combine percentile + raw value to differentiate high-ranking metrics driven by sector-wide inflation vs company-specific excellence.

16. Backtesting & Performance Evaluation #

16.1 Principles

  • Use point-in-time forecasts only (historical snapshot endpoints forthcoming).
  • Incorporate realistic slippage & transaction costs.
  • Beware look-ahead leakage (delay trade execution until next session open).
import pandas as pd, requests, time
API='YOUR_API_KEY'; BASE='https://intratio.com/api/v1'
# 1. Fetch daily top decile forecasts (simplified)
raw=requests.get(f"{BASE}/signals/top/?horizon=3_months&limit=100",headers={'X-API-Key':API}).json()['results']
df=pd.DataFrame(raw)
# 2. Hypothetical next-day price change (placeholder; replace with market data join)
df['fwd_return']=0.01  # mock
# 3. Evaluate mean realized return of top basket
print('Mean fwd return', df['fwd_return'].mean())
For each backtest date D:
  Pull forecasts published at D (point-in-time snapshot)
  Select top N by horizon score
  Execute at next open (D+1) or VWAP (model) with cost deduction
  Hold until exit rule (time-based or signal decay)
  Record realized returns & risk metrics
Aggregate performance: CAGR, volatility, Sharpe, max drawdown, turnover

16.2 Key Metrics

  • Hit Rate: % of positions with positive realized return.
  • Information Coefficient: Rank correlation between forecast and realized horizon return.
  • Turnover: (Sum of absolute weight changes)/2; controls transaction costs.
  • Capacity: Liquidity constraints (shares traded vs ADV) if scaling strategy.

17. Advanced Portfolio Techniques #

17.1 Constraints

  • Per-asset bounds weight_bounds
  • Group / sector exposure caps (coming)
  • Target portfolio beta ranges
  • Minimum forecast quality score (future)

17.2 Scenario Stress (Manual)

Adjust expected returns downward for vulnerable sectors under hypothetical macro shocks; rerun optimizer to produce defensive allocation.

# Example manual scenario tweak
for t in payload['tickers']:
  if t in CYCLICALS: scenario_expected_returns[t]*=0.7

17.3 Rebalancing Triggers

  • Signal Drift: Forecast percentile change > 20 pts.
  • Risk Drift: Portfolio volatility estimate +15% vs baseline.
  • Correlation Regime: Mean pairwise correlation shift > threshold.

18. Integration Recipes (Python, JS, Excel, Airflow) #

18.1 Python Session Wrapper

class IntratioClient:
  def __init__(self, key, base='https://intratio.com/api/v1'):
    self.key=key; self.base=base
  def _get(self, path, **params):
    import requests; r=requests.get(f"{self.base}{path}",params=params,headers={'X-API-Key':self.key}); r.raise_for_status(); return r.json()
  def top_signals(self,horizon='3_months',limit=50):
    return self._get('/signals/top/', horizon=horizon, limit=limit)
client=IntratioClient('YOUR_API_KEY')
print(client.top_signals()[:2])

18.2 Node.js Fetch

import fetch from 'node-fetch';
const KEY='YOUR_API_KEY', BASE='https://intratio.com/api/v1';
const res=await fetch(`${BASE}/signals/worst/?horizon=1_month`,{headers:{'X-API-Key':KEY}});
console.log(await res.json());

18.3 Excel / Power Query

let
  Source = Json.Document(Web.Contents("https://intratio.com/api/v1/signals/top/?horizon=3_months", [Headers=[X-API-Key="YOUR_API_KEY"]])),
  Results = Source[results]
in Results

18.4 Airflow DAG Snippet

from airflow import DAG
from airflow.operators.python import PythonOperator
import requests, pendulum
API='YOUR_API_KEY'; BASE='https://intratio.com/api/v1'

def pull_signals():
  r=requests.get(f"{BASE}/signals/top/?horizon=3_months",headers={'X-API-Key':API}).json()
  # store to warehouse...

with DAG('intratio_daily_signals', start_date=pendulum.today('UTC').add(days=-1), schedule='0 5 * * *', catchup=False) as dag:
  PythonOperator(task_id='fetch', python_callable=pull_signals)

19. Automation & Alerting #

While native webhooks are on the roadmap, interim automation can poll endpoints and dispatch notifications.

import requests, smtplib, time
API='YOUR_API_KEY'; BASE='https://intratio.com/api/v1'
THRESH=0.07
while True:
  ch=requests.get(f"{BASE}/signals/change/?horizon=3_months",headers={'X-API-Key':API}).json()['results']
  movers=[c for c in ch if abs(c['change'])>THRESH]
  if movers:
    body='\n'.join(f"{m['ticker']} {m['change']:.2%}" for m in movers)
    # send email (pseudo)
    print('ALERT:\n'+body)
  time.sleep(3600)
Tip: Align polling interval with forecast update cadence; excessive polling consumes quota without added insight.

20. Security, Compliance & Governance #

  • Transport: All endpoints over HTTPS; enforce SSL redirect in production.
  • Key Storage: Store API key in environment variables or secret manager (never commit to version control).
  • Least Privilege: Separate keys for staging vs production workloads.
  • Audit: Keep internal logs of programmatic calls & derived signals used in investment decisions.
  • Compliance: Combine with internal restricted lists to pre-filter tickers before optimization.

21. Troubleshooting & Diagnostics #

SymptomLikely CauseAction
Empty results arrayFilters too restrictiveRelax params; test base endpoint
Intermittent 429sBurst pollingIntroduce jittered exponential backoff
Null metricsRecent listing / missing filingFallback to peers or exclude
Optimizer errorInvalid objective / insufficient tickersVerify payload schema & min 2 assets
Latency spikeCold cache / large parameter setBatch requests, reuse HTTP session

22. Glossary #

Alpha

Residual return component after removing systematic factors.

Horizon

Forward-looking time bucket a forecast targets.

Percentile

Proportion of cohort observations below value.

Sharpe

Return per unit volatility (risk-free omitted here).

Turnover

Portfolio trading intensity; high turnover elevates costs.

Winsorization

Clipping extreme values to reduce outlier influence.

23. Extension & Contribution Guide #

Architectural extensibility points (roadmap aligns with these hooks):

  • Custom Factor Uploads: Compose weighted blends (e.g. quality composite) for percentile ranking (planned).
  • User Webhooks: Push-based event stream for signal change triggers.
  • Scenario Engine: Inject stress vectors into optimizer expected return and covariance inputs.
  • Client SDKs: Official Python / JS wrappers to reduce boilerplate.
Idea: Prototype custom composite factors locally—store intermediate metric transformations then compare IC vs baseline forecast to validate incremental alpha.

24. Quick Start Pathways #

Beginner
  • Create account & copy key
  • Load /signals/top/ in browser
  • Open 2 ticker forecast pages
  • Run first optimization with 3 tech tickers
Intermediate
  • Batch fetch top & worst lists
  • Build watchlist poller
  • Generate correlation heatmap
  • Implement simple rebalance script
Quant / Advanced
  • Compute rolling IC time series
  • Integrate optimizer into strategy engine
  • Backtest multi-horizon ensemble weighting
  • Deploy Airflow daily pipeline

25. Summary Checklist #

  • Confirm API key & test authentication.
  • Fetch initial forecasts & identify candidate tickers.
  • Validate fundamentals (margin, leverage percentile).
  • Run baseline portfolio optimization.
  • Set monitoring loop & alert thresholds.
  • Iterate performance evaluation (hit rate, IC, Sharpe).
  • Refine constraints & integrate scenario adjustments.
  • Document process & compliance considerations.
Congratulations: You now have an end-to-end workflow: discovery → validation → construction → monitoring → evaluation.

Next: Explore Live Data

1. Open Analytics Dashboard and replicate API flows visually.
2. Dive into API Docs for live request experimentation.
3. Construct an initial optimized allocation.

Intratio Tutorial · Powered by the same REST endpoints you can integrate programmatically.

My Portfolio

Investment Dashboard

Loading your portfolio...