πŸ”

NYCID Staff Sign-In

This dashboard is restricted to NYCID staff. Sign in with your @nycid.org Google account to continue.

NYCID

SYEP 2026 Admin Dashboard

NYCID Administrative Control Center

Last refreshed: β€”
⬅️ Back to index
NYCID Menu β–Ύ
πŸŽ“Requirements
Find a ParticipantCompliance Tracker
No OL on a Reach NYCID ticket? Search 0 tracked cases by name, email, phone, OL, or App ID.
Find a WorksiteEmployer Partners
Look up a single site by name, Worksite ID, rep, email, or borough β€” full readiness, login, and assigned-youth card.
πŸ“ Reporting
β€” responded Β· β€” awaiting
πŸ“ Placements
β€” submitted Β· β€” left
πŸŽ“ Orientation
β€” confirmed Β· β€” left
πŸ“± Dashboard
β€” active Β· β€” never
🏒 Worksites

Recent Activity

Recent submissions will appear here once data is available.

πŸ“± Dashboard Logins (search everyone who's logged in)

Name OL Cohort First Login Last Login Logins
Loading…

πŸ“¨ Communications Center (0)

Youth messages sent from the NYCID apps on nycid-solutions land here β€” loading WLG messages…
Needs Verification
β€”to clear
Live
Open Requests
β€”open
Find a ParticipantCompliance Tracker
No OL on a Reach NYCID ticket? Search 0 tracked cases by name, email, phone, OL, or App ID.
Event Responses
β€”attending
SourceTypeFromContactMessageSubmittedStatusAction
Loading…

β–ΈπŸŸ’ Dashboard Green Lights (0) β€” tap to expand

πŸ””
Job Selection β€” Go-Live Switch
… …

🎯 Placement Command Center

Job Applications (0)

Placement workflow: 1) Youth submits application β†’ 2) Click Assign to choose which of their 3 picks they go to (status becomes "Tentatively Assigned") β†’ 3) Export for City Database (button above) and submit for approval β†’ 4) Once the city approves, click Mark Official on each (or "Confirm All Assigned" to batch) β†’ 5) The youth and worksite supervisor can now see the placement in their lookups.
App ID Name Age Choice 1 Choice 2 Choice 3 Status Reporting? Submitted Actions
Loading…

Orientation Confirmations (0)

OL NumberNameAgeCohortSchoolOrientation DateAcknowledgmentsConfirmed
Loading…

Employer Orientation Confirmations (0)

WorksiteWorksite IDRepresentativeContactOrientation DateAcknowledgmentsConfirmed
Loading…
πŸ“ž Compliance Outreach Tracker β€” embedded view (writes go directly to compliance_tracking)
πŸ“Š Job Developer & Worksite Monitor Dashboard β€” embedded view (each app writes directly to Firestore)
πŸ’³ MetroCard / Travel Card Distribution & Signatures β€” serial-pack auto-assign, per-youth + bulk staff signature, DYCD tracking sheet

Job Listings (0)

ℹ️ Primary upload is now the Master Roster Importer on the Employer Partners tab.
The Master Roster CSV writes worksite_profiles AND jobs in one upload, preserves your cohort/visibility/reverify overrides, and is the workflow going forward. The legacy jobs-only upload below is kept as a safety net for mid-program corrections.
βš™οΈ Legacy β€” jobs-only upload (use Master Roster Importer instead)
πŸ“₯ Update jobs from CSV. Upload a CSV with columns: title, employer, location, borough, category, type, positions, ageReq, interviewRequired, schedule, description, worksiteId.
Required: title, employer. Existing jobs will be replaced. Does NOT honor visibilityOverride flags.

πŸ“€ Click to upload CSV (or drag and drop)

Will replace all existing jobs in Firestore

TitleEmployerBoroughTypePositionsAgeInterview?Worksite ID
Loading…

Worksite Instructions (0 submitted)

BusinessAddressWorksite IDStart TimeSupervisorLast Updated
Loading…

πŸ›°οΈ Partner Mission Control β€” worksite dashboard access & first-day readiness at a glance

πŸ”Œ Dashboard Access Worksite Logins
of β€” worksites have opened their dashboard
🚦 First-Day Readiness Employer Partners
of β€” worksites are cleared to host on day one
πŸ”Ž Find a Worksite Employer Partners
Look up a single site by name, Worksite ID, rep, email, or borough β€” full readiness, login, and assigned-youth card.

Employer Partner Readiness (0 worksites)

WorksiteIDSite RepCohortDashboardClearancePre-Assess AssuranceCommitmentJobsReq.First-Day Instr.VisibleInterview
No employer partner data yet β€” upload above.
βš™οΈ Legacy β€” worksite-profiles-only upload (use Master Roster Importer above)

Upload worksite_profiles_import.csv β€” the reconciled output of the 3 reports (WORKSITE-MASTER + YEPS Jobs Report + pre-assessment). Each row upserts into worksite_profiles keyed by Worksite ID. Existing docs are overwritten field-by-field (merge); nothing else is touched. Safe to re-run any time you re-export the reports.


Returning-site history β€” upload worksite_history_2025_import.csv or worksite_history_2026_import.csv (the merged main+jobs-report output). Each row upserts into worksite_history_{year} keyed by normalized company name, so the Re-Verification form shows returning sites everything we have β€” contact, site rep, schedule, duties. The form already prefers 2026 over 2025 by name, so upload both: 2026 sites see their 2026 record, everyone else falls back to 2025. Safe to re-run.

πŸ“₯ Master Roster Importer (primary)

One upload β€” both collections. Drop the master roster CSV from Claude (or generate locally with reconcile.py) and this writes to worksite_profiles and jobs in a single batched pass. Existing manual overrides (cohort, visibility, reverify stamps) are preserved.

Two modes. Full master (default): profiles are merge-upserted, and the jobs collection is rebuilt to match the CSV β€” jobs at sites not in the CSV are removed (partner quick-add jobs survive). βž• Add-on / partial (tick the box): upload a CSV with only new or changed sites β€” profiles are merge-upserted the same way, but jobs are replaced only for the sites in this CSV; every other site's jobs are left completely untouched. Use Add-on to introduce new sites without re-uploading the whole master.

⚑ Quick Status Update (Status + Worksite ID or Site Name)

Fast status flip β€” no full roster needed. Drop a CSV with a Status column plus a Worksite ID and/or Worksite Name column, and this updates each matching site's commitmentStatus on worksite_profiles. That status is what the worksite dashboard shows partners (Committed / Approved-Inactive β†’ Approved, Rejected β†’ Not approved, anything else β†’ Not committed). Nothing else is touched β€” assurance, pre-assessment, jobs, and cohort are all left exactly as they are.

Accepted Status values: Committed, Approved-Active, Approved-Inactive, Not Committed, Rejected, Unapproved. (Approved-Active is treated as Committed β€” the active, approved state partners see as Approved.) Matching: Worksite ID wins when present; a row with no usable ID falls back to its Worksite Name (exact match first, then a fuzzy pass ignoring Inc/LLC & punctuation). A name that matches 2+ roster sites is flagged ambiguous and skipped β€” never guessed. Sites already reactivated by staff (committedViaReactivation) are protected β€” they won't be downgraded. Rows with no roster match are reported and skipped (use the Master Roster Importer to add new sites).

πŸ“‹ Site Status β€” same live rundown as Command Center β†’ πŸ“‹ Site Status, right here so you can see a status update land Β· grouped by status

Sort sites within each status by:
How to read this. Pre-assigned = kids seated at the site who are not official yet (tentative β€” they cannot officially be placed until confirmed). Official = confirmed placements (in the City "Officially Confirmed" export). Sites are grouped by their City status (from the Quick Status Update above β€” a real commit refreshes this panel automatically). This is the same live panel as Command Center β†’ πŸ“‹ Site Status; it isn't moved, just shown in both places.
Open this tab to load…

πŸ“‹ Pre-Assessment Status Update (Worksite Monitor Notes report)

Fast pre-assessment flip from the monitor report. Drop the β€œWorksite Monitor Notes By Worksite” export (the one with the Pre-Program column) and this updates each matching site's preAssessmentComplete on worksite_profiles. Pre-Program 1 β†’ Complete, 0 β†’ Pending. It also recomputes firstDayReady. Nothing else is touched β€” commitment, assurance, jobs, and cohort are all left exactly as they are.

The report has no Worksite ID, so sites are matched by business name (with a fuzzy fallback for Inc/LLC & punctuation differences). Dry run is on by default and shows the full parsed table so you can check every match first. A 0 will not pull an existing Complete back to Pending unless you tick Allow downgrades (protects manual staff stamps). Any roster site that does not appear in the report is listed below the table so you can see what's missing from the list.

πŸ”“ Job-Selection Manual Override (verified complete)

Use this only after you've manually verified a youth actually completed Hats & Ladders and/or SHPT β€” for example, you checked their uploaded certificate. It unlocks job selection for that one youth and is logged with your name and reason. It does not waive the requirement; it records that you confirmed it's met. The youth still needs every other requirement done to get into the picker.

🩹 Recover lost overrides (drift repair)

Finds manual H&L / SHPT overrides a prior build wrote to the wrong (stale / phantom) compliance doc β€” so the youth is still locked out of the job / Google Classroom picker even though staff verified them. The scan is read-only; nothing is written until you review the list and confirm. Migrating copies each override onto the youth's real record, leaves a self-healing breadcrumb, and tombstones the old doc.

πŸ“₯ Master Participant Roster Importer (primary)

One upload β€” four collections. Drop the MASTER-ENROLLMENT export from YEPS and this writes participants_roster, oy_requirements, direct_deposit, and compliance_tracking in a single batched pass. Existing manual work in the compliance tracker (H&L marks, SHPT, outreach notes) is preserved.

🏠 Backfill Home Addresses β†’ compliance tracker case cards

Fills each youth's case card Home Address (compliance_tracking.homeAddress) β€” the field the compliance tracker cards, the case map, and the participant dashboard's "address on file" all read. Fill-blank-only: any address a youth or staffer already entered is preserved and never overwritten. Pick a source, then run Scan (a dry run) β€” it shows exactly how many cards would be filled and how many have no address to pull from before anything is written.

πŸ“„ Master roster CSV is the complete source. The master enrollment export carries an address for every enrolled youth, but the Master Participant Roster Importer never stored that column β€” so the applications source below only covers youth who went through the job-selection picker (~a third of the roster). Use the CSV to reach everyone.
Source:
Add as many roster files as you have β€” the base export plus every "newly enrolled" update. They're merged by Application ID (newest non-blank address wins), so together they cover the whole current roster.

πŸŽ‚ Age on First Day β€” coverage & backfill

Checks every compliance tracker case card for an age on the first day of program and fills compliance_tracking.ageOnStartDate from any age already in applications or participants_roster. Fill-blank-only: a card that already has an age is never touched. Run Scan first (read-only) β€” it shows coverage, how many are backfillable now, and segments the still-missing youth by cohort and contract so you can see exactly which group (e.g. a Career-Ready contract) is short.

πŸ“„ Some ages only exist in the master enrollment CSV. The only durable source of age for YY youth (and any OY whose application age is blank) is the master roster's Age on Start Date column. If the scan shows youth with no age anywhere, those need a master-roster import (Importer at the top of this tab) β€” this backfill can only move an age that already lives somewhere in Firestore.

Participants Roster (0 participants)

ℹ️ Primary upload is the Master Participant Roster Importer at the top of this tab.
It writes 4 collections in one upload and preserves all compliance tracker manual work. The basic identity-only upload below is kept as a fallback safety net.
βš™οΈ Legacy β€” identity-only upload (use Master Participant Roster Importer above)
πŸ“₯ Upload your participants roster. This is the master list of all SYEP youth that the OL Lookup app uses to help participants find their Application ID.

Required columns (any of these formats): Application ID, First Name, Last Name. Optional: Zip Code, Email, Second Email.
You can drop the raw Application Report Writer export from DYCD as-is β€” extra columns like Program Type, Service Option, SB School Name, or DOE School are ignored. The OL- prefix on Application IDs is fine. Camel-case headers (applicationId, firstName, etc.) also work.

πŸ“€ Click to upload participants CSV (or drag and drop)

Will replace all existing participants in Firestore

OL NumberNameZipEmailSecond EmailCompliance
No participants loaded yet. Upload a CSV above.
πŸ’³ Direct Deposit requests have moved into Communications β†’ πŸ“§ Form Email Center.

πŸ“‹ YY Attendance Results

βž• Mark a youth present (they were there, the kiosk couldn't find them)
Uses the πŸ“… date above Β· records method β€œadmin-add” with your name Β· rolls up in-person pay credit when the date is in a program week.
Open this tab to load attendance…
DateYouthOLSiteStatusMethodChecked in byTime
β€”

πŸ“ YY In-Person Site Assignments (0 YY participants)

Move a Younger Youth between in-person sites. Click Reassign on any row to change a youth's bucket. The change is written to yy_site_designations, an audit entry is added to yy_site_designation_history, and the youth will see the new site (plus a one-time banner) the next time they open the Participant Dashboard. Use UNASSIGNED if a kid needs to be re-evaluated.
OL Number Name Current site Last reassignment Action
Loading YY participants…

πŸ“‘ Recent reassignments (0)

When Youth From β†’ To Reason Staff
Loading history…

πŸ–₯️ YY Online Classrooms

How this works: Define classrooms with a time slot, instructor, and a cap of 25. Auto-bulk-assign reads each YY's session pick from yy_scheduling (set by the participant dashboard) and slots them into the first classroom matching their time slot. IAM bucket youth are excluded β€” they don't do online sessions. YY who picked "in-person only" still get a safety-net classroom but appear flagged as declined.
πŸ–₯️ Active classrooms
β€”
πŸ‘₯ Assigned youth
β€”
⚠️ Unassigned eligible
β€”
🚫 Declined online
β€”
πŸŽ“
YY Classrooms β€” Go-Live Switch …
Controls the Open Google Classroom button on every YY youth dashboard. While LOCKED, kids see "πŸ”’ Not open yet" β€” no hardcoded date, it opens only when you flip this.

🩺 Google Classroom coverage audit (read-only β€” finds every YY missing a classroom and says why)

πŸ“š Summer-school list reconciliation (paste your tracked OLs β€” see who is / isn't survey-flagged, then tag the missing so the lane routing catches them)

Run the audit to classify every YY: assigned βœ“ Β· assigned but no Google-Classroom ID Β· sync pending Β· confirmed-online but never assigned (sweep misses) Β· approved session changes that never moved anyone Β· no confirmation response Β· IAM (by design).

Instructors (0)

Loading instructors…

Classrooms

Loading classrooms…

All assignments

OL Name In-person site Online pref Classroom Source Status Action
Loading…
πŸ§‘β€πŸ« YY PBL Instructor Dashboard β€” embedded view (writes go directly to pbl_submissions / yy_pay_weeks)
βœ… YY Attendance Kiosk β€” embedded view (writes go directly to yy_attendance / yy_pay_weeks)
πŸ’΅ YY Pay Report β€” embedded view (READ-ONLY; derives pay credit from yy_pay_weeks, writes nothing)

πŸ’΅ Direct Deposit Status

Load the per-participant Direct Deposit roster. Use the WFC Direct Deposit sign in export β€” columns Application ID, Last Name, First Name, Payment Method. Embedded tab characters in the headers are handled automatically. Direct Deposit β†’ enrolled; anything else (Payroll Card / blank) β†’ not enrolled. Re-run anytime with a fresher report β€” it upserts by Application ID (last run wins) and never deletes anyone. Writes the direct_deposit collection the Participant Dashboard reads.

πŸ“€ Click to upload Direct Deposit CSV (or drag and drop)

Upserts each participant's status β€” safe to re-run

πŸ“ YY In-Person Site Designations

Load YY in-person site designations β€” two ways:
  1. Single consolidated file (recommended) β€” one CSV with an in_person_designation column containing the bucket code per row (e.g., YY_Master_with_Designations_*.csv). Each row carries its own designation; filename can be anything.
  2. Six separate bucket files — drop all six (or any subset) and the filename is auto-mapped to its program: Bucket_1_CB_Brooklyn→BK_CB, Bucket_2_PortRichmond_and_CB_StatenIsland→SI_CSI, Bucket_3_Tottenville→TOTT, Bucket_4_IAM_HS→IAM, Bucket_5_Lehman_and_CB_Bronx→LEHMAN, Bucket_6_Uncategorized→UNASSIGNED.
Either way: dedupes by Application ID; upserts the yy_site_designations collection the Participant Dashboard reads to show each YY their in-person day & site. Safe to re-run; never deletes anyone.

πŸ“€ Click to upload YY designation file(s) β€” or drag & drop

One consolidated CSV (with in_person_designation column) OR the six Bucket_*.csv files

πŸͺͺ OY Working Papers & Selective Service

ℹ️ Primary path is the Master Participant Roster Importer on the Participants Roster tab. It derives these same booleans from MASTER-ENROLLMENT every time you upload, so this single-purpose uploader is rarely needed. Kept as a fallback.
βš™οΈ Legacy β€” OY-only gender/age upload (use Master Participant Roster Importer instead)
Load the Older Youth gender + age roster. Columns Application ID, Last Name, First Name, Gender/Sex at Birth, Age on Start Date (embedded tab characters in headers handled automatically). Only two derived booleans are stored β€” needsWorkingPapers (age < 18) and needsSelectiveService (Male & age β‰₯ 18). Raw sex and age are never written to Firestore. Writes the oy_requirements collection the Participant Dashboard reads to show OY their reminders. Safe to re-run; never deletes anyone.

πŸ“€ Click to upload the OY roster CSV (or drag and drop)

Derives the two booleans on import β€” raw sex/age discarded, not stored

βž• Add a partner site to the roster (0 pending)

Inbound signups from partner-with-nycid.html (πŸ†• Inquiry) and the full partner-onboarding.html form (πŸ“‹ Full Profile) both land here, newest first. Once a site is approved in YEPS its Worksite ID is in hand β€” complete the few fields the form didn't capture and add the site to the roster in one click. Use β€Ή β€Ί to step through submissions β€” no scrolling.

Loading pending partner signups…

Partner Inquiries (0)

🀝 New worksite partner inquiries from partner-with-nycid.html. Forward these to Shantell Walker (swalker@nycid.org) for follow-up. Click any row to expand details.
Status Company Contact Phone / Best Time Email Interns Profile Submitted Actions
Loading…

Submitted Re-Verifications (0)

πŸ”„ SYEP 2026 worksite re-verification submissions from worksite-reverify.html. Returning worksites confirming or updating their info for the new program year. Forwards to Shantell Walker (swalker@nycid.org). The "Changes" column shows fields that differ from the original profile β€” open Details for the full diff.
Type Company Email Supervisor Changes Submitted Actions
Loading…

Profiles Not Yet Re-Verified (0)

⏳ These returning worksites have not yet submitted a 2026 re-verification. Use "Copy Re-Verify Link" to send them a direct link by email (the form will auto-load their record).
Company Contact Email Supervisor Original Profile Date Actions
Loading…

Interview Requests (0)

πŸ—£οΈ Late-stage interview requests submitted by partners through request-interview.html. Each row is one submission. Marking "Processed" stamps status, processedAt, and processedBy on the doc. Important: processing does NOT auto-update jobs.interviewRequired or partner_profiles.wantsInterviews β€” do those in their respective tabs so the change is reviewed before youth see the orange "Interview Required" badge in the job picker.
Status Business Wsid Wants? Format Weeks Submitted by Submitted Actions
Loading…

More Participants Requests (0)

βž• Additional-participant requests submitted by partners through the worksite-dashboard "Request more participants" tile. Each row is one submission. Marking "Processed" stamps status, processedAt, and processedBy on the doc. Important: processing does NOT auto-update worksite_profiles.requestedParticipants β€” re-upload the worksite profiles CSV with the new total, or edit the field directly, when you're ready to grant more.
Status Business Wsid Current More Total Reason Submitted by Submitted Actions
Loading…

🏬 Multi-Site Expansions (0)

🏬 Additional-location submissions. When a worksite that hosts interns at more than one site fills out the worksite-location-expansion.html form, each submission lands here. Every card shows what they originally had on file plus the extra locations they gave us (address, on-site supervisor, intern count). Marking Processed stamps status, processedAt, and processedBy. This does not auto-create worksites in YEPS β€” use it as your worklist for setting up the extra sites.
Loading…

🎯 Youth Picks (0)

🎯 Worksite-requested participants. A worksite supervisor who is also a teacher at the participants' school can select the youth he'd like via the worksite-youth-picker.html link. Each card is one worksite's current selection list (re-submitting on their end updates the same card). These are requests/preferences β€” placement is still yours to confirm. Marking Processed stamps status on the doc.
Loading…

Worksite Assurance Forms (0)

πŸ“ Worksite Assurance & Certifications Agreements signed by partners through the dashboard shadowbox. Click Countersign to fill in the Provider Representative block β€” this completes the chain of custody and flips the partner's readiness card to βœ“ Complete.
Status Business Wsid Address Signed by Title Signed at Actions
Loading…
🎯
Director Command Center Every headline number across the program, in one view. Tap any tile to jump to it.
as of β€”
Program Vitals How the program is running right now Tap a panel to jump to it. A red dot means it needs someone. Live Β· β€”
🚨 β€” items need attention right now

πŸš— Travel Reimbursements

Approve staff travel claims on the official NYCID form, then send to Cathy Lynch (clynch@nycid.org) for processing. Save your signature once; "✍ Sign" approves a claim, then "πŸ“§ Send to Cathy" emails the signed official form + route map in one click. Claims arrive here when staff submit them from the Travel Reimbursement tool.

🚨 Needs Attention

πŸ“¨ Open Communications
β€”
⚠️ New Issue Reports
β€”
🀝 New Partner Inquiries
β€”
πŸ—£οΈ New Interview Requests
β€”
βž• More-Participant Requests
β€”
🏬 New Multi-Site Expansions
β€”
🎯 New Youth Picks
β€”
πŸ“ Assurances Awaiting Countersign
β€”
⚠️ Orientation β€” Needs OL Review
β€”
⚠️ Needs YEPS Sync
β€”
πŸ›‘ Not Reporting Day 1
β€”
Tap a dial to review that section
🎯Command6 sections
Communications & Touch Volume Every touch it takes to run SYEP β€” this cycle program-to-date
πŸ“Š
… total logged touches & actions this cycle
Sum of every metric on the board below. Some actions generate more than one touch β€” a placement also fires a confirmation email, a change request is both an in-app message and a change β€” so categories can overlap; this is a volume picture, not a de-duplicated ledger.
πŸ“€ Outbound β€” what we send
πŸ“ž Direct outreach β€” logged by the team
πŸ“₯ Inbound β€” what comes back to us
🎯 The placement operation these touches drive
πŸ“¨ Historical email baseline β€” direct Gmail, Mar 2026 β†’ set date Β· exact message counts, spam/trash excluded
Reads existing collections only β€” no writes. Sent app-email & notice counts come from the outreach log every send writes; calls/texts/in-person are what the team logs in the Compliance Tracker. The raw mail send-queue total needs a read rule (see the πŸ”’ tile), and outbound texts sent from Google Voice aren't stored in Firestore, so only the texts the team logs are counted here. The πŸ“¨ Historical email baseline is a static figure for direct Gmail traffic on syep@nycid.org (mailbox in/out + voicemail notices) that never touches the app β€” set once in the code from an authoritative Workspace export and stamped "as of"; it is added into the hero total when present.
πŸ“ž Compliance β€” Live Team Activity β€” live feed from the Compliance Outreach Tracker's Director View

πŸ“– Quick Job Description Viewer

Search the live job catalog and see exactly what youth see in the picker.

Search above, then pick a job to preview the youth-facing description.

β–Ά πŸ”¬ Pre-Launch Validation Checks

β–Ά πŸ”„ Reactivate Approved-Inactive Sites

β€” sites Β· 0 selected

β–Ά 🏒 Worksite Impersonator

β–Ό πŸ” Participant Impersonator

Open participants.html with any youth's OL pre-loaded. Start with the built-in demo accounts (no real Firestore data touched) to test happy paths, then move to real participants.

Built-in demo accounts:

Real participants (from participants_roster):

Application IDNameCohortZIPEmailAction
Loading…

πŸš€ Day 1 Readiness (officially placed OY)

βœ… Officially Placed
β€”
πŸ‘ Ready to Report Day 1
β€”
πŸ›‘ NOT Reporting Day 1
β€”
⏳ Awaiting First-Day Ack
β€”

πŸ“ Audit Paperwork Progress

3 signed forms make a youth audit-ready: Worksite Referral (signed before Day 1), Week 3 Evaluation, Week 6 Evaluation. Each form needs all 3 signatures (Participant, Worksite, NYCID Monitor).

πŸ“„ Referrals β€” 3 of 3 sigs
β€”
β€”
πŸ“‹ Week 3 Evals β€” 3 of 3 sigs
β€”
β€”
πŸ“‹ Week 6 Evals β€” 3 of 3 sigs
β€”
β€”

⚠️ Worksite Issue Reports (0)

Submissions from employers via "Report an Issue" on the Worksite Roster app. Click any row for details and to update status.

πŸ†• New
β€”
🚫 No-Shows
β€”
πŸšͺ Left Program
β€”
πŸ”§ In Progress
β€”
ReportedWorksiteYouthIssue TypeStatusReplacement?Details
Loading…

πŸ‘₯ Youth Needing Attention

Officially-placed youth filtered by first-day acknowledgement status. "Worksite Says" cross-references the issue reports from this worksite about this youth β€” a 🚫 means the worksite reported them as a no-show.

Application IDYouthWorksiteTheir StatusYouth's NoteSaid WhenWorksite Says
β€”

📇 Contact Info Reconciliation

Every contact-info change made in our system — by a youth in the app or by staff in the compliance panel — is logged here so it can be re-entered in YEPS. Our system is the working copy; YEPS is the record of truth.

How to use this: for each change below, set that participant’s contact field to the new value in YEPS, then click “✓ Mark synced to YEPS.” Your name and the time are logged and the change moves to the synced history. Check this daily so YEPS never drifts from our system.
Needs YEPS sync: —
Click Refresh to load contact changes.

πŸ“ Audit Portal β€” SYEP 2026

Every signed document filed for the City audit lives here. Each row is one youth's audit folder (Worksite Referral + Week 3 + Week 6 Evaluation). Bulk download generates one master ZIP β€” one folder per youth β€” for the September audit binder. Week 3 + Week 6 are generated as templates today; once Phase 2 wires eval signing, they'll include the filled ratings + signatures.

β€”
Signed referrals
β€”
Audit-ready (all sigs)
β€”
Awaiting employer
β€”
Awaiting NYCID monitor
β€”
Awaiting Director countersign
β€”
✍ Worksite signed (any stage)
β€”
βœ… Youth + worksite signed
0 referrals are awaiting NYCID Director countersign. Sign all of them at once with a single signature β€” each one becomes audit-ready.
🧾 0 worksite assessments are awaiting your Director signature (a separate queue from the referrals above β€” the monitors' assessment visits).
OL Participant Worksite Signed Status Last update Audit folder
Loading signed paperwork…

πŸ—„ Offline Document Repository β€” SYEP & AGVEP

Scanned or photographed paper records that live outside the app β€” pay card sign-in sheets, paper timesheets, attendance sheets, permission slips β€” filed under SYEP or AGVEP so they're in the binder with everything else. Photos (any format, incl. iPhone HEIC) and PDFs. Files are stored originals-untouched; HEIC photos can't preview in the browser but open/download fine.

πŸ“‚ Click to choose files β€” or drag photos / PDFs here (multiple OK, up to 100 MB each)
β€”
Documents filed
β€”
πŸ› SYEP
β€”
πŸš€ AGVEP
β€”
Total MB

πŸ‘€ Participant Offline Documents β€” into the audit folder

Paper documents that belong to one youth β€” scanned working papers, consent forms, paper evaluations or referrals, IDs. File them by OL and they ride inside that youth's audit folder download automatically (the single ⬇ Audit folder AND the master ZIP), under Offline_Documents/. Photos (any format, incl. iPhone HEIC) and PDFs. Program-wide paper records (pay-card sign-in sheets, site timesheets) belong in the πŸ—„ repository above instead.

πŸ“‚ Click to choose files β€” or drag photos / PDFs here (multiple OK, up to 100 MB each)
Enter an OL above to see what's already filed for that youth.

🧾 Worksite Assessments β€” Director sign-off

Weekly SYEP/WLG Worksite Assessment Reports submitted by the field monitors. The monitor and supervisor sign on site; the assessment then waits here for your Director signature β€” exactly what the monitor app's "the director signs this on the admin dashboard" note promises. Sign one batch below; each signed assessment renders your signature on the official DYCD form when the monitor app exports its PDF.

β€”
Assessments submitted
β€”
Awaiting Director signature
β€”
βœ“ Director-signed
0 worksite assessments are awaiting your Director signature. Sign all of them at once β€” your signature is applied to each assessment individually.
Worksite Visit Assessment date Monitor Signed Status Open
Loading worksite assessments…

🧾 Staff Evaluations β€” SYEP 2026

Evaluation of record for the City audit. Supervisor is fixed as Michael De Vito Jr., Evaluation = End of cycle. Completed = all 10 category ratings set (comments strongly recommended β€” the form requires comments for any 5, 2 or 1). Filed documents land in the πŸ—„ Offline Document Repository under the category Staff Evaluations SYEP 2026.
β€”
Staff
β€”
Rated 10/10
β€”
Comments 6/6
β€”
Complete
β€”
Filed




⚑ Bulk β€” selected: 0 Rate all 10 categories:
Set site: Eval date:
Standard answers fill all six comment prompts with short, role-appropriate wording (variants rotate so evals don't repeat verbatim). Open ✏ Edit on any row to fine-tune.
Staff Site Ratings Comments Status Actions

πŸͺͺ CSI / Liberty Partnership consents

Every Staten Island CSI-campus youth (SI_CSI + SI_LPP) who read and digitally signed the parent-permission form on the participant app appears here. Each row produces a filled copy of the actual consent document Liberty provided β€” both pages (the CSI Liberty Partnerships Parent Permission Form and the NYC DOE A-820 records-release page) β€” with the captured values stamped onto the real blanks and a "digitally signed on the NYCID SYEP 2026 application" seal under the signature on each page. Fields the app never captured (date of birth, NYC student ID, district, borough) stay blank, as on the source form. Download one, or build a single ZIP of every signed consent to hand to the CSI Liberty Partnerships Program partner.

β€”
Signed consents
β€”
With parent signature
β€”
SI_CSI
β€”
SI_LPP
OL Student School Program Signed Consent PDF
Loading signed CSI / Liberty consents…

πŸ“‹ YEPS Entry β€” type the site evaluations into YEPS

β—‹ not connected
Same answers the πŸ› generator prints on the PDF (saved ✏ edits win over the uniform defaults), in the order the YEPS Evaluation tab asks for them. Claim a site so nobody else types it, ⧉ copy each field into YEPS, then βœ“ Done. Claims and done marks are shared live with everyone on this page.
πŸ‘‰ Staff start here. Pick a site on the left β†’ βœ‹ Claim β†’ ⧉ copy each field into the YEPS Evaluation tab β†’ βœ“ Done. The two admin sections below (folder builds, the eval generator) stay folded β€” you don't need them.
β€”
Unclaimed
β€”
Claimed (in progress)
β€”
Entered in YEPS
β€”
Mine (claimed or done)
#SiteStatus
Open this tab to load the queue…
Pick a site on the left β€” its YEPS-ordered answers appear here with a ⧉ copy button per field.

πŸ“‚ Worksite Folders β€” SYEP 2026

β–Έ Collapsed β€” worksite folder builds (assurances, assessments, evals per site). Click to expand.

πŸ› Organization Site Evaluations β€” DYCD Audit

β–Έ Collapsed β€” audit generator (defaults, classify, per-site edits, PDF/ZIP). Click to expand.

πŸ—‚οΈ OY Audit Closeout β€” the audit sheet, live

This is the 2026 OY Participants audit sheet β€” same rows, same columns, same tick boxes β€” with each youth's personal upload link at the end. Ticks save instantly and the whole team shares them (who + when on hover) β€” work it here instead of the workbook; ⬇️ Sheet CSV exports the current state in the exact workbook column order whenever you want it back in Excel. πŸ”„ Check live app data is the overlay for later: it reads signed_documents + the youth's uploads and puts a beside a box the app says is done but isn't ticked, and a beside a tick the app can't confirm β€” it never ticks anything for you.

Loading saved ticks…

πŸ“£ Audit outreach β€” email + text every youth with something open

πŸš€ AGVEP Youth Audit Closeout β€” 10 youth on the DYCD 09-15 list, live

This is the AGVEP Summer 2026 participant audit β€” DYCD's 10 sampled youth, the same document set as the OY sheet, every box starting βœ— β€” with each youth's personal upload link at the end. Ticks save instantly and the whole team shares them (who + when on hover) β€” work it here instead of the workbook; ⬇️ Sheet CSV exports the current state in the exact workbook column order whenever you want it back in Excel. πŸ”„ Check live app data is the overlay for later: it reads signed_documents + the youth's uploads and puts a beside a box the app says is done but isn't ticked, and a beside a tick the app can't confirm β€” it never ticks anything for you.

Loading saved ticks…

πŸ“£ Audit outreach β€” email + text every youth with something open

πŸ§’ Child Care Completion Center β€” DOH reference letter + questionnaire

Every OY youth placed at a childcare worksite (worksite profile has childcareSite set) needs the DOH pair on file: the Reference Letter (signed Shantell Walker, dated from the placement record β€” never today) and the Child Care Experience Questionnaire. πŸ“€ Send emails + texts the checked youth their personal link (from Shantell); the youth completes the questionnaire on their dashboard. When a row reads Submitted, πŸ“„ File pair generates both PDFs (provider block: Excellent Γ—4, referred to their worksite) and files them into that youth's folder only (participant_audit/{OL}/), and ticks the youth's CC box on the πŸ—‚οΈ OY Audit Closeout sheet. Nothing is ever overwritten; unchecked rows are never touched. Source switches between the live placement pull and the OY audit sheet (every audit youth whose Childcare column isn't N/A) so the audit set is worked in bulk, never one search at a time.

Click πŸ”„ Load / refresh.
YouthOLChildcare worksiteLetter dateEmailPhoneStatusActions

πŸͺͺ OY Documents Audit β€” Working Papers + Selective Service

For every OY flagged as needing Working Papers or Selective Service, this view shows whether they've interacted with the reupload prompt on their participant dashboard. Click any row to open the youth's attachment (if any). CSV export is audit-binder ready.

β€”
Total flagged
β€”
No action taken
β€”
Started, no file
β€”
Self-certified, no file
β€”
Uploaded, pending
β€”
Staff verified
β€”
πŸ› On YEPS
OL Participant Doc Status Last interaction Attachment Staff review
Loading OY requirements + uploads…

πŸ” Worksite PIN Manager

Generate, reset, and audit 4-digit PINs for worksite dashboard logins. You don't need to email reset PINs by hand. When a worksite requests a reset, the system generates and emails the new PIN to them automatically β€” the auto-reset function handles it, and a one-click reset above does the same. The list below is just a record of PINs generated on this device, and each row shows whether it was already auto-emailed. The Constant Contact CSV is a fallback only β€” use it for a row that couldn't be auto-emailed (no address on file) or for PINs you bulk-generate for brand-new sites. The PIN is hashed in Firestore the instant it's generated, so this list is the only place the plaintext lives; clear it once you're done.

Active PINs
β€”
No PIN yet
β€”
Locked out
β€”
Reset requests
β€”
Loading worksites…

🏒 Worksite Groups β€” Multi-Location Partners

Link a partner's separate sites under one group. A grouped partner gets one PIN that works on any of their Worksite IDs β€” when you set the group PIN it is written onto every member site's login, and any old per-site PINs are replaced. Single-site partners are untouched. The PIN is staged into the Worksite PINs outreach queue for the Constant Contact export.

0
Active groups
0
Grouped sites
0
Groups with consolidated PIN
0
Candidate groups detected
Loading worksites…

Login info & PIN

Sites
PIN
Send to
Subject line
What they'll get (links are hyperlinked words, not long URLs)

Reports & Exports

All exports include current data from Firestore.

πŸͺ‘ Standby Applicant Pool (load once)

This is the bench, not the roster. Drop the Applicants-Only.csv here one time to seed the standby pool you'll pull from when swapping out disenrolled participants. Re-uploading is safe (merge by Application ID) but normally unnecessary β€” once an applicant is enrolled they come in through the Master Participant Roster importer, not here.

🚫 Disenrolled β€” Open Slots (live from the Compliance Tracker)

This list comes straight from the Compliance Tracker. Every participant staff mark as disenrolled there shows up here automatically as an open slot β€” no separate entry. Work the tracker, refresh, and fill each open slot with a standby applicant.

Disenrolled (total)
β€”
Open slots
β€”
Filled / pending
β€”
Participant Cohort School Disenroll reason By / When Replacement
Open this tab to load disenrollments…

πŸ” Build a Swap

Choose a disenrolled participant going OUT (from the tracker list above) and the standby applicant coming IN. Saving locks the incoming applicant so they can't be double-picked, and drops the pair into the swap log below.

⬅️ OUT β€” disenrolled (from Compliance Tracker)
Tip: or click Fill this slot on any open row above.
➑️ IN β€” standby applicant
Type a name to jump β€” only available (un-swapped) applicants are listed.

πŸ“‹ Swap Log

Total swaps
β€”
Pending
β€”
Completed
β€”
Pool available / total
β€”
Status OUT (disenroll) IN (replacement) Reason By / When Actions
Open this tab to load swaps…

πŸ”Ž Correspondence β€” every record for one participant

Search by OL, name, or email to pull every touch we have on one youth into a single timeline β€” πŸ“‹ compliance case notes, πŸ“¨ comms messages & staff replies, πŸ“§ emails they sent the SYEP inbox, and πŸ’Ό placement history. Read-only. This tab loads nothing until you search, so it never slows the dashboard.

❓ Help & How-To

Step-by-step guides for staff. Click a card for the walkthrough β€” text steps, screenshots, and a short video.

πŸ“ Internal notes

Staff-only. These notes are never shown to the youth or worksite.

Notes

πŸ’¬ Reply to youth help request

πŸ“Ž Paste a screenshot (Ctrl/Cmd+V) into either box β€” it uploads and shows here; a PDF rides out as a real email attachment + a link in the dashboard copy.
βž• Add staff to this reply (each ticked teammate gets the πŸ”’ staff snapshot β€” phone, login, worksite, the youth's message. No ticks = no staff copy sent.)

πŸ’¬ Reply to worksite report

βž• Add staff to this reply (blind copy β€” the worksite never sees them. No ticks = no copies sent.)

β‹― Move this to a tab

βœ… Reply sent β€” what happens to this ticket?

Route it (ticket stays open)
Then set its status

πŸ“‹ Compliance snapshot

⚑ Quick replies

Canned messages staff can click when replying to a youth. A reply can include a screenshot that attaches automatically. These post to the youth\'s dashboard β€” no email needed.