CompassPharmacy Growth & Field Operations · iteration v7 (field discovery, review, completion feedback) · {{ demoLabel }} · all four pharmacies fictional · frozen at Sep 15, 2026 10:00 MT
Scenario
Simulate
{{ conn.userLabel }}
Management persona
Connected mode: persona switching disabled — access is the signed-in server session. Design study
Compass{{ conn.userLabel }}
{{ time }} Offline
S
Summit source analytics
Accounts
Full authorized directory · list or map
Pharmacy
Offices as a list · {{ officeCount }} assigned · sorted by attention needed
{{ t.name }}
{{ routeModeLabel }}
Location is off. Your assigned territory still shows; recenter needs permission.
Within cadence ({{ greenN }}) Due ({{ dueN }}) Overdue ({{ overdueN }}) Never visited ({{ neverN }})
No offices are {{ noneMatchLabel }} right now. All offices still show behind this filter.
Offices at this location
{{ sel.name }}
{{ sel.city }} · {{ sel.provLine }}
{{ sel.cv.label }}· {{ sel.cv.dueText }}
{{ sel.cv.lastText }}
{{ b.short }}{{ sel.phLine }} · separate clocks in the profile
{{ sel.attemptLine }}
{{ sel.profitLine }}
{{ sel.revLine }} (reported revenue, fixture)
Includes a report saved on this device · waiting to sync
{{ schedTitle }}
{{ schedWeekLabel }}
{{ schedDateLabel }}Today
{{ route.name }}
{{ routeMeta }}
{{ routeVersion }}
Today's route was updated. {{ routeChanges }}. Finished stops and reports are unchanged.
Route progress{{ prog.pct }}
{{ prog.text }}
{{ prog.sub }} · {{ prog.extrasText }} (counted separately)
{{ prog.revisedText }}
{{ prog.provisionalText }}
✓ {{ prog.doneText }}
Day recap: {{ prog.recap }}. Route handled does not mean every commitment is closed.
{{ fieldRevText }} · visible to management
To reschedule · displaced by today's replan
{{ st.order }}
{{ st.check }}{{ st.statusText }}
Objective{{ st.objective }}
{{ st.insight }}
No route assigned for this day
Routes are assigned by the marketing director. You can still visit any assigned office and log the report.
Recap
Reports, progress and relationship work
Reports
No reports match. Clear the filters or log a new report.

My submissions is not connected yet. Cadence suggestions are saved for management review; contact and discovery corrections remain pending. No local-only submission is sent.

Offices and updates you submitted · review progress, requested details and outcomes · permanent assignment stays with management
Nothing submitted yet.
{{ x.office }}{{ x.status }}
{{ x.kind }} · {{ x.pharmacy }} · submitted {{ x.when }} · encounter {{ x.encounter }}
Missing: {{ x.missing }}
{{ x.next }}
Follow-ups
Push reminders are off. Follow-ups remain available here. Enable notifications in phone settings to get reminders.
Get a reminder when a follow-up is due. The lock-screen text stays generic.
Nothing owed right now.
{{ g.k }}
Assigned to {{ f.owner }} · you'll see the resolution here
No completed follow-ups yet.
{{ of.name }}
{{ of.name }}
{{ of.address }}
{{ of.phone }} · {{ of.hours }}
{{ of.pharmacyName }} · assigned rep {{ of.primaryRep }}
{{ of.reviewText }}
Missing: {{ of.missingText }} · add them from My submissions when asked
Your report and follow-up are saved; creating the profile is not a visit. Management assigns the account and cadence.
Pharmacy relationships · one office, separate clocks
{{ r.short }}{{ r.label }}· {{ r.statusLabel }}
{{ r.sub }}
A visit for one pharmacy never clears another pharmacy's overdue relationship. Choose the relationships covered when you log the report.
{{ of.primary.name }}Primary contact
{{ of.primary.role }} · {{ of.primary.phone }}
“{{ of.primary.note }}”
No office contact on file.
{{ ct.name }} · {{ ct.role }}
Visit context
{{ of.cv.label }}
Last qualifying visit
{{ of.lastText }}
Latest report · {{ of.lastOutcome }} · waiting to sync
{{ of.lastNotes }}
Author {{ of.lastAuthor }} · {{ of.lastWhen }} · Outcome {{ of.lastOutcome }} · counts as a qualifying visit. Edits keep the same report with history.
Latest attempt
{{ of.attemptText }}
{{ of.attemptNotes }}
Open follow-ups
Cadence is set by management.
{{ of.suggestion }}
Approved values stay on file until management accepts a proposed observation.
Business · {{ period.name }}
{{ period.range }} · {{ period.freshness }}
Stale business data: today's import failed. Showing the last validated range; missing days are not zero.
Scope: {{ of.scopeLabel }}
{{ of.availability.label }} · {{ of.availability.desc }}
RxQ-reported profit
{{ of.profitText }}
{{ of.profitChg }}
{{ of.profitNote }}
Completed fills
{{ of.fills }}
{{ of.fillsChg }} · {{ of.compareLabel }}
Prescriptions received
{{ of.received }}
{{ of.receivedChg }} · distinct from fills
{{ b.label }}
Reported revenue {{ of.rev }} ({{ of.revChg }}) · reconciliation detail, not profit.
Completed fills · {{ period.bucketNote }} · aggregated from dated records, not spread from monthly totals. Fills = completed fills in {{ period.name }}; changes compare the preceding equal period. Patient-access evidence remains an Aug 2026 monthly aggregate; no treatment or price claim. {{ demoLabel }}.
Missing source data
No validated import covers this office. This is not zero activity. Field visits are recorded separately above.
Prescribing detail
{{ of.groupLabel }} · sorted by {{ of.sortLabel }} · {{ of.scopeLabel }} · profit {{ of.profitText }}
No matching fills for these filters in {{ of.periodShort }}.
{{ r.childLabel }}
{{ ch.fills }} Rx{{ ch.revText }}Rev/Rx {{ ch.rpfText }} · {{ ch.change }} vs Jul · Patient cost: {{ ch.access.text }}
Patient-access evidence · observed, not promised
{{ r.accessPeriod }}
{{ r.access.text }}
{{ r.access.sub }}. Completed fills with known patient cost; individual costs vary. Unknown costs are not counted as $0. Limited sample.
{{ r.access.text }}
{{ r.access.sub }}
Earlier activity
No recorded visits or attempts yet.
{{ pv.name }}
{{ pv.name }}
{{ pv.specialty }} · Provider
Office context
Showing {{ pv.scopeName }}. Visits are logged per office; a provider-wide view never counts as visiting every location. This provider also practices at {{ pv.otherTerritoryN }} office(s) outside your assigned accounts; those offices, metrics and activity are not shown.
{{ ct.name }}
{{ ct.role }} · office contact
Related reports
Open follow-ups
Business · {{ period.name }}
{{ period.range }} · {{ period.freshness }}
Stale business data: today's import failed. Showing the last validated range; missing days are not zero.
Scope: {{ pv.name }} · {{ pv.scopeName }} · {{ period.range }}
{{ pv.availability.label }} · {{ pv.availability.desc }}
Reported profit (RxQ)
{{ pv.profitText }}
{{ pv.profitChg }}
Completed fills
{{ pv.fills }}
{{ pv.fillsChg }} · {{ pv.compareLabel }}
Prescriptions received
{{ pv.received }}
{{ pv.receivedChg }} · not fills
{{ period.bucketNote }} · latest received {{ pv.latestRx }} · latest fill {{ pv.latestFill }}
Recent Rx activity · {{ pv.actScope }}
{{ g.label }}
{{ e.med }} · {{ e.type }}
{{ e.note }}
{{ e.office }}
Showing {{ pv.actShown }} of {{ pv.actCount }} events
{{ pv.actNote }} Event dates are source event dates, never import time.
Medication mix · {{ period.name }} · grouped by medication
Patient-access evidence · observed, not promised
{{ r.accessPeriod }}
{{ r.access.text }}
{{ r.access.sub }}. Completed fills with known patient cost; individual costs vary.
{{ r.access.text }}
{{ r.access.sub }}
Fills = completed fills · reported revenue is management reconciliation detail, not profit · {{ demoLabel }}
Missing source data
No validated import covers this scope. This is not zero activity.
Report
{{ rd.outcome }}
{{ rd.office }} · {{ rd.provs }}
{{ rd.when }} · {{ rd.author }} · {{ rd.version }}
{{ rd.syncText }}{{ rd.effect }}
{{ rd.notes }}
{{ rd.factsText }}
Topics: {{ rd.tags }}
{{ rd.stopText }}
Linked follow-ups
Edit history
{{ h.text }}
Follow-up
{{ fd.desc }}
{{ fd.where }}
Due{{ fd.due }}
Owner{{ fd.owner }}
Created by{{ fdCreatedBy }}
Reminder{{ fd.reminder }}
Status{{ fdStatus }} · {{ fdSync }}
{{ fdCompletedBy }}
Weekly field brief
Summit Compass · your week, prepared
{{ rb.weekLabel }}
{{ rb.versionText }}
Route changed since this brief. Check Schedule for the current stops; a revised brief is being prepared.
Focus this week
{{ p.n }}{{ p.text }}
Before leaving: {{ rb.materials }}
Stop briefs
{{ st.dayLabel }}
Why this visit: {{ st.objective }}
Relationship: {{ st.relationship }}
Business: {{ st.business }}. {{ st.businessNote }}
Medication: {{ st.medication }} · Access: {{ st.access }}
Open commitments: {{ st.commitments }}
Talking point: {{ st.talking }}
Ask: {{ st.q1 }} {{ st.q2 }}
A useful outcome: {{ st.desired }}
If unavailable: {{ st.fallback }}
Commitments outside this route
{{ rb.asOf }}. Record each outcome once in the app; this brief is a preparation resource, not a reporting form. {{ demoLabel }}.
Find an office or provider
Type an office or provider name. Results open the full profile.
Recent
No offices or providers match “{{ searchQ }}” in your assigned accounts.
Log visit
{{ pk.pharmacy }} · your assigned offices only
Today's stops
{{ pk.listLabel }}
No assigned office matches “{{ pk.q }}”.
Planning a visit that hasn't happened? Use Change today's plan instead.
Add office & log visit
Short intake, then the usual report. Details can be completed later; the encounter is what matters today.
Offline: office, report and follow-up save together on this device as one submission and sync once.
Looks like an office you already have?
Marked for routing review · not routable until a suite/entrance is confirmed.
2 · Pharmacy relationship{{ ik.pharmacy }}derived from your account · one proposed relationship
Adds a new office relationship for the same provider identity; prior prescriptions are not moved.
{{ ik.error }}
Draft is kept if you leave this step.
Suggest a correction
{{ cr.office }} · {{ cr.current }}
{{ cp.title }}
{{ cp.statusLabel }}
{{ cp.restoredNote }}
You're offline. The report saves on this device and syncs once when you reconnect.
New office: {{ cp.intakeName }}
{{ cp.pharmacyName }} · provisional profile and review item are created with this report
{{ cp.extraNote }}
{{ cp.stopNote }}
Backdated entry · shown as recorded today for a past visit
{{ cp.relNote }}
{{ cp.effect }}
Your observation is labeled as rep-reported; official hours change only after management review.
Already open for this office · avoid duplicates
{{ f.desc }} · {{ f.owner }} · due {{ f.due }}
Interaction mode
People spoken with · independent contact facts
Name not in the list · add without resolving identity
{{ pc.name }} · {{ pc.roleLabel }} · identity pending
Context providers · may differ from the spoken-to providers above
Activities

Original occurrence time and office are preserved. Date corrections need a separate audited contract.

Observations · optional, comparable across visits
Next action · one explicit choice
{{ cp.nextNote }}
Needs management attention · optional
Saved with this report as one operation for management review. It does not move, remove or publish a stop.
{{ cp.error }}
Saving twice never creates two visits. Edits keep the same report with history.
{{ fs.title }}
{{ fs.statusLabel }}
{{ fs.restoredNote }}
{{ fs.ownerNote }}
{{ fs.error }}
Report an issue to management
{{ fg.officeName }} · reviewed by {{ fg.pharmacyName }} management. A request never moves, removes or publishes a stop; management republishes the plan.
{{ fg.error }}
In-app status only; no email or push is sent. You will see management's decision in Today and the account briefing.
Suggest a cadence change
{{ cd.officeName }} · {{ cd.current }}. Management controls visit frequency; this sends your observation and request to them.
{{ cd.preview }}. Past visits are unchanged.
Filter & sort
Providers · filters combine with medications
Medications
Group by
Sort by · changes order only
Route revision {{ rv.version }} from management
{{ rv.changes }}
Kept as recorded: {{ rv.done }}
Added by management: {{ rv.added }}
No longer on the plan: {{ rv.removed }}
Either choice is recorded for management. Completed stops are never duplicated or removed.
Place {{ pl.office }} on a day
Adds the stop to that day's route (or a rep-added day) and resolves the reschedule item; the original reason stays in history.
Reorder from here
{{ ro.startLabel }} → remaining stops → {{ ro.endLabel }}. Finished and attempted stops stay as recorded.
Assumptions (editable placeholders, not confirmed policy): workday ends 5:00 PM · 25 min per visit · office hours from the profile · no fixed appointments today · return point is display text in this prototype and does not change the estimate.
Preview · estimates, not guaranteed arrivals
{{ $index }}. {{ l.name }}{{ l.drive }} min drive · arrive {{ l.eta }}{{ l.overText }}
Then {{ ro.homeDrive }} min to return point · estimated finish {{ ro.finish }} · {{ ro.totalDrive }} min total driving
Doesn't fit before 5:00 PM: {{ ro.deferred }} would move to “To reschedule” · nothing is dropped silently.
Simulated straight-line estimates on synthetic coordinates. Management sees the change with your name and time.
Change today's plan
Put an urgent office first, then rebuild the rest of the day around it from {{ cpn.startLabel }}.
Preview
{{ $index }}. {{ l.name }}{{ l.drive }} min · arrive {{ l.eta }}{{ l.overText }}
Then {{ cpn.homeDrive }} min to {{ cpn.endLabel }} · estimated finish {{ cpn.finish }}
Moved to “To reschedule” (not visited, not deleted): {{ cpn.displacedText }}
No approval wait. Completed work stays; management sees the new plan and the reschedule queue.
Directions to {{ dirName }}
{{ dirReason }}
Simulated handoff · nothing leaves this prototype. Coordinates in the demo are approximate and not real office locations.
{{ dirAddress }}
Google Maps opens in a new tab. Opening directions does not log a visit or change your plan.
Open in Google Maps
Allow reminders?
Summit Field Intel would send a notification when a follow-up is due. The notification says only “You have a follow-up due” and opens the task. Simulated system prompt.
Skip this stop?
The stop is marked Skipped for today's route. Office coverage and due dates don't change. If you tried and the office was closed, log an “Office closed” report instead so the attempt is on record.
{{ toast.msg }}
{{ toast.sub }}
Unsaved changes
Your draft is kept. Close anyway?
Compass
Pharmacy Growth & Field Operations · Management
Pharmacy
Restricted grant · only permitted pharmacies are offered; totals, search and briefs are projected to this scope.
Connected · {{ conn.userLabel }} · server-enforced access
Viewing as {{ ad.roleName }}. Grants are explicit (organization-wide or per pharmacy), never inferred from title, state or email. Persona switching lives in the demo bar, outside product navigation. Real enforcement belongs on the server.
· {{ demoLabel }}Connected workspace · source coverage and pending capabilities are identified in context
{{ x.name }}: {{ x.text }}
{{ x.name }} · {{ x.text }}
{{ mg.phStatus.common }} Exact cutoffs travel with every evidence snapshot and brief.
{{ ad.pendingOnPhone }} rep edit(s) still on-device · committed versions shown here
Overview · {{ mg.ph.label }}
Viewing as {{ ad.roleName }} · {{ mg.periodLabel }}
Connected · imported pharmacy dataSigned in as {{ conn.userLabel }} · business metrics below come from the server. Period presets and the sections labeled “fictional demo” remain illustrative.
Live metrics unavailable: {{ conn.overviewError }} · fictional totals are never substituted.
Completed fills · imported
{{ conn.combined.fills }}
{{ conn.combined.received }} prescriptions received · prior-period comparisons not yet computed from imports
Reported revenue
{{ conn.combined.revenue }}
reconciliation only, not profit
Source profit
{{ conn.combined.profit }}
Validated source measure only · unavailable is never $0
Coverage
Included: {{ conn.combined.included }}
Awaiting first import: {{ conn.combined.awaiting }}
{{ conn.combined.note }}
{{ pc.name }}{{ pc.badge }}
{{ pc.line1 }}
{{ pc.line2 }}
{{ pc.line3 }}
{{ pc.coverageNote }}
{{ pc.profitNote }}
Top accounts · imported completed fills
{{ conn.account.name }} · {{ conn.account.pharmacy }} · imported data
{{ conn.account.note }}
Completed fills
{{ conn.account.fills }}
{{ conn.account.revenueLabel }}
{{ conn.account.revenue }}
Source profit
{{ conn.account.profit }}
{{ conn.account.profitNote }}
By provider
{{ rp }}
By medication
{{ rm }}
{{ conn.account.coverage }} · {{ conn.account.freshness }} · {{ conn.account.provenance }}
Fictional demo sections below · not connected to imported data
Completed fills · {{ mg.scopeLabel }}
{{ mg.fills }}
{{ mg.fillsChg }} vs prior period · {{ mg.received }} prescriptions received ({{ mg.receivedChg }})
Reported revenue
{{ mg.rev }}
{{ mg.revChg }} vs prior period · reconciliation only, not profit
Reported profit (RxQ)
{{ mg.gpText }}
{{ mg.gpNote }}
Active sending providers
{{ mg.activeProviders }}
≥1 completed fill in {{ period.name }} · {{ mg.corrected }} source correction(s) applied
{{ mg.phGroup.title }}
{{ mg.phGroup.sub }}
{{ mg.phGroup.scopeNote }}
Pharmacy comparison · {{ period.name }}
Sums only for compatible, validated data · ratios recomputed from totals · distinct providers by ID · percentages and patient-cost medians are never averaged across pharmacies · {{ mg.phGroup.change }}
PharmacyReported profitEligible fillsComparable changeActive providersTop by fillsTop by profitField prioritiesCoverage
{{ row.short }}{{ cell }}
{{ mg.phGroup.title }}{{ mg.phGroup.profit }}{{ mg.phGroup.fills }}{{ mg.phGroup.change }}{{ mg.phGroup.providers }}profit per fill {{ mg.phGroup.ppf }}{{ mg.phGroup.received }} received events{{ mg.phGroup.sub }}
{{ mg.phGroup.unmatched }} Awaiting pharmacies show an em dash, not $0 or a last-place rank. A newly connected pharmacy is excluded from growth until both windows cover it.
New offices & updates
{{ mg.queue.count }}
Awaiting review or information · {{ mg.queue.total }} submission(s) in scope · reviewed by the director or a designated operations reviewer
Needs attention
Reason and owner for each item · {{ mg.alertsPeriod }}
Nothing flagged.
This week's execution · {{ mg.week }}
{{ mg.exec }}
{{ mg.doneFus }} commitment(s) completed · a materials drop-off is not counted as a conversation
Recent field activity
Weekly briefs
{{ bl.rep }} {{ bl.version }}
{{ bl.routes }} · {{ bl.viewed }}
{{ bl.status }}
Insights
Scope Custom range · later
{{ mg.scopeLabel }} · {{ mg.periodLabel }} · {{ mg.policy }} · {{ mg.crmNote }}
{{ mg.availability.label }} · {{ mg.availability.desc }} · {{ mg.rankNote }}
Today's daily import failed; the last validated snapshot is shown with its freshness. Import owner alerted (simulated). Field records keep syncing.
Most dispensed · eligible completed fills · {{ period.name }}
{{ mg.mostDispensed.name }}
{{ mg.mostDispensed.fills }} fills · {{ mg.mostDispensed.changeText }} · {{ mg.mostDispensed.provs }} provider(s) · revenue {{ mg.mostDispensed.revText }} (reconciliation)
No eligible fills in this scope for Aug 2026.
Largest RxQ-reported profit contributor · {{ period.name }}
{{ mg.gpLeader.name }}
{{ mg.gpLeader.gpText }} synthetic gross profit · {{ mg.gpLeader.pfText }}/fill · margin {{ mg.gpLeader.marginText }}
Synthetic cost scenario · not RxQ data · rank limited to eligible records
Unavailable
The RxQ reported-profit baseline is being prepared and its definition still needs validation. Fixture values are revenue only and are never relabeled as profit, so no medication can be ranked as the profit leader yet.
MedicationFillsReported revenue (recon.)RxQ profitProfit/fillMarginChangeProvidersCompleteness
Fills = eligible completed fills · revenue = reported revenue · gross profit requires actual acquisition cost for the same fills · medication names are illustrative and no treatment or price claim is made · {{ demoLabel }}
{{ mg.drill.name }}
{{ mg.drill.eligible }}
Trend
Completed fills · {{ period.bucketNote }}
Patient-access evidence · observed, not promised
{{ mg.drill.access.text }}
{{ mg.drill.access.sub }}. Aggregated across every office/provider in scope; medians are never averaged. Unknown costs are excluded, not $0.
Source lineage · latest events
{{ g.label }} · {{ e.type }} · {{ e.provider }}{{ e.batch }}
Contributing offices and providers
{{ ct.provider }}
{{ ct.office }} · {{ ct.fills }} fills · {{ ct.revText }} · GP {{ ct.gpText }} · {{ ct.change }}
Linked opportunities: {{ op.reason }} · {{ op.office }};
Account opportunity queue
{{ mg.planned }} planned · transparent reasons, no predictive scores
{{ op.reason }} · {{ op.priority }}Review {{ op.reviewText }}
Evidence: {{ op.evidence }}
Field context: {{ op.field }}
Objective: {{ op.objective }}
{{ op.snapshotText }} ·
Next: {{ op.next }}
Weekly planning
{{ mg.week }}· two reps · drafts stay private until published · plan next week one week ahead
{{ mg.noRepNote }}
{{ row.name }}
Draft kept open in another pharmacy context
{{ mg.editor.foreignText }} Nothing is relabeled or hidden for editing; no stop can be published from here.
{{ mg.editor.pharmacyName }}Daily route · {{ mg.editor.repName }} · {{ mg.editor.dateLabel }}
{{ mg.editor.statusLabel }} · one pharmacy per route; stops are edited by stable id
{{ mg.editor.warn }}
Open opportunities for this rep
{{ op.reason }} · {{ op.office }}
{{ op.objective }}
Rep's offices
{{ o.name }}
{{ o.cv.label }} · {{ o.revLine }}
On route
Not assigned. Add offices or opportunities; nothing is invented for empty days.
{{ st.order }}{{ st.name }} · {{ st.cv.label }}{{ st.so.label }} · report kept
Contacts: {{ st.contacts }}
Publish is the only action that changes the rep's schedule.

Manual day plans save and publish under Weekly planning. Independent weekly brief composition remains a subsequent milestone; these retained brief controls do not publish.

Briefs
Weekly Field Brief · generated from published routes and linked records · only published content reaches the rep
{{ bl.rep }}
{{ bl.week }} · {{ bl.version }}
{{ bl.status }}
{{ bl.routes }} · {{ bl.viewed }}
Publish a route first · missing days are not invented
{{ mg.brief.rep }} · {{ mg.brief.weekLabel }}
{{ mg.brief.versionLabel }} · {{ mg.brief.generatedText }}
{{ mg.brief.asOf }}
Routes: {{ mg.brief.routeRevText }} · {{ mg.brief.exportsText }} · {{ mg.brief.viewedText }}
{{ mg.brief.statusLabel }}
{{ mg.brief.staleText }}
Focus this week · one per line
Before leaving · materials
Days
{{ d.label }}{{ d.plan }}{{ d.prep }}
Commitments outside the route
{{ f.desc }}
{{ f.where }} · {{ f.owner }} · due {{ f.due }} · follow-up, not an assigned visit · snapshot
{{ f.live }}
Stop briefs · edit wording; sources stay attached
{{ st.dayLabel }}
{{ st.office }}
{{ st.providers }} · {{ st.contact }}
Relationship: {{ st.relationship }}
Business: {{ st.business }}. {{ st.businessNote }}
Medication: {{ st.medication }}
Access: {{ st.access }}
Open commitments: {{ st.commitments }}
Sources: {{ st.sources }}
Summit Compass / Weekly Field BriefDesign example · fictional data · v{{ mg.brief.version }}
Your week, prepared.
{{ mg.brief.rep }} · {{ mg.brief.weekLabel }} · {{ mg.brief.asOf }}
Focus this week
{{ p.n }}{{ p.text }}
Published plan
{{ d.label }}{{ d.plan }}{{ d.prep }}
Before leaving: {{ mg.brief.materials }}
{{ st.dayLabel }}
{{ st.office }}
{{ st.providers }} · {{ st.contact }}
Visit objective: {{ st.objective }}
Business: {{ st.business }}. {{ st.businessNote }}
Medication: {{ st.medication }} · Access: {{ st.access }}
Relationship context: {{ st.relationship }} · Open commitments: {{ st.commitments }}
Talking point: {{ st.talking }}
Ask: {{ st.q1 }} {{ st.q2 }}
A useful outcome: {{ st.desired }} {{ st.fallback }}
Commitments outside this route
{{ f.where }} · {{ f.owner }}: {{ f.desc }} Due {{ f.due }}.
Brief {{ mg.brief.id }} · {{ mg.brief.versionLabel }} · a dated snapshot; open the authenticated brief in the app for route changes. Record outcomes once in the app. Illustrative demo data; no price, savings, or treatment claim. Not an issued Monday packet.
Fictional demo account page · live imported account metrics are on Overview → Top accounts.
{{ mg.acct.name }}
{{ mg.acct.address }} · {{ mg.acct.phone }} · {{ mg.acct.hours }} · Primary rep {{ mg.acct.rep }}
{{ mg.acct.statusLine }}
Field-created office · {{ mg.acct.readiness }} · review it in Settings & data › New offices & updates
Contacts, providers and cadence
{{ ct.name }} · {{ ct.role }} · {{ ct.phone }} · {{ ct.email }}
Business by pharmacy · {{ mg.acct.periodLabel }}
Each relationship keeps its own facts, cadence and rep; nothing is duplicated across pharmacies.
{{ bp.name }}
{{ bp.fills }} fills · profit {{ bp.profit }} · {{ bp.change }} {{ bp.through }}
{{ bp.status }} · rep {{ bp.rep }} · {{ bp.cadence }}
Providers
{{ pr.name }} · {{ pr.specialty }} · {{ pr.multi }}
Cadence edits recalculate coverage; history stays. Rep-reported hours issues appear in field activity until reviewed here.
Business · {{ mg.acct.periodLabel }}
{{ mg.acct.availability.label }} · {{ mg.acct.availability.desc }}
RxQ-reported profit
{{ mg.acct.profitText }}
{{ mg.acct.profitChg }}
Completed fills
{{ mg.acct.fills }}
{{ mg.acct.fillsChg }} {{ mg.acct.compareLabel }}
Received · Reported revenue (recon.)
{{ mg.acct.received }}
{{ mg.acct.revText }}
By provider
{{ r.name }}{{ r.fills }} fills · profit {{ r.profitText }} · {{ r.change }}
Recent Rx activity
{{ g.label }} · {{ e.med }} · {{ e.type }} · {{ e.provider }}{{ e.batch }}
Field reports · synced
{{ r.kind }} · {{ r.outcome }}{{ r.when }} · {{ r.author }}
{{ r.notes }} · {{ r.editedText }}
Follow-ups
{{ f.desc }}
{{ f.owner }} · due {{ f.due }}
Pharmacy data imports · connected
{{ conn.lastSuccess }}
Contract compass-provisional-1 (Compass's documented provisional CSV — not a validated RxQ schema; XLSX is rejected). Limits: 1 MB · 5,000 rows. A business-data import never creates encounters, resets cadence, changes last qualifying visits or assigns reps.
{{ conn.actionError }}
{{ conn.batch.filename }}{{ conn.batch.status }}{{ conn.batch.id }}
{{ conn.batch.counts }}
{{ conn.batch.coverage }}
{{ conn.batch.note }}
Reconciliation preview
{{ conn.batch.preview.summary }}
{{ conn.batch.preview.effect }}
{{ conn.batch.preview.removals }}
{{ conn.batch.preview.snapshotNote }}
{{ conn.batch.preview.revenueNote }}
{{ conn.batch.preview.profitNote }}
{{ conn.batch.preview.dates }}
{{ pa9 }}
{{ conn.batch.preview.reconciliation }}
Rows needing review · excluded from every total until resolved
{{ iss9.label }} · {{ iss9.reason }}
Identity mappings needed · approved explicitly, never merged by name
{{ mn9.label }}
A complete snapshot needs an error-free file — resolve every row; partial snapshots are not allowed.
Published · metrics on Overview now reflect this batch. Reload-safe and visible to other permitted sessions.
Import history · {{ conn.pharmacyLabel }}
Office directory onboarding · connected · {{ conn.pharmacyLabel }}
{{ conn.dir.summaryLine }}
Staging and review only: a staged office is a candidate — not a verified customer, visit, rep assignment or routing location.
Contract compass-directory-1 · {{ conn.dir.referenceNote }} · {{ conn.dir.lastBatch }}
{{ conn.dir.matched }}
No offices match this search/filter. Clear the filters or adjust the search — nothing was removed.
{{ conn.dir.entry.name }} · {{ conn.dir.entry.id }}
{{ conn.dir.entry.sourceStatus }}
Address (source text, preserved): {{ conn.dir.entry.address }}
City: {{ conn.dir.entry.city }} · Phone: {{ conn.dir.entry.phone }} · Specialty: {{ conn.dir.entry.specialty }}
Source notes: {{ conn.dir.entry.notes }}
{{ conn.dir.entry.urls }} · {{ conn.dir.entry.reference }}
{{ conn.dir.entry.provenance }}
Open review reasons
{{ di9 }}
The source row changed after this decision — re-review required before this record can drive routing or promotion.
Changed vs prior source revision
{{ dc9 }}
Source URLs · preserved evidence, opening one verifies nothing
Provider candidates (name-based, provisional · identity and current affiliation unverified)
{{ dp9.label }}
Removed by source revisions (history kept)
{{ drp9 }}
Review decision · {{ conn.dir.entry.reviewLine }}

{{ conn.dir.entry.operational }}

{{ conn.dir.entry.promotion }} Audited · no rep assigned, no visit, no customer status implied
{{ conn.dir.office.name }} · real office record
{{ conn.dir.office.line1 }}
{{ conn.dir.office.cadence }}
{{ conn.dir.office.rep }}
Saved reports
{{ dorr9 }}
Follow-ups
{{ dort9 }}
Review audit
{{ de9 }}

Retained next steps: cadence review, field discovery/contact corrections, reviewed opportunities and independent weekly briefs. These controls have no connected save yet; manual day plans now save and publish under Weekly planning; directory review and report/task saves above use the server.

Fictional demo sections below · statuses, queues and simulations are illustrative, not connected data
Settings & data · {{ mg.ph.label }}
New offices & updates · {{ mg.queue.count }} awaiting
New office discovery, new relationships, duplicate candidates, provider–office associations and suggested updates. Business matching and routing readiness stay separate from approval.
No submissions in this scope.
{{ mg.queue.panel.office }}
{{ mg.queue.panel.pharmacyName }} · {{ mg.queue.panel.kind }} · submitted by {{ mg.queue.panel.rep }} {{ mg.queue.panel.when }} · reviewer {{ mg.queue.panel.reviewer }}
{{ mg.queue.panel.readiness.saved }}{{ mg.queue.panel.readiness.routing }}{{ mg.queue.panel.readiness.business }}
Submitted profile
{{ mg.queue.panel.address }}
Location note: {{ mg.queue.panel.locNote }}
Providers: {{ mg.queue.panel.providers }}
Contact: {{ mg.queue.panel.contact }} · {{ mg.queue.panel.hoursNote }}
Proposed: {{ mg.queue.panel.proposed }}
Location preview: map pin from rep device (approximate) · geocoding simulated
Submitted report
{{ mg.queue.panel.report.outcome }} · {{ mg.queue.panel.report.when }}
{{ mg.queue.panel.report.notes }}
{{ mg.queue.panel.report.qual }} · {{ mg.queue.panel.report.sync }}
Checklist
{{ k.mark }}{{ k.label }}
Candidate matches
{{ cd.name }} · {{ cd.sub }}
{{ mg.queue.panel.cadenceNote }}
Preview: {{ mg.queue.panel.linkPreview }}
Add to next week's routeOpens the draft editor for the assigned rep · publishing stays a separate step
Decision history
{{ h }}
Pharmacy directory and onboarding
CRM activation and analytics status are tracked separately per pharmacy. Scheduling, uploads, validation and integrations are simulated in this export.
Review before staging · target {{ mg.review.target }}
{{ mg.review.period }} · file {{ mg.review.file }} · registered source identity: {{ mg.review.sourceId }}
{{ mg.review.verdict }}
{{ d.name }}
{{ d.crm }}
{{ d.analytics }}
Source mapping: {{ d.source }} · reporting {{ d.tz }} · cutoff {{ d.cutoff }}
Import owner: {{ d.owner }} · {{ d.nextRun }}
Members: {{ d.members }} · held records: {{ d.heldN }}
Supporting design only · lower fidelity. Plan: cloud-hosted shared app with individual logins; RxQ data via controlled export imports (daily refresh proposed, not confirmed); hosting on the pharmacy computer is no longer in the active plan. No connection exists in this prototype.
Users and roles
{{ u.name }}{{ u.roleLabel }} · {{ u.offices }} account(s)
Owner count is unspecified; one placeholder shown. A hidden control is not authorization; permissions are server-enforced in production.
Office cadences
Default 30-day target · 15-day grace · admins edit, reps suggest (proposed)
{{ o.name }}{{ o.cad.target_days }} / {{ o.cad.grace_days }} days · {{ o.rep }}
Import runs
{{ i.status }}
{{ i.name }}
{{ i.when }} · {{ i.coverage }}
{{ i.recon }}
Unmatched-record review
{{ x.kind }} · {{ x.source }}
{{ x.note }}
Resolved · {{ x.resolvedText }}
An unmatched office is never guessed; held records stay out of office totals and are disclosed as partial coverage.
Administration · pharmacy-account assignments and office details
Rep access is the explicit pharmacy-account assignment list (state, territory or title alone grant nothing). Proposed policy pending confirmation: management edits contacts/hours; reps submit observations.
{{ o.pharmacy }} · {{ o.status }}{{ o.name }}
{{ o.city }} · {{ o.providers }} provider(s)
{{ o.phone }}{{ o.hours }}
Business data imports · daily (target) · {{ mg.ph.label }}
Flow: RxQ export → supported transfer → validate → apply new/changed records → publish. History loaded: {{ historyNote }}. Corrections use a changed-record feed or snapshot replacement (to be confirmed with RxQ).
{{ i.name }}
Periods {{ i.periods }} · through {{ i.through }} · imported {{ i.when }}
Offices without mapped facts are shown as unavailable, never $0; held records are listed per pharmacy in the review above.
Methodology: Rx = completed fills; revenue = reported revenue (not margin); patient-cost summaries use aggregate distributions only; unknown costs are excluded, not $0.
Notification preferences
Default reminder time for date-only tasks: 9:00 AM local
Lock-screen text: generic (“You have a follow-up due”)
Rescheduling replaces the prior reminder; completing cancels it
Current demo permission state on the rep phone: {{ pushLabel }}
{{ mg.toast }}
Sign in to Compass
{{ conn.loginHint }}
{{ conn.loginError }}
Set up two-step sign-in. Add Compass to the Passwords app on your iPhone or to Google Authenticator, then enter the 6-digit code it shows.
Preparing setup…
Add to an authenticator on this phone
On a computer? Scan this with your phone's camera:
Or type this setup key:
{{ conn.mfaKey }}
{{ conn.loginError }}
{{ conn.mfaPrompt }}
{{ conn.loginError }}
Save your recovery codes
If you lose your phone, each code signs you in once. Save them somewhere safe, such as a note in the Passwords app. They will not be shown again.
{{ rc.code }}
{{ conn.loginError }}