Fix manual refresh dropping qualified ranks and clarify trade UI.
Single-ticker fetch now attaches residual-momentum ranks so setups do not silently fail the activation gate. Exit plan is a timeline, chart labels move left of the price scale, and missing ranks surface explicitly.
This commit is contained in:
@@ -171,21 +171,28 @@ function FocusCard({ setup, name, badge, badgeTone, footNote, onReset }: {
|
||||
R:R and reach probability are gate inputs computed from a GTL
|
||||
proposal the trade never exits at — they get quiet treatment. */}
|
||||
<div className="flex items-start gap-10 text-right">
|
||||
{setup.momentum_percentile != null && (
|
||||
<div title="Residual 12-1 month momentum percentile across the universe. This is why the ticker was selected.">
|
||||
<p className="section-index">residual momentum</p>
|
||||
<p className="font-display mt-1 text-3xl font-semibold text-gray-100">
|
||||
top {Math.max(1, Math.round(100 - setup.momentum_percentile))}
|
||||
<span className="text-lg text-gray-400">%</span>
|
||||
</p>
|
||||
<div className="ml-auto mt-2 h-1 w-28 rounded-full bg-blue-500/20">
|
||||
<span
|
||||
className="block h-full rounded-full bg-blue-500"
|
||||
style={{ width: `${Math.min(100, Math.round(setup.momentum_percentile))}%` }}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<div title="Residual 12-1 month momentum percentile across the universe. This is why the ticker was selected.">
|
||||
<p className="section-index">residual momentum</p>
|
||||
{setup.momentum_percentile != null ? (
|
||||
<>
|
||||
<p className="font-display mt-1 text-3xl font-semibold text-gray-100">
|
||||
top {Math.max(1, Math.round(100 - setup.momentum_percentile))}
|
||||
<span className="text-lg text-gray-400">%</span>
|
||||
</p>
|
||||
<div className="ml-auto mt-2 h-1 w-28 rounded-full bg-blue-500/20">
|
||||
<span
|
||||
className="block h-full rounded-full bg-blue-500"
|
||||
style={{ width: `${Math.min(100, Math.round(setup.momentum_percentile))}%` }}
|
||||
/>
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
<p className="font-display mt-1 text-2xl font-semibold text-amber-200">missing</p>
|
||||
<p className="mt-1 text-[11px] text-gray-500">no residual rank · cannot qualify</p>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
<div
|
||||
className="max-w-[13rem]"
|
||||
title="Gate metrics. The reward/risk and reach probability of the headline Gate Target Ladder proposal are what admitted this setup. The trade does NOT exit there — it exits on the trailing stop."
|
||||
|
||||
Reference in New Issue
Block a user