refactor: reorganize repo structure — flatten CGM-Denial-Prevention/ and Projects/ into docs/ pitch/ research/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
83e823a9a0
commit
eb927258c6
20 changed files with 1424 additions and 1236 deletions
File diff suppressed because it is too large
Load diff
200
docs/design-tokens-v1.json
Normal file
200
docs/design-tokens-v1.json
Normal file
|
|
@ -0,0 +1,200 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://design-tokens.github.io/community-group/format/",
|
||||||
|
"$metadata": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"updated": "2026-04-23",
|
||||||
|
"scope": "STTIL Solutions — master token set (Signal CGM product expression)",
|
||||||
|
"accent-family": "tangerine"
|
||||||
|
},
|
||||||
|
|
||||||
|
"color": {
|
||||||
|
"teal": {
|
||||||
|
"50": { "$value": "#EEF8F8", "$type": "color", "$description": "Background washes, hover states" },
|
||||||
|
"100": { "$value": "#CBE9E9", "$type": "color", "$description": "Bordered containers, soft highlights" },
|
||||||
|
"200": { "$value": "#97D3D3", "$type": "color", "$description": "Disabled interactive elements" },
|
||||||
|
"300": { "$value": "#5BBBBB", "$type": "color", "$description": "Secondary text on dark backgrounds" },
|
||||||
|
"400": { "$value": "#2EA3A3", "$type": "color", "$description": "Icon fills, chart secondary series; primary brand in dark mode" },
|
||||||
|
"500": { "$value": "#1A8A8A", "$type": "color", "$description": "Primary interactive, links" },
|
||||||
|
"600": { "$value": "#147A7A", "$type": "color", "$description": "Brand primary — dominant system color (light mode)" },
|
||||||
|
"700": { "$value": "#0F5E5E", "$type": "color", "$description": "Hover state on teal-600; wordmark color on light" },
|
||||||
|
"800": { "$value": "#0A4444", "$type": "color", "$description": "Elevated panels in dark mode" },
|
||||||
|
"900": { "$value": "#072E2E", "$type": "color", "$description": "Sidebar, card surface in dark mode" },
|
||||||
|
"950": { "$value": "#041A1A", "$type": "color", "$description": "Page background in dark mode (AMOLED-deep)" }
|
||||||
|
},
|
||||||
|
|
||||||
|
"tangerine": {
|
||||||
|
"50": { "$value": "#FFF4EE", "$type": "color", "$description": "Tangerine wash (use rarely)" },
|
||||||
|
"100": { "$value": "#FFE4CC", "$type": "color", "$description": "Call-out block backgrounds; PA Required badge fill (light)" },
|
||||||
|
"200": { "$value": "#FFC090", "$type": "color", "$description": "Light tangerine for illustration accents" },
|
||||||
|
"300": { "$value": "#FFB070", "$type": "color", "$description": "Warm glow text on dark surfaces — promoted" },
|
||||||
|
"400": { "$value": "#F07840", "$type": "color", "$description": "Borders, glows, active states on dark surfaces — promoted" },
|
||||||
|
"500": { "$value": "#E06028", "$type": "color", "$description": "Primary accent in light mode" },
|
||||||
|
"600": { "$value": "#C04E1C", "$type": "color", "$description": "Hover state on tangerine-500" },
|
||||||
|
"700": { "$value": "#903A14", "$type": "color", "$description": "Text on tangerine-100 backgrounds; AA-safe" },
|
||||||
|
"800": { "$value": "#6A2A0C", "$type": "color", "$description": "Deep tangerine for rare decorative use" },
|
||||||
|
"900": { "$value": "#3E1808", "$type": "color", "$description": "Near-black tangerine" }
|
||||||
|
},
|
||||||
|
|
||||||
|
"neutral": {
|
||||||
|
"0": { "$value": "#FFFFFF", "$type": "color", "$description": "Card surfaces, pure white" },
|
||||||
|
"50": { "$value": "#F4F9F9", "$type": "color", "$description": "Page background — light mode" },
|
||||||
|
"100": { "$value": "#E5EEEE", "$type": "color", "$description": "Dividers, table row alternates" },
|
||||||
|
"200": { "$value": "#C8D8D8", "$type": "color", "$description": "Borders, input outlines" },
|
||||||
|
"300": { "$value": "#A3BEBE", "$type": "color", "$description": "Placeholder text, disabled" },
|
||||||
|
"400": { "$value": "#7A9E9E", "$type": "color", "$description": "Secondary body text" },
|
||||||
|
"500": { "$value": "#5A7E7E", "$type": "color", "$description": "Body text minimum on white" },
|
||||||
|
"600": { "$value": "#426060", "$type": "color", "$description": "Strong body text (light surfaces only)" },
|
||||||
|
"700": { "$value": "#2E4444", "$type": "color", "$description": "Headings on light" },
|
||||||
|
"800": { "$value": "#1C2C2C", "$type": "color", "$description": "Primary text on light" },
|
||||||
|
"900": { "$value": "#111A1A", "$type": "color", "$description": "Maximum contrast (light mode only)" }
|
||||||
|
},
|
||||||
|
|
||||||
|
"semantic": {
|
||||||
|
"success": {
|
||||||
|
"100": { "$value": "#C8EDD8", "$type": "color" },
|
||||||
|
"500": { "$value": "#1A7A4E", "$type": "color", "$description": "Active coverage, completed actions" },
|
||||||
|
"600": { "$value": "#146040", "$type": "color", "$description": "Text on success-100 backgrounds" }
|
||||||
|
},
|
||||||
|
"warning": {
|
||||||
|
"100": { "$value": "#FDECD5", "$type": "color" },
|
||||||
|
"400": { "$value": "#D97B35", "$type": "color", "$description": "Expiring soon (30–59 days)" },
|
||||||
|
"600": { "$value": "#A85A18", "$type": "color", "$description": "Critical expiry (<30 days); text on warning-100" }
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"100": { "$value": "#F8CCCC", "$type": "color" },
|
||||||
|
"500": { "$value": "#C83030", "$type": "color", "$description": "Denied, expired, destructive actions" },
|
||||||
|
"600": { "$value": "#A02020", "$type": "color", "$description": "Text on error-100 backgrounds" }
|
||||||
|
},
|
||||||
|
"info": {
|
||||||
|
"100": { "$value": "#C8E0EE", "$type": "color" },
|
||||||
|
"500": { "$value": "#1A6A9A", "$type": "color", "$description": "Informational, pending review" }
|
||||||
|
},
|
||||||
|
"purple": {
|
||||||
|
"100": { "$value": "#E2D8F0", "$type": "color" },
|
||||||
|
"500": { "$value": "#7A5EA0", "$type": "color", "$description": "PA pending, in-process states" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"mode": {
|
||||||
|
"dark": {
|
||||||
|
"bg-page": { "$value": "#041A1A", "$type": "color" },
|
||||||
|
"bg-card": { "$value": "#072E2E", "$type": "color" },
|
||||||
|
"bg-elevated": { "$value": "#0A4444", "$type": "color" },
|
||||||
|
"text-heading": { "$value": "#FFFAF6", "$type": "color", "$description": "Warm white — slightly copper-tinted vs pure white" },
|
||||||
|
"text-primary": { "$value": "#F0F4F4", "$type": "color", "$description": "Softened body text — not stark white" },
|
||||||
|
"text-secondary":{ "$value": "#5BBBBB", "$type": "color" },
|
||||||
|
"text-muted": { "$value": "#5A8080", "$type": "color", "$description": "Min AA-safe on teal-950; ~4.2:1" },
|
||||||
|
"border": { "$value": "#0F5E5E", "$type": "color" },
|
||||||
|
"brand": { "$value": "#2EA3A3", "$type": "color", "$description": "teal-400 — shifted up from teal-600 for dark contrast" },
|
||||||
|
"accent": { "$value": "#F07840", "$type": "color", "$description": "tangerine-400 — warm glow on dark" },
|
||||||
|
"accent-text": { "$value": "#FFB070", "$type": "color", "$description": "tangerine-300 — gold text on dark" }
|
||||||
|
},
|
||||||
|
"light": {
|
||||||
|
"bg-page": { "$value": "#F4F9F9", "$type": "color" },
|
||||||
|
"bg-card": { "$value": "#FFFFFF", "$type": "color" },
|
||||||
|
"bg-elevated": { "$value": "#E5EEEE", "$type": "color" },
|
||||||
|
"text-heading": { "$value": "#0A3030", "$type": "color", "$description": "Deep teal-charcoal heading" },
|
||||||
|
"text-primary": { "$value": "#1C2E2E", "$type": "color", "$description": "Deep charcoal — not stark black" },
|
||||||
|
"text-secondary":{ "$value": "#5A7E7E", "$type": "color" },
|
||||||
|
"text-muted": { "$value": "#7A9E9E", "$type": "color" },
|
||||||
|
"border": { "$value": "#C8D8D8", "$type": "color" },
|
||||||
|
"brand": { "$value": "#147A7A", "$type": "color" },
|
||||||
|
"accent": { "$value": "#E06028", "$type": "color", "$description": "tangerine-500 — restrained on light" },
|
||||||
|
"accent-text": { "$value": "#E06028", "$type": "color" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"typography": {
|
||||||
|
"fontFamily": {
|
||||||
|
"heading": { "$value": "'Plus Jakarta Sans', sans-serif", "$type": "fontFamily" },
|
||||||
|
"body": { "$value": "'Inter', sans-serif", "$type": "fontFamily" },
|
||||||
|
"mono": { "$value": "'JetBrains Mono', monospace", "$type": "fontFamily" }
|
||||||
|
},
|
||||||
|
"fontSize": {
|
||||||
|
"xs": { "$value": "0.75rem", "$type": "dimension", "$description": "12px" },
|
||||||
|
"sm": { "$value": "0.875rem", "$type": "dimension", "$description": "14px" },
|
||||||
|
"base": { "$value": "1rem", "$type": "dimension", "$description": "16px" },
|
||||||
|
"lg": { "$value": "1.125rem", "$type": "dimension", "$description": "18px" },
|
||||||
|
"xl": { "$value": "1.25rem", "$type": "dimension", "$description": "20px" },
|
||||||
|
"2xl": { "$value": "1.5rem", "$type": "dimension", "$description": "24px" },
|
||||||
|
"3xl": { "$value": "1.875rem", "$type": "dimension", "$description": "30px" },
|
||||||
|
"4xl": { "$value": "2.25rem", "$type": "dimension", "$description": "36px" },
|
||||||
|
"5xl": { "$value": "3rem", "$type": "dimension", "$description": "48px" }
|
||||||
|
},
|
||||||
|
"fontWeight": {
|
||||||
|
"regular": { "$value": 400, "$type": "fontWeight" },
|
||||||
|
"medium": { "$value": 500, "$type": "fontWeight" },
|
||||||
|
"semibold":{ "$value": 600, "$type": "fontWeight" },
|
||||||
|
"bold": { "$value": 700, "$type": "fontWeight" }
|
||||||
|
},
|
||||||
|
"lineHeight": {
|
||||||
|
"tight": { "$value": 1.15, "$type": "number" },
|
||||||
|
"snug": { "$value": 1.25, "$type": "number" },
|
||||||
|
"normal": { "$value": 1.5, "$type": "number" },
|
||||||
|
"relaxed": { "$value": 1.6, "$type": "number" }
|
||||||
|
},
|
||||||
|
"letterSpacing": {
|
||||||
|
"tight": { "$value": "-0.02em", "$type": "dimension" },
|
||||||
|
"normal": { "$value": "0em", "$type": "dimension" },
|
||||||
|
"wide": { "$value": "0.05em", "$type": "dimension" },
|
||||||
|
"wider": { "$value": "0.08em", "$type": "dimension" },
|
||||||
|
"widest": { "$value": "0.1em", "$type": "dimension" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"spacing": {
|
||||||
|
"0": { "$value": "0rem", "$type": "dimension" },
|
||||||
|
"1": { "$value": "0.25rem","$type": "dimension", "$description": "4px" },
|
||||||
|
"2": { "$value": "0.5rem", "$type": "dimension", "$description": "8px" },
|
||||||
|
"3": { "$value": "0.75rem","$type": "dimension", "$description": "12px" },
|
||||||
|
"4": { "$value": "1rem", "$type": "dimension", "$description": "16px" },
|
||||||
|
"5": { "$value": "1.25rem","$type": "dimension", "$description": "20px" },
|
||||||
|
"6": { "$value": "1.5rem", "$type": "dimension", "$description": "24px" },
|
||||||
|
"8": { "$value": "2rem", "$type": "dimension", "$description": "32px" },
|
||||||
|
"10": { "$value": "2.5rem", "$type": "dimension", "$description": "40px" },
|
||||||
|
"12": { "$value": "3rem", "$type": "dimension", "$description": "48px" },
|
||||||
|
"16": { "$value": "4rem", "$type": "dimension", "$description": "64px" },
|
||||||
|
"20": { "$value": "5rem", "$type": "dimension", "$description": "80px" },
|
||||||
|
"24": { "$value": "6rem", "$type": "dimension", "$description": "96px" }
|
||||||
|
},
|
||||||
|
|
||||||
|
"borderRadius": {
|
||||||
|
"none": { "$value": "0", "$type": "dimension" },
|
||||||
|
"sm": { "$value": "0.25rem", "$type": "dimension", "$description": "4px" },
|
||||||
|
"md": { "$value": "0.5rem", "$type": "dimension", "$description": "8px" },
|
||||||
|
"lg": { "$value": "0.75rem", "$type": "dimension", "$description": "12px" },
|
||||||
|
"xl": { "$value": "1rem", "$type": "dimension", "$description": "16px" },
|
||||||
|
"2xl": { "$value": "1.5rem", "$type": "dimension", "$description": "24px" },
|
||||||
|
"full": { "$value": "9999px", "$type": "dimension" }
|
||||||
|
},
|
||||||
|
|
||||||
|
"shadow": {
|
||||||
|
"sm": { "$value": "0 1px 3px rgba(7,46,46,0.10)", "$type": "shadow" },
|
||||||
|
"md": { "$value": "0 2px 10px rgba(4,26,26,0.14)", "$type": "shadow" },
|
||||||
|
"lg": { "$value": "0 4px 20px rgba(4,26,26,0.18)", "$type": "shadow" },
|
||||||
|
"xl": { "$value": "0 8px 32px rgba(4,26,26,0.22)", "$type": "shadow" },
|
||||||
|
"tangerine-glow-dark": { "$value": "0 0 24px rgba(240,120,64,0.30), 0 2px 10px rgba(4,26,26,0.70)", "$type": "shadow", "$description": "Premium card glow — dark mode only. One per view." },
|
||||||
|
"tangerine-glow-light": { "$value": "0 0 16px rgba(224,96,40,0.20), 0 2px 8px rgba(0,0,0,0.08)", "$type": "shadow", "$description": "Premium card glow — light mode." }
|
||||||
|
},
|
||||||
|
|
||||||
|
"semantic-ui": {
|
||||||
|
"badge": {
|
||||||
|
"active": { "bg": "#C8EDD8", "text": "#146040", "icon": "✓" },
|
||||||
|
"expiring": { "bg": "#FDECD5", "text": "#A85A18", "icon": "⚠" },
|
||||||
|
"critical": { "bg": "#F8CCCC", "text": "#A02020", "icon": "⚠" },
|
||||||
|
"pa-required":{ "bg": "#FFE4CC", "text": "#903A14", "icon": "⚡", "border": "rgba(144,58,20,0.2)" },
|
||||||
|
"pa-pending": { "bg": "#E2D8F0", "text": "#7A5EA0", "icon": "○" },
|
||||||
|
"denied": { "bg": "#F8CCCC", "text": "#A02020", "icon": "✕" },
|
||||||
|
"info": { "bg": "#C8E0EE", "text": "#1A6A9A", "icon": "ℹ" }
|
||||||
|
},
|
||||||
|
"sparkle": {
|
||||||
|
"priority-row-bg-dark": { "$value": "rgba(224,104,48,0.09)", "$description": "Highest-priority worklist row — dark mode" },
|
||||||
|
"priority-row-bg-light": { "$value": "rgba(224,96,40,0.05)", "$description": "Highest-priority worklist row — light mode" },
|
||||||
|
"tangerine-border-dark": { "$value": "1px solid #F07840", "$description": "Featured card edge on dark surface" },
|
||||||
|
"tangerine-shimmer-border":{ "$value": "1px solid rgba(240,120,64,0.35)", "$description": "Subtle shimmer on elevated panels" },
|
||||||
|
"active-nav-tangerine": { "$value": "3px solid #F07840", "$description": "Active sidebar nav left border" },
|
||||||
|
"warm-white": { "$value": "#FFFAF6", "$description": "Heading text on dark teal — slightly warm vs pure white" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
168
docs/signal-brand-extension-v1.md
Normal file
168
docs/signal-brand-extension-v1.md
Normal file
|
|
@ -0,0 +1,168 @@
|
||||||
|
# Signal CGM — Brand Extension v1
|
||||||
|
|
||||||
|
**Date:** April 2026
|
||||||
|
**Parent system:** `sttil-brand-system-v1.md`
|
||||||
|
**Status:** Active
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Inheritance from STTIL Solutions
|
||||||
|
|
||||||
|
Signal CGM is a product expression of the STTIL Solutions brand. It inherits:
|
||||||
|
- Full teal scale (teal-950 → teal-50)
|
||||||
|
- Full tangerine scale as accent
|
||||||
|
- Plus Jakarta Sans / Inter / JetBrains Mono type stack
|
||||||
|
- All semantic status colors
|
||||||
|
- All spacing, radius, and shadow tokens
|
||||||
|
- "Never loud, always clear" visual principle
|
||||||
|
|
||||||
|
**What shifts for Signal CGM:**
|
||||||
|
- Clinical precision takes priority over narrative warmth
|
||||||
|
- Data density is higher — tables and status indicators are the primary surface
|
||||||
|
- Urgency communication is more explicit (regulatory deadlines, expiry countdowns)
|
||||||
|
- Dark mode is the operational default (dashboard use)
|
||||||
|
- Tangerine appears at the PA Required badge and highest-priority row — the two highest-stakes signals in the UI
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Tone Shift
|
||||||
|
|
||||||
|
| STTIL Solutions | Signal CGM |
|
||||||
|
|----------------|-----------|
|
||||||
|
| Warm, narrative, brand story | Precise, operational, clinical |
|
||||||
|
| Speaks to the vision | Speaks to the daily task |
|
||||||
|
| "Built for people bearing real operational weight" | "PT-00142 · 4 days left · PA Required" |
|
||||||
|
| Earns trust through specificity | Earns trust through accuracy |
|
||||||
|
|
||||||
|
Signal CGM copy should read like a knowledgeable billing colleague, not a software vendor.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Dashboard / UI Palette
|
||||||
|
|
||||||
|
### Dark Mode (Operational Default)
|
||||||
|
|
||||||
|
| Element | Token | Hex |
|
||||||
|
|---------|-------|-----|
|
||||||
|
| Page background | `teal-950` | `#041A1A` |
|
||||||
|
| Card / panel | `teal-900` | `#072E2E` |
|
||||||
|
| Elevated surface / table header | `teal-800` | `#0A4444` |
|
||||||
|
| Heading text | `warm-white` | `#FFFAF6` |
|
||||||
|
| Primary body text | `text-primary-dark` | `#F0F4F4` |
|
||||||
|
| Secondary text | `teal-300` | `#5BBBBB` |
|
||||||
|
| Muted / metadata text | `muted-dark` | `#5A8080` |
|
||||||
|
| Border | `teal-700` | `#0F5E5E` |
|
||||||
|
| Row divider | `teal-700 at 45%` | `rgba(15,94,94,0.45)` |
|
||||||
|
| Primary brand / interactive | `teal-400` | `#2EA3A3` |
|
||||||
|
| Tangerine accent (borders/glows) | `tangerine-400` | `#F07840` |
|
||||||
|
| Tangerine text (gold) | `tangerine-300` | `#FFB070` |
|
||||||
|
| Tangerine glow shadow | `shadow.tangerine-glow-dark` | see tokens |
|
||||||
|
| Priority row wash | `sparkle.priority-row-bg-dark` | `rgba(224,104,48,0.09)` |
|
||||||
|
|
||||||
|
### Light Mode (Review / Export / Presentation)
|
||||||
|
|
||||||
|
| Element | Token | Hex |
|
||||||
|
|---------|-------|-----|
|
||||||
|
| Page background | `neutral-50` | `#F4F9F9` |
|
||||||
|
| Card / panel | `neutral-0` | `#FFFFFF` |
|
||||||
|
| Elevated surface | `neutral-100` | `#E5EEEE` |
|
||||||
|
| Heading text | `text-heading-light` | `#0A3030` |
|
||||||
|
| Primary body text | `text-primary-light` | `#1C2E2E` |
|
||||||
|
| Secondary text | `neutral-500` | `#5A7E7E` |
|
||||||
|
| Muted | `neutral-400` | `#7A9E9E` |
|
||||||
|
| Border | `neutral-200` | `#C8D8D8` |
|
||||||
|
| Primary brand | `teal-600` | `#147A7A` |
|
||||||
|
| Tangerine accent | `tangerine-500` | `#E06028` |
|
||||||
|
| Priority row wash | `sparkle.priority-row-bg-light` | `rgba(224,96,40,0.05)` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. CTA / Button Colors
|
||||||
|
|
||||||
|
| Button | Dark Mode | Light Mode | Usage |
|
||||||
|
|--------|-----------|------------|-------|
|
||||||
|
| Primary action | `teal-400` fill, `warm-white` label | `teal-600` fill, white label | "Initiate Outreach," "Export CSV" |
|
||||||
|
| High-urgency action | `transparent`, `tangerine-400` border, `tangerine-300` label | `transparent`, `tangerine-500` border, `tangerine-500` label | "Initiate PA →" — one per view |
|
||||||
|
| Ghost / secondary | `transparent`, `teal-700` border, `teal-300` label | `transparent`, `neutral-200` border, `neutral-500` label | "View," "Follow Up" |
|
||||||
|
| Destructive | `error-500` at 15% fill, `#FF7070` label | `error-100` fill, `error-600` label | "Mark Denied," "Archive" |
|
||||||
|
|
||||||
|
**Rule:** The tangerine CTA (PA action) appears at most once per screen. It is the most urgent action visible.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Status / Alert Colors — Healthcare Workflow
|
||||||
|
|
||||||
|
| Status | Icon | Light Badge | Dark Badge | When to Use |
|
||||||
|
|--------|------|-------------|------------|-------------|
|
||||||
|
| Active | ✓ | `success-100` bg / `success-600` text | `rgba(26,122,78,0.16)` / `#4AE899` | Coverage current, no action needed |
|
||||||
|
| Expiring Soon | ⚠ | `warning-100` / `warning-600` | `rgba(168,90,24,0.16)` / `#F0B464` | 30–59 days remaining |
|
||||||
|
| Critical Expiry | ⚠ | `error-100` / `error-600` | `rgba(200,48,48,0.16)` / `#FF7070` | < 30 days remaining |
|
||||||
|
| PA Required | ⚡ | `tangerine-100` / `tangerine-700` | `rgba(240,120,64,0.18)` / `#FFB070` | PA must be initiated |
|
||||||
|
| PA Pending | ○ | `purple-100` / `purple-500` | `rgba(122,94,160,0.16)` / `#C0A8E0` | PA submitted, awaiting affirmation |
|
||||||
|
| Denied | ✕ | `error-100` / `error-600` | `rgba(200,48,48,0.22)` / `#FF7070` | Claim denied — appeal path |
|
||||||
|
| Info | ℹ | `info-100` / `info-500` | `rgba(26,106,154,0.16)` / `#64B0D8` | Notes, system messages |
|
||||||
|
|
||||||
|
**Non-negotiable:** Every badge must use icon + label. Never color alone as the sole status indicator.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Worklist Table Conventions
|
||||||
|
|
||||||
|
- **Patient ID column:** JetBrains Mono, `font-weight: 700`. On priority row, color shifts to `tangerine-300` (#FFB070 dark) or `tangerine-700` (#903A14 light).
|
||||||
|
- **Priority Score:** JetBrains Mono, 16px, `font-weight: 500`. High (≥75): tangerine-text. Mid (40–74): text-secondary. Low (<40): text-muted.
|
||||||
|
- **Days Left:** JetBrains Mono. Critical (<30): error red. Warning (30–59): tangerine-text. OK (60+): text-primary.
|
||||||
|
- **Top priority row:** One `priority-row-bg` wash + `★ TOP PRIORITY` micro-label in tangerine-text. Only one per view.
|
||||||
|
- **Tangerine CTA:** Only on the top priority row's action button.
|
||||||
|
- **Table header:** `teal-800` background, uppercase `text-muted` labels at `font-size: 10.5px`, `letter-spacing: 0.06em`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Pitch Deck Usage (Supplier-Facing)
|
||||||
|
|
||||||
|
**Slide structure:**
|
||||||
|
- Title / section slides: `teal-900` background, `warm-white` headline, `teal-300` sub-label
|
||||||
|
- Content slides: `neutral-0` background, `teal-700` section headers
|
||||||
|
- Data charts: `teal-500` primary series, `tangerine-400` for the key comparison metric
|
||||||
|
- Call-out boxes: `tangerine-100` background, `tangerine-700` text, `tangerine-500` left border (4px)
|
||||||
|
- The two-curve workload graph (appeals ↓ / proactive outreach flat) is the hero visual
|
||||||
|
|
||||||
|
**Supplier-facing language:**
|
||||||
|
- Lead with the denial rate: "35–45% first-pass denial rate for CGM claims"
|
||||||
|
- Show the crossover point: "Month 4 — proactive outreach volume replaces appeals volume"
|
||||||
|
- No AI language. No "platform." Call it a worklist tool.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. LinkedIn / Social Posts
|
||||||
|
|
||||||
|
**Format — Signal CGM announcement post:**
|
||||||
|
- Carousel: 5 slides (hook → problem data → product shot → outcome → CTA)
|
||||||
|
- Cover slide: `teal-900` background, `warm-white` headline in Plus Jakarta Sans 700, one tangerine data point
|
||||||
|
- Data slides: `neutral-0` background, teal headers, JetBrains Mono for percentages
|
||||||
|
- One tangerine accent per slide — never two
|
||||||
|
- CTA slide: `teal-600` background, white text, simple ask
|
||||||
|
|
||||||
|
**Tone:** Specific, grounded, no hype. Use actual regulatory dates and denial rates.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Billing Company-Facing vs. Supplier-Facing Materials
|
||||||
|
|
||||||
|
| Dimension | Supplier-Facing | Billing Company-Facing |
|
||||||
|
|-----------|----------------|----------------------|
|
||||||
|
| Primary pain | "My staff is buried in appeals" | "Our clients have high denial rates costing us rework" |
|
||||||
|
| Value frame | Prevent denials before they happen | Offer clients a differentiated CGM compliance tool |
|
||||||
|
| Regulatory hook | CMS competitive bidding deadline, PA affirmation rate | Same — but also enrollment moratorium / compliance risk |
|
||||||
|
| Product language | "Signal CGM worklist" | "Signal CGM — white-label ready" (future Phase 2) |
|
||||||
|
| Visual tone | Warm, operational, data-dense | Colder, more corporate, teal-900 dominant |
|
||||||
|
| CTA | "Try it with your next CSV import" | "Schedule a 30-minute walkthrough" |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. PHI Note on All Materials
|
||||||
|
|
||||||
|
All Signal CGM marketing materials must include, at minimum in footer or fine print:
|
||||||
|
|
||||||
|
> "Signal CGM does not store patient names, dates of birth, or contact information. Only patient_id (your internal MRN or account number) is used as the crosswalk key."
|
||||||
|
|
||||||
|
This is a trust signal, not a legal disclaimer. Put it where a billing manager will see it.
|
||||||
376
docs/sttil-brand-system-v1.md
Normal file
376
docs/sttil-brand-system-v1.md
Normal file
|
|
@ -0,0 +1,376 @@
|
||||||
|
# STTIL Solutions — Master Brand System v1
|
||||||
|
|
||||||
|
**Date:** April 2026
|
||||||
|
**Status:** Active — Canonical Reference
|
||||||
|
**Scope:** STTIL Solutions (parent), Signal (product), STTIL Journeys (media layer)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Brand Essence
|
||||||
|
|
||||||
|
**STTIL = Speak the Truth in Love**
|
||||||
|
|
||||||
|
This is the operating principle, not a tagline. Everything built under the STTIL name should:
|
||||||
|
|
||||||
|
1. Be truthful — data-accurate, no inflated claims, no vague promises
|
||||||
|
2. Be intelligent — specialist-level thinking applied to real problems
|
||||||
|
3. Be grounded in care — built for people bearing real operational weight
|
||||||
|
|
||||||
|
The brand earns trust through specificity. It does not perform warmth. It demonstrates it.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Brand Architecture
|
||||||
|
|
||||||
|
| Layer | Entity | Role |
|
||||||
|
|-------|--------|------|
|
||||||
|
| Parent | STTIL Solutions LLC | B2B health-tech infrastructure company |
|
||||||
|
| Product | Signal Powered by STTIL Solutions (commonly "Signal") | CGM billing intelligence for DMEPOS suppliers |
|
||||||
|
| Media | STTIL Journeys | Narrative/content expression of the STTIL story |
|
||||||
|
|
||||||
|
**STTIL Solutions** is the credential — invoices, contracts, LinkedIn.
|
||||||
|
**Signal** (formally "Signal Powered by STTIL Solutions") is the product — what suppliers and billing teams use daily. Use "Signal" in product-facing contexts; use the full name in contracts, formal proposals, and first introductions.
|
||||||
|
**STTIL Journeys** is the voice — seasonal latitude, never departing from parent brand integrity.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Positioning
|
||||||
|
|
||||||
|
**STTIL Solutions:**
|
||||||
|
> Precision health-tech infrastructure for independent DMEPOS suppliers. Built to reduce claim denials, protect cash flow, and keep small suppliers viable in a tightening regulatory environment.
|
||||||
|
|
||||||
|
Not a generic software company. A specialist that understands CMS coding, PA workflows, and the cash flow math of competitive bidding.
|
||||||
|
|
||||||
|
**Signal** (Signal Powered by STTIL Solutions):
|
||||||
|
> The CGM coverage worklist that prevents denials before they happen.
|
||||||
|
|
||||||
|
See full product brand extension: `signal-cgm-brand-extension-v1.md`
|
||||||
|
|
||||||
|
**STTIL Journeys:**
|
||||||
|
> The human story behind the technology — health, resilience, and what it means to build in health-tech.
|
||||||
|
|
||||||
|
More expressive. Seasonal palette allowed. Always tethered to the parent type and spacing system.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Tone Attributes
|
||||||
|
|
||||||
|
| Attribute | Means in Practice | Never |
|
||||||
|
|-----------|-------------------|-------|
|
||||||
|
| **Truthful** | Claims backed by data, specifics over superlatives | "Game-changing," "revolutionary," "disrupting" |
|
||||||
|
| **Grounded** | Speaks to the actual daily problem | Vague aspirational copy |
|
||||||
|
| **Precise** | Uses industry terminology correctly (PA, HCPCS, CMS, wear days) | Dumbed-down language that alienates buyers |
|
||||||
|
| **Warm** | Accessible; not clinical or robotic | Sappy, emotional manipulation, generic empathy |
|
||||||
|
| **Confident** | Makes clear positions | Overqualifying to the point of paralysis |
|
||||||
|
| **Urgent when appropriate** | Regulatory pressure is real; name it directly | False urgency, manufactured scarcity |
|
||||||
|
|
||||||
|
**Voice test:** Does it sound like a knowledgeable colleague you'd trust with a hard problem? That's the target.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Visual Principles
|
||||||
|
|
||||||
|
1. **Space is intelligence.** Premium brands use breathing room. Only tighten in data-dense product UI.
|
||||||
|
2. **Data is the design.** Worklist tables and status indicators are primary surfaces — not decoration applied after the fact.
|
||||||
|
3. **Copper is punctuation on light; warm gold on dark.** One copper accent per section in light mode. On dark teal surfaces, copper-300/400 reads as warm gold — richer expression is permitted.
|
||||||
|
4. **Typography carries the weight.** A well-set Plus Jakarta Sans 700 headline at the right teal outperforms any icon or illustration.
|
||||||
|
5. **Never loud, always clear.** No gradients. No glow effects except the deliberate copper-glow shadow token on dark surfaces. No decorative noise.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. Master Color Palette
|
||||||
|
|
||||||
|
### Palette Options
|
||||||
|
|
||||||
|
**Option A — PREFERRED DEFAULT: Deep Teal + Refined Copper**
|
||||||
|
All STTIL Solutions surfaces, Signal CGM UI, pitch decks.
|
||||||
|
Teal anchors credibility. Copper provides premium restraint in light mode, warm gold sparkle in dark mode.
|
||||||
|
|
||||||
|
**Option B — Navy Teal + Copper**
|
||||||
|
Cooler, more corporate. Primary `#1A5273`, accent `#C87941`.
|
||||||
|
Use for investor/board materials.
|
||||||
|
|
||||||
|
**Option C — Forest Teal + Warm Amber (STTIL Journeys seasonal)**
|
||||||
|
Warmer, earthier. Primary `#1E7A5A`, accent `#C85E2A`.
|
||||||
|
Stays within parent type and spacing system.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Option A: Teal Scale (Canonical)
|
||||||
|
|
||||||
|
| Token | Hex | Usage |
|
||||||
|
|-------|-----|-------|
|
||||||
|
| `teal-50` | `#EEF8F8` | Background washes, hover states |
|
||||||
|
| `teal-100` | `#CBE9E9` | Bordered containers, soft highlights |
|
||||||
|
| `teal-200` | `#97D3D3` | Disabled interactive elements |
|
||||||
|
| `teal-300` | `#5BBBBB` | Secondary text on dark backgrounds |
|
||||||
|
| `teal-400` | `#2EA3A3` | Icon fills, chart secondary series |
|
||||||
|
| `teal-500` | `#1A8A8A` | Primary interactive, links |
|
||||||
|
| `teal-600` | `#147A7A` | **Brand primary — dominant system color** |
|
||||||
|
| `teal-700` | `#0F5E5E` | Hover state on teal-600 |
|
||||||
|
| `teal-800` | `#0A4444` | Dark surface foreground, elevated panels |
|
||||||
|
| `teal-900` | `#072E2E` | Primary dark backgrounds, sidebars, card surfaces |
|
||||||
|
| `teal-950` | `#041A1A` | Page background in dark mode (AMOLED-deep) |
|
||||||
|
|
||||||
|
### Copper Scale (Dual-Mode: Accent Light / Gold Dark)
|
||||||
|
|
||||||
|
| Token | Hex | Light Mode Usage | Dark Mode Usage |
|
||||||
|
|-------|-----|-----------------|-----------------|
|
||||||
|
| `copper-50` | `#FDF3EC` | Copper wash (rare) | — |
|
||||||
|
| `copper-100` | `#F8DFC5` | Call-out box backgrounds | — |
|
||||||
|
| `copper-200` | `#F0BC8A` | Illustration accents | Subtle shimmer fills |
|
||||||
|
| `copper-300` | `#E49655` | Subtle badge fills | **Warm gold text on dark — promoted** |
|
||||||
|
| `copper-400` | `#D97B35` | Warning/expiry indicators | **Borders, glows, active states on dark** |
|
||||||
|
| `copper-500` | `#CB6B20` | **Copper accent primary (light)** | CTA fills on dark |
|
||||||
|
| `copper-600` | `#B05A18` | Copper hover | Hover on dark CTA |
|
||||||
|
| `copper-700` | `#8C4712` | Text on copper-100 backgrounds | — |
|
||||||
|
| `copper-800` | `#66330D` | Deep copper (rare) | — |
|
||||||
|
| `copper-900` | `#3D1E08` | Near-black copper | — |
|
||||||
|
|
||||||
|
**Warm White (dark mode heading tone):**
|
||||||
|
`warm-white` = `#FFFAF6` — use for primary headings on dark teal surfaces. Slightly copper-tinted vs. pure white; creates warmth at the top of the value hierarchy without appearing beige on a screen.
|
||||||
|
|
||||||
|
### Neutral Scale (Teal-Toned)
|
||||||
|
|
||||||
|
| Token | Hex | Usage |
|
||||||
|
|-------|-----|-------|
|
||||||
|
| `neutral-0` | `#FFFFFF` | Card surfaces, pure white |
|
||||||
|
| `neutral-50` | `#F4F9F9` | Page background (light mode) |
|
||||||
|
| `neutral-100` | `#E5EEEE` | Dividers, table row alternates |
|
||||||
|
| `neutral-200` | `#C8D8D8` | Borders, input outlines |
|
||||||
|
| `neutral-300` | `#A3BEBE` | Placeholder text, disabled |
|
||||||
|
| `neutral-400` | `#7A9E9E` | Secondary body text |
|
||||||
|
| `neutral-500` | `#5A7E7E` | Body text minimum on white |
|
||||||
|
| `neutral-600` | `#426060` | Strong body text |
|
||||||
|
| `neutral-700` | `#2E4444` | Headings on light |
|
||||||
|
| `neutral-800` | `#1C2C2C` | Primary text on light |
|
||||||
|
| `neutral-900` | `#111A1A` | Primary text default |
|
||||||
|
|
||||||
|
### Semantic / Status Colors
|
||||||
|
|
||||||
|
| Token | Hex | Purpose |
|
||||||
|
|-------|-----|---------|
|
||||||
|
| `success-500` | `#1A7A4E` | Active coverage, completed |
|
||||||
|
| `success-100` | `#C8EDD8` | Success background fill |
|
||||||
|
| `warning-400` | `#D97B35` | Expiring soon (30–59 days) |
|
||||||
|
| `warning-600` | `#A85A18` | Critical expiry (<30 days) |
|
||||||
|
| `warning-100` | `#FDECD5` | Warning background fill |
|
||||||
|
| `error-500` | `#C83030` | Denied, expired, destructive |
|
||||||
|
| `error-100` | `#F8CCCC` | Error background fill |
|
||||||
|
| `info-500` | `#1A6A9A` | Informational, pending review |
|
||||||
|
| `info-100` | `#C8E0EE` | Info background fill |
|
||||||
|
| `purple-500` | `#7A5EA0` | PA pending, in-process states |
|
||||||
|
| `purple-100` | `#E2D8F0` | PA pending background fill |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. Dark Mode Sparkle Tokens
|
||||||
|
|
||||||
|
These tokens exist specifically for dark-surface (teal-950/teal-900) contexts where copper shifts from accent to warm gold.
|
||||||
|
|
||||||
|
| Token Name | Value | Usage |
|
||||||
|
|-----------|-------|-------|
|
||||||
|
| `copper-glow` | `box-shadow: 0 0 16px rgba(217, 123, 53, 0.22)` | Premium card elevation on dark; applied to featured/top-priority cards |
|
||||||
|
| `copper-border-dark` | `border: 1px solid #D97B35` (copper-400) | Featured card edges on dark surfaces |
|
||||||
|
| `priority-row-bg` | `background: rgba(203, 107, 32, 0.08)` | Highest-priority row in worklist table; warm gold wash, not orange |
|
||||||
|
| `active-nav-copper` | `border-left: 3px solid #D97B35` | Active sidebar nav item accent |
|
||||||
|
| `warm-white` | `#FFFAF6` | Primary heading text on dark teal surfaces |
|
||||||
|
| `copper-shimmer-border` | `border: 1px solid rgba(228, 150, 85, 0.4)` (copper-300 at 40%) | Subtle shimmer on elevated panels |
|
||||||
|
|
||||||
|
**Dark mode copper rule:** On teal-900/teal-950 backgrounds, copper-300 and copper-400 are permitted for borders, text accents, active states, and priority indicators — because they read as warm gold, not orange. The "one copper per section" restriction applies to light mode only. In dark mode, copper can appear at 2–3 points per section provided it never dominates — teal remains the system color.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. Accessibility
|
||||||
|
|
||||||
|
| Pairing | Contrast | Rating |
|
||||||
|
|---------|----------|--------|
|
||||||
|
| `teal-900` on `neutral-0` | 15.8:1 | AAA |
|
||||||
|
| `teal-800` on `neutral-0` | 13.5:1 | AAA |
|
||||||
|
| `teal-600` on `neutral-0` | 4.8:1 | AA |
|
||||||
|
| White on `teal-600` | 4.8:1 | AA |
|
||||||
|
| White on `teal-900` | 15.8:1 | AAA |
|
||||||
|
| `warm-white` on `teal-950` | 14.2:1 | AAA |
|
||||||
|
| `copper-300` on `teal-950` | 5.6:1 | AA |
|
||||||
|
| `copper-400` on `teal-950` | 4.1:1 | AA |
|
||||||
|
| `copper-500` on `neutral-0` | 3.2:1 | AA large text only |
|
||||||
|
| `copper-700` on `copper-100` | 5.1:1 | AA |
|
||||||
|
| `neutral-800` on `neutral-50` | 12.4:1 | AAA |
|
||||||
|
|
||||||
|
**Rules:**
|
||||||
|
- Copper-500 on white: large text only (18px+ bold or 24px+ regular)
|
||||||
|
- Copper-300/400 on dark teal: AA-safe for body text and UI labels
|
||||||
|
- Never use copper as the sole status indicator — pair with icon or label
|
||||||
|
- Always test new dark surface pairings before shipping
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Typography
|
||||||
|
|
||||||
|
| Role | Font | Weights | Source |
|
||||||
|
|------|------|---------|--------|
|
||||||
|
| Display / Headings | **Plus Jakarta Sans** | 600, 700 | Google Fonts |
|
||||||
|
| Body / UI | **Inter** | 400, 500 | Google Fonts |
|
||||||
|
| Data / Code / IDs | **JetBrains Mono** | 400, 500 | Google Fonts |
|
||||||
|
|
||||||
|
```css
|
||||||
|
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@600;700&family=Inter:wght@400;500&family=JetBrains+Mono:wght@400;500&display=swap');
|
||||||
|
```
|
||||||
|
|
||||||
|
**Type Scale:**
|
||||||
|
|
||||||
|
| Token | Size | Weight | Line Height | Usage |
|
||||||
|
|-------|------|--------|-------------|-------|
|
||||||
|
| `display-xl` | 3rem / 48px | 700 | 1.15 | Hero headlines |
|
||||||
|
| `display-lg` | 2.25rem / 36px | 700 | 1.2 | Section headers, slide titles |
|
||||||
|
| `heading-xl` | 1.875rem / 30px | 700 | 1.25 | Page titles |
|
||||||
|
| `heading-lg` | 1.5rem / 24px | 600 | 1.3 | Card headers |
|
||||||
|
| `heading-md` | 1.25rem / 20px | 600 | 1.35 | Sub-section headers |
|
||||||
|
| `heading-sm` | 1.125rem / 18px | 600 | 1.4 | UI labels, column headers |
|
||||||
|
| `body-lg` | 1rem / 16px | 400 | 1.6 | Primary body text |
|
||||||
|
| `body-sm` | 0.875rem / 14px | 400 | 1.5 | Secondary body, form labels |
|
||||||
|
| `caption` | 0.75rem / 12px | 400 | 1.5 | Metadata, timestamps |
|
||||||
|
| `data` | 0.875rem / 14px | 500 | 1.4 | JetBrains Mono — numeric values |
|
||||||
|
| `code` | 0.875rem / 14px | 400 | 1.6 | JetBrains Mono — code/IDs |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. Logo Direction Notes
|
||||||
|
|
||||||
|
- **Wordmark:** "STTIL SOLUTIONS" in Plus Jakarta Sans 700, all-caps, letter-spacing +0.05em. Color: `teal-700` on light, `warm-white` on dark.
|
||||||
|
- **Mark:** Abstract signal waveform or S-form. Precise, not decorative. Single-color only — no gradients.
|
||||||
|
- **Signal lockup:** "Signal" large (Plus Jakarta Sans 600), "Powered by STTIL Solutions" below in `neutral-400` (light) or `teal-300` (dark).
|
||||||
|
- No copper in the primary logo — copper is accent, not identity.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 11. How to Use Copper
|
||||||
|
|
||||||
|
### Light Mode — Restraint Rules
|
||||||
|
|
||||||
|
**Use copper for:**
|
||||||
|
- One CTA per page or screen (secondary button or key action)
|
||||||
|
- Call-out boxes highlighting a key insight
|
||||||
|
- PA Required status badge
|
||||||
|
- One accent per LinkedIn carousel slide
|
||||||
|
- Warning/expiring range in charts (copper-400)
|
||||||
|
|
||||||
|
**Never use copper for:**
|
||||||
|
- Page or card backgrounds (copper-100 for a single call-out only)
|
||||||
|
- Navigation elements
|
||||||
|
- More than one element per visual section
|
||||||
|
- Body text on white (fails accessibility at copper-500)
|
||||||
|
- Large filled blocks — reads as orange at scale
|
||||||
|
|
||||||
|
### Dark Mode — Warm Gold Expression
|
||||||
|
|
||||||
|
On teal-950/teal-900 surfaces, copper behavior shifts:
|
||||||
|
|
||||||
|
**Permitted in dark mode:**
|
||||||
|
- `copper-400` borders on featured cards (1px)
|
||||||
|
- `copper-300` text for warm gold label accents
|
||||||
|
- `copper-glow` box-shadow on priority or featured cards
|
||||||
|
- `active-nav-copper` left border (3px) on active sidebar item
|
||||||
|
- `priority-row-bg` (copper-500 at 8% opacity) on top-priority worklist rows
|
||||||
|
- Up to 2–3 copper touchpoints per section — provided teal remains dominant
|
||||||
|
|
||||||
|
**The copper rule (both modes):** Copper marks what matters most. If everything is accented, nothing is accented. In dark mode, the expanded copper palette creates warmth; in light mode, it creates premium restraint.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 12. Light Mode and Dark Mode
|
||||||
|
|
||||||
|
### Light Mode
|
||||||
|
|
||||||
|
| Surface | Token | Hex |
|
||||||
|
|---------|-------|-----|
|
||||||
|
| Page background | `neutral-50` | `#F4F9F9` |
|
||||||
|
| Card / panel | `neutral-0` | `#FFFFFF` |
|
||||||
|
| Primary text | `neutral-900` | `#111A1A` |
|
||||||
|
| Secondary text | `neutral-500` | `#5A7E7E` |
|
||||||
|
| Border | `neutral-200` | `#C8D8D8` |
|
||||||
|
| Primary brand | `teal-600` | `#147A7A` |
|
||||||
|
| Copper accent | `copper-500` | `#CB6B20` |
|
||||||
|
| Sidebar background | `teal-900` | `#072E2E` |
|
||||||
|
| Sidebar text | `neutral-0` | `#FFFFFF` |
|
||||||
|
|
||||||
|
### Dark Mode
|
||||||
|
|
||||||
|
| Surface | Token | Hex |
|
||||||
|
|---------|-------|-----|
|
||||||
|
| Page background | `teal-950` | `#041A1A` |
|
||||||
|
| Card / panel | `teal-900` | `#072E2E` |
|
||||||
|
| Elevated surface | `teal-800` | `#0A4444` |
|
||||||
|
| Primary heading | `warm-white` | `#FFFAF6` |
|
||||||
|
| Primary text | `neutral-0` | `#FFFFFF` |
|
||||||
|
| Secondary text | `teal-300` | `#5BBBBB` |
|
||||||
|
| Border | `teal-700` | `#0F5E5E` |
|
||||||
|
| Primary brand | `teal-400` | `#2EA3A3` |
|
||||||
|
| Copper accent (borders/glows) | `copper-400` | `#D97B35` |
|
||||||
|
| Copper accent (text/icons) | `copper-300` | `#E49655` |
|
||||||
|
| Priority row | `priority-row-bg` | `rgba(203,107,32,0.08)` |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 13. Do / Don't
|
||||||
|
|
||||||
|
### Visuals
|
||||||
|
|
||||||
|
| Do | Don't |
|
||||||
|
|----|-------|
|
||||||
|
| Tight, well-spaced data tables | Busy dashboards with no hierarchy |
|
||||||
|
| Plus Jakarta Sans 700 at correct weight | Thin weights or system default fonts |
|
||||||
|
| Teal-900 sidebar with white nav text | Sidebar gradients or colored nav icons |
|
||||||
|
| Copper used once per section (light) | Copper as a background or nav color |
|
||||||
|
| Copper-300/400 as warm gold accents (dark) | Copper dominating over teal in dark mode |
|
||||||
|
| White cards on neutral-50 page background | Gray cards on white (visual mud) |
|
||||||
|
| Status badges with icon + label | Color-only status indicators |
|
||||||
|
| Monochromatic teal range in charts | Rainbow chart palettes |
|
||||||
|
| `copper-glow` shadow on single priority card | Glow applied to all cards (destroys signal) |
|
||||||
|
|
||||||
|
### Copy
|
||||||
|
|
||||||
|
| Do | Don't |
|
||||||
|
|----|-------|
|
||||||
|
| "35–45% first-pass denial rate for CGM claims" | "We're revolutionizing DME billing" |
|
||||||
|
| "Calculates coverage expiry using CMS wear-day rules" | "AI-powered solution that automates everything" |
|
||||||
|
| "Built for DMEPOS suppliers managing CGM reorder cycles" | "A tool for anyone in healthcare" |
|
||||||
|
| Use HCPCS codes and CMS-accurate terminology | Simplify or invent regulatory details |
|
||||||
|
|
||||||
|
### Avoiding Generic AI-Slop Aesthetics
|
||||||
|
|
||||||
|
- No purple gradients — "AI purple" signals commodity, not premium
|
||||||
|
- No glowing elements except the deliberate `copper-glow` shadow token
|
||||||
|
- No hero illustrations with floating orbs
|
||||||
|
- No "futuristic" grid textures or noise overlays
|
||||||
|
- No blue + purple gradient brand marks
|
||||||
|
- No "AI" in the product name or tagline — outcomes should speak
|
||||||
|
- No stock photo doctors smiling at tablets
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 14. Application by Surface
|
||||||
|
|
||||||
|
| Surface | Background | Header | CTA | Notes |
|
||||||
|
|---------|-----------|--------|-----|-------|
|
||||||
|
| Website | `neutral-50` / white cards | `teal-900` nav, white text | `teal-600` primary, `copper-500` secondary | No gradients |
|
||||||
|
| Signal UI (dark) | `teal-950` | Plus Jakarta Sans 700, `warm-white` | `teal-600` fill, `copper-400` accent border | Copper-glow on top card |
|
||||||
|
| LinkedIn carousels | `teal-900` cover, white content slides | Plus Jakarta Sans 700 | `copper-500` on cover | One copper per slide (light slides) |
|
||||||
|
| Pitch decks | `teal-900` title, `neutral-0` content | White on dark, `teal-700` on light | `copper-100` call-out boxes | Charts: teal-500 primary, copper-400 accent |
|
||||||
|
| Documentation | `neutral-0` | `teal-700` headers | Copper call-out boxes only | JetBrains Mono for codes/data |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 15. Recommended Next Implementation Steps
|
||||||
|
|
||||||
|
1. Register fonts — Plus Jakarta Sans, Inter, JetBrains Mono via Google Fonts in Signal CGM app and website.
|
||||||
|
2. Implement design tokens — Apply `design-tokens-v1.json` as CSS custom properties (see `tailwind-theme-v1.md`).
|
||||||
|
3. Update Tailwind config — Extend theme with full teal/copper/neutral/sparkle scales.
|
||||||
|
4. Build component baseline — Button, Badge (status variants), Card, Sidebar, WorklistTable.
|
||||||
|
5. Apply copper-glow to the highest-priority card only per dashboard view — establishes the sparkle hierarchy.
|
||||||
|
6. Apply brand to pitch deck — teal-900/white split, copper-100 call-out boxes, two-curve workload graph as hero visual.
|
||||||
|
7. Create LinkedIn carousel template — five slides: hook, problem, data, product, CTA.
|
||||||
|
8. Audit Signal CGM UI — sweep against color tokens; standardize all status badges.
|
||||||
|
9. Generate brand assets — mark, wordmark, Signal CGM lockup as locked SVGs.
|
||||||
|
10. Build Figma/Penpot component library from the tokens.
|
||||||
|
11. Create one-page partner brand guide PDF for billing company prospects.
|
||||||
361
docs/tailwind-theme-v1.md
Normal file
361
docs/tailwind-theme-v1.md
Normal file
|
|
@ -0,0 +1,361 @@
|
||||||
|
# STTIL Brand — Tailwind Theme v1
|
||||||
|
|
||||||
|
**Date:** April 2026
|
||||||
|
**Source tokens:** `design-tokens-v1.json`
|
||||||
|
**Accent family:** Tangerine (replaces copper)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. CSS Custom Properties
|
||||||
|
|
||||||
|
Add to your global CSS (e.g., `globals.css`, `base.css`, or `<style>` in `_document`):
|
||||||
|
|
||||||
|
```css
|
||||||
|
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@600;700&family=Inter:wght@400;500&family=JetBrains+Mono:wght@400;500&display=swap');
|
||||||
|
|
||||||
|
:root {
|
||||||
|
/* ── Teal scale ── */
|
||||||
|
--teal-50: #EEF8F8;
|
||||||
|
--teal-100: #CBE9E9;
|
||||||
|
--teal-200: #97D3D3;
|
||||||
|
--teal-300: #5BBBBB;
|
||||||
|
--teal-400: #2EA3A3;
|
||||||
|
--teal-500: #1A8A8A;
|
||||||
|
--teal-600: #147A7A;
|
||||||
|
--teal-700: #0F5E5E;
|
||||||
|
--teal-800: #0A4444;
|
||||||
|
--teal-900: #072E2E;
|
||||||
|
--teal-950: #041A1A;
|
||||||
|
|
||||||
|
/* ── Tangerine scale ── */
|
||||||
|
--tng-50: #FFF4EE;
|
||||||
|
--tng-100: #FFE4CC;
|
||||||
|
--tng-200: #FFC090;
|
||||||
|
--tng-300: #FFB070;
|
||||||
|
--tng-400: #F07840;
|
||||||
|
--tng-500: #E06028;
|
||||||
|
--tng-600: #C04E1C;
|
||||||
|
--tng-700: #903A14;
|
||||||
|
--tng-800: #6A2A0C;
|
||||||
|
--tng-900: #3E1808;
|
||||||
|
|
||||||
|
/* ── Neutral scale ── */
|
||||||
|
--n-0: #FFFFFF;
|
||||||
|
--n-50: #F4F9F9;
|
||||||
|
--n-100: #E5EEEE;
|
||||||
|
--n-200: #C8D8D8;
|
||||||
|
--n-300: #A3BEBE;
|
||||||
|
--n-400: #7A9E9E;
|
||||||
|
--n-500: #5A7E7E;
|
||||||
|
--n-600: #426060;
|
||||||
|
--n-700: #2E4444;
|
||||||
|
--n-800: #1C2C2C;
|
||||||
|
--n-900: #111A1A;
|
||||||
|
|
||||||
|
/* ── Semantic ── */
|
||||||
|
--success-100: #C8EDD8;
|
||||||
|
--success-500: #1A7A4E;
|
||||||
|
--success-600: #146040;
|
||||||
|
--warning-100: #FDECD5;
|
||||||
|
--warning-400: #D97B35;
|
||||||
|
--warning-600: #A85A18;
|
||||||
|
--error-100: #F8CCCC;
|
||||||
|
--error-500: #C83030;
|
||||||
|
--error-600: #A02020;
|
||||||
|
--info-100: #C8E0EE;
|
||||||
|
--info-500: #1A6A9A;
|
||||||
|
--purple-100: #E2D8F0;
|
||||||
|
--purple-500: #7A5EA0;
|
||||||
|
|
||||||
|
/* ── Sparkle tokens ── */
|
||||||
|
--warm-white: #FFFAF6;
|
||||||
|
--tng-glow-dark: 0 0 24px rgba(240,120,64,0.30), 0 2px 10px rgba(4,26,26,0.70);
|
||||||
|
--tng-glow-light: 0 0 16px rgba(224,96,40,0.20), 0 2px 8px rgba(0,0,0,0.08);
|
||||||
|
--priority-row-dark: rgba(224,104,48,0.09);
|
||||||
|
--priority-row-light: rgba(224,96,40,0.05);
|
||||||
|
--tng-shimmer-border: 1px solid rgba(240,120,64,0.35);
|
||||||
|
|
||||||
|
/* ── Semantic UI (dark mode defaults) ── */
|
||||||
|
--bg-page: var(--teal-950);
|
||||||
|
--bg-card: var(--teal-900);
|
||||||
|
--bg-elevated: var(--teal-800);
|
||||||
|
--text-heading: var(--warm-white);
|
||||||
|
--text-primary: #F0F4F4;
|
||||||
|
--text-secondary: var(--teal-300);
|
||||||
|
--text-muted: #5A8080;
|
||||||
|
--border: var(--teal-700);
|
||||||
|
--brand: var(--teal-400);
|
||||||
|
--accent: var(--tng-400);
|
||||||
|
--accent-text: var(--tng-300);
|
||||||
|
--card-shadow: 0 2px 10px rgba(4,26,26,0.60);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ── Light mode overrides ── */
|
||||||
|
.light, [data-theme="light"] {
|
||||||
|
--bg-page: var(--n-50);
|
||||||
|
--bg-card: var(--n-0);
|
||||||
|
--bg-elevated: var(--n-100);
|
||||||
|
--text-heading: #0A3030;
|
||||||
|
--text-primary: #1C2E2E;
|
||||||
|
--text-secondary: var(--n-500);
|
||||||
|
--text-muted: var(--n-400);
|
||||||
|
--border: var(--n-200);
|
||||||
|
--brand: var(--teal-600);
|
||||||
|
--accent: var(--tng-500);
|
||||||
|
--accent-text: var(--tng-500);
|
||||||
|
--card-shadow: 0 2px 8px rgba(7,46,46,0.09);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Tailwind Config Extension
|
||||||
|
|
||||||
|
`tailwind.config.js` (or `tailwind.config.ts`):
|
||||||
|
|
||||||
|
```js
|
||||||
|
const { fontFamily } = require('tailwindcss/defaultTheme')
|
||||||
|
|
||||||
|
/** @type {import('tailwindcss').Config} */
|
||||||
|
module.exports = {
|
||||||
|
content: ['./src/**/*.{js,ts,jsx,tsx,html}'],
|
||||||
|
darkMode: 'class',
|
||||||
|
theme: {
|
||||||
|
extend: {
|
||||||
|
colors: {
|
||||||
|
teal: {
|
||||||
|
50: '#EEF8F8',
|
||||||
|
100: '#CBE9E9',
|
||||||
|
200: '#97D3D3',
|
||||||
|
300: '#5BBBBB',
|
||||||
|
400: '#2EA3A3',
|
||||||
|
500: '#1A8A8A',
|
||||||
|
600: '#147A7A',
|
||||||
|
700: '#0F5E5E',
|
||||||
|
800: '#0A4444',
|
||||||
|
900: '#072E2E',
|
||||||
|
950: '#041A1A',
|
||||||
|
},
|
||||||
|
tng: {
|
||||||
|
50: '#FFF4EE',
|
||||||
|
100: '#FFE4CC',
|
||||||
|
200: '#FFC090',
|
||||||
|
300: '#FFB070',
|
||||||
|
400: '#F07840',
|
||||||
|
500: '#E06028',
|
||||||
|
600: '#C04E1C',
|
||||||
|
700: '#903A14',
|
||||||
|
800: '#6A2A0C',
|
||||||
|
900: '#3E1808',
|
||||||
|
},
|
||||||
|
neutral: {
|
||||||
|
0: '#FFFFFF',
|
||||||
|
50: '#F4F9F9',
|
||||||
|
100: '#E5EEEE',
|
||||||
|
200: '#C8D8D8',
|
||||||
|
300: '#A3BEBE',
|
||||||
|
400: '#7A9E9E',
|
||||||
|
500: '#5A7E7E',
|
||||||
|
600: '#426060',
|
||||||
|
700: '#2E4444',
|
||||||
|
800: '#1C2C2C',
|
||||||
|
900: '#111A1A',
|
||||||
|
},
|
||||||
|
success: { 100: '#C8EDD8', 500: '#1A7A4E', 600: '#146040' },
|
||||||
|
warning: { 100: '#FDECD5', 400: '#D97B35', 600: '#A85A18' },
|
||||||
|
error: { 100: '#F8CCCC', 500: '#C83030', 600: '#A02020' },
|
||||||
|
info: { 100: '#C8E0EE', 500: '#1A6A9A' },
|
||||||
|
purple: { 100: '#E2D8F0', 500: '#7A5EA0' },
|
||||||
|
},
|
||||||
|
fontFamily: {
|
||||||
|
heading: ["'Plus Jakarta Sans'", ...fontFamily.sans],
|
||||||
|
body: ["'Inter'", ...fontFamily.sans],
|
||||||
|
mono: ["'JetBrains Mono'", ...fontFamily.mono],
|
||||||
|
},
|
||||||
|
fontSize: {
|
||||||
|
'data': ['0.875rem', { lineHeight: '1.4', fontWeight: '500' }],
|
||||||
|
},
|
||||||
|
boxShadow: {
|
||||||
|
'tng-glow': '0 0 24px rgba(240,120,64,0.30), 0 2px 10px rgba(4,26,26,0.70)',
|
||||||
|
'tng-glow-light': '0 0 16px rgba(224,96,40,0.20), 0 2px 8px rgba(0,0,0,0.08)',
|
||||||
|
'card-dark': '0 2px 10px rgba(4,26,26,0.60)',
|
||||||
|
'card-light': '0 2px 8px rgba(7,46,46,0.09)',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: [],
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Sample Component Classes
|
||||||
|
|
||||||
|
### Page backgrounds
|
||||||
|
```html
|
||||||
|
<!-- Dark mode default -->
|
||||||
|
<body class="bg-teal-950 text-white font-body">
|
||||||
|
|
||||||
|
<!-- Light mode -->
|
||||||
|
<body class="bg-neutral-50 text-[#1C2E2E] font-body light">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cards
|
||||||
|
```html
|
||||||
|
<!-- Standard card -->
|
||||||
|
<div class="bg-teal-900 border border-teal-700 rounded-xl p-5 shadow-card-dark">
|
||||||
|
|
||||||
|
<!-- Light mode card -->
|
||||||
|
<div class="bg-white border border-neutral-200 rounded-xl p-5 shadow-card-light">
|
||||||
|
|
||||||
|
<!-- Priority card (tangerine glow — one per view) -->
|
||||||
|
<div class="bg-teal-900 border border-tng-400 rounded-xl p-5 shadow-tng-glow">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Buttons
|
||||||
|
```html
|
||||||
|
<!-- Primary -->
|
||||||
|
<button class="bg-teal-400 hover:bg-teal-500 text-[#FFFAF6] font-body font-medium
|
||||||
|
px-4 py-2 rounded-lg transition-colors">
|
||||||
|
Initiate Outreach
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Tangerine high-urgency (one per view) -->
|
||||||
|
<button class="border border-tng-400 text-tng-300 hover:bg-tng-400/10
|
||||||
|
font-body font-medium px-4 py-2 rounded-lg transition-colors">
|
||||||
|
⚡ Initiate PA →
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- Ghost -->
|
||||||
|
<button class="border border-teal-700 text-teal-300 hover:border-teal-500
|
||||||
|
font-body px-4 py-2 rounded-lg transition-colors">
|
||||||
|
View
|
||||||
|
</button>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Status badges
|
||||||
|
```html
|
||||||
|
<!-- Active -->
|
||||||
|
<span class="inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full text-xs font-medium
|
||||||
|
bg-success-100 text-success-600">
|
||||||
|
✓ Active
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- PA Required (tangerine) -->
|
||||||
|
<span class="inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full text-xs font-medium
|
||||||
|
bg-tng-100 text-tng-700 border border-tng-700/20">
|
||||||
|
⚡ PA Required
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- Denied -->
|
||||||
|
<span class="inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full text-xs font-medium
|
||||||
|
bg-error-100 text-error-600">
|
||||||
|
✕ Denied
|
||||||
|
</span>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Worklist table
|
||||||
|
```html
|
||||||
|
<table class="w-full border-collapse">
|
||||||
|
<thead>
|
||||||
|
<tr class="bg-teal-800">
|
||||||
|
<th class="px-5 py-2.5 text-left text-[10.5px] font-semibold uppercase tracking-widest
|
||||||
|
text-[#5A8080]">Patient ID</th>
|
||||||
|
<!-- ... -->
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<!-- Priority row -->
|
||||||
|
<tr class="border-b border-teal-700/40 bg-[rgba(224,104,48,0.09)]
|
||||||
|
hover:bg-[rgba(224,104,48,0.14)] transition-colors">
|
||||||
|
<td class="px-5 py-3 font-mono font-bold text-tng-300">PT-00142</td>
|
||||||
|
<!-- ... -->
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<!-- Standard row -->
|
||||||
|
<tr class="border-b border-teal-700/40 hover:bg-teal-400/5 transition-colors">
|
||||||
|
<td class="px-5 py-3 font-mono font-bold text-teal-300">PT-00387</td>
|
||||||
|
<!-- ... -->
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Sidebar nav
|
||||||
|
```html
|
||||||
|
<aside class="w-60 bg-teal-900 border-r border-teal-700 flex flex-col min-h-screen">
|
||||||
|
<!-- Wordmark -->
|
||||||
|
<div class="px-5 py-6 border-b border-teal-700/50">
|
||||||
|
<p class="font-heading font-bold text-[17px] text-[#FFFAF6] tracking-[-0.01em]">
|
||||||
|
Signal CGM
|
||||||
|
</p>
|
||||||
|
<p class="text-[11px] text-teal-300 mt-1">by STTIL Solutions</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Active nav item -->
|
||||||
|
<a href="#" class="flex items-center gap-2.5 px-5 py-2.5 text-[13.5px] font-medium
|
||||||
|
text-[#FFFAF6] border-l-[3px] border-tng-400 bg-teal-800/50">
|
||||||
|
≡ All Patients
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<!-- Inactive nav item -->
|
||||||
|
<a href="#" class="flex items-center gap-2.5 px-5 py-2.5 text-[13.5px] text-neutral-400
|
||||||
|
border-l-[3px] border-transparent
|
||||||
|
hover:text-teal-400 hover:bg-teal-400/5 transition-colors">
|
||||||
|
⚠ Expiring Soon
|
||||||
|
</a>
|
||||||
|
</aside>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Charts (data series)
|
||||||
|
```html
|
||||||
|
<!-- Use teal-500 as primary series, tng-400 as the key comparison metric -->
|
||||||
|
<!-- Example: Chart.js dataset colors -->
|
||||||
|
<script>
|
||||||
|
datasets: [
|
||||||
|
{ label: 'Proactive Outreach', borderColor: '#1A8A8A', backgroundColor: 'rgba(26,138,138,0.12)' },
|
||||||
|
{ label: 'Appeals / Denials', borderColor: '#F07840', backgroundColor: 'rgba(240,120,64,0.12)' },
|
||||||
|
]
|
||||||
|
</script>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Call-out boxes (docs / pitch decks)
|
||||||
|
```html
|
||||||
|
<!-- Tangerine call-out (one key insight per section) -->
|
||||||
|
<div class="bg-tng-100 border-l-4 border-tng-500 rounded-r-lg px-4 py-3">
|
||||||
|
<p class="font-semibold text-tng-700 text-sm mb-1">PA affirmation rate: 92%</p>
|
||||||
|
<p class="text-tng-700 text-sm">Suppliers above 90% qualify for PA exemption from June 1, 2026.</p>
|
||||||
|
</div>
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Adding a New Payer Rule Status Color
|
||||||
|
|
||||||
|
1. Add semantic tokens to `design-tokens-v1.json` under `color.semantic`
|
||||||
|
2. Add to `tailwind.config.js` under `theme.extend.colors`
|
||||||
|
3. Add CSS custom properties in `globals.css`
|
||||||
|
4. Create badge variant in your Badge component following the `icon + label` pattern
|
||||||
|
5. Update `signal-cgm-brand-extension-v1.md` Section 5 (status table)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Light / Dark Mode Toggle
|
||||||
|
|
||||||
|
**React / Next.js:**
|
||||||
|
```jsx
|
||||||
|
// Toggle class on <html> element
|
||||||
|
document.documentElement.classList.toggle('light')
|
||||||
|
|
||||||
|
// Or use next-themes:
|
||||||
|
// <ThemeProvider attribute="class" defaultTheme="dark">
|
||||||
|
```
|
||||||
|
|
||||||
|
**Vanilla JS:**
|
||||||
|
```js
|
||||||
|
document.body.classList.toggle('light')
|
||||||
|
// or
|
||||||
|
document.documentElement.dataset.theme = 'light' // matches [data-theme="light"]
|
||||||
|
```
|
||||||
|
|
||||||
|
Dark mode is the operational default for Signal CGM. Light mode is for export, print, and presentation contexts.
|
||||||
|
|
@ -1,5 +1,21 @@
|
||||||
wing: signal_cgm
|
wing: signal
|
||||||
rooms:
|
rooms:
|
||||||
|
- name: core_backend
|
||||||
|
description: Coverage calculator, audit logger, DB models, payer rules config
|
||||||
|
keywords: [coverage, calculator, audit, logger, payer, rules, database, wear_days]
|
||||||
|
|
||||||
|
- name: dmepos_market
|
||||||
|
description: Market research, asset package, sales materials, FL consortium targets
|
||||||
|
keywords: [dmepos, market, asset, sales, consortium, buyer, florida, fahcs, competitive_bidding]
|
||||||
|
|
||||||
|
- name: compliance
|
||||||
|
description: PHI architecture, BAA obligations, audit retention, HIPAA/CMS regulatory context
|
||||||
|
keywords: [phi, baa, compliance, hipaa, audit, retention, medicare, medicaid, prior_auth]
|
||||||
|
|
||||||
|
- name: orchestration
|
||||||
|
description: n8n batch workflows, Mailcow email notifications, VPS hosting
|
||||||
|
keywords: [n8n, workflow, batch, mailcow, email, hostinger, vps]
|
||||||
|
|
||||||
- name: general
|
- name: general
|
||||||
description: All project files
|
description: Files that don't fit other rooms
|
||||||
keywords: []
|
keywords: []
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# Florida DMEPOS Consortium & Association Targets — v1
|
# Florida DMEPOS Consortium & Association Targets — v1
|
||||||
|
|
||||||
**STTIL Solutions LLC | Signal CGM | Research Date: April 2026**
|
**STTIL Solutions LLC | Signal | Research Date: April 2026**
|
||||||
**Purpose:** Identify Florida-based DMEPOS networks, associations, and buying
|
**Purpose:** Identify Florida-based DMEPOS networks, associations, and buying
|
||||||
groups as outreach targets for the Signal CGM asset package sale and/or
|
groups as outreach targets for the Signal asset package sale and/or
|
||||||
future subscriber acquisition.
|
future subscriber acquisition.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -26,7 +26,7 @@ actively coordinates with FAHCS on state-level legislative and regulatory work.
|
||||||
|
|
||||||
- **Website:** [fahcs.us](https://www.fahcs.us/)
|
- **Website:** [fahcs.us](https://www.fahcs.us/)
|
||||||
- **Focus:** Statewide advocacy, member benefits, annual conference
|
- **Focus:** Statewide advocacy, member benefits, annual conference
|
||||||
- **Membership profile:** Florida HME/DMEPOS providers — direct Signal CGM buyer
|
- **Membership profile:** Florida HME/DMEPOS providers — direct Signal buyer
|
||||||
profile match
|
profile match
|
||||||
- **Annual conference:** FAHCS hosts an annual statewide meeting with 150+
|
- **Annual conference:** FAHCS hosts an annual statewide meeting with 150+
|
||||||
attendees (suppliers, vendors, sponsors). 2026 conference dates and location
|
attendees (suppliers, vendors, sponsors). 2026 conference dates and location
|
||||||
|
|
@ -34,7 +34,7 @@ actively coordinates with FAHCS on state-level legislative and regulatory work.
|
||||||
directly for current listing.
|
directly for current listing.
|
||||||
- **Relevance:** Exhibit sponsor or speaker slot at the FAHCS annual conference
|
- **Relevance:** Exhibit sponsor or speaker slot at the FAHCS annual conference
|
||||||
is the highest-leverage single Florida touchpoint. Members are exactly the
|
is the highest-leverage single Florida touchpoint. Members are exactly the
|
||||||
supplier profile Signal CGM targets.
|
supplier profile Signal targets.
|
||||||
- **Action:** Contact FAHCS directly for 2026 conference sponsorship/exhibit
|
- **Action:** Contact FAHCS directly for 2026 conference sponsorship/exhibit
|
||||||
opportunities and membership directory access.
|
opportunities and membership directory access.
|
||||||
|
|
||||||
|
|
@ -61,9 +61,9 @@ directly with FAHCS on Florida-specific legislation and regulatory advocacy.
|
||||||
- **CB 2026 activity:** AAHomecare is the lead national voice on Competitive
|
- **CB 2026 activity:** AAHomecare is the lead national voice on Competitive
|
||||||
Bidding Round 2028. Bidding window is scheduled to open late Summer/Fall 2026.
|
Bidding Round 2028. Bidding window is scheduled to open late Summer/Fall 2026.
|
||||||
CGMs, insulin pumps, ostomy/urological supplies, and OTS braces are included.
|
CGMs, insulin pumps, ostomy/urological supplies, and OTS braces are included.
|
||||||
This is a direct urgency driver for the Signal CGM pitch.
|
This is a direct urgency driver for the Signal pitch.
|
||||||
- **Relevance:** AAHomecare does not sell to members directly, but it is a
|
- **Relevance:** AAHomecare does not sell to members directly, but it is a
|
||||||
credibility signal and a source of referrals. Consider positioning Signal CGM
|
credibility signal and a source of referrals. Consider positioning Signal
|
||||||
as a tool that helps suppliers navigate CB pressure.
|
as a tool that helps suppliers navigate CB pressure.
|
||||||
- **Action:** Monitor [aahomecare.org/Competitive-Bidding](https://aahomecare.org/Competitive-Bidding)
|
- **Action:** Monitor [aahomecare.org/Competitive-Bidding](https://aahomecare.org/Competitive-Bidding)
|
||||||
for CB timeline updates. Use CB urgency in outreach copy.
|
for CB timeline updates. Use CB urgency in outreach copy.
|
||||||
|
|
@ -112,7 +112,7 @@ the Jacksonville metro was identified in search results.
|
||||||
or buying group association is apparent from public data.
|
or buying group association is apparent from public data.
|
||||||
- JC Home Medical ([jchomemedical.com](https://jchomemedical.com/)) is an active
|
- JC Home Medical ([jchomemedical.com](https://jchomemedical.com/)) is an active
|
||||||
Jacksonville-area HME supplier — representative of the independent supplier
|
Jacksonville-area HME supplier — representative of the independent supplier
|
||||||
profile that is Signal CGM's core buyer.
|
profile that is Signal's core buyer.
|
||||||
|
|
||||||
**Buying group landscape generally:**
|
**Buying group landscape generally:**
|
||||||
National buying groups active in DMEPOS include VGM (above), Brightree user
|
National buying groups active in DMEPOS include VGM (above), Brightree user
|
||||||
|
|
@ -137,14 +137,14 @@ directory or FAHCS membership list is the recommended approach for this geograph
|
||||||
### Medtrade 2027 — **Next national opportunity**
|
### Medtrade 2027 — **Next national opportunity**
|
||||||
- **Date:** March 23–25, 2027
|
- **Date:** March 23–25, 2027
|
||||||
- **Location:** Fort Worth Convention Center, Fort Worth, TX
|
- **Location:** Fort Worth Convention Center, Fort Worth, TX
|
||||||
- **Notes:** Plan exhibitor presence or sponsorship for 2027 if Signal CGM
|
- **Notes:** Plan exhibitor presence or sponsorship for 2027 if Signal
|
||||||
asset has not sold by Q4 2026. Registration likely opens Q3–Q4 2026.
|
asset has not sold by Q4 2026. Registration likely opens Q3–Q4 2026.
|
||||||
|
|
||||||
### FAHCS Annual Meeting 2026 — **Highest-priority Florida event**
|
### FAHCS Annual Meeting 2026 — **Highest-priority Florida event**
|
||||||
- **Date/Location:** Not confirmed in search — check [fahcs.us/Events](https://fahcs.us/Events)
|
- **Date/Location:** Not confirmed in search — check [fahcs.us/Events](https://fahcs.us/Events)
|
||||||
- **Format:** Statewide conference, 150+ attendees, exhibit space available
|
- **Format:** Statewide conference, 150+ attendees, exhibit space available
|
||||||
to non-members as sponsors
|
to non-members as sponsors
|
||||||
- **Notes:** This is the single best Florida-specific venue for Signal CGM
|
- **Notes:** This is the single best Florida-specific venue for Signal
|
||||||
exposure to the exact buyer profile. Prior year (2024) meeting dates were
|
exposure to the exact buyer profile. Prior year (2024) meeting dates were
|
||||||
set mid-year. Expect 2026 meeting to follow similar calendar.
|
set mid-year. Expect 2026 meeting to follow similar calendar.
|
||||||
|
|
||||||
|
|
@ -166,7 +166,7 @@ These events are live as of April 2026 and should anchor all supplier outreach:
|
||||||
| Florida Medicaid DMEPOS Moratorium | AHCA moratorium effective March 20, 2026 — no new Medicaid DMEPOS suppliers enrolling for 6 months. Incumbents face rising patient load with no new competition. |
|
| Florida Medicaid DMEPOS Moratorium | AHCA moratorium effective March 20, 2026 — no new Medicaid DMEPOS suppliers enrolling for 6 months. Incumbents face rising patient load with no new competition. |
|
||||||
| Nationwide Medicare Enrollment Moratorium | CMS moratorium effective Feb 27, 2026. Enrolled suppliers have protected market position — and rising management burden. |
|
| Nationwide Medicare Enrollment Moratorium | CMS moratorium effective Feb 27, 2026. Enrolled suppliers have protected market position — and rising management burden. |
|
||||||
| CB 2028 Bidding Window | Opens late Summer/Fall 2026. CGMs explicitly included. Margin compression begins for suppliers who don't reduce denial overhead now. |
|
| CB 2028 Bidding Window | Opens late Summer/Fall 2026. CGMs explicitly included. Margin compression begins for suppliers who don't reduce denial overhead now. |
|
||||||
| PA Expansion — April 13, 2026 | CMS expanded prior authorization for CGM and related DMEPOS. Each PA cycle creates a coverage gap risk Signal CGM is built to catch. |
|
| PA Expansion — April 13, 2026 | CMS added seven new HCPCS codes to the Required PA List. CGM codes sit on the Master List and are on the trajectory. Suppliers with clean PA submission habits now will be positioned when CGM codes follow. |
|
||||||
| 2026 Accreditation Rule Change | Annual surveys now required (previously 3-year cycle). Compliance overhead is up — suppliers want tools that reduce other administrative burden. |
|
| 2026 Accreditation Rule Change | Annual surveys now required (previously 3-year cycle). Compliance overhead is up — suppliers want tools that reduce other administrative burden. |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Signal CGM — Master Summary
|
# Signal — Master Summary
|
||||||
### Strategic Analysis Package | STTIL Solutions LLC | April 2026
|
### Strategic Analysis Package | STTIL Solutions LLC | April 2026
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -34,7 +34,7 @@
|
||||||
|--------|-------|
|
|--------|-------|
|
||||||
| CGM improper payment rate (Medicare) | 25.2% |
|
| CGM improper payment rate (Medicare) | 25.2% |
|
||||||
| Projected annual CGM improper payments | $278.5M |
|
| Projected annual CGM improper payments | $278.5M |
|
||||||
| Share from documentation failures | 94.2% |
|
| Share from documentation failures (CERT 2019) | 68.6% of errors |
|
||||||
| Net revenue loss after appeals (per supplier) | ~20% of gross CGM billing |
|
| Net revenue loss after appeals (per supplier) | ~20% of gross CGM billing |
|
||||||
| Permanently written off (not recovered) | ~63% of denied claim value |
|
| Permanently written off (not recovered) | ~63% of denied claim value |
|
||||||
| Recovered through L1+L2 appeals | ~28% of denied claim value |
|
| Recovered through L1+L2 appeals | ~28% of denied claim value |
|
||||||
|
|
@ -73,7 +73,7 @@ Week 12+: Parallel VGM vendor partner program conversation for distribution
|
||||||
|
|
||||||
| Hypothesis | Status | Method |
|
| Hypothesis | Status | Method |
|
||||||
|-----------|--------|--------|
|
|-----------|--------|--------|
|
||||||
| H1: Denials are documentation-fixable | **Confirmed by CMS data** — 94.2% doc failures | Desk research (OIG + CMS 2024) |
|
| H1: Denials are documentation-fixable | **Confirmed by CERT 2019** — 32.8% error rate; 68.6% from documentation | Desk research (CMS CERT 2019) |
|
||||||
| H2: April 13 PA expansion is live and unpatched | **Likely confirmed** — no incumbent updated | Requires 2–3 discovery calls to verify |
|
| H2: April 13 PA expansion is live and unpatched | **Likely confirmed** — no incumbent updated | Requires 2–3 discovery calls to verify |
|
||||||
| H3: CB 2028 deadline drives active buying urgency | **Untested** | Requires 5 discovery calls with owner-operators |
|
| H3: CB 2028 deadline drives active buying urgency | **Untested** | Requires 5 discovery calls with owner-operators |
|
||||||
|
|
||||||
|
|
@ -81,7 +81,7 @@ Week 12+: Parallel VGM vendor partner program conversation for distribution
|
||||||
|
|
||||||
## Next-Steps Prompt for Next Claude Code Session
|
## Next-Steps Prompt for Next Claude Code Session
|
||||||
|
|
||||||
> Continue Signal CGM go-to-market execution. All strategic analysis is
|
> Continue Signal go-to-market execution. All strategic analysis is
|
||||||
> in CGM-Denial-Prevention/01-Claude-Outputs/. The asset sale target ranking
|
> in CGM-Denial-Prevention/01-Claude-Outputs/. The asset sale target ranking
|
||||||
> is: #1 Billing company (pilot first), #2 NikoHealth (asset sale after pilot
|
> is: #1 Billing company (pilot first), #2 NikoHealth (asset sale after pilot
|
||||||
> evidence). Payer scope: Medicare Advantage and Medicaid as first
|
> evidence). Payer scope: Medicare Advantage and Medicaid as first
|
||||||
|
|
@ -95,5 +95,5 @@ Week 12+: Parallel VGM vendor partner program conversation for distribution
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Generated: April 2026 | STTIL Solutions LLC | Signal CGM*
|
*Generated: April 2026 | STTIL Solutions LLC | Signal*
|
||||||
*All figures from CMS, OIG, KFF primary sources — see individual files for citations*
|
*All figures from CMS, OIG, KFF primary sources — see individual files for citations*
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Independent Sales Representative Agreement
|
# Independent Sales Representative Agreement
|
||||||
|
|
||||||
**STTIL Solutions LLC**
|
**STTIL Solutions LLC**
|
||||||
**Signal CGM Asset — Sales Agent Agreement**
|
**Signal Asset — Sales Agent Agreement**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -19,7 +19,7 @@ as of __________________, 2026 ("Effective Date") by and between:
|
||||||
|
|
||||||
Company appoints Agent as a non-exclusive independent sales representative
|
Company appoints Agent as a non-exclusive independent sales representative
|
||||||
authorized to identify and introduce prospective buyers ("Prospects") for the
|
authorized to identify and introduce prospective buyers ("Prospects") for the
|
||||||
Signal CGM software asset package ("Asset"). Agent's role is limited to
|
Signal software asset package ("Asset"). Agent's role is limited to
|
||||||
identification and introduction of Prospects. Agent has no authority to
|
identification and introduction of Prospects. Agent has no authority to
|
||||||
negotiate, modify, or execute any agreement on behalf of Company.
|
negotiate, modify, or execute any agreement on behalf of Company.
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Signal CGM — Asset Package | Executive Summary
|
# Signal — Asset Package | Executive Summary
|
||||||
|
|
||||||
**STTIL Solutions LLC | Confidential | April 2026**
|
**STTIL Solutions LLC | Confidential | April 2026**
|
||||||
|
|
||||||
|
|
@ -20,10 +20,10 @@ suppliers with proactive coverage management tooling.
|
||||||
- **Enrollment Moratorium:** CMS supplier enrollment moratoria in high-risk
|
- **Enrollment Moratorium:** CMS supplier enrollment moratoria in high-risk
|
||||||
areas are tightening the supply pool. Existing enrolled suppliers face
|
areas are tightening the supply pool. Existing enrolled suppliers face
|
||||||
consolidation pressure and rising per-patient management burden — exactly
|
consolidation pressure and rising per-patient management burden — exactly
|
||||||
the problem Signal CGM is designed to reduce.
|
the problem Signal is designed to reduce.
|
||||||
- **Denial Patterns:** CGM claims deny on predictable, preventable conditions:
|
- **Denial Patterns:** CGM claims deny on predictable, preventable conditions:
|
||||||
coverage lapsed before refill, physician visit not renewed on the Medicare
|
coverage lapsed before refill, physician visit not renewed on the Medicare
|
||||||
180-day cycle, quantity exceeds allowable without documentation. Signal CGM
|
180-day cycle, quantity exceeds allowable without documentation. Signal
|
||||||
flags all three before shipment, not after.
|
flags all three before shipment, not after.
|
||||||
|
|
||||||
The total addressable market is approximately 7,500 Medicare-enrolled DMEPOS
|
The total addressable market is approximately 7,500 Medicare-enrolled DMEPOS
|
||||||
|
|
@ -32,9 +32,9 @@ CMS projects CGM beneficiaries to exceed 3.2 million by 2028.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## What Signal CGM Does
|
## What Signal Does
|
||||||
|
|
||||||
Signal CGM is a B2B coverage worklist tool built for DMEPOS supplier back-office
|
Signal is a B2B coverage worklist tool built for DMEPOS supplier back-office
|
||||||
teams. It replaces manual spreadsheet tracking with an automated, rule-driven
|
teams. It replaces manual spreadsheet tracking with an automated, rule-driven
|
||||||
coverage clock.
|
coverage clock.
|
||||||
|
|
||||||
|
|
@ -82,7 +82,7 @@ through denial reduction. Can deploy internally or white-label for peer supplier
|
||||||
**Option B — Healthcare Operator / DME Platform**
|
**Option B — Healthcare Operator / DME Platform**
|
||||||
A DMEPOS software vendor, billing company, or managed services operator looking
|
A DMEPOS software vendor, billing company, or managed services operator looking
|
||||||
to add a differentiated coverage intelligence module to their existing platform.
|
to add a differentiated coverage intelligence module to their existing platform.
|
||||||
Signal CGM integrates cleanly into existing FastAPI or Django stacks.
|
Signal integrates cleanly into existing FastAPI or Django stacks.
|
||||||
|
|
||||||
**Option C — Consortium or Buying Group**
|
**Option C — Consortium or Buying Group**
|
||||||
A DMEPOS buying group or GPO representing multiple suppliers. Acquire once,
|
A DMEPOS buying group or GPO representing multiple suppliers. Acquire once,
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Signal CGM — Business Model Analysis v1
|
# Signal — Business Model Analysis v1
|
||||||
### STTIL Solutions LLC | Confidential | April 2026
|
### STTIL Solutions LLC | Confidential | April 2026
|
||||||
|
|
||||||
> **Purpose:** Evaluate three monetization paths for Signal CGM, including
|
> **Purpose:** Evaluate three monetization paths for Signal, including
|
||||||
> compliance obligations, delivery and customer acquisition costs, revenue
|
> compliance obligations, delivery and customer acquisition costs, revenue
|
||||||
> projections, and a recommendation for a solo pre-revenue founder in 2026
|
> projections, and a recommendation for a solo pre-revenue founder in 2026
|
||||||
> who wants to retain IP and maximize long-term upside.
|
> who wants to retain IP and maximize long-term upside.
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
| Metric | Figure | Basis |
|
| Metric | Figure | Basis |
|
||||||
|--------|--------|-------|
|
|--------|--------|-------|
|
||||||
| Medicare-enrolled DMEPOS suppliers billing CGM | ~7,500 | CMS data, Signal CGM TAM estimate |
|
| Medicare-enrolled DMEPOS suppliers billing CGM | ~7,500 | CMS data, Signal TAM estimate |
|
||||||
| CMS projected CGM beneficiaries by 2028 | 3.2 million | CMS projections |
|
| CMS projected CGM beneficiaries by 2028 | 3.2 million | CMS projections |
|
||||||
| Improper Medicare CGM payments (2024) | ~$278.5M | CMS OIG report |
|
| Improper Medicare CGM payments (2024) | ~$278.5M | CMS OIG report |
|
||||||
| DMEPOS total Medicare spend | $7B+ annually | OIG |
|
| DMEPOS total Medicare spend | $7B+ annually | OIG |
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
|
|
||||||
### Overview
|
### Overview
|
||||||
|
|
||||||
A one-time sale of the full Signal CGM asset package to a qualified buyer.
|
A one-time sale of the full Signal asset package to a qualified buyer.
|
||||||
No ongoing operational obligations for STTIL Solutions after the knowledge
|
No ongoing operational obligations for STTIL Solutions after the knowledge
|
||||||
transfer period.
|
transfer period.
|
||||||
|
|
||||||
|
|
@ -102,7 +102,7 @@ transfer period.
|
||||||
|
|
||||||
- **Pre-proof-of-concept sale undervalues the asset.** Without a single
|
- **Pre-proof-of-concept sale undervalues the asset.** Without a single
|
||||||
paying customer or pilot result, the buyer is pricing in maximum risk.
|
paying customer or pilot result, the buyer is pricing in maximum risk.
|
||||||
Even one supplier testimonial — "Signal CGM prevented X denials in 30 days"
|
Even one supplier testimonial — "Signal prevented X denials in 30 days"
|
||||||
— can move the negotiating floor from $25K to $45K or higher.
|
— can move the negotiating floor from $25K to $45K or higher.
|
||||||
- When a billing system deal (Model C) is realistically achievable. A
|
- When a billing system deal (Model C) is realistically achievable. A
|
||||||
$100K–$200K licensing fee + royalties makes a $35K asset sale look
|
$100K–$200K licensing fee + royalties makes a $35K asset sale look
|
||||||
|
|
@ -120,7 +120,7 @@ requires a billing system acquirer or consortium structure.
|
||||||
|
|
||||||
### Overview
|
### Overview
|
||||||
|
|
||||||
STTIL Solutions operates Signal CGM as a hosted SaaS and licenses access
|
STTIL Solutions operates Signal as a hosted SaaS and licenses access
|
||||||
to individual DMEPOS suppliers on a monthly subscription basis.
|
to individual DMEPOS suppliers on a monthly subscription basis.
|
||||||
|
|
||||||
> **HIPAA compliance note:** Operating as a SaaS with supplier ePHI contact
|
> **HIPAA compliance note:** Operating as a SaaS with supplier ePHI contact
|
||||||
|
|
@ -144,7 +144,7 @@ This is conservative; denial prevention ROI at even $300/mo is compelling
|
||||||
for a supplier losing $500–$2,000/month on avoidable denials.
|
for a supplier losing $500–$2,000/month on avoidable denials.
|
||||||
|
|
||||||
**Assumption validation:** DMEPOS back-office software (Brightree, WellSky)
|
**Assumption validation:** DMEPOS back-office software (Brightree, WellSky)
|
||||||
runs $200–$600/mo per module. Signal CGM at $200–$500/mo is within the
|
runs $200–$600/mo per module. Signal at $200–$500/mo is within the
|
||||||
established price tolerance for this buyer. The ROI case is direct:
|
established price tolerance for this buyer. The ROI case is direct:
|
||||||
one prevented denial per month at ~$150–$400 average CGM claim value
|
one prevented denial per month at ~$150–$400 average CGM claim value
|
||||||
pays for the tool. This pricing is supportable.
|
pays for the tool. This pricing is supportable.
|
||||||
|
|
@ -234,7 +234,7 @@ object storage (S3 with Object Lock, or equivalent).
|
||||||
|
|
||||||
### Overview
|
### Overview
|
||||||
|
|
||||||
License Signal CGM to an existing DMEPOS billing system or software
|
License Signal to an existing DMEPOS billing system or software
|
||||||
platform (Brightree, WellSky, Niko Health, or similar) as a white-label
|
platform (Brightree, WellSky, Niko Health, or similar) as a white-label
|
||||||
module or integrated feature. STTIL Solutions receives an upfront license
|
module or integrated feature. STTIL Solutions receives an upfront license
|
||||||
fee plus ongoing royalties.
|
fee plus ongoing royalties.
|
||||||
|
|
@ -245,20 +245,20 @@ fee plus ongoing royalties.
|
||||||
|---------|------------------|
|
|---------|------------------|
|
||||||
| **Brightree** (ResMed subsidiary) | Largest DMEPOS billing platform; CGM is a growth category in their customer base |
|
| **Brightree** (ResMed subsidiary) | Largest DMEPOS billing platform; CGM is a growth category in their customer base |
|
||||||
| **WellSky** | Major post-acute and home health platform; DMEPOS billing module customers need this |
|
| **WellSky** | Major post-acute and home health platform; DMEPOS billing module customers need this |
|
||||||
| **Niko Health** | CGM-focused billing platform — most directly aligned with Signal CGM's use case |
|
| **Niko Health** | CGM-focused billing platform — most directly aligned with Signal's use case |
|
||||||
| **Bonafide DME** | Regional but CGM-specialized; potential pilot-to-license path |
|
| **Bonafide DME** | Regional but CGM-specialized; potential pilot-to-license path |
|
||||||
| **Intermedix / R1 RCM** | Revenue cycle management at scale; denial prevention is core to their value prop |
|
| **Intermedix / R1 RCM** | Revenue cycle management at scale; denial prevention is core to their value prop |
|
||||||
|
|
||||||
### White-Label / Integration Licensing Structure
|
### White-Label / Integration Licensing Structure
|
||||||
|
|
||||||
**Option 1 — White-label OEM**
|
**Option 1 — White-label OEM**
|
||||||
- Billing system rebrands Signal CGM as their own module
|
- Billing system rebrands Signal as their own module
|
||||||
- STTIL provides code + documentation + update cadence
|
- STTIL provides code + documentation + update cadence
|
||||||
- Billing system handles all HIPAA compliance, BAAs, customer support
|
- Billing system handles all HIPAA compliance, BAAs, customer support
|
||||||
- STTIL's obligations: deliver working software, maintain payer rules, provide updates
|
- STTIL's obligations: deliver working software, maintain payer rules, provide updates
|
||||||
|
|
||||||
**Option 2 — API integration**
|
**Option 2 — API integration**
|
||||||
- Signal CGM runs as a STTIL-operated microservice
|
- Signal runs as a STTIL-operated microservice
|
||||||
- Billing system calls STTIL's API per worklist calculation
|
- Billing system calls STTIL's API per worklist calculation
|
||||||
- Billing system owns the customer relationship; STTIL is a BA to the billing system
|
- Billing system owns the customer relationship; STTIL is a BA to the billing system
|
||||||
- Requires STTIL to maintain HIPAA compliance posture (similar to Model B)
|
- Requires STTIL to maintain HIPAA compliance posture (similar to Model B)
|
||||||
|
|
@ -383,7 +383,7 @@ PHASE 3 — SCALE (Month 12+)
|
||||||
Goal: Distribution licensing executed; recurring revenue stable
|
Goal: Distribution licensing executed; recurring revenue stable
|
||||||
□ Billing system white-label deal closed
|
□ Billing system white-label deal closed
|
||||||
□ Royalty stream established
|
□ Royalty stream established
|
||||||
□ Signal CGM payer rules updated for 2027 changes
|
□ Signal payer rules updated for 2027 changes
|
||||||
□ Evaluate consortium / buying group strategy (Level 2/3)
|
□ Evaluate consortium / buying group strategy (Level 2/3)
|
||||||
Revenue: $100K+ ARR target
|
Revenue: $100K+ ARR target
|
||||||
```
|
```
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
# Signal CGM — Asset Sale Overview
|
# Signal — Asset Sale Overview
|
||||||
## Plain Language Edition
|
## Plain Language Edition
|
||||||
### For Social Sharing and Non-Technical Decision Makers
|
### For Social Sharing and Non-Technical Decision Makers
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
> SIGNAL CGM
|
> SIGNAL
|
||||||
> Stop Losing 20% of Your Clients' CGM Revenue.
|
> Stop Losing 20% of Your Clients' CGM Revenue.
|
||||||
> A ready-to-deploy tool for DME billing companies.
|
> A ready-to-deploy tool for DME billing companies.
|
||||||
> STTIL Solutions LLC | kisasttil@gmail.com
|
> STTIL Solutions LLC | kisasttil@gmail.com
|
||||||
|
|
@ -23,11 +23,12 @@ A claim gets denied. The product was already shipped. The patient has it. Your
|
||||||
client can't get it back. They try to appeal. Most of the time, they lose more
|
client can't get it back. They try to appeal. Most of the time, they lose more
|
||||||
money fighting it than they get back.
|
money fighting it than they get back.
|
||||||
|
|
||||||
Here's the part that stings: **94% of those denied claims could have been
|
Here's the part that stings: CMS data shows **nearly 1 in 3 CGM claims
|
||||||
prevented.** The information existed. Someone just didn't have it in hand
|
has an error — and documentation problems cause more than two-thirds of
|
||||||
before the order shipped.
|
those failures.** The information existed. Someone just didn't have it
|
||||||
|
in hand before the order shipped.
|
||||||
|
|
||||||
That's what Signal CGM fixes.
|
That's what Signal fixes.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -70,7 +71,7 @@ they were doing things right.
|
||||||
|
|
||||||
We're offering a **60-day pilot** at no cost.
|
We're offering a **60-day pilot** at no cost.
|
||||||
|
|
||||||
Pick two to three of your suppliers. We run Signal CGM on their live CGM
|
Pick two to three of your suppliers. We run Signal on their live CGM
|
||||||
patient data. We track what would have been denied. We show you what changed.
|
patient data. We track what would have been denied. We show you what changed.
|
||||||
|
|
||||||
At the end of 60 days, you'll see the before-and-after in your clients' actual
|
At the end of 60 days, you'll see the before-and-after in your clients' actual
|
||||||
|
|
@ -82,7 +83,7 @@ If it doesn't show a clear improvement in first-pass CGM claims, there's no deal
|
||||||
|
|
||||||
### What We're Asking
|
### What We're Asking
|
||||||
|
|
||||||
Signal CGM is available two ways:
|
Signal is available two ways:
|
||||||
|
|
||||||
**Option 1 — You own it.**
|
**Option 1 — You own it.**
|
||||||
One-time purchase: **$45,000–$65,000.**
|
One-time purchase: **$45,000–$65,000.**
|
||||||
|
|
@ -100,19 +101,19 @@ through at whatever margin makes sense for your business.
|
||||||
### Three Questions You're Probably Already Thinking
|
### Three Questions You're Probably Already Thinking
|
||||||
|
|
||||||
**"Is this worth the cost?"**
|
**"Is this worth the cost?"**
|
||||||
Your clients are losing $20 of every $100 they bill on CGM. If Signal CGM
|
Your clients are losing $20 of every $100 they bill on CGM. If Signal
|
||||||
moves that to $14 lost instead of $20 — a modest improvement — a single
|
moves that to $14 lost instead of $20 — a modest improvement — a single
|
||||||
500-patient supplier recovers $9,000+ per month. At $75/month, that's a
|
500-patient supplier recovers $9,000+ per month. At $75/month, that's a
|
||||||
120-to-1 return. The cost question answers itself.
|
120-to-1 return. The cost question answers itself.
|
||||||
|
|
||||||
**"Doesn't this make my billing services less necessary?"**
|
**"Doesn't this make my billing services less necessary?"**
|
||||||
No. Your clients still need you to run their billing, handle denials, and
|
No. Your clients still need you to run their billing, handle denials, and
|
||||||
manage payer relationships. Signal CGM handles the pre-shipment window — the
|
manage payer relationships. Signal handles the pre-shipment window — the
|
||||||
45 days before a claim exists. That's not your current job. It becomes a new
|
45 days before a claim exists. That's not your current job. It becomes a new
|
||||||
service you offer, not a replacement for what you already do.
|
service you offer, not a replacement for what you already do.
|
||||||
|
|
||||||
**"What happens to patient data?"**
|
**"What happens to patient data?"**
|
||||||
Signal CGM never stores patient names, Social Security numbers, dates of birth,
|
Signal never stores patient names, Social Security numbers, dates of birth,
|
||||||
or contact information. The only identifier the system uses is the supplier's
|
or contact information. The only identifier the system uses is the supplier's
|
||||||
internal patient ID number. All audit logs hash even that. Data stays on your
|
internal patient ID number. All audit logs hash even that. Data stays on your
|
||||||
infrastructure, not ours. A Business Associate Agreement is part of every
|
infrastructure, not ours. A Business Associate Agreement is part of every
|
||||||
|
|
@ -122,7 +123,7 @@ deployment.
|
||||||
|
|
||||||
**Ready to run the pilot?**
|
**Ready to run the pilot?**
|
||||||
Contact: kisasttil@gmail.com
|
Contact: kisasttil@gmail.com
|
||||||
STTIL Solutions LLC | Signal CGM
|
STTIL Solutions LLC | Signal
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
# Signal CGM — Asset Sale Overview
|
# Signal — Asset Sale Overview
|
||||||
## Professional Edition
|
## Professional Edition
|
||||||
### Strategic Acquisition for DME-Focused Revenue Cycle Management Organizations
|
### Strategic Acquisition for DME-Focused Revenue Cycle Management Organizations
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
> SIGNAL CGM
|
> SIGNAL
|
||||||
> A CGM-Specific Denial Prevention and Compliance Intelligence Platform
|
> A CGM-Specific Documentation Readiness Platform
|
||||||
> for DME Revenue Cycle Management Organizations
|
> for DME Revenue Cycle Management Organizations
|
||||||
>
|
>
|
||||||
> Asset Acquisition and Licensing Opportunity | April 2026
|
> Asset Acquisition and Licensing Opportunity | April 2026
|
||||||
|
|
@ -17,11 +17,11 @@
|
||||||
|
|
||||||
CMS's 2024 Medicare Fee-for-Service data puts the CGM improper payment rate at
|
CMS's 2024 Medicare Fee-for-Service data puts the CGM improper payment rate at
|
||||||
**25.2% — $278.5 million in projected annual overpayments** on glucose monitor
|
**25.2% — $278.5 million in projected annual overpayments** on glucose monitor
|
||||||
billing. Of that figure, 94.2% traces directly to documentation deficiencies:
|
billing. CMS CERT data shows 32.8% of glucose monitor claims carry errors, with
|
||||||
missing or expired Certificates of Medical Necessity, prior authorizations not
|
documentation deficiencies — missing or expired Certificates of Medical Necessity,
|
||||||
obtained before shipment, undocumented 6-month physician visits, and prescriber
|
prior authorizations not obtained before shipment, undocumented 6-month physician
|
||||||
PECOS enrollment failures. Less than 6% reflects medical necessity disputes or
|
visits, and prescriber PECOS enrollment failures — driving over two-thirds of
|
||||||
coverage policy conflicts.
|
those failures.
|
||||||
|
|
||||||
The financial consequence for a supplier billing 500 active CGM patients monthly
|
The financial consequence for a supplier billing 500 active CGM patients monthly
|
||||||
runs deeper than the denial rate suggests. After accounting for appeal labor,
|
runs deeper than the denial rate suggests. After accounting for appeal labor,
|
||||||
|
|
@ -33,7 +33,7 @@ per month, or **20% of gross CGM billing**, that does not appear as a line item
|
||||||
in any supplier's P&L but is reflected across AR aging, appeal staffing overhead,
|
in any supplier's P&L but is reflected across AR aging, appeal staffing overhead,
|
||||||
and uncompensated product cost.
|
and uncompensated product cost.
|
||||||
|
|
||||||
This is the problem Signal CGM was built to eliminate — not by improving the
|
This is the problem Signal was built to eliminate — not by improving the
|
||||||
appeals process, but by making the appeals process unnecessary.
|
appeals process, but by making the appeals process unnecessary.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -42,7 +42,7 @@ appeals process, but by making the appeals process unnecessary.
|
||||||
|
|
||||||
**1. Prior Authorization Tracking (Highest Leverage — No Recovery Path if Missed)**
|
**1. Prior Authorization Tracking (Highest Leverage — No Recovery Path if Missed)**
|
||||||
PA not obtained before CGM shipment is the only denial type with zero appeal
|
PA not obtained before CGM shipment is the only denial type with zero appeal
|
||||||
recovery. Signal CGM initiates PA tracking 45 days before the projected refill
|
recovery. Signal initiates PA tracking 45 days before the projected refill
|
||||||
date — sufficient runway for the MAC's 14–21 day adjudication window plus a
|
date — sufficient runway for the MAC's 14–21 day adjudication window plus a
|
||||||
resubmission buffer — and blocks order release until PA is confirmed in the
|
resubmission buffer — and blocks order release until PA is confirmed in the
|
||||||
system. The April 13, 2026 expansion of the Required Prior Authorization list
|
system. The April 13, 2026 expansion of the Required Prior Authorization list
|
||||||
|
|
@ -62,19 +62,19 @@ or telehealth visit with the treating practitioner every six months. In a mature
|
||||||
500-patient book, 8–15 patients per month are approaching or past this window.
|
500-patient book, 8–15 patients per month are approaching or past this window.
|
||||||
Unlike PA failures, missed-visit denials carry a 50–65% QIC overturn rate when
|
Unlike PA failures, missed-visit denials carry a 50–65% QIC overturn rate when
|
||||||
documentation can be obtained retroactively — but preventing the denial is worth
|
documentation can be obtained retroactively — but preventing the denial is worth
|
||||||
more than recovering half of it post-filing. Signal CGM surfaces each patient's
|
more than recovering half of it post-filing. Signal surfaces each patient's
|
||||||
visit window as a prioritized outreach task 30+ days before the refill date.
|
visit window as a prioritized outreach task 30+ days before the refill date.
|
||||||
|
|
||||||
**4. Prescriber PECOS Validation at Each Refill Cycle (Hard Write-Off Prevention)**
|
**4. Prescriber PECOS Validation at Each Refill Cycle (Hard Write-Off Prevention)**
|
||||||
Medicare requires that the ordering physician maintain active enrollment at the
|
Medicare requires that the ordering physician maintain active enrollment at the
|
||||||
time each order is placed — not merely at the time of initial patient intake.
|
time each order is placed — not merely at the time of initial patient intake.
|
||||||
No incumbent DME billing platform currently re-validates prescriber enrollment
|
No incumbent DME billing platform currently re-validates prescriber enrollment
|
||||||
status at the refill cycle level. Signal CGM queries the NPPES registry against
|
status at the refill cycle level. Signal queries the NPPES registry against
|
||||||
the ordering provider's NPI at each scheduled refill and routes any inactive or
|
the ordering provider's NPI at each scheduled refill and routes any inactive or
|
||||||
mismatched NPI to a supplier alert queue before the order can release.
|
mismatched NPI to a supplier alert queue before the order can release.
|
||||||
|
|
||||||
**5. Intake Validation (Pipeline Defense)**
|
**5. Intake Validation (Pipeline Defense)**
|
||||||
At new patient intake, Signal CGM performs eligibility verification, duplicate
|
At new patient intake, Signal performs eligibility verification, duplicate
|
||||||
claim history check, base equipment record validation (M124), and initial
|
claim history check, base equipment record validation (M124), and initial
|
||||||
prescriber PECOS status check before any first order is authorized.
|
prescriber PECOS status check before any first order is authorized.
|
||||||
|
|
||||||
|
|
@ -92,7 +92,7 @@ distinguishes a legitimate supplier from an audit target when the MAC issues an
|
||||||
|
|
||||||
We are offering a structured 60-day pilot at no cost or obligation.
|
We are offering a structured 60-day pilot at no cost or obligation.
|
||||||
|
|
||||||
Select two to three CGM-active clients from your book. Signal CGM runs against
|
Select two to three CGM-active clients from your book. Signal runs against
|
||||||
their live billing data — tracking open refills, flagging PA status gaps, CMN
|
their live billing data — tracking open refills, flagging PA status gaps, CMN
|
||||||
expirations, and visit compliance windows across their active CGM patient roster.
|
expirations, and visit compliance windows across their active CGM patient roster.
|
||||||
At day 30 and day 60, we deliver a denial risk exposure report: claims that would
|
At day 30 and day 60, we deliver a denial risk exposure report: claims that would
|
||||||
|
|
@ -100,7 +100,7 @@ have shipped without documentation in hand, segmented by denial type and estimat
|
||||||
dollar exposure.
|
dollar exposure.
|
||||||
|
|
||||||
The pilot does not require replacing or integrating with existing billing software.
|
The pilot does not require replacing or integrating with existing billing software.
|
||||||
Signal CGM operates as a parallel layer over whatever clearinghouse or platform
|
Signal operates as a parallel layer over whatever clearinghouse or platform
|
||||||
the client currently uses. PHI handling during the pilot is governed by a Business
|
the client currently uses. PHI handling during the pilot is governed by a Business
|
||||||
Associate Agreement executed before data access begins.
|
Associate Agreement executed before data access begins.
|
||||||
|
|
||||||
|
|
@ -143,25 +143,25 @@ labor savings on appeal management.
|
||||||
The financial threshold for ROI is low. A single client with 300 active CGM
|
The financial threshold for ROI is low. A single client with 300 active CGM
|
||||||
patients billing $75,000/month, running at the documented 25% improper payment
|
patients billing $75,000/month, running at the documented 25% improper payment
|
||||||
rate, absorbs approximately $11,200/month in net CGM write-offs after exhausting
|
rate, absorbs approximately $11,200/month in net CGM write-offs after exhausting
|
||||||
the appeal process. If Signal CGM prevents 40% of those — the conservative end
|
the appeal process. If Signal prevents 40% of those — the conservative end
|
||||||
of what pre-submission PA and CMN tracking demonstrably delivers — that client
|
of what pre-submission PA and CMN tracking demonstrably delivers — that client
|
||||||
recovers $4,500/month. Against a $75/month per-seat cost, that is a 60-to-1
|
recovers $4,500/month. Against a $75/month per-seat cost, that is a 60-to-1
|
||||||
return on a single deployment. The 60-day pilot makes this calculation concrete
|
return on a single deployment. The 60-day pilot makes this calculation concrete
|
||||||
on your clients' actual numbers.
|
on your clients' actual numbers.
|
||||||
|
|
||||||
**"This tool reduces the complexity that makes our billing services valuable."**
|
**"This tool reduces the complexity that makes our billing services valuable."**
|
||||||
Signal CGM operates exclusively in the pre-submission window — the 45 days before
|
Signal operates exclusively in the pre-submission window — the 45 days before
|
||||||
a claim exists. It does not touch denial management, appeals coordination, payer
|
a claim exists. It does not touch denial management, appeals coordination, payer
|
||||||
negotiation, remittance reconciliation, or any other function that defines your
|
negotiation, remittance reconciliation, or any other function that defines your
|
||||||
current service relationship. What it does is give your clients fewer denials to
|
current service relationship. What it does is give your clients fewer denials to
|
||||||
manage, which reduces the reactive workload on your team without displacing any
|
manage, which reduces the reactive workload on your team without displacing any
|
||||||
service functions you bill for. The more accurate framing: Signal CGM converts
|
service functions you bill for. The more accurate framing: Signal converts
|
||||||
reactive denial management — which your staff absorbs at $50–$118 per appeal
|
reactive denial management — which your staff absorbs at $50–$118 per appeal
|
||||||
cycle — into a proactive workflow your clients pay you a premium to maintain.
|
cycle — into a proactive workflow your clients pay you a premium to maintain.
|
||||||
It is a service tier expansion, not a service substitution.
|
It is a service tier expansion, not a service substitution.
|
||||||
|
|
||||||
**"We can't expose client PHI to a third-party system."**
|
**"We can't expose client PHI to a third-party system."**
|
||||||
Signal CGM was designed from the architecture level with this constraint as
|
Signal was designed from the architecture level with this constraint as
|
||||||
non-negotiable. The system ingests five fields only: patient ID (the supplier's
|
non-negotiable. The system ingests five fields only: patient ID (the supplier's
|
||||||
internal account number, not a Medicare beneficiary identifier), device type,
|
internal account number, not a Medicare beneficiary identifier), device type,
|
||||||
shipment date, quantity, and payer code. No patient names, dates of birth, Social
|
shipment date, quantity, and payer code. No patient names, dates of birth, Social
|
||||||
|
|
@ -175,7 +175,7 @@ acquisition and licensing structures.
|
||||||
---
|
---
|
||||||
|
|
||||||
**Next Step: Schedule the pilot conversation.**
|
**Next Step: Schedule the pilot conversation.**
|
||||||
kisasttil@gmail.com | STTIL Solutions LLC | Signal CGM
|
kisasttil@gmail.com | STTIL Solutions LLC | Signal
|
||||||
|
|
||||||
*This document is a confidential business communication intended for the named
|
*This document is a confidential business communication intended for the named
|
||||||
recipient only.*
|
recipient only.*
|
||||||
97
pitch/signal-whitepaper-v1.md
Normal file
97
pitch/signal-whitepaper-v1.md
Normal file
|
|
@ -0,0 +1,97 @@
|
||||||
|
# The Documentation Gap
|
||||||
|
## Why CGM Claims Fail Before They're Filed
|
||||||
|
*Signal | STTIL Solutions | May 2026*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### The Structural Problem
|
||||||
|
|
||||||
|
DMEPOS suppliers operate under a model no other healthcare provider uses.
|
||||||
|
|
||||||
|
A physician sees a patient and bills afterward. A pharmacy dispenses a prescription and collects at the counter. A DMEPOS supplier buys the equipment, delivers it to the patient, and then waits to find out if the claim gets paid.
|
||||||
|
|
||||||
|
The capital risk window on every CGM order is 30 to 90 days minimum. If the claim denies, the product is already gone. The supplier absorbs the cost.
|
||||||
|
|
||||||
|
That exposure would be manageable if denial rates were low. They are not.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### The Denial Problem
|
||||||
|
|
||||||
|
CMS data for the most recent reporting period shows a 25.2% improper payment rate for CGM claims, representing $278.5 million in projected annual improper payments.
|
||||||
|
|
||||||
|
For a supplier managing 500 active CGM patients, that rate means roughly 126 denied claims per month on approximately $125,000 in monthly billing.
|
||||||
|
|
||||||
|
The appeal process does not make it right. After accounting for staff time at $50 to $118 per appeal attempt:
|
||||||
|
|
||||||
|
- 63% of denied claims are permanently written off
|
||||||
|
- The appeal process recovers less than 30 cents of every denied dollar after labor costs
|
||||||
|
- One in five CGM billing dollars is permanently lost
|
||||||
|
|
||||||
|
These are not fraud cases. CMS CERT data shows that nearly 1 in 3 glucose monitor claims have documentation errors, with over two-thirds of those errors driven by insufficient documentation. Not fraud. Not medical necessity disputes. Missing paperwork.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### What Causes It
|
||||||
|
|
||||||
|
CGM coverage requires a documented chain of events that spans the patient, the prescribing physician, the DME MAC, and the supplier. A failure at any link in that chain becomes the supplier's liability.
|
||||||
|
|
||||||
|
The most frequent failure points:
|
||||||
|
|
||||||
|
**Prior authorization.** CGM codes sit on the CMS Master List — the staging ground for Required PA. Seven new HCPCS codes were added to the Required PA List on April 13, 2026, and the expansion pattern is consistent. Suppliers without clean PA submission habits now will be unprotected when CGM codes follow. A PA submitted but not yet affirmed, with a resupply due in five days, creates a decision most suppliers make the wrong way. If the PA subsequently denies, there is no recovery path.
|
||||||
|
|
||||||
|
**The 6-month visit requirement.** Continued CGM coverage requires a documented face-to-face or telehealth visit within 6 months of each resupply. That visit happens in the physician's schedule, not the supplier's. When it does not happen on time, the supplier finds out on the denial notice, not before.
|
||||||
|
|
||||||
|
**PECOS enrollment.** A prescriber whose PECOS enrollment lapses mid-cycle generates a hard denial with no appeal path. Most billing platforms check PECOS at intake, once. That is not enough.
|
||||||
|
|
||||||
|
**Payer and network changes.** UHC Medicare Advantage patients transitioning to Synapse Health network management, new codes added to required PA lists, and practice changes all create silent compliance gaps that standard workflows do not catch.
|
||||||
|
|
||||||
|
The common thread: the information is discoverable before the claim ships. The standard practice is to discover it after the denial.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Why 2026 Changes the Math
|
||||||
|
|
||||||
|
Several regulatory events have converged this year that raise the cost of a reactive approach:
|
||||||
|
|
||||||
|
**Prior authorization expansion, April 13, 2026.** Seven new HCPCS codes were added to the Required PA List. Suppliers not updated on the change are generating non-covered denials right now.
|
||||||
|
|
||||||
|
**PA affirmation exemption threshold, June 1, 2026.** Suppliers who achieve a 90% provisional affirmation rate may qualify for a PA exemption process. High-denial-rate operations will not qualify.
|
||||||
|
|
||||||
|
**Nationwide DMEPOS enrollment moratorium, February 27, 2026.** No new supplier enrollments are being processed. Existing suppliers have a protected market position and no recovery path if compliance failures accumulate.
|
||||||
|
|
||||||
|
**Competitive bidding for CGM, bidding window opens late Summer 2026.** Suppliers need to demonstrate clean claim rates and operational efficiency before CB bids are submitted. That window is now less than six months away.
|
||||||
|
|
||||||
|
**CGM monthly rental reclassification, effective January 1, 2028.** All CGMs move to a monthly rental model under DMEPOS competitive bidding. A supplier managing 500 patients today faces 6,000 individual billing cycles per year under the new model. Each one is a denial opportunity under a reactive workflow.
|
||||||
|
|
||||||
|
Every one of these events increases the cost of waiting.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### What Proactive Looks Like
|
||||||
|
|
||||||
|
The operational shift is a sequencing problem, not a staffing one.
|
||||||
|
|
||||||
|
Today, most suppliers sequence like this: ship, bill, receive denial, appeal, write off. The documentation failure was present before the order was ever shipped. The supplier just did not know.
|
||||||
|
|
||||||
|
A proactive workflow sequences differently: review documentation status before shipment, identify gaps while there is still time to close them, ship when the claim will clear.
|
||||||
|
|
||||||
|
The staffing impact follows two curves. The reactive workflow drives a growing appeals backlog that compounds month over month. The proactive workflow drives a manageable, predictable outreach queue that does not grow with patient count. The crossover, where proactive staff time drops below reactive staff time, typically happens within the first three to five months.
|
||||||
|
|
||||||
|
**Signal** is a documentation readiness tracker built for this workflow. Suppliers import their order data; Signal produces a per-patient status report flagging documentation gaps for staff to act on before shipment. Signal identifies the gaps. Supplier staff closes them. The claim ships clean.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### The Pilot
|
||||||
|
|
||||||
|
Signal is opening a limited pilot with three DMEPOS organizations. Priority is given to CGM-active suppliers who are currently managing documentation readiness in spreadsheets or billing platform workarounds and want a systematic approach before the 2026 deadlines arrive.
|
||||||
|
|
||||||
|
**[Request pilot access →](mailto:kisa@sttilsolutions.com)**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Signal is a product of STTIL Solutions LLC. Kisa, founder, brings 30 years across multiple managed care organizations to the DMEPOS documentation problem.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Sources: CMS 2024 Medicare Fee-for-Service Supplemental Improper Payment Data; CMS CERT 2019 Glucose Monitor Review; VGM DMEPOS Appeals Guide; Experian State of Claims 2025; CMS Prior Authorization Expansion April 13 2026.*
|
||||||
134
research/cgm-market-research-synthesis-v1.md
Normal file
134
research/cgm-market-research-synthesis-v1.md
Normal file
|
|
@ -0,0 +1,134 @@
|
||||||
|
# CGM DMEPOS Market Research Synthesis — v1
|
||||||
|
Date: 2026-05-01
|
||||||
|
Source: Perplexity Deep Research (10 queries), internal review
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
Reference document for the Signal build-out. Corrects claims in existing
|
||||||
|
materials and establishes verified facts for all future copy, pitch docs,
|
||||||
|
and product positioning.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Terminology (Confirmed)
|
||||||
|
|
||||||
|
Use "resupply" not "refill" in all materials.
|
||||||
|
CGM supply allowances (A4238/A4239) are exempt from Medicare refill
|
||||||
|
rules. DMEPOS suppliers process resupply orders, not prescriptions.
|
||||||
|
This distinction affects how Signal describes its workflow and how
|
||||||
|
supplier staff understands their obligations.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Documentation Requirements (Confirmed)
|
||||||
|
|
||||||
|
Governing LCD: L33822 (Joint LCD — applies uniformly across all MACs)
|
||||||
|
|
||||||
|
Required for each CGM resupply claim:
|
||||||
|
- Valid order/prescription on file
|
||||||
|
- Face-to-face or telehealth qualifying visit within 6 months of
|
||||||
|
resupply (measured from last qualifying visit, not supply date)
|
||||||
|
- Supplier PECOS enrollment active and current
|
||||||
|
- SWO (Statement of Medical Necessity / Written Order) complete
|
||||||
|
- Proof of delivery (POD) on file
|
||||||
|
|
||||||
|
Note: POD is a top denial reason not in Signal's v1 scope.
|
||||||
|
Flag as a future module.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Prior Authorization Status — April 2026
|
||||||
|
|
||||||
|
CGM HCPCS codes (A4238, A4239, K0553, K0554) are on the CMS Master
|
||||||
|
List of items requiring prior authorization consideration.
|
||||||
|
|
||||||
|
They are NOT on the Required Prior Authorization List as of April 2026.
|
||||||
|
|
||||||
|
Implication for Signal copy: do not frame PA as a current mandatory
|
||||||
|
burden for CGM. Frame it as a known future risk as CMS expands the
|
||||||
|
Required PA List. This is a compliance horizon item, not a present
|
||||||
|
obstacle.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Verified Statistics (Use These. Retire the Others.)
|
||||||
|
|
||||||
|
| Claim | Status | Replace With |
|
||||||
|
|-------|--------|-------------|
|
||||||
|
| "94.2% of CGM denials are documentation failures" | NOT VERIFIABLE. Do not use. | See CERT data below |
|
||||||
|
| "35-45% of CGM claims denied" | Scenario-based, not universal. Qualify if used. | "first-pass denial rates vary significantly by supplier documentation maturity" |
|
||||||
|
| CERT 2019: 32.8% error rate for glucose monitors | Verified, CMS-sourced | Use with citation year |
|
||||||
|
| CERT 2019: 68.6% of those errors from insufficient documentation | Verified, CMS-sourced | Pair with above |
|
||||||
|
|
||||||
|
Recommended framing for Signal materials:
|
||||||
|
"CMS CERT data shows 32.8% of glucose monitor claims had errors,
|
||||||
|
with insufficient documentation driving over two-thirds of those
|
||||||
|
failures."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Competitive Bidding 2028 (Confirmed)
|
||||||
|
|
||||||
|
Final rule: CMS-1828-F
|
||||||
|
Effective: January 1, 2028
|
||||||
|
CGMs explicitly included in the competitive bidding program.
|
||||||
|
|
||||||
|
Implication: small and mid-size suppliers face margin compression
|
||||||
|
and potential market exit if they cannot demonstrate clean claim rates
|
||||||
|
and operational efficiency before the bid cycle. This is Signal's
|
||||||
|
existential urgency driver for the 2026-2027 sales window.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## PECOS Validation — Genuine Signal Differentiator
|
||||||
|
|
||||||
|
Most billing platforms validate PECOS enrollment at intake (one time).
|
||||||
|
NikoHealth performs monthly automated PECOS checks per patient.
|
||||||
|
Most platforms do not.
|
||||||
|
|
||||||
|
Signal's per-resupply PECOS validation (each CSV import cycle) is
|
||||||
|
a differentiator. Suppliers whose PECOS lapses mid-cycle generate
|
||||||
|
denials with no warning under current workflows. Signal flags this
|
||||||
|
before the claim is submitted.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Competitive Landscape — Key Finding
|
||||||
|
|
||||||
|
NikoHealth (~$3.5M revenue, independent): integration partner,
|
||||||
|
not competitor. Operates an AI-friendly billing hub with Tennr,
|
||||||
|
CompliantRx, and Notable. Signal complements this stack by
|
||||||
|
providing upstream documentation readiness that feeds cleaner
|
||||||
|
data into billing workflows.
|
||||||
|
|
||||||
|
Do not position Signal against NikoHealth. Position Signal as
|
||||||
|
what makes NikoHealth's workflow cleaner on the front end.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## HIPAA-Compliant Outreach Resources for Suppliers
|
||||||
|
|
||||||
|
Suppliers conducting outreach to prescribers and patients have
|
||||||
|
access to:
|
||||||
|
- Secure fax (still dominant in prescriber communication)
|
||||||
|
- HIPAA-compliant messaging platforms (Spruce Health, RingCentral
|
||||||
|
for Healthcare, Updox)
|
||||||
|
- EHR messaging via integration (limited by prescriber EHR access)
|
||||||
|
- Phone outreach with HIPAA-compliant call logging
|
||||||
|
|
||||||
|
Signal's role: identify who needs outreach and what is missing.
|
||||||
|
Selection of outreach channel remains with the supplier.
|
||||||
|
Signal does not recommend or integrate a specific outreach tool
|
||||||
|
in v1 scope.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What This Changes in Existing Materials
|
||||||
|
|
||||||
|
| Document | Required Change |
|
||||||
|
|----------|----------------|
|
||||||
|
| pitch/master-summary.md | Replace 94.2% with CERT stat; qualify denial rate |
|
||||||
|
| pitch/signal-pitch-v1-plain.md | Same stat corrections; update product name |
|
||||||
|
| pitch/signal-pitch-v2-professional.md | Same stat corrections; update product name |
|
||||||
|
| sttil-website/signal-cgm.html | Same stat corrections; update product framing |
|
||||||
|
| pitch/signal-business-model-v1.md | PA section: reframe as future risk |
|
||||||
|
| KG: denial_root_cause | Correct "94 percent" fact (pending approval) |
|
||||||
Loading…
Reference in a new issue