import { defineFlash } from '@hds/warehouse'
import { opera, toast, ideas } from '@hds/connectors'
interface RevenueDay {
date: string
roomsRevenue: number
fbRevenue: number
occupancy: number
adr: number
}
export const totalRevpar = defineFlash(async ({ ctx }) => {
const days = await ctx.sql<RevenueDay>`
select date, rooms_revenue, fb_revenue, occupancy, adr
from hotel_revenue
where date between now() - interval '90 days' and now()
`
const stly = await ctx.benchmark('same_time_last_year')
for (const d of days) {
const trevpar = (d.roomsRevenue + d.fbRevenue) / ctx.availableRooms
if (trevpar < stly.trevpar * 0.95) {
ctx.alert(`Total RevPAR behind pace: ${d.date}`)
}
}
return rollup(days, ['property', 'segment'])
}) import { defineFlash } from '@hds/warehouse'
import { opera, toast, ideas } from '@hds/connectors'
interface RevenueDay {
date: string
roomsRevenue: number
fbRevenue: number
occupancy: number
adr: number
}
export const totalRevpar = defineFlash(async ({ ctx }) => {
const days = await ctx.sql<RevenueDay>`
select date, rooms_revenue, fb_revenue, occupancy, adr
from hotel_revenue
where date between now() - interval '90 days' and now()
`
const stly = await ctx.benchmark('same_time_last_year')
for (const d of days) {
const trevpar = (d.roomsRevenue + d.fbRevenue) / ctx.availableRooms
if (trevpar < stly.trevpar * 0.95) {
ctx.alert(`Total RevPAR behind pace: ${d.date}`)
}
}
return rollup(days, ['property', 'segment'])
})