*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,’Segoe UI‘,Roboto,sans-serif;background:#0f172a;color:#e2e8f0;padding:20px;line-height:1.6}
h1{text-align:center;font-size:2em;margin:10px 0 5px;background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.subtitle{text-align:center;color:#94a3b8;margin-bottom:25px;font-size:0.95em}
.controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:20px;padding:15px;background:#1e293b;border-radius:12px}
.controls label{font-size:0.85em;color:#94a3b8;display:flex;flex-direction:column;gap:4px}
.controls select,.controls input{padding:8px 12px;border:1px solid #334155;border-radius:8px;background:#0f172a;color:#e2e8f0;font-size:0.9em;min-width:150px}
.controls select:focus,.controls input:focus{outline:none;border-color:#60a5fa}
table{width:100%;border-collapse:separate;border-spacing:0;background:#1e293b;border-radius:12px;overflow:hidden}
th{background:#1e3a5f;padding:12px 14px;text-align:left;font-size:0.85em;text-transform:uppercase;letter-spacing:0.5px;cursor:pointer;user-select:none;white-space:nowrap;color:#93c5fd}
th:hover{background:#2563eb}
th .sort-icon{margin-left:4px;opacity:0.5}
th.sorted .sort-icon{opacity:1}
td{padding:10px 14px;border-top:1px solid #334155;font-size:0.9em}
tr:hover td{background:#252f42}
.provider{font-weight:600;color:#a78bfa}
.model-name{font-weight:700;color:#f1f5f9}
.price{color:#4ade80;font-weight:600}
.context{color:#fbbf24}
.tag{display:inline-block;padding:2px 8px;border-radius:12px;font-size:0.75em;margin:2px}
.tag-open{background:#1e3a3a;color:#5eead4}
.tag-proprietary{background:#1e2a4a;color:#93c5fd}
.tag-multimodal{background:#2a1e3a;color:#c4b5fd}
.best-for{color:#94a3b8;font-size:0.82em}
.strengths{color:#86efac;font-size:0.82em}
.weaknesses{color:#fca5a5;font-size:0.82em}
@media(max-width:768px){
table{font-size:0.8em}
th,td{padding:8px 6px}
.controls{flex-direction:column;align-items:stretch}
}
🤖 AI Model Comparison 2026
Reviewed: June 4, 2026
Compare 20 leading AI models by price, context window, and capabilities. Data as of May 2026.
| Model | Provider | Input $/1M | Output $/1M | Context | Best For | Strengths |
|---|
const models=[
{name:“GPT-4o“,provider:“OpenAI“,input:2.50,output:10.00,ctx:128000,bestFor:“General chat, image analysis, coding“,strengths:“Multimodal, fast, cost-effective“,weaknesses:“Less capable than GPT-4.5″,tags:[„proprietary“,“multimodal“]},
{name:“GPT-4.5″,provider:“OpenAI“,input:75.00,output:150.00,ctx:128000,bestFor:“Complex reasoning, creative writing“,strengths:“Best general reasoning, emotional intelligence“,weaknesses:“Very expensive, slower“,tags:[„proprietary“,“multimodal“]},
{name:“GPT-4.1″,provider:“OpenAI“,input:2.00,output:8.00,ctx:1000000,bestFor:“Long documents, agentic coding“,strengths:“1M context, instruction following“,weaknesses:“Newer, less battle-tested“,tags:[„proprietary“,“multimodal“]},
{name:“o3″,provider:“OpenAI“,input:2.00,output:8.00,ctx:200000,bestFor:“Scientific research, math, complex problems“,strengths:“Advanced reasoning, scientific analysis“,weaknesses:“Slower, more expensive“,tags:[„proprietary“]},
{name:“o4-mini“,provider:“OpenAI“,input:1.10,output:4.40,ctx:200000,bestFor:“High-volume classification, lightweight reasoning“,strengths:“Fast, cheap, good reasoning“,weaknesses:“Less capable than o3″,tags:[„proprietary“]},
{name:“Claude 3.7 Sonnet“,provider:“Anthropic“,input:3.00,output:15.00,ctx:200000,bestFor:“Software engineering, document analysis, agents“,strengths:“Excellent coding, extended thinking mode“,weaknesses:“Extended thinking uses more tokens“,tags:[„proprietary“]},
{name:“Claude 3.5 Haiku“,provider:“Anthropic“,input:0.80,output:4.00,ctx:200000,bestFor:“High-volume moderation, simple QA“,strengths:“Fastest Claude, very cheap“,weaknesses:“Less capable than Sonnet“,tags:[„proprietary“]},
{name:“Claude 4 Opus“,provider:“Anthropic“,input:15.00,output:75.00,ctx:200000,bestFor:“Complex research, critical decisions“,strengths:“Most capable Claude, best reasoning“,weaknesses:“Expensive“,tags:[„proprietary“]},
{name:“Gemini 2.5 Pro“,provider:“Google“,input:1.25,output:10.00,ctx:1000000,bestFor:“Long documents, Google ecosystem“,strengths:“1M context, multimodal, Google integration“,weaknesses:“Inconsistent on some benchmarks“,tags:[„proprietary“,“multimodal“]},
{name:“Gemini 2.5 Flash“,provider:“Google“,input:0.15,output:0.60,ctx:1000000,bestFor:“High-volume processing, summarization“,strengths:“Extremely cheap, 1M context, fast“,weaknesses:“Lower quality on complex tasks“,tags:[„proprietary“,“multimodal“]},
{name:“Gemini 2.0 Flash“,provider:“Google“,input:0.10,output:0.40,ctx:1000000,bestFor:“Bulk processing, simple classification“,strengths:“Cheapest with 1M context“,weaknesses:“Lowest quality in Gemini family“,tags:[„proprietary“,“multimodal“]},
{name:“Llama 4 Maverick“,provider:“Meta“,input:0,output:0,ctx:10000000,bestFor:“Self-hosting, data privacy, customization“,strengths:“Open source, 10M context, free“,weaknesses:“Requires own infrastructure“,tags:[„open“,“multimodal“]},
{name:“Llama 4 Scout“,provider:“Meta“,input:0,output:0,ctx:10000000,bestFor:“Self-hosting, edge deployment“,strengths:“Open source, 10M context“,weaknesses:“Requires own infrastructure“,tags:[„open“]},
{name:“Mistral Large 3″,provider:“Mistral“,input:2.00,output:6.00,ctx:128000,bestFor:“EU compliance, multilingual apps“,strengths:“EU-based, multilingual, efficient“,weaknesses:“Smaller ecosystem“,tags:[„proprietary“]},
{name:“Grok 3″,provider:“xAI“,input:3.00,output:15.00,ctx:128000,bestFor:“Real-time events analysis“,strengths:“Real-time knowledge (X/Twitter)“,weaknesses:“Controversial outputs“,tags:[„proprietary“]},
{name:“DeepSeek V3″,provider:“DeepSeek“,input:0.27,output:1.10,ctx:128000,bestFor:“Budget coding, math, high-volume API“,strengths:“Extremely cheap, excellent coding/math“,weaknesses:“Data privacy concerns“,tags:[„proprietary“]},
{name:“DeepSeek R1″,provider:“DeepSeek“,input:0.55,output:2.19,ctx:128000,bestFor:“Math, logic, scientific reasoning“,strengths:“Reasoning model, open weights, competitive with o1″,weaknesses:“Slower (chain-of-thought)“,tags:[„proprietary“]},
{name:“Qwen 3″,provider:“Alibaba“,input:0,output:0,ctx:128000,bestFor:“Asian languages, open-source deployments“,strengths:“Open source, multilingual, strong Asian support“,weaknesses:“Less Western benchmark coverage“,tags:[„open“]},
{name:“Amazon Nova 1 Pro“,provider:“Amazon“,input:0.80,output:3.20,ctx:300000,bestFor:“AWS-native apps, enterprise integration“,strengths:“AWS integration, 300K context“,weaknesses:“Less community adoption“,tags:[„proprietary“,“multimodal“]},
{name:“Command A“,provider:“Cohere“,input:2.50,output:10.00,ctx:256000,bestFor:“Enterprise RAG, retrieval-heavy apps“,strengths:“Enterprise RAG, strong retrieval“,weaknesses:“Less general-purpose“,tags:[„proprietary“]}
];
function fmtPrice(p){return p===0?’Free‘:’$’+p.toFixed(2)}
function fmtCtx(c){return c>=1000000?(c/1000000).toFixed(1)+’M‘:(c/1000).toFixed(0)+’K‘}
function renderTable(data){
const tbody=document.getElementById(‚tableBody‘);
tbody.innerHTML=data.map(m=>`
`).join(“);
}
function populateFilters(){
const providers=[…new Set(models.map(m=>m.provider))].sort();
const sel=document.getElementById(‚filterProvider‘);
providers.forEach(p=>{const o=document.createElement(‚option‘);o.value=p;o.textContent=p;sel.appendChild(o)});
}
function filterTable(){
const prov=document.getElementById(‚filterProvider‘).value;
const price=parseFloat(document.getElementById(‚filterPrice‘).value)||Infinity;
const ctx=parseInt(document.getElementById(‚filterCtx‘).value)||0;
const type=document.getElementById(‚filterType‘).value;
const search=document.getElementById(’searchBox‘).value.toLowerCase();
let filtered=models.filter(m=>{
if(prov&&m.provider!==prov)return false;
if(m.input>price)return false;
if(m.ctx{
if(typeof a[key]===’string‘)return asc?a[key].localeCompare(b[key]):b[key].localeCompare(a[key]);
return asc?a[key]-b[key]:b[key]-a[key];
});
// Re-apply filters
filterTable();
// Update header styles
document.querySelectorAll(‚th‘).forEach((th,i)=>{th.classList.toggle(’sorted‘,i===col)});
}
populateFilters();
renderTable(models);
