Datalog forensics · FORScan · 10 WOT events · Sep 16–20, 2026

The throttle isn't slow. It's capped — by gear.

With the pedal pinned at 100 %, this 2026 Mustang Dark Horse only commands full throttle once it is in 3rd gear. In 1st the blade is held near 34°, in 2nd near 68°, and only in 3rd does it open to 85°. Nine of nine pulls that reached full throttle did so in 3rd — regardless of street or strip, elapsed time, or temperature. Fuel pressure, mixture, knock, and the throttle actuator itself are all cleared by the data.

Engine Gen‑4 5.0L Coyote Blower Roush Phase 2, ~12–14 psi observed Trans 10‑speed auto PCM Bosch MG1CS036 · OS FSMZM80 (Roush) Fuel 93 octane
1st gear
33–39°
blade angle at 6000 rpm, 100 % pedal
TAC ≈ 40 % · MAP 120–137 kPa (3–5 psi) · TQ_ACT ≈ 50 %
reproduced ±2° across 4 pulls
2nd gear
67–71°
blade angle at 6000–7000 rpm
TAC ≈ 80 % · MAP 165–185 kPa · TQ_ACT ≈ 60–67 %
reproduced across 10 of 10 pulls
3rd gear and up
85.1°
fully open
TAC = 100 % · MAP 185–198 kPa (12–14 psi) · TQ_ACT 71–72 %
reached at 59–68 mph in every pull
What governs it

Gear is the only variable that survives every cross-check

At the moment sustained full throttle (≥ 84°) was first reached, the gear actually engaged — worked out from the RPM-to-speed ratio, not the laggy GEAR_CMD PID — was 3rd in all nine pulls. Speed (58–68 mph) and RPM (5900–6600) look tight only because 3rd gear at ~6100 rpm is ~60 mph. Elapsed time is the worst predictor: 2.1 to 5.2 s.

Two comparisons break the tie between gear, speed and RPM:

  • Same speed, different gear. At 26–29 mph, three pulls in 1st show 33–34°; three pulls in 2nd show 51°.
  • Same RPM, different gear. At ~6100 rpm: 1st 34°, 2nd 67–70°, 3rd 85°.

Speed alone fails the first test; RPM alone fails the second. Within a gear the ceiling rises with RPM, so it behaves like a calibrated table (torque vs gear and RPM), not a single number. Transitions between gears are ramped over roughly one second, which is why TAC_PCT appears to "progressively increase" rather than step.

Values are the real 1 Hz samples recovered from the logs; the dotted links are the ~1 s ramps across each upshift.

Read this before trusting any timestamp

Every PID in these logs is really sampled once per second

The CSV writes a row every 31–45 ms, but the logger polls its PID list round-robin (23–36 PIDs × ~31 ms ≈ 0.75–1.2 s per PID) and then linearly interpolates between real samples. In the raw rows of the 21:33:11 launch, RPM climbs by exactly +44 per row for 1.0 s, then exactly +80 per row for 1.0 s, then −3; ETC_ACT steps through slopes of +0.18, +0.40, +1.11, −0.06, +0.59 per row in ~1.05 s segments; MAF and EQ_RAT jump once a second (46.8 → 97.3 → 211.1 → 274.4 g/s). Every smooth ramp in these files is interpolation.

What that means for the questions asked of the data:

  • "TAC 23 % at t₀" or "3.9 s to full TAC" carry about ±0.5 s of uncertainty, and different PIDs are sampled at different instants inside each second.
  • Sub-second lead/lag between PIDs cannot be established. Sequences are only resolvable at the ~1 s scale — enough for a 3–5 s phenomenon, not enough to say what moved first inside a shift.
  • Interpolation hides shifts: the 21:41:12 RPM trace looks "flat at 5050" from 1.07–2.13 s; that is two samples bracketing the 1‑2 shift.
Log fewer PIDs for timing work

A six-PID set — APP, TAC_PCT, ETC_ACT, RPM, VSS_HR plus driver-demand torque — polls at ≈ 5 Hz each. Add TQ_ACT, TQ_CNTRL, GEAR_CMD in a second session. A 20–50 Hz logger is better still.

Housekeeping

17:34:12.csv is byte-identical to 17:34:01.csv and was excluded. The six Sep 16 logs before 10:53 contain no WOT event (APP max 8–54 %). Street vs strip was inferred from the launch type — the 0‑mph launches are assumed to be the strip.

What actually happens

The sequence, at the resolution the data allows

Static mapping used only for sanity checks: ETC_ACT ≈ 0.85 × TAC_PCT (100 % ↔ 85.1°, 25–30 % ↔ 21°, 5–10 % ↔ 6°). The two were never compared numerically during transients.

The throttle body is doing what it is told

Sustained TAC = 100 % ↔ ETC = 85.1° with zero exceptions. Best-fit lags between the two are +0.2 / +0.4 / +0.4 / −0.4 s — inside the sampling skew. The one place ETC appears to exceed its command (17:32:44, 85° while TAC reads 72 %) is TAC's two bracketing samples straddling a brief opening. ETC_REASON_LAST / _2nd report only "KAM Reset or Counter Reset" — no ETC fault history. This is a PCM command, not an actuator problem.

Evidence

All ten pulls, aligned to the moment the pedal reached 95 %

Four-panel chart: throttle blade angle versus time for all ten pulls; TAC_PCT and APP versus time for the four TAC-equipped logs; throttle versus vehicle speed coloured by gear; throttle versus RPM coloured by gear.
Top left: blade angle vs time — launches (1st gear) start low and climb; kickdown pulls open fully then get trimmed. Top right: APP (dotted) is at 100 % while TAC (solid) ramps. Bottom: the same data against speed and against RPM, coloured by the gear actually engaged. The 1st-gear points from three separate launches collapse onto one line; 2nd gear converges on ~68° at 6000–6500 rpm; only 3rd reaches 85°.

Spread of candidate variables at the sustained-full-throttle point

VariableValues across 9 pullsSpread (CV)
Gear actually engaged3, 3, 3, 3, 3, 3, 3, 3, 30 %
Engine speed5916 – 6572 rpm3.3 %
Vehicle speed58.5 – 67.5 mph5.0 %
Elapsed time after WOT2.1 – 5.2 s21 %
Sep 17 · 09:09:20

The open–close–reopen pull, decoded

Real ETC samples: 17° (0.0 s) → 41° (0.8 s) → 83° (1.7 s) → 67° (2.5 s) → 66° (3.3 s) → 85° (4.1 s). The 83→67° closure happened in 2nd gear with no shift in progress (GEAR_CMD = 2 from 0.23 s through 3.3 s) while RPM went 5100 → 6200, MAP 168 → 183 kPa, speed 35 → 46 mph.

At 5100 rpm with boost still building, engine torque was below the 2nd-gear ceiling, so the throttle was allowed to open. As RPM and boost rose, estimated torque reached the ceiling and the blade was trimmed to the same ~67° every other pull shows in 2nd at 6000+ rpm. The reopening to 85° coincides with the 2‑3 shift (2.5–3.3 s). 17:32:44 shows the identical pattern: 85° at 5456 rpm / 36 mph in 2nd, trimmed to 71° by 6800 rpm / 55 mph.

This is a ceiling being reached, not an intervention.

Channel@ 1.7 s (83°)@ 2.5 s (67°)
Spark / knock retard15.8° / −0.917.5° / −2.3
Rail pressure actual / desired20.37 / 19.99 MPa20.25 / 19.99 MPa
Mixture measured / commanded (AFR scale)15.1 (stale) / 12.111.1 / 10.4
IAT2 / ECT52 / ~86 °C52 / ~86 °C
Commanded gear22
DI share of fuel65 %60 %

No positive knock retard, no fuel-pressure deficit, mixture going richer, temperatures flat. Nothing outside torque/RPM/boost changed between the two samples.

Candidate explanations

Ranked by what the data supports

#CandidateEvidence forEvidence againstConfidence
1Gear-indexed engine-torque ceiling — torque truncation / driveline protection in the PCM calibration, and/or a TCM-broadcast input-torque limit per gearGear has zero spread; same-speed and same-RPM cross-checks both point to gear; in-gear ceilings repeat within ±2° across street and strip; TQ_CNTRL reads "None Requested" throughout (a static limit is arbitrated silently, unlike a shift or TCS request); TQ_ACT plateaus ≈ 50 % (1st) / ≈ 67 % (2nd) / 71–72 % (3rd+)Ceiling rises with RPM within a gear, so it is a table rather than one number; the logs cannot say whether the PCM or the TCM owns itHigh that it is a calibrated, gear-indexed limit; medium on which module
2Shift torque reductionConfirmed as the transient cause of the 82→51° and 85→34° drops during kickdowns (TQ_CNTRL = Transmission Shift)Ends within ~1 s; the sustained restriction continues 2–4 s after TQ_CNTRL returns to NoneHigh as contributor, not root cause
3Speed-indexed torque shaping / driver-demand vs vehicle speedFull throttle always arrives at 54–68 mphSame speed, different gear → different throttle; only a 2‑D speed × RPM demand map could still fitLow–medium · needs the held-3rd-gear test
4Torque-converter managementTAC hit 100 % right as slip → 0 in 21:33 and 21:41TAC hit 100 % before lockup in 17:34:01 (slip 306 rpm); ETC reached 85° with 300 rpm slip in 17:32:44Low
5Traction / stability intervention810 hp can spin at 50 mphNever appears in TQ_CNTRL (which does report Tip‑In, Idle, Shift states); ramps are smooth, monotonic and repeatable to ±2° — not slip-controller behaviour; identical on 40–60 mph street rolls; driveline-ratio check shows no sustained wheelspinLow · ABS PIDs needed to close
6RPM-dependent limit aloneSame RPM, different gear → different throttleRuled out as sole index
7Time-based ramp2.1–5.2 s spread; a kickdown into 1st snaps to the gear value instantly; ramp rates vary 15–50 %/sRuled out
8Fuel-pressure limitationLow side never below 426 kPa; worst deficits (−74 kPa, −45 kPa) occur while the throttle is opening or already full; high side within −7 % worst case, and early "deficits" are the desired PID sampled mid-rampRuled out
9Lean-condition protectionEQ channels are AFR-scaled (idle 14.3–14.9, DFSO 29.28); WOT measured 10.4–11.2 vs commanded 9.7–10.3 — rich, never lean; the 1st-gear restriction precedes the brief stoich-to-rich transition window and the 2nd-gear ceiling persists after the mixture is at 10.5–11Ruled out
10Knock interventionMaximum positive KNOCK_SPK_RET in any WOT window = 0.0°Ruled out
11Temperature protectionSame behaviour at IAT2 51 °C and 67 °C; ECT 83–94, TFT 64–90Ruled out
12ETC feedback / actuator faultTight static mapping, sustained 100 % ↔ 85.1° every time, no ETC fault reasonsRuled out
13Drive-mode dependenceDrive modes not loggedBehaviour identical across all nine sessionsUndetermined
14Roush OS/cal specifically vs stock Ford tablesThe ceiling values are calibration content; Roush authored this calStock 10R80 Mustangs also carry gear-based torque limits; the logs cannot tell whether Roush lowered, kept or raised themUndetermined · a calibration-file question

Also observed and unrelated: a TAC dip 100→74 % at 7000–7188 rpm in 17:34:01 (rev-limit / 3‑4 shift region) and a commanded-lean spike (EQ cmd 15.9) during the 3‑4 shift in 09:04:50 — both normal shift/limiter handling.

Every significant pull

Comparison table

Times ±0.5 s. "Gear" is the gear actually engaged (from RPM/mph), with GEAR_CMD in parentheses where it lagged. Drive mode was not logged. Boost = MAP − BARO. Fuel deviation = worst low-side (kPa) / high-side (%) shortfall vs desired during the pull; asterisked values occurred while the throttle was opening or already full.

LogTypeAPPInit TACInit ETCMin ETC <2.5 sTAC 100 % · t / mphETC ≥ 84° · t / mph / rpmGear @ fullBoostMAF maxFuel dev lo / hiKnockTQ_CNTRLReclosure
09‑16 10:53roll 37 mph, 2nd99.550°50°2.1 s / 58.5 / 6158 (lifted)312.5 psi269 g/s– / −1 %0n/anone before lift
09‑16 11:48roll 16 mph, 3rd10082°50.8°3.9 s / 66.9 / 6491312.4309– / −3 %0n/a82→51° @0.8 s (3→2 kickdown)
09‑17 09:04roll 20 mph, 2nd10070°54.7°3.1 s / 62.2 / 6091313.6320– / −1 %0n/a70→55° @0.8 s
09‑17 09:091st gear, 14 mph10017°17°4.1 s / 64.7 / 6260313.3295– / −0.3 %0n/a83→66° @2.5 s in 2nd, no shift
09‑17 10:42roll 14 mph, 3rd10085°50.7°3.6 s / 60.9 / 59163 (cmd 2)13.4304−10 kPa / −7 %0n/a85→51° @1.2 s (3→2 kickdown)
09‑18 22:09launch, 0 mph10018°18°4.0 s / 60.0 / 60623 (cmd 2)14.1307−74 kPa* / −5 %0n/anone
09‑19 17:32roll 19 mph, pedal ramped10054 %41°41°~3.1 s / 61 (lifting)1.2 s / 36.5 (brief)2 then 311.7245+40 kPa / −4 %0Shift (pre‑t₀), None85→71° @2.5 s in 2nd
09‑19 17:34roll 14 mph, 3rd10018 %83°34.3°3.2 s / 53.83.6 s / 59.5 / 613023 (cmd 2)13.0291−31 kPa / −4 %0Shift 0.5–1.7 s, then None85→34° @1.2 s (3→1 kickdown)
09‑20 21:33launch, 0 mph10018 %16°16°4.8 s / 63.05.2 s / 67.5 / 6572312.3315−45 kPa* / −7 %*0None throughoutnone
09‑20 21:41launch, 0 mph10023 %19°19°3.8 s / 56.04.3 s / 60.8 / 6017312.9283−28 kPa / −5 %0None; Shift 4.7–5.7 s (3‑4)none
What would settle it

Add these PIDs, then run four controlled pulls

The current PID set describes what the throttle does but not why. One standard PID splits the top two candidates outright.

Driver's demand engine torque

OBD‑II Mode 01 PID 0x61, listed next to TQ_ACT/TQ_REF. If it reads ~100 % of reference in 1st while TQ_ACT sits at ~50 %, the pedal map is asking for full torque and a downstream limit is clipping it. If driver demand itself reads ~50 %, the restriction lives in the driver-demand / torque-shaping tables.

PCM — torque arbitration

Search the MG1CS036 PID list for: desired / requested engine torque, arbitrated or limited torque, torque-limit source, desired throttle angle (ETC desired / TP desired), airflow limit, ETC limiting, drive-mode / MyMode status, launch-control status.

TCM — 10R80

Any PID named like engine-torque limit or reduction request sent to the PCM, maximum input torque, shift-in-progress. This decides whether the ceiling is broadcast by the transmission or held in the PCM calibration.

ABS — traction

Traction-control active flag and the engine-torque request from TCS. Closes out candidate 5 for good.

Controlled tests

  1. Manual mode, hold 3rd, WOT from ~20 mph. Throttle to 85° immediately at 20–40 mph → gear-indexed (candidate 1). Restricted like 1st/2nd at that speed → speed-indexed (candidate 3).
  2. Manual mode, 1st gear to redline with no upshift, and 2nd gear from 15 mph. Confirms the in-gear ceilings without kickdown transients.
  3. Repeat a launch with AdvanceTrac fully off. Excludes traction control.
  4. Repeat in Normal / Sport / Track / Drag. Tests drive-mode dependence.
Best technical explanation

At 100 % pedal the PCM converts driver demand into a torque request and arbitrates it against a ceiling that depends on the gear engaged, then commands only as much throttle as the arbitrated torque needs. The ceiling is roughly 50 % of reference in 1st (16–39° of throttle, 0–5 psi), ~67 % in 2nd (50–70°, ~10–12 psi), and at or above the engine's capability from 3rd up (85°, 12–14 psi). Within a gear it rises with RPM; transitions are ramped over ~1 s. Flooring the pedal at low RPM in 2nd/3rd momentarily sits below the ceiling, so the blade opens fully; the kickdown's shift torque reduction plus the lower ceiling of the target gear then pull it back. Nothing in fuel, mixture, knock or temperature leads the restriction, and the actuator follows its command faithfully. Whether the ceiling lives in the PCM's torque-limit-by-gear tables or the 10R80 TCM's input-torque limit — and whether it is Roush's choice or an untouched Ford table — is not decidable from these logs.