Locations & Resources
Locations are Metrognome's physical facilities. Resources are the bookable or access-controlled units within them — studios, storage, parking, equipment. Together they form the inventory that everything else in the system operates on.
Locations
A location represents one physical facility. Each location has its own address, timezone, Stripe connected account, and operational configuration. All reservation times are displayed in the location's timezone.
Status
- Active — open, visible to the public, bookings allowed
- Inactive — hidden from public, no bookings
- Maintenance — temporarily unavailable
- Coming Soon — not yet open but visible for marketing
Types
- Metrognome — standard music studio facility (the core business)
- Venue — event venue or partner space
- Retail — retail location
- Competitor — competitor location tracked for intelligence
Location type is set at creation and cannot be changed. It determines the human-readable ID prefix.
Key Configuration
Each location defines:
- Timezone — drives all time display for reservations at this location. Auto-inferred from ZIP if not provided.
- Stripe account — every location has its own connected account for receiving payments. Revenue is not pooled across locations.
- Community manager — the staff member who receives notifications for lockout bookings, waitlist inquiries, and tour bookings at this location.
- Insurance settings — whether insurance is available and/or mandatory (see Insurance)
- Tour calendar — Acuity calendar ID for booking tours. If not set, tours cannot be scheduled at this location.
- Security group — Unifi members group ID for door access. Monthly lockout members are added to this group (see Physical Access).
- Default pricing — location-level rate per square foot that applies to any resource without its own rate override (see Pricing)
- Minimum prices — optional overrides for "from $X/month" display pricing on public pages
Resources
A resource is anything bookable or access-controlled at a location. The most common are monthly studios and hourly studios, but the system also supports equipment, storage, parking, mailboxes, and amenities.
Types
| Type | Billing | Description |
|---|---|---|
| Monthly Studio | Subscription | Private lockout studio with 24/7 access |
| Hourly Studio | Per-session | Rehearsal room booked by the hour |
| Equipment | Per-session | Rentable gear |
| Storage | Subscription | Storage unit |
| Parking | Subscription | Parking space |
| Mailbox | Subscription | Mailbox service |
| Amenity | Subscription | Shared amenity access |
| Tour | Free | Tour calendar resource (one per location) |
| Entry | None | Building entrance (used for access gate association) |
Resource type determines the billing model and behavior. It can be changed by staff, but doing so affects how the resource is billed, scheduled, and displayed.
Status and Availability
Resources have both a status and an availability flag:
- Status (administrative) — Active, Inactive, Maintenance, or Coming Soon. Controls visibility and whether bookings are allowed.
- Availability (computed) — whether the resource is currently occupiable. For monthly studios, this is false when an active lockout exists. For hourly studios, this is always true (per-slot availability is computed separately). Availability is recalculated automatically whenever reservations change.
A resource can be Active but unavailable (occupied monthly studio), or Inactive regardless of availability (administratively disabled).
Physical Attributes
Resources track physical dimensions (width, length, height in feet), size category (S/M/L/XL), floor number, wing (color-coded building section), and max occupancy. Width and length drive pricing — square footage times rate per square foot equals the base price. If dimensions are missing, calculated pricing is unavailable.
Pricing
Each resource can have its own rate per square foot (overriding the location default) or explicit card/ACH price overrides that bypass the calculation entirely. Pricing denormalized fields on the resource (base price, display price) are updated automatically when rates change. See Pricing for the full pricing model.
Scheduling (Hourly Resources)
Hourly resources can have weekly schedules defining open/close hours per day of week, and peak hour windows where a price multiplier applies. Availability is managed through Acuity integration — each hourly resource has an Acuity calendar ID for slot management.
Resource Groups
Resource groups organize resources within a location by physical area. They serve two purposes: access control scoping and spatial organization.
Group Types
- Wing — a section of the building (e.g., "Red Wing")
- Floor — a floor level
- Section — a specific area within a wing or floor
- Parking Gate — a parking lot gate zone
- Entry — a building entrance
Groups support hierarchy — a section can be inside a wing. Resources can belong to multiple groups. When an access gate is scoped to a resource group, any reservation at any resource in that group grants access through that gate.
Location Groups
Location groups aggregate locations for management and display purposes. Types include City, Region, Category, Business Unit, and Project. A location can belong to multiple groups.
The only business rule on location groups is the tour request flag — when set, customers at locations in that group must submit a contact form to request a tour instead of booking directly.
Assets
Assets are physical equipment tracked independently of any room — amplifiers, drum kits, microphones, cables, etc. Assets have their own lifecycle (active, maintenance, retired, disposed) and condition tracking. They are placed at resources or resource groups with a slot code (e.g., AMP1 for the first amplifier). Placement history is preserved — when an asset moves, the old placement is ended and a new one begins.
Assets in the access gate kit category can be assigned to access gates, tracking which physical lock hardware is installed at which door.
Human-Readable IDs
Every entity in the inventory has a human-readable ID (mgId) that encodes its type and position in the hierarchy:
- Locations: type prefix + sequence (e.g.,
MG1,VNU3) - Resources: location ID + type code + sequence (e.g.,
MG1-SMO1for the first monthly studio at MG1) - Resource Groups: location ID + group type code + sequence (e.g.,
MG1-WNG1) - Assets: global prefix + sequence (e.g.,
AST42)
IDs are assigned at creation and never change. Sequences reuse gaps — if a resource is deleted, its sequence number becomes available for the next resource of the same type at that location.