Ledger Platform · Staff Guides
For Foster

Compliance

Updated
2026-05-24
Reading time
~15 min
Sections
16

Logging In

The tracker lives at:

https://compliance.motusleap.com/foster/

Your browser will ask for a username and password the first time you visit.

FieldWhat to enter
Usernameanything — acc, your name, leave it blank. The username is ignored.
Passwordthe shared Ledger: Foster password from your supervisor

Safari, Chrome, and Firefox will all offer to save the password — accept that and you won't be asked again on this device. If you mistype, you'll see "Invalid password"; just close the tab and try again.

Heads up: If the page sits open for a long time and badges stop updating, refresh and re-enter the password.


Your Daily Workflow

Starting Your Shift

  1. Open https://compliance.motusleap.com/foster/ and enter your password
  2. Leave the mode set to Issues Only (the default) — this hides anyone in compliance
  3. Glance at the sidebar — the four count badges (Exam Overdue, Weigh-In Overdue, Agreement Issues, Training Missing) tell you the size of today's queue
  4. Sort is set to Most Urgent by default. Work top-down.

Resolving an Agreement Issue

When a provider has an EXPIRED, EXPIRING, or NO AGREEMENT badge:

  1. Click the red/amber/coral badge — the Upload Agreement modal opens
  2. Choose the signed PDF or photo (PDF, JPEG, PNG, HEIC, or WebP)
  3. Set the Agreement Date — defaults to today in Eastern time
  4. Click Upload Agreement
  5. The system uploads to Airtable and auto-sets the expiration to exactly 2 years from the agreement date — you don't compute that yourself
  6. The provider's badge flips to OK in-place; sidebar counts decrement

Closing a Training Gap

When a provider has a NO TRAINING badge:

  1. Click the badge — it opens the provider's foster details page in ShelterBuddy in a new tab
  2. Confirm or enter the training completion date in SB
  3. Wait for the next sync (every 10 minutes) — the badge will clear on its own. The clinical foster refresh runs every 60 minutes (10am–6pm ET) and may also need to fire before exam/weigh data updates.

Resolving an Animal Exam or Weigh-In

The tracker doesn't write back to ShelterBuddy for clinical events. You handle those in SB:

  1. Click the animal ID (e.g. #248502) — opens the animal in ShelterBuddy
  2. Make sure the most recent Progress Exam / DVM Intake / Tech Exam consultation is logged (telemedicine consults do not count toward the 6-month requirement)
  3. For weigh-ins, log a Weight record in SB
  4. Wait for the next sync. The EXAM OVERDUE / WEIGH OVERDUE badge clears automatically.

Triaging Edge Cases

The Data Quality section appears below the main list when there are unresolved data issues. Two kinds:

CardWhat it meansWhere to fix
Unlinked AnimalsIn foster but no provider link in AirtableCheck SB foster placement; the next sync usually links them
Status ConflictsStatus is Awaiting Foster but location says "In Foster" or "Trial Adoption"Update the SB status or location to match reality

How the System Decides What's Overdue

Every 10 minutes, the system checks ShelterBuddy and updates the tracker:

  1. Pulls every in-care animal and every active foster provider
  2. Calculates days since last exam and days since last weigh-in for each animal
  3. Calculates days until each agreement expires
  4. Marks anything past the limit

You don't trigger any of this — you just act on what it shows you.

What the limits are

FlagLimitSource
Exam OverdueMore than 180 days since the last qualifying exam (or since intake, if there's no exam yet)§429.12
Weigh-In OverdueMore than 180 days since the last weigh-in (or since intake, if there's no weigh-in yet)§429.12
Agreement ExpiredAgreement has passed its expiration date§432
Agreement Expiring SoonAgreement is within 60 days of expiring (set automatically)§432
No AgreementProvider has no signed agreement on file§432
Training MissingTraining completion date is blank§432

What the badges look like in real life:

Species that don't get overdue flags

Six species are exempt from the exam and weigh-in rules. They still appear in the list, but they won't get EXAM OVERDUE or WEIGH OVERDUE badges:

Rabbit · Guinea Pig · Bird · Ferret · Reptile · Rodent

Everything else — Cat, Dog, Kitten, Puppy, and any animal whose species is blank or unknown — does get those badges. We treat unknown species as needing the same care as cats and dogs, just to be safe.


The Layout

The header is sticky and stays put while you scroll. Only the content area scrolls — the sidebar is fixed-height. Brand: ACC teal #4DBAB0, Outfit + JetBrains Mono fonts, light theme.


The Sidebar Summary Cards

Six cards total. The Data Quality section auto-hides when both its cards are zero.

Animal Issues — §429.12

Hover the §429.12 label for the law text:

Each foster animal shall receive a veterinary examination at least every six months and shall be weighed at least every six months.

CardWhat it counts
Exam OverdueIn-care + in-foster animals more than 180 days past last exam (this stay only — prior stays don't count). Sums across all providers and unlinked animals.
Weigh-In OverdueSame logic, but for last weigh-in.

Provider Issues — §432

Hover the §432 label for the law text:

No animal shall be placed in foster care unless a written agreement has been executed between the shelter and the foster care provider. Such agreement shall be renewed at least every two years. Each foster care provider shall complete a training program approved by the department.

CardWhat it countsNotes
Agreement IssuesActive providers with status Expired, Expiring Soon, or No AgreementCard turns amber if there are only Expiring Soon (no urgent action). Otherwise it shows the regular issue color.
Training MissingActive providers with no Training Completed Date

Data Quality

CardWhat it counts
Unlinked AnimalsIn-foster animals with no Foster Provider link in Airtable. Grouped by status (e.g. Adopted - Awaiting Pickup, Trial Adoption, Bite Quarantine).
Status ConflictsAnimals whose status is Awaiting Foster but whose location says "In Foster" or "Trial Adoption" — likely either the status or the location is wrong in SB.

Tip: Click any sidebar card to filter the content area to just that issue type. Click again to clear. The card highlights with a teal left accent and a teal background tint when active.


Tabs and Modes

The header has two controls:

ControlOptionsWhat it does
Shelter filter (top right dropdown)All Shelters (default), individual ACC sitesLimits both the provider list and edge cases to animals at that shelter
Mode toggleIssues Only (default) · AllIssues Only hides providers who have nothing wrong AND no animals with issues. All shows every active provider with at least one current animal.

Inside the content area:

ControlOptions
SortMost Urgent (default) · Most Animals · Name A–Z
Expand All / Collapse AllToggles every provider group at once

Note: The current build is provider-centric — there are no separate Animals / Providers / Unlinked tabs. Everything is one scrollable list of providers, with each provider's animals nested underneath, and a Data Quality section at the bottom for unlinked animals + status conflicts.


Reading Provider and Animal Rows

Each provider is a collapsible <details> group. Click the row to toggle. If any of the provider's animals have an issue, the group auto-opens when the page loads.

Provider header

ElementBehavior
NamePlain text
#4521ShelterBuddy Person ID — clicking opens …/personInfo/persondetails.aspx?personid=4521 in a new tab
Phonetel: link, formatted (212) 555-1234 for 10-digit numbers
EmailPlain mailto: — no copy/email modal, just opens your default mail client
2 animalsCount of currently fostered animals
(filled dot)Appears when any of this provider's animals has a compliance issue

Animal row (nested)

ElementBehavior
NamePlain text
#248502ShelterBuddy Animal ID — clicking opens …/animal/search.asp?task=view&animalid=248502
Species · Shelter · DaysComma-separated meta. Days are formatted 342 days (or 1,293 days with a comma for 1000+)

Badges

Badges show on the right side of each row. Multiple badges stack horizontally and wrap on mobile.

Provider badges

Each provider has up to two badges visible — one on the agreement axis (SIGNED / EXPIRED / EXPIRING / NO AGREEMENT) and one on the training axis (TRAINED / NO TRAINING). The green ones signal a positive state; the others flag an issue to resolve.

BadgeMeaningClick behavior
Agreement on file, signed-date shown (M/D/YY)Opens Upload Agreement modal (to upload a newer version)
Agreement expired N days agoOpens Upload Agreement modal
Agreement expires in N daysOpens Upload Agreement modal
No agreement on fileOpens Upload Agreement modal
Training completed, completion date shownNone
Training Completed Date is blankOpens SB foster details page in new tab
No issuesNone

Clicking NO TRAINING opens that provider's foster details page in ShelterBuddy, so you can enter the training completion date there.

Animal badges

BadgeMeaning
N = days past 180-day threshold (e.g. 342 days since exam → 162d)
Same math for weigh-ins
No issues

Edge-case badges

BadgeMeaning
In foster, no provider link in Airtable
+ Status/location mismatch

Uploading a Signed Agreement

Many agreements come through automatically. Signed agreements stored in ShelterBuddy are synced daily — the system reads each PDF, extracts the signed date (via embedded text, then OCR if needed, then Claude vision as a last resort), and updates the provider's badge to SIGNED M/D/YY without anyone uploading anything here. The manual upload below is for the cases where SB doesn't have it.

Click any agreement badge (EXPIRED, EXPIRING, or NO AGREEMENT) to open the modal.

File limits

ConstraintValue
Max file size20 MB
Accepted file typesPDF, JPEG, PNG, HEIC, HEIF, WebP (.pdf, .jpg, .jpeg, .png, .heic, .webp)

iPhone photos: HEIC and HEIF both work — no need to convert before uploading.

What the date picker does

The Agreement Date defaults to today (in Eastern time, so you won't see yesterday's date by accident). Whatever you set:

If the upload fails

ErrorCauseFix
File too large (max 20 MB)The file is too bigCompress the PDF or photo
Please select an agreement date.Date field is emptyPick a date
Network error. Please try again.The browser couldn't reach the serverCheck your WiFi, then retry
Upload failed. Please try again.Something went wrong on our endRetry once. If it keeps failing, let John know — an alert was already sent.

Legislation Popovers

Hover (or tap on mobile) the §429.12 and §432 labels in the sidebar. A small popup shows the law text word for word. Tap anywhere outside the label to dismiss it on mobile.

The popup sits above everything else, so it won't get cut off.


Data Quality Section

Appears below the provider list whenever there's at least one unlinked animal or status conflict. Each subgroup is a collapsible <details> element, expanded by default.

Status / Location Mismatch

Animal's status is "Awaiting Foster" but its location string contains "In Foster" or "Trial Adoption."

These show two coral badges side by side: AWAITING FOSTER and FOSTER LOCATION. Either the staff member who set status forgot to update location, or the animal is actually in a home and someone needs to update status. Open the animal in SB and reconcile.

Animals are grouped by their current status. Common statuses you'll see:

StatusWhy it appears
Adopted - Awaiting PickupAnimal is at a foster's home pending pickup; no formal foster placement
Trial AdoptionAdopter has the animal on trial — counted as in-foster but not linked to a provider
Bite QuarantineQuarantined at a foster home for bite hold
Awaiting RescueFoster is holding while a rescue group commits
Foster - In HomeShould be linked but isn't — investigate SB record

Each row shows a single NO PROVIDER badge. Click the animal ID to open SB and check the foster placement record.


Mobile Polish

The tracker works on phones, but it's optimized for desktop. On screens below ~720 px:

The provider list itself doesn't reflow — it just becomes scrollable horizontally for the long badge rows. If you're regularly working on mobile, talk to your supervisor — a Mac is the supported device.


Sync Status

The bottom of the sidebar shows two timestamps:

Last sync: 4m ago · next ~6m
Clinical refresh: 22m ago · next ~38m
SyncHow oftenWhat it updates
Last syncEvery 10 minutesAnimals, foster providers, intake/foster start dates, provider links
Clinical refreshEvery 60 minutes, 10 am – 6 pm ET onlyLast Exam Date and Last Weigh Date — the values that drive the §429.12 badges

If the clinical refresh shows "over 1h ago" during business hours, let John know.


Email Digests

The Foster Team is subscribed to two daily compliance emails. Subscriptions live in the Airtable Notification Recipients table.

To add or remove someone from any digest, edit the Notification Recipients table in Airtable — no code change. Filter by Digest Name (Foster 6-Month Exam, Agreement Expiry, or Weekly Summary) and add/remove the email there.

Sample: Foster 6-Month Exam digest

The Animal ID column links to ShelterBuddy — click straight from the email into the animal's record. The "Last Exam" column shows — never — for animals that have no exam on file at all (rare, but possible for very new placements).

This summary goes out daily around 8:10 am ET. If no animals are due, no email is sent that day — silence means nothing's overdue.

Sample: Foster Agreement Expiry digest

This summary goes out daily around 8:15 am ET. Same rule — no email means no providers in the "Expiring Soon" status today. The status flips from "Active" to "Expiring Soon" automatically as the renewal date approaches; you don't change it manually.

Weekly Compliance Summary

You may also receive the Weekly Compliance Summary every Monday morning around 9 am ET. It bundles four lists into one email — Long-Term Stay, 30-Day Exam Overdue, Foster 6-Month Exam Due, and Protocol Review Overdue — and always sends even on zero-issue weeks (leadership wants to see the all-clear). Primary audience is leadership, but Foster Team coordinators are commonly cc'd for awareness.


Edge Cases

Provider is missing from the list entirely — They're inactive in Airtable. Foster Status must be Active to appear. Check SB; the next sync brings them back.

An animal you know is in foster has no badge — Check their species. Rabbit, Guinea Pig, Bird, Ferret, Reptile, and Rodent are exempt from §429.12 overdue flags by design.

Agreement upload says "success" but badge didn't clear — The page updates the provider you just uploaded for. If you uploaded for a different provider and the badge looks stale, refresh the page.

Counts in sidebar don't match what I see — Sidebar counts include unlinked animals' issues too. The provider list only shows providers, so an unlinked animal with EXAM OVERDUE will boost the count but live in the Data Quality section, not under any provider.

OK badge on a provider with overdue animals — The provider-level OK only reflects provider-level checks (agreement + training). The animal-level rows below have their own badges. Look at the rows, not just the header.

Phone number shown as raw digits — The formatter only handles 10-digit US and 11-digit 1-prefixed numbers. International or non-numeric phones display as-is.

Modal won't close on Esc — Click the × or Cancel, or click the dark overlay outside the modal. Esc only works while the modal has keyboard focus.

The sidebar shows Sync: just now but a recent change in SB isn't reflected — Two reasons:

  1. The animal sync runs every 10 min — wait for the next pass
  2. Exam dates and weight come from the clinical refresh, which only runs hourly during business hours. If it's outside 10am–6pm ET, the field won't update until tomorrow morning.

Quick Reference

I need to...Click...
See providers with any compliance issueSidebar → any of the four issue cards (or just leave Issues Only on)
See everyone including compliant providersHeader → toggle to All
Filter to just one issue typeClick that summary card — click again to clear
Filter by shelterHeader dropdown → pick a shelter
Sort by most urgentDefault — or Sort dropdown → Most Urgent
Sort by who has the most animalsSort dropdown → Most Animals
Open everyone's animal list at onceExpand All button (toggles to Collapse All)
Upload a signed agreementClick EXPIRED / EXPIRING / NO AGREEMENT badge
Open a provider in ShelterBuddyClick the #4521 next to their name
Email a providerClick their email address
Call a providerClick their phone number
Mark training as completeClick NO TRAINING badge → enter date in SB
Open an animal in ShelterBuddyClick the #248502 next to their name
See animals in foster with no provider linkScroll to Data Quality section (or click Unlinked Animals card)
See status/location mismatchesStatus Conflicts card
Add yourself to a digestEdit the Notification Recipients table in Airtable
Check if data is freshBottom of sidebar — sync timestamps