Whoa there!

You are using an outdated browser. Please upgrade your browser or use a different browser to improve your experience.


Mini Runners

A season-long half-day ski program for ages 3-5. From first-timers to explorers of the entire mountain, Mini Runners is the perfect introduction into season-long skiing for your littlest tyke.|
  •          Participants of all abilities welcome. No prior skiing experience is necessary.
  •          Half-day schedule: 9AM-12PM; must be dropped-off before 8:45AM.
  •          Program begins for the season in mid-December.

Mini Runners

Thank you for enrolling your child(ren) in Mini Runners! We’re looking forward to the 2020-21 season with you. Parents will receive an email with each child’s initial pod assignment and more information about the season in December.

Please contact us at snowsportsschool@sundayriver.com with any questions. 

View program information and training schedule.

Customers who bought this item also bought

River Runners

A season-long ski program for ages 5-12. Your little ripper will be part of a team centered on their enthusiasm for skiing and fun.|
  •          Full-day schedule: 9AM-2PM; must be dropped-off before 8:45AM.
  •          Half-day schedule: 9AM-12PM; must be dropped-off before 8:45AM.
  •          Program begins for the season in mid-December.
  •          Participants must be able to ski independently, turning and stopping in control, on Sunday River’s green terrain. If they cannot, please check-out our 30-Day Passes as another option.
  •          Program does not included a season pass or lift ticket.


Gold New England Pass - 20/21

Our most popular pass, valid every day of the season at Sunday River, Sugarloaf, and Loon Mountain with additional perks including ticket deals for friends and skiing benefits at Western resorts.|

Gould Academy Competition Program: Alpine

Designed for advanced skiers with a desire to improve and compete in alpine skiing. |
  •          Athletes interested in alpine will train in slalom, giant slalom, super-G, and downhill disciplines.
  •          Available for ages 7-19.
  •          Training occurs every weekend and holiday period beginning mid-November through the last weekend in March.
  •          See all GACP programs.

Mogul Meisters 30-Day Pass (Ski or Snowboard)

A season-long ski or snowboard program for ages 8-12 with 30 full-day lessons and lunch during the 2020-21 winter season. |
  •          Full-day schedule: 10AM-3PM, with lunch included.
  •          No reservation required.
  •          Drop off between lift opening and 9AM.
  •          30-day passes are transferable between siblings ages 8-12, and can be used for lessons on the same day.
  •          For both skiers and snowboarders.
<script>// <![CDATA[ Vue.component('payment-details-schedule', { data: function () { return { monthlyPayment: 0, paymentTableHeaders: [ { text: 'Date', value: 'Date', align: 'center' }, { text: 'Amount', value: 'Amount', align: 'center' }, ], processing: false, showModal: false, paymentPlanProductIds: [], dates: null, paymentPrices: [], paymentDetails: [], paymentRemainder: 0, modalDescription: null, widgetDescription: null, totalPaymentPrice: 0, totalDeposit: 0 } }, template: '<div class="payment-plan-details" v-if="paymentDetails.length && isPaymentPlanProduct"> <p>Your remaining balance will be billed in 4 payments <span v-if="paymentRemainder == 0">of ${{ monthlyPayment.toFixed(2) }}</span>.<div v-if="widgetDescription">{{widgetDescription}}</div><span class="ax--btn ax--btn--secondary viewSchedule" @click="showModal = true">View Payment Schedule</span></p><ax-modal v-if="showModal" modalType="message" size="medium" @close="showModal = false"><template v-slot:header><h3>Payment Plan Schedule</h3><div>{{modalDescription}}</div><div>${{totalDeposit.toFixed(2)}} will be charged now. The remaining ${{totalPaymentPrice.toFixed(2)}} will be charged on the following schedule:</div></template><template v-slot:body><ax-loader v-if="processing" size="lg" position="fixed" loader-color="#222" /><ax-data-table v-if="!!paymentDetails.length" :allow-row-selection="false" break-width="large" :headers="paymentTableHeaders" :items="paymentDetails"/><div>Product total with deposit: ${{(totalPaymentPrice + totalDeposit).toFixed(2)}}</div></template></ax-modal></div>', created() { this.dates = window.datesArray this.paymentPrices = window.priceArray this.paymentPlanProductIds = window.productArray this.modalDescription = window.modalDescription this.widgetDescription = window.widgetDescription this.buildPaymentSchedule() }, computed: { productId() { return this.$store.getters['products/selectedProduct'].Id }, selectedAttributeValueIds() { return this.selectedAttributes .filter(function (attribute) { return !attribute.IsDisabled }) .map(function (obj) { return obj.SelectedValueId; }); }, selectedAttributes() { return this.$store.getters['products/selectedProductAttributes'] }, numberOfPayments() { return this.dates.length }, isPaymentPlanProduct() { let _this = this let foundProductId = this.paymentPlanProductIds.find(function (pid) { return pid === _this.productId; }); if (foundProductId){ return true } else { return false } }, }, methods: { buildPaymentSchedule() { this.paymentDetails = [] let paymentPriceRecord = null this.totalPaymentPrice = 0 this.totalDeposit = 0 //First we must determine which of the selected attributes have payment prices and calculate a total payment price for them let _this = this this.selectedAttributeValueIds.forEach(function (attributeId, index) { paymentPriceRecord = null paymentPriceRecord = _this.paymentPrices.filter(p => { return p.id.toString() === attributeId }) if (paymentPriceRecord && paymentPriceRecord.length > 0) { _this.totalPaymentPrice += paymentPriceRecord[0].paymentPrice _this.totalDeposit += paymentPriceRecord[0].deposit } }) if (_this.totalPaymentPrice > 0) { //Determine monthly payment let thisPayment = +(_this.totalPaymentPrice / _this.dates.length) _this.monthlyPayment = Math.floor(thisPayment * 100) / 100 //Determine if there is a remainder amount _this.paymentRemainder = +(_this.totalPaymentPrice - (_this.monthlyPayment * _this.dates.length)).toFixed(2) //Then we create payment record for each configured date _this.dates.forEach(function (paymentDate, index) { if (index === _this.dates.length - 1 && _this.paymentRemainder > 0) { let lastPayment = _this.monthlyPayment + _this.paymentRemainder _this.paymentDetails.push({ date: paymentDate, amount: `$${lastPayment.toFixed(2)}` }) } else { _this.paymentDetails.push({ date: paymentDate, amount: `$${_this.monthlyPayment.toFixed(2)}` }) } }) //Add a total amount row _this.paymentDetails.push({ date: '<b>TOTAL</b>', amount: `<b>$${_this.totalPaymentPrice.toFixed(2)}</b>` }) } }, }, watch: { selectedAttributeValueIds: { immediate: true, deep: false, handler(newValue, oldValue) { this.buildPaymentSchedule() }, }, } }) // ]]></script>