# Cycle 04 — assisted date comparison

User-approved flow: name a price, give a time constraint, compare durations, choose a plan.
Live landing: index.html?v=24. Guided sample: basic.html?demo=1&step=date&v=24.

## Meaning and model

- User limits: 7, 30 or 90 elapsed days, or an explicit latest date at 08:00 UTC.
- Three chronological choices where possible. Never automatically select or rank by APR.
- Candidates and custom selections must be hourly aligned, more than one hour ahead,
  within the user's cap and within the existing three-year contract limit.
- Single-funded buy/sell comparisons use the matching Black-Scholes option-value benchmark
  with r=0 and explicit assumed IV. They are not predicted or guaranteed realized returns.
- Net quote estimate uses initial capital and the indicative time tariff. Contract fees
  depend on actual closing balances. No guaranteed single-asset cash-out date.
- Dual-funded return benchmark stays unavailable; date choices and percentage time fee remain.
- Missing/invalid model inputs produce unavailable values, not zero returns.
- Review and comparison now share dates.js. Review's quoted amount is net of the same
  indicative fee as its percentage (the previous amount label used gross premium).

## Imagegen triage

Built-in imagegen used the actual original date-step desktop/mobile screenshots.
Full prompt: prompt.txt. Proposal: proposal.png.
Adopted: chronological comparisons, compact mobile rows, explicit time limit, optional
trade-off disclosure and early-close explanation.
Adapted: real model values/quote units, visible chosen price/deposit context, accessible
radio groups, and no preselected date. Disabled Review until a valid date is chosen.
Rejected: generated calendar/weekday mismatches and dates beyond an unspecified cap;
placeholder fee pills and an enabled Review action without a selected date.
No generated raster is used as a functional UI.

## Verification

- Full npm test passes; tests.log captures the run. New dates 13/13 scenario groups and
  controller tests cover independent ATM values/parity, UTC bounds, fees, unavailable/dual,
  input edits, stale dates and constraint invalidation.
- Independent evaluator compared 40 scenarios with Python math.erfc: maximum yield
  difference 1.38e-7 from the documented normal-CDF approximation.
- Evaluator verified fixes: all constraint edits invalidate review even if the same date
  fits; each operation captures time once; aged choices clear the financial plan.
- 48 browser scenarios: buy/sell/dual × four time limits × 320/390/768/1440 widths, with
  trade-off details expanded. No page horizontal overflow; validation.json records results.
- Real radio click, Space/ArrowDown keyboard selection, shorter-limit clearing and
  Review navigation passed. Selected 14-day sample reaches 26 Sep 2026, 08:00 UTC and
  the same 0.95% model benchmark / 23.669475 USDC net quote estimate in Review.
- Sample approvals/creation remain disabled, no wallet or network capability added.
- Missing date/model modules fail closed in demo boot. Source-level isolation tests pass.

The baseline sample already had a date. The new comparison deliberately starts unselected.
Both use the fictional 12 Sep 2026 clock. Full-page screenshots exclude the scrollbar.
No human comprehension or realized-return result is asserted by these checks.

Final normal-boot smoke: modules load; no sample holdings; approvals/creation stay disabled by admission. Existing WalletConnect dappUrl advisory only, no errors. Journal images decode and viewport toggles work; prior cycles preserved.
