The data IDE for everything after select

Phos4 comprehends your SQL, analyzes your data, and gets your business, so you can dispatch agents that do what you ask and notice what you miss

Phos4 — data IDE interface

Why Phos4

Built for data teams who prompt as much as they type, Phos4 is your one surface to analyze, model, and ship

Running query
Profiling queries
Charting insights
Analyze
CTE preview, table diff, and join profiler keep you oriented. Pivots, filters, and charts help you explore until answers materialize, all without pasting to sheets.
1{{ config(materialized='incremental') }}
2select game_id, team, red_zone_pct,
3  {{ rolling_avg('pts', 4) }} as form
4from {{ ref('fact_games_old') }}depth: 4
Model
Develop your models with intellisense, column lineage, rename propagation, and auto-generated docs. The developer experience SQL never had.
PR #142 · Rolling trend audit
+42
−68
 running
Ship
Code or insights: Branch, commit, and PR with automated reviews, then tailor findings to their audience without the drag of copy-writing.

The makers of your IDE gave up after the results table

Phos4 keeps pushing: Not a model bolted onto a text editor, but a crew of agents designed to minimize distractions and keep you in flow.

Dispatch agents to tackle your backlog

Autonomous agents grab a ticket, check out a branch, work against a dev schema, and report back
You review and provide feedback

Backlog · 24
INV-412Investigate null_pct spike in signup.eventsurgent
Agents working · 0
waiting for dispatch
Ready for you · 0

Move from raw results to root cause without the copy-paste

Explore results with pivots, charts, and filters. Then prompt the AI to run correlations, projections, and anomaly detection across the result set

Pivot settings
Rows02
Aateam.divisionasc
Aateam.nameasc
Columns01
123game.weekasc
Values01
123points_scoredsum
Filters01
123season=2025
123game.week4
Add filter
synced
Team
W1
W2
W3
W4
W5
W6
W7
W8
Total
Avg
AFC East3 teams
BUFBills
34
38
22
18
31
30
24
197
28
MIADolphins
20
24
17
30
16
28
27
162
23
NEPatriots
17
14
23
20
16
21
13
124
18
AFC North3 teams
BALRavens
24
20
33
35
20
41
28
201
29
CINBengals
14
17
27
24
22
31
19
154
22
PITSteelers
22
17
24
28
24
17
20
152
22
AFC West2 teams
KCChiefs
27
31
19
22
27
26
31
183
26
LACChargers
34
20
27
30
22
24
17
174
25
NFC East2 teams
PHIEagles
28
34
24
21
34
27
24
192
27
DALCowboys
33
28
17
25
10
41
20
174
25
NFC North2 teams
DETLions
21
38
26
31
24
31
28
199
28
GBPackers
18
24
18
29
23
21
27
160
23
NFC West2 teams
SF49ers
30
35
17
35
24
30
34
205
29
LARRams
24
20
30
16
21
27
24
162
23
League Avg
25
26
23
25
25
25
28
23
199
25
Column profile
nfl_combine · 100 rowspulled from BAL · W6
player_name
100 uniq
overall_pick
1 → 224
drafted_by
28 teams
position
WR · 21
wingspan_in
μ 77.1
composite
left-skew
athletic_rank
uniform
bench_reps
mode 14
forty_yard
μ 4.58
vertical_in
μ 34.6
is_senior
65% T
shuttle_run
μ 4.32

Bring the agents in on your tribal knowledge

Phos4 processes every query you run for key insights, chasing down the sidequests while you focus on the mission. Prior findings get reaffirmed or invalidated as new data arrives.

Memory graph · 100 lobe · 380 totalmodel context
availability model
model memory

Provider availability model

reaffirmed
dbt graph · refreshed 18m ago2026-02-11confidence high
Core capacity model for posted hours. Agents remember its grain, source priority, and the edge cases that have broken past rebuilds.
Learning
  • Grain is provider_id + service_date + source_owner.
  • Override rows take precedence over recurring availability.
  • Admin blocks are modeled separately before net availability is calculated.
Runnable proof SQL
Inspect active source owners
select
    source_owner
  , count(*) as provider_dates
  , count_if(has_admin_block) as with_admin_blocks
from analytics.capacity_daily
where service_date >= current_date - interval '14 day'
group by 1
order by provider_dates desc;
Observed output
source_ownerprovider_dateswith_admin_blocks
recurrence_snapshot18,4202,114
override_snapshot1,083241
manual_closure126126
availability snapshotsoverride precedenceadmin blocks
Checked by 6 scheduled tests
Learned from model runs, comments, and incidents

Better SQL without the gruntwork

Linting, antipattern detection, and style guides your team actually agreed on. Phos4 proposes refactors based on query plans and flags issues before they hit production.

1
WITH scored AS (
2
SELECT
3
g.week,
4
t.abbr AS team,
5
t.division,
6
g.points_scored AS pts,
7
AVG(g.points_scored) OVER (
8
PARTITION BY t.abbr
9
ORDER BY g.week
10
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
11
) AS rolling_3,
12
AVG(g.points_scored) OVER (
13
PARTITION BY t.abbr
14
) AS season_avg
15
FROM games g
16
JOIN teams t USING (team_id)
17
WHERE g.season = 2025
18
)
19
SELECT team, division, week, pts,
20
ROUND(rolling_3, 1) AS last3_avg,
21
ROUND(rolling_3 - season_avg, 1) AS vs_season
22
FROM scored
23
WHERE week >= 5
24
ORDER BY vs_season DESC
25
LIMIT 25;
Running nightly scan…
Ask phos4 to refactor a model…
Claude Thanos 4.8

Other languages got Intellisense and vibe coding while SQL got syntax highlighting and hallucinations.

We got tired of waiting, so we built Phos4
LT

Leon Tchikindas

CEO, Phos4

Works with your stack

Snowflake logoSnowflake
BigQuery logoBigQuery
Redshift logoRedshift
Databricks logoDatabricks
DuckDB logoDuckDB
dbt logodbt
Linear logoLinear
GitHub logoGitHub
Slack logoSlack
Notion logoNotion
Confluence logoConfluence

See what happens when your IDE actually tries

Your agents, your schemas, your SQL, answering the questions you posed and the ones you should have asked.