# ── PACKAGES ────────────────────────────────────────────────
# install.packages(c("ggplot2", "grid"))
library(ggplot2)
library(grid)
# ── PALETTE ─────────────────────────────────────────────────
clr_bg <- "#F7F4EF"
clr_header <- "#1A2B4A"
clr_problem <- "#C0392B"
clr_pharma <- "#2471A3"
clr_payer <- "#1E8449"
clr_society <- "#7D3C98"
clr_subtext <- "#5D6D7E"
clr_body <- "#17202A"
# ── HELPERS ─────────────────────────────────────────────────
rr <- function(x, y, w, h, fill, col = "white", r = 0.015) {
roundrectGrob(x = x, y = y, width = w, height = h,
r = unit(r, "snpc"),
gp = gpar(fill = fill, col = col, lwd = 1.2),
default.units = "npc")
}
tx <- function(x, y, label, size = 9, col = "white",
face = "plain", hjust = 0.5, lh = 1.15) {
textGrob(label, x = x, y = y, hjust = hjust, vjust = 0.5,
gp = gpar(fontsize = size, col = col,
fontface = face, lineheight = lh),
default.units = "npc")
}
ar <- function(x0, y0, x1, y1, col) {
segmentsGrob(x0 = x0, y0 = y0, x1 = x1, y1 = y1,
default.units = "npc",
arrow = arrow(length = unit(0.011, "npc"),
type = "closed", angle = 20),
gp = gpar(col = col, lwd = 2.2, fill = col))
}
# ── STAKEHOLDER COLUMN BUILDER ───────────────────────────────
bx_w <- 0.27; bx_h <- 0.43; bx_y <- 0.40; hdr_h <- 0.063
draw_col <- function(cx, c_hdr, c_body, title, bullets, footer) {
# shadow
grid.draw(rr(cx+.004, bx_y-.004, bx_w+.004, bx_h+.004,
fill="#D5D8DC", col=NA))
# card body
grid.draw(rr(cx, bx_y, bx_w, bx_h, fill=c_body, col=NA))
# header strip
grid.draw(rr(cx, bx_y + (bx_h-hdr_h)/2, bx_w, hdr_h,
fill=c_hdr, col=NA))
grid.draw(tx(cx, bx_y + (bx_h-hdr_h)/2,
title, size=11.5, col="white", face="bold"))
# bullets
y0 <- bx_y + bx_h/2 - hdr_h - 0.045
dy <- 0.057
for (i in seq_along(bullets)) {
grid.points(unit(cx - bx_w/2 + 0.022, "npc"),
unit(y0 - (i-1)*dy, "npc"),
pch=21, gp=gpar(fill=c_hdr, col=c_hdr, cex=0.65))
grid.draw(tx(cx - bx_w/2 + 0.032, y0 - (i-1)*dy,
bullets[i], size=8.5, col=clr_body,
hjust=0, lh=1.1))
}
# footer pill
grid.draw(rr(cx, bx_y - bx_h/2 + 0.037,
bx_w - 0.04, 0.046, fill=c_hdr, col=NA, r=0.04))
grid.draw(tx(cx, bx_y - bx_h/2 + 0.037,
footer, size=8, col="white", face="italic"))
}
# ── RENDER ───────────────────────────────────────────────────
grid.newpage()
grid.rect(gp = gpar(fill = clr_bg, col = NA))
# Title bar
grid.draw(rr(0.5, 0.935, 0.92, 0.09, fill=clr_header, col=NA))
grid.draw(tx(0.5, 0.955, "CURE-BASED SECURITIES PROJECT",
size=16, col="white", face="bold"))
grid.draw(tx(0.5, 0.920,
"The Pricing Trilemma of Curative Therapies",
size=10, col="#A9CCE3"))
# Central problem box
grid.draw(rr(0.5, 0.745, 0.58, 0.096, fill=clr_problem, col=NA))
grid.draw(tx(0.5, 0.772, "THE CORE TENSION",
size=10.5, col="white", face="bold"))
grid.draw(tx(0.5, 0.748,
"Potentially curative therapies command unprecedented prices —",
size=8.8, col="#FDFEFE"))
grid.draw(tx(0.5, 0.725,
"creating fundamentally misaligned incentives across stakeholders.",
size=8.8, col="#FDFEFE"))
# Arrows
grid.draw(ar(0.36, 0.695, 0.225, 0.630, col=clr_pharma))
grid.draw(ar(0.50, 0.695, 0.500, 0.630, col=clr_payer))
grid.draw(ar(0.64, 0.695, 0.775, 0.630, col=clr_society))
# ── THREE STAKEHOLDER COLUMNS ────────────────────────────────
# PHARMA
draw_col(
cx = 0.17,
c_hdr = clr_pharma,
c_body = "#EBF5FB",
title = "\u2665 PHARMA",
bullets = c(
"Single largest payment\n market will bear",
"One-time vs. chronic\n revenue model tension",
"R&D recovery in small\n patient populations",
"Price anchored to QALY\n / lifetime cost offset",
"Pressure to prove\n durable benefit"
),
footer = "Goal: Maximize Value Capture"
)
# PAYER
draw_col(
cx = 0.50,
c_hdr = clr_payer,
c_body = "#EAFAF1",
title = "\u2663 PAYER",
bullets = c(
"Upfront budget shock\n on annual spend cycles",
"Durability uncertainty:\n is the cure permanent?",
"Patient migration risk\n across plan years",
"Limited outcomes-based\n contracting tools",
"Formulary & coverage\n access gatekeeping"
),
footer = "Goal: Manage Budget & Risk"
)
# SOCIETY
draw_col(
cx = 0.83,
c_hdr = clr_society,
c_body = "#F5EEF8",
title = "\u2660 SOCIETY",
bullets = c(
"Equitable access across\n income & geography",
"Healthcare system\n financing sustainability",
"Preserve innovation\n incentive pipeline",
"Orphan vs. prevalent\n disease fairness",
"Political & regulatory\n pricing pressure"
),
footer = "Goal: Access + Sustainability"
)
# Bottom solution teaser
grid.draw(rr(0.5, 0.043, 0.90, 0.052,
fill="#F0F3F4", col="#BDC3C7", r=0.03))
grid.draw(tx(0.5, 0.043,
paste("Lu, J.M., Cherla, A.J., Carter, A.W. et al. Gene Ther (2026)"),
size=8, col=clr_subtext, face="italic"))Title: “Cure based Securities” format: html echo : off
title
Rare and ultra rare disease drug development faces great challenges in attracting resources and investments. These challnges are magnified in the case of potentially curative and near curative treatment. In the Inflammation and Immunology world, as cancers and chronic diseases the dvent of CAR- based therapies bring this oissue in great releif.
In I&I nearly all therapies in development or in market are not curative and often described as temporizing. The profitabilityin commercialization is more or less dependednt on reimbursement price and duration of threapty (i.e. persistence) .
if patients disconinue treatment for whatever reason, it is considered a treatment failure and the reimbursemnt ceases. Thus there is a perverese market reward for manufacturer to offer therapies that are safe and effective but not necessarily cure the disease or even put it on long-term remission.
These problems are amplified multiple fold in the situations where there is a once-and-done curative treatments with very little ling-term manintenance pharmaco therapy. The classic example is that of cell-based threapies such as CAR-T and CAR-NK that may prove themselves capable of inducing cure or long-lasting remission for terrible conditions such as SLE or Systemic Sclerosis