Branch Hours Policy Exception Audit avatar

Branch Hours Policy Exception Audit

Pricing

from $20.00 / 1,000 branch auditeds

Go to Apify Store
Branch Hours Policy Exception Audit

Branch Hours Policy Exception Audit

Compare an authorized branch hours export with your own corporate hours and holiday policy. Reports schedule mismatches and missing confirmations from supplied data only.

Pricing

from $20.00 / 1,000 branch auditeds

Rating

0.0

(0)

Developer

Practical AI Lab

Practical AI Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Compare an authorized branch hours export you already hold against your own corporate hours and holiday policy. The Actor lists branches whose schedules disagree with policy and branches that lack a recent confirmation.

It works only on the data you paste in. It does not scrape Google Maps or any other site, makes no network requests, and never claims to know a branch's live opening hours.

What it checks

CheckCodes
Weekly hours differ from policy (with optional minute tolerance and regional overrides)WEEKLY_HOURS_MISMATCH, MISSING_DAY_HOURS, UNPARSEABLE_HOURS
Holiday handling differs from policyHOLIDAY_OPEN_POLICY_CLOSED, HOLIDAY_CLOSED_POLICY_OPEN, HOLIDAY_HOURS_MISMATCH, MISSING_HOLIDAY_ENTRY
Branch confirmation is absent, stale, invalid or dated in the futureMISSING_CONFIRMATION, STALE_CONFIRMATION, INVALID_CONFIRMATION_DATE, FUTURE_CONFIRMATION_DATE
Export hygieneDUPLICATE_BRANCH_ID, UNKNOWN_DAY_KEY, INVALID_SPECIAL_DATE

Each finding has a severity (high, medium, low), the policy value, the exported value and the largest time difference in minutes where that applies.

Input

Copy the prefilled input in the Console as a starting point. Main fields:

  • policy (required): weeklyHours, optional regionalWeeklyHours, and holidays (each with date, name, hours, optional regions).
  • branches: JSON list with branchId, name, region, hours, specialHours, confirmedOn.
  • branchesCsv: optional CSV with columns branch_id, branch_name, region, day, hours, confirmed_on. The day column holds a weekday (Mon, monday) or a YYYY-MM-DD holiday date. CSV and JSON branches are merged.
  • asOfDate, toleranceMinutes, maxConfirmationAgeDays, requireConfirmation, maxFindingsPerBranch.

Accepted hours text: 09:00-18:00, 9am-5:30pm, 09:00-12:00,13:00-17:00, 22:00-02:00 (closes after midnight), closed, 24h.

Region names are matched case-insensitively. A branch with no region only gets the base weekly policy and holidays that are not region-limited.

Output

The default dataset contains two record types:

  • branch_summary: one per branch, with status (clean or exceptions), counts by severity, and the number of weekdays and holidays checked.
  • finding: one per exception, capped by maxFindingsPerBranch. The summary keeps the true total.

A SUMMARY record in the key-value store holds run totals and counts per code.

Pricing event

The code emits one branch-audited event per branch after the whole audit has finished and results are stored. Runs that fail on input validation or crash before completion emit no event. No payable plan is configured in this repository; pricing is set separately by the owner.

Limitations and sample-size caveats

  • Not live hours. Results describe the consistency of your export against your policy at the reference date. A branch listed as consistent may still be wrong in reality.
  • Garbage in, garbage out. If the export is outdated or came from an unreliable source, matching policy proves nothing. Confirmation dates are only as good as the dates you supply.
  • Past holidays are compared only when the export contains an entry for them; missing entries are flagged only for holidays on or after asOfDate.
  • Time zones, daylight saving and public-holiday calendars are not modelled. Every time is compared as written. Holiday lists are exactly what you supply.
  • Overnight ranges are read as closing after midnight; a Monday closing at 02:00 is not carried into Tuesday's checks.
  • Duplicate CSV rows for the same branch and day overwrite each other; the last row wins.
  • Small samples. With a handful of branches, exception rates are anecdotes, not trends. Rates should not be extrapolated to a wider network.
  • Limits: 5,000 branches, 2 million CSV characters, 100,000 CSV rows per run.
  • Only English weekday names and am/pm or 24-hour times are understood.

Local tests

The unit tests run offline with the standard library only:

python -m unittest discover -s tests