TL;DR Puse a Opus 5.5, Opus 5, Fable 5.1 y Sonnet 5 a hacer las mismas cuatro tareas en Claude Code, tres veces cada una. Opus 5.5 costó un 36% de lo que costó Opus 5 y un 33% de Fable 5.1, y terminó en un tercio del tiempo de Opus 5 y en algo más de la mitad del de Fable 5.1. También salió por debajo de Sonnet 5, que es más económico por token pero necesitó el triple de turnos. Subirlo de
mediumahighno cambió nada: para el trabajo de diario, déjalo como viene.
En el tip de lanzamiento recalculé mis sesiones con la tarifa de Opus 5.5: con los mismos tokens, un 44-46% menos. Pero eso solo mide el precio. Lo que quería saber es cuántos tokens gasta cada modelo para hacer lo mismo, y eso solo se ve poniéndolos a trabajar.
Qué medí
Un repo PHP de 11 ficheros y cuatro tareas típicas de un día de trabajo. Cada una tiene una comprobación automática escrita antes de lanzar nada:
| Tarea | Qué se pide | Cuándo cuenta como hecha |
|---|---|---|
| Bug | UsageCost::dollars() cobra la lectura de caché a precio de entrada y redondea con floor |
Suite en verde sin tocar tests/, más 3 casos ocultos (uno es 0,575 → 0,58) |
| Renombrar | InvoiceMailer → ReceiptMailer en 5 ficheros, nombre del fichero incluido |
El nombre viejo no aparece en ningún sitio y la factory devuelve la clase nueva |
| Script | bin/usage-cost.php: lee un JSONL, cuenta cada id una vez, da el coste por modelo |
Salida exacta sobre un fichero oculto de 300 mensajes, distinto del de ejemplo |
| Refactor | Sacar a ContactNormalizer la validación duplicada en 3 controladores |
filter_var y ucwords aparecen una sola vez en src/ y los tests de controladores pasan |
Cada ejecución parte de una copia limpia del repo y se lanza así:
claude -p "<prompt de la tarea>" --model claude-opus-5-5 \
--setting-sources project --strict-mcp-config \
--no-session-persistence --dangerously-skip-permissions \
--output-format json
--setting-sources project deja fuera mi settings.json de usuario, y con él el effort que tengo fijado por modelo, así que cada uno trabaja con su valor por defecto: medium en Opus 5.5 y high en los demás. Lo comprobé antes de empezar con la sonda de la cadena del effort, y también que mi CLAUDE.md no se cargaba. --strict-mcp-config sin configuración deja a todos sin servidores MCP. Como quinto participante, Opus 5.5 con --effort high.
Coste, tiempo y turnos salen del JSON de cada ejecución: total_cost_usd, duration_api_ms y num_turns. El coste es a tarifa de lista de la API; lo recalculé a mano desde modelUsage y cuadra.
El benchmark completo (repo de pruebas, prompts, comprobaciones, harness y las 60 ejecuciones con el diff de cada una) está en este zip, con un README para repetirlo.
Resultados
60 ejecuciones: 5 configuraciones × 4 tareas × 3 repeticiones. Medianas por ejecución y total de las 12 de cada una:
| Modelo | Hechas | Coste | Tiempo de API | Turnos | Total |
|---|---|---|---|---|---|
Opus 5.5 (medium) |
12/12 | $0,16 | 20 s | 4 | $1,82 |
Opus 5.5 (high) |
12/12 | $0,16 | 22 s | 4 | $1,90 |
| Sonnet 5 | 11/12 | $0,18 | 31 s | 12 | $2,14 |
| Opus 5 | 12/12 | $0,44 | 61 s | 9,5 | $5,01 |
| Fable 5.1 | 12/12 | $0,48 | 38 s | 4,5 | $5,47 |
Opus 5.5 fue el más rápido en las cuatro tareas y el de menor coste en tres; en el script empató con Sonnet 5 ($0,19). La mayor distancia, en el refactor: Opus 5 tardó 93 segundos y costó $0,53 de mediana, Opus 5.5 tardó 21 y costó $0,16.
Por qué un tercio: dos efectos que se multiplican
Frente a Opus 5, el ahorro tiene dos causas:
- Tarifa. Los tokens que gastó Opus 5, cobrados a precio de Opus 5.5: de $5,01 a $3,34, un 33% menos. En mis sesiones largas la tarifa sola daba un 44-46%, porque allí la lectura de caché pesa mucho más que en tareas de medio minuto.
- Tokens. A la misma tarifa, lo que gastó Opus 5.5 cuesta un 45% menos que lo que gastó Opus 5, porque resuelve lo mismo en la mitad de turnos (4 frente a 9,5). Cada turno de menos es una relectura de todo el contexto que no se paga.
- Las dos juntas: de $5,01 a $1,82, un 64% menos. Se multiplican (0,67 × 0,55), no se suman.
Frente a Fable 5.1 pesa más la tarifa: los dos resuelven en 4 o 5 turnos, pero Fable cobra dos veces y media más por entrada, salida y escritura de caché.
Sonnet 5: más económico por token, no por tarea
Por token, Sonnet 5 cuesta la mitad que Opus 5.5 ($2/$10 frente a $4/$20), y la lectura de caché cuesta lo mismo en los dos, $0,20. Aun así, Opus 5.5 salió un 15% por debajo. Hizo 12 turnos donde Opus 5.5 hizo 4 y leyó de caché el triple (372.000 tokens de mediana frente a 115.000).
Su único fallo es real: en una repetición del bug escribió round($total / 1000000 * 100, 0, PHP_ROUND_HALF_UP) / 100, que con coma flotante da 0,57 donde tocaba 0,58.
Subirlo a high no compró nada
Opus 5.5 en high hizo lo mismo que en medium: 12 de 12, $0,16 de mediana y dos segundos más. En tareas de este tamaño, medium no se queda corto. Sube el effort con /effort high cuando una tarea concreta lo pida, no como ajuste permanente.
Lo que esto no mide
- Calidad en tareas difíciles. Todos hicieron casi todo (59 de 60), así que esto separa coste y velocidad, no quién razona mejor. Un bug que cruza módulos o una migración larga es otra prueba, y es donde los niveles altos de effort deberían empezar a notarse.
- Tamaño. Tareas de 11 a 99 segundos de API, tres repeticiones, un día.
- Un fallo mío de montaje. En el renombrado y el refactor, el test del bug seguía fallando en el repo. Afectó a todos por igual y los puntué con los tests de su propia tarea. Uno de los Opus 5.5 aprovechó el renombrado para arreglar también el bug sin que se lo pidiera.
- Dólares de API. Con suscripción no ves este importe; lo que notas es cuánto te dura el límite de cinco horas y cuánto esperas.
Documentación oficial: Model configuration · Pricing
Qué trae Opus 5.5 y las dos comprobaciones antes de usarlo están en Opus 5.5 en Claude Code. Por qué la lectura de caché manda en la factura, en Fable 5.1. Y qué modelo uso para qué más allá del coste, en Sonnet 5, Opus 5 y Fable 5.
Requisitos
- Claude Code v2.1.280 o superior, y acceso a los cuatro modelos. Todas las cifras son de esa versión, del 23 de septiembre de 2026.